]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/netapi.git/blobdiff - ti/runtime/netapi/test/net_test.c
Update
[keystone-rtos/netapi.git] / ti / runtime / netapi / test / net_test.c
index 3da0c35770450843e864a503c24fd08a255dc629..a448ce4a5375289da4738ad8539b5f65e5b2a6fb 100644 (file)
@@ -276,12 +276,14 @@ int perslow= PERSLOW;
 static NETAPI_CFG_T our_netapi_default_cfg=
 {
 TUNE_NETAPI_PERM_MEM_SZ,
-256,  //start of packet offset for hw to place data on rx for default flow
+128,  //start of packet offset for hw to place data on rx for default flow
 TUNE_NETAPI_QM_CONFIG_MAX_DESC_NUM, //max number of descriptors in system
 TUNE_NETAPI_NUM_GLOBAL_DESC,        //total we will use
 TUNE_NETAPI_DEFAULT_NUM_BUFFERS,   //#descriptors+buffers in default heap
-0, //#descriptors w/o buffers in default heap
-TUNE_NETAPI_DEFAULT_BUFFER_SIZE+256   //size of buffers in default heap
+64, //#descriptors w/o buffers in default heap
+TUNE_NETAPI_DEFAULT_BUFFER_SIZE+128+128,  //size of buffers in default heap
+128   ,  //tail room
+256      //extra room 
 };
 
 Pktlib_HeapHandle OurHeap;
@@ -1488,7 +1490,7 @@ heapCfg.name                = "netapi-small";
 heapCfg.memRegion           = NETAPI_GLOBAL_REGION;
 heapCfg.sharedHeap          = 1;
 heapCfg.useStarvationQueue  = 0;
-heapCfg.dataBufferSize      = 256;
+heapCfg.dataBufferSize      = 512;
 heapCfg.numPkts             = 64;
 heapCfg.numZeroBufferPackets= 0;
 heapCfg.heapInterfaceTable.data_malloc  = pPktifTable->data_malloc;
@@ -1529,7 +1531,7 @@ if (!netcp_sb_tx_chan) {printf("pktio open SB TX failed err=%d\n",err); exit(1);
 netcp_sb_rx_chan= pktio_open(netapi_handle, NETCP_SB_RX, (PKTIO_CB) recv_sb_cb, &netcp_sb_rx_cfg,  &err);
 if (!netcp_sb_rx_chan) {printf("pktio open SB RX failed err=%d\n",err); exit(1);}
 
-
+printf("net_test> %d bytes left in our CMA area\n", netapi_getBufMemRemainder());
 /* create scheduler instance */
 our_sched =netapi_schedOpen(netapi_handle,&our_sched_cfg, &err);
 if (!our_sched) {printf("sched create failed\n"); exit(1);}
@@ -1621,13 +1623,14 @@ Pktlib_HeapHandle heaps[2];
 int sizes[2];
 heaps[0]= specialSmall;
 heaps[1]= specialLarge;
-sizes[0]=256;
-sizes[1]=1600;
+#define SPECIAL_SOP_OFF 128
+sizes[0]=512-SPECIAL_SOP_OFF;
+sizes[1]=1600-SPECIAL_SOP_OFF;
 specialFlow = netcp_cfgAddFlow( netapi_handle,
                                2,
                                 heaps,
                                 sizes,
-                                0,  //offset to start rx is 0
+                                SPECIAL_SOP_OFF,  //offset to start rx is 128 
                                 &err);
 if (err) {printf("add flow failed\n", err); exit(1);}
 }
@@ -1839,11 +1842,12 @@ void netapi_pld(void * x)
 {   
            asm volatile("pld [r0]");
 }
+#include "ti/drv/nwal/nwal_util.h"
 
 #define M 1008
 static int l3_off[M], l4_off[M], L3_chk_ok[M], L4_chk_ok[M], appid[M], len[M] ;
 static unsigned char * buf[M];
-#define N2POLL 8
+#define N2POLL 8 //batch size
 void example_fast_poll( PKTIO_HANDLE_T * p_pktio)
 {
 int j=0;
@@ -1878,22 +1882,26 @@ for(;;)
     {
         //convert previous descriptor PA -> VA
         tempVA  =  Osal_qmssPhyToVirt(pHd[i-1]); 
-        Cppi_getData (Cppi_DescType_HOST, (Cppi_Desc*)tempVA, &buf[jj], &len[jj]);
 
         //try and preload desriptor
-        //__builtin_prefetch(tempVA);
+         __builtin_prefetch(tempVA);
         //netapi_pld(tempVA);
 
         //read next descriptor from queue 
         pHd[i] = (Ti_Pkt *)QMSS_DESC_PTR(PKTIO_QMSS_QUEUE_POP_RAW (rxQ));
-       
+#if 1   
         /* extract some meta data */
+        Cppi_getData (Cppi_DescType_HOST, (Cppi_Desc*)tempVA, &buf[jj], &len[jj]);
         pinfo =  PKTIO_GET_PROTO_INFO(tempVA);
         l3_off[jj]= PKTIO_GET_L3_OFFSET(pinfo);
         l4_off[jj]= PKTIO_GET_L4_OFFSET(pinfo);
         appid[jj]= PKTIO_GET_APPID(tempVA);
-        //get ptr (Physical address) and length of associate buffer
-        //Cppi_getData (Cppi_DescType_HOST, (Cppi_Desc*)tempVA, &buf[jj], &len[jj]);
+//#define VERIFY_SOP
+#ifdef VERIFY_SOP
+  if (sump < 200)  printf("..sop off=%d\n", (int) buf[jj]-
+           (int)  ((Cppi_HostDesc *) tempVA)->origBuffPtr) ;
+#endif
+#endif
         jj+=1;
     }
     //finish last pkt in burst
@@ -1903,10 +1911,12 @@ for(;;)
         tempVA  =  Osal_qmssPhyToVirt(pHd[i-1]); 
 
         /* extract some meta data */
+#if 1
         pinfo =  PKTIO_GET_PROTO_INFO(tempVA);
         l3_off[jj]= PKTIO_GET_L3_OFFSET(pinfo);
         l4_off[jj]= PKTIO_GET_L4_OFFSET(pinfo);
         appid[jj]= PKTIO_GET_APPID(tempVA);
+#endif
         //get ptr (Physical address) and length of associate buffer
         Cppi_getData (Cppi_DescType_HOST, (Cppi_Desc*)tempVA, &buf[jj], &len[jj]);
         jj+=1;
@@ -1938,7 +1948,7 @@ for(;;)
         //tempVA=Qmss_osalConvertDescPhyToVirt(pHd[k]);
         tempVA  =  Osal_qmssPhyToVirt(pHd[k]);
         freeQ=Qmss_getQueueHandle(Cppi_getReturnQueue (Cppi_DescType_HOST, tempVA));
-        netapi_utilCacheWbInv(pHd[k],128);
+        netapi_utilCacheWbInv(tempVA,128);
         //would need to wbInv buffer also in practice. Also need to walk
         // descriptor chain 
         t11= netapi_timing_stop();