Updates to net_test_bench application, removed net_test_setup.sh
authorTinku Mannan <tmannan@ti.com>
Thu, 16 May 2013 19:23:20 +0000 (15:23 -0400)
committerTinku Mannan <tmannan@ti.com>
Thu, 16 May 2013 19:23:20 +0000 (15:23 -0400)
ti/runtime/netapi/test/net_test_bench.c
ti/runtime/netapi/test/net_test_setup.sh [deleted file]

index 0acd1dfb84ac6581b4b9daa5964ab67c61ffc6e6..15177e8bee00b764f22b7739898a661346f714f3 100755 (executable)
@@ -124,7 +124,9 @@ TUNE_NETAPI_DEFAULT_BUFFER_SIZE+128+128,  //size of buffers in default heap
 \r
 Pktlib_HeapHandle OurHeap;     //default heap, used by producer\r
 PKTIO_CFG_T netcp_rx_cfg={PKTIO_RX, PKTIO_NA, PKTIO_NA, 8};\r
+PKTIO_CFG_T netcp_tx_cfg={PKTIO_TX, PKTIO_NA, PKTIO_NA, 8};\r
 PKTIO_HANDLE_T * netcp_rx_chan;\r
+PKTIO_HANDLE_T * netcp_tx_chan;\r
 NETAPI_T netapi_handle;\r
 \r
 PKTIO_CONTROL_T zap_channel_control={PKTIO_CLEAR, NULL};\r
@@ -181,11 +183,12 @@ unsigned long t2;
            pkt_rx_cycles += (t2-t1);\r
         }\r
       }\r
-      printf("nt-bench: recevier  DONE %d pkts rx,  pkt poll cycles=% u; pkt rx cycle=%u pkt tx cycles=%u \n", pkt_rx,\r
+      printf("nt-bench: receiver  DONE %d pkts rx,  pkt poll cycles=% u; pkt rx cycle=%u pkt tx cycles=%u \n", pkt_rx,\r
              (unsigned)  (pkt_rx ?  (pkt_rx_cycles - pkt_cb_cycles)/pkt_rx : 0),\r
              (unsigned)  (pkt_rx ?  (pkt_rx_cycles) /pkt_rx : 0),\r
              (unsigned)  (pkt_tx ?  (pkt_tx_cycles) /pkt_tx : 0)\r
             );\r
+     printf("Leaving producer_thread\n");\r
 }\r
 \r
 \r
@@ -204,6 +207,12 @@ int main(int argc, char **argv)
 \r
      //install signal handler for ^c\r
     signal(SIGINT,netTest_utilMySig);\r
+\r
+\r
+\r
+\r
+\r
+\r
     CPU_ZERO( &cpu_set);\r
     CPU_SET( 0, &cpu_set);\r
     hplib_utilSetupThread(2, &cpu_set);\r
@@ -226,6 +235,9 @@ int main(int argc, char **argv)
     netcp_rx_chan= netapi_pktioOpen(netapi_handle, NETCP_RX, (PKTIO_CB) recv_cb_net, &netcp_rx_cfg,  &err);\r
     if (!netcp_rx_chan) {printf("pktio open RX failed err=%d\n",err); exit(1);}\r
 \r
+    netcp_tx_chan= netapi_pktioOpen(netapi_handle, NETCP_TX, (PKTIO_CB) NULL, &netcp_tx_cfg,  &err);\r
+    if (!netcp_tx_chan) {printf("pktio open TX failed err=%d\n",err); exit(1);}\r
+\r
 /*********************************************/\r
 /*****************end NETAPI STARTUP**********/\r
 /*********************************************/\r
@@ -257,40 +269,41 @@ netapi_netcpCfgCreateMacInterface(
 //Create a worked thread\r
 //***************************************\r
 {\r
-    pthread_t *thrs;\r
-    int procs =1; \r
-    char c;\r
-    thrs = malloc( sizeof( pthread_t ) * procs );\r
-    if (thrs == NULL)\r
-    {\r
-        perror( "malloc" );\r
-        return -1;\r
-    }\r
-    printf( "benchmark-test: Starting %d threads...\n", procs );\r
+       pthread_t *thrs;\r
+        int procs =1; \r
+        char c;\r
+        thrs = malloc( sizeof( pthread_t ) * procs );\r
+        if (thrs == NULL)\r
+        {\r
+                perror( "malloc" );\r
+                return -1;\r
+        }\r
+        printf( "benchmark-test: Starting %d threads...\n", procs );\r
 \r
-    if (pthread_create( &thrs[0], NULL, (void*)producer_thread,\r
-                      (void *)0 ))\r
-    {\r
-        perror( "pthread_create" );\r
-        exit(1);\r
-    }\r
-    //this thread of execution (main) now just waits on user input\r
-    for(;;)\r
-    {\r
-        printf(">");\r
-        c=getchar();\r
-        if (c=='q') {QUIT=1;break;}\r
-        if (c=='t') {XMIT=!XMIT; printf("XMIT= %d\n", XMIT); }\r
-        else if (c=='s') printf(">IFDMA-TEST STATS:    %d received   %d xmitted \n", pkt_rx,pkt_tx);\r
-        else if (c=='h') printf("> 'q' to quit,  's' for stats, 't' to toggle transmit  'h' for help\n");\r
-    }\r
+        if (pthread_create( &thrs[0], NULL, (void*)producer_thread,\r
+                        (void *)0 ))\r
+        {\r
+                        perror( "pthread_create" );\r
+                        exit(1);\r
+        }\r
+        //this thread of execution (main) now just waits on user input\r
+        for(;;)\r
+        {\r
+           printf(">");\r
+           c=getchar();\r
+           if (c=='q') {QUIT=1;break;}\r
+           if (c=='t') {XMIT=!XMIT; printf("XMIT= %d\n", XMIT); }\r
+           else if (c=='s') printf(">IFDMA-TEST STATS:    %d received   %d xmitted \n", pkt_rx,pkt_tx);\r
+           else if (c=='h') printf("> 'q' to quit,  's' for stats, 't' to toggle transmit  'h' for help\n");\r
+        }\r
 \r
-    //wait for completion \r
-    printf("main task now pending on thread completion\n");\r
-    for (i = 0; i < procs; i++)\r
-        pthread_join( thrs[i], NULL );\r
+        //wait for completion \r
+        printf("main task now pending on thread completion\n");\r
+        for (i = 0; i < procs; i++)\r
+                pthread_join( thrs[i], NULL );\r
 \r
-    free( thrs );\r
+        free( thrs );\r
+      \r
 }\r
 \r
 /*************************************************\r
@@ -300,6 +313,7 @@ netapi_netcpCfgCreateMacInterface(
 //also close our netcp rx channel\r
 netapi_netcpCfgDelMac(netapi_handle,0,&err);\r
 netapi_pktioClose(netcp_rx_chan,&err);\r
+netapi_pktioClose(netcp_tx_chan,&err);\r
 \r
 \r
 //done\r
@@ -308,7 +322,26 @@ netapi_shutdown(netapi_handle);
 \r
 //!finished!\r
 }\r
-\r
+static inline void sendit(Ti_Pkt *tip, int len, int out_port)\r
+{\r
+  int err=0;\r
+  PKTIO_METADATA_T meta2 = {PKTIO_META_TX,{0},0};\r
+  nwalTxPktInfo_t meta_tx2={0};\r
+  if (len<60)\r
+  {\r
+     unsigned int templen;\r
+     char * p_pkt;\r
+     len=60;\r
+     Pktlib_getDataBuffer(tip,(uint8_t**)&p_pkt,&templen);//ignore templen\r
+     Cppi_setData (Cppi_DescType_HOST, (Cppi_Desc *) tip, p_pkt,len);\r
+  }\r
+  Pktlib_setPacketLen(tip,len);\r
+  meta_tx2.txFlag1 = NWAL_TX_FLAG1_META_DATA_VALID ; \r
+  meta_tx2.ploadLen = len ;\r
+  meta_tx2.enetPort=out_port;\r
+  meta2.u.tx_meta=&meta_tx2;\r
+  netapi_pktioSend(netcp_tx_chan,tip,&meta2,&err);\r
+}\r
 \r
 //receive callback for packets from net (for consumer)\r
 void recv_cb_net(struct PKTIO_HANDLE_Tag * channel, Ti_Pkt* p_recv[],\r
@@ -322,6 +355,9 @@ unsigned long t1;
 unsigned long t2;\r
 unsigned long t3;\r
 unsigned long t4;\r
+pasahoLongInfo_t* protoInfo; \r
+int ifno;\r
+int out_port;\r
 \r
 t1= netapi_timing_start();\r
 for(i=0;i<n_pkts;i++)\r
@@ -330,8 +366,15 @@ for(i=0;i<n_pkts;i++)
     len = Pktlib_getPacketLen(tip);\r
     if (XMIT)\r
     {\r
+        protoInfo=nwal_mGetProtoInfo(tip);\r
+        ifno = nwal_mGetRxEmacPort( protoInfo);\r
+        //----------------------------------------------------\r
+        //very trivial bridging -> just output to other port!\r
+        //----------------------------------------------------\r
+        if (ifno ==1) out_port=2; else out_port=1;\r
+\r
        t3= netapi_timing_start();\r
-       //sendit(tip);\r
+       sendit(tip,len,out_port);\r
        pkt_tx+=1;\r
        t4= netapi_timing_start();\r
        pkt_tx_cycles += (t4-t3);\r
diff --git a/ti/runtime/netapi/test/net_test_setup.sh b/ti/runtime/netapi/test/net_test_setup.sh
deleted file mode 100644 (file)
index 0295498..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-export KERNEL_VER=$(uname -r)
-#install kernel module
-echo $KERNEL_VER
-insmod /lib/modules/$KERNEL_VER/extra/hplibmod.ko
-#
-cat /proc/netapi
-#
-devmem2 0x2090804 w 0x4
-#
-# run net_test applicaton, default location of config file is in /etc/netapi,
-# default config file name is net_test_config.txt
-/usr/bin/net_test_loopback /etc/netapi/net_test_config.txt