This commits adds the following:
authorTinku Mannan <tmannan@ti.com>
Mon, 25 Mar 2013 16:45:28 +0000 (12:45 -0400)
committerTinku Mannan <tmannan@ti.com>
Mon, 25 Mar 2013 16:45:28 +0000 (12:45 -0400)
1. Re-size netapi tune parameters for SA and PA buffer size requests for K2.
2. Fixes in Makefiles to compile netapi library and test applications.3
3. General cleanup.

12 files changed:
ti/runtime/netapi/build/Makefile
ti/runtime/netapi/netapi_tune.h
ti/runtime/netapi/netapi_util.h
ti/runtime/netapi/netcp_cfg.h
ti/runtime/netapi/src/netapi_init.c
ti/runtime/netapi/src/netapi_sec.c
ti/runtime/netapi/src/pktio.c
ti/runtime/netapi/test/build/Makefile
ti/runtime/netapi/test/net_test.c
ti/runtime/netapi/test/net_test_max_params.c
ti/runtime/netapi/test/net_test_utils.c
ti/runtime/netapi/test/net_test_utils.h

index d17b48aeaf0bb01f64dc88e9979496b777335455..aa6ec562cb160b18f57fb8d37c4b443835184864 100755 (executable)
@@ -8,6 +8,15 @@ INCDIR := $(PDK_INSTALL_PATH);  $(QMSS_INC_DIR); $(CPPI_INC_DIR); $(HPLIB_INC_DI
 export PDK_VER ?= v2
 NETAPI_NAVIG_INIT_SRC=$(NETAPI_INC_DIR)/src/pdk$(PDK_VER)
 
+export CPU ?= cortex-a15
+
+ifeq ($(CPU), cortex-a8)
+        CFLAGS += -DCORTEX_A8
+endif
+ifeq ($(CPU), cortex-a15)
+        CFLAGS += -DCORTEX_A15
+endif
+
 export SOC ?= tci6634
 ifeq ($(PDK_VER),v3)
 QMSS_DEV_DIR = $(PDK_INSTALL_PATH)/ti/drv/qmss/device/$(SOC)/src
index 3a087ffa39cb18164fd66fcebe89c73c108409cd..1d174c585b2d0a939a5c2a7f95d4a222b06a0f13 100755 (executable)
  * @note This must reflect what the kernel is uding for their region, see device tree blob for details.
  */
 #define TUNE_NETAPI_QM_START_INDEX  0x2000  //WARNING:  must reflect what kernel is using for their region, see device tree blob
+
 //#define TUNE_NETAPI_QM_START_INDEX  0
 /**
  * @ingroup tune_parameters
  * @def  TUNE_NETAPI_QM_GLOBAL_REGION
  *      This defines the queue manager global region
- * @note This must reflect what the kernel is uding for their region, see device tree blob for details.
+ * @note This must reflect what the kernel is using for their region, see device tree blob for details.
  */
 #define TUNE_NETAPI_QM_GLOBAL_REGION 18  //WARNING: must reflect what kernel is using for their region, see device tree blob
 //#define TUNE_NETAPI_QM_GLOBAL_REGION 0  //WARNING: must reflect what kernel is using for their region, see device tree blob
 
 /// @cond INTERNAL
 /* PA control buffer pool (internal) */
-#define TUNE_NETAPI_CONFIG_MAX_CTL_RXTX_BUF_SIZE 504
+#define TUNE_NETAPI_CONFIG_MAX_CTL_RXTX_BUF_SIZE 520
 #define TUNE_NETAPI_CONFIG_NUM_CTL_RX_BUF  16 
 #define TUNE_NETAPI_CONFIG_NUM_CTL_TX_BUF  16 
 /// @endcond
index fa1177968413e13f3a6ab92ef76a6a7df094e416..7946d6a5988f20389c53a3a94dcd7e5908ae8516 100755 (executable)
@@ -47,7 +47,7 @@
 #include "ti/runtime/netapi/src/netapi_loc.h"
 
 
-#define NETAPI_DEBUG */
+#define NETAPI_DEBUG
 #ifdef NETAPI_DEBUG
 #define netapi_Log printf
 #else
index a20df171a810b1041d4472513d9879b2db547c7f..29a144bee085e5ec19bd1a43738eec8df4a2c766 100755 (executable)
@@ -529,7 +529,7 @@ void netapi_netcpCfgDelIp(NETAPI_T          h,
  *  @brief netapi_netcpCfgCreateMacInterface  API to insert a MAC interface rule in the NETCP hardware
  *  lookup engines.
  * 
- *  @details This api is used to insert a MAC interfeace in the NETCP hardware lookup engines.
+ *  @details This api is used to insert a MAC interface in the NETCP hardware lookup engines.
  *      Once it is created, the MAC interface can be used to receive packets. The API
  *      adds a rule to the NETCP 1st level lookup tables to route all packets with destination
  *      MAC matching supplied argument and not matching any other lookup entry (see @ref netapi_netcpCfgAddIp) to
index 90187930427ae2dff10f94eeecddceea50b0602b..ee8462643706f05a9594d1732b747d65d58d07c7 100755 (executable)
@@ -153,12 +153,11 @@ int netapip_qmSetupMemRegion(
     result = Qmss_insertMemoryRegion (&memInfo);
     if (result < QMSS_SOK)  
     {
-      netapi_Log (">function setup_qm_region: Qmss_insertMemoryRegion returned error code %d\n", result);
-      return (-1);
+        netapi_Log ("netapip_qmSetupMemRegion: Qmss_insertMemoryRegion returned error code %d\n", result);
+        return (-1);
     }
 
     return 1;
-
 }
 
 /********************************************************************
@@ -173,7 +172,7 @@ int netapip_startQm(void)
      result = Qmss_start();
      if (result != QMSS_SOK)
      {
-         netapi_Log (">start_qm: Qmss_start failed with error code %d\n", result);
+         netapi_Log ("netapip_startQm: Qmss_start failed with error code %d\n", result);
          return (-1);
      }
      return 1;
@@ -209,15 +208,13 @@ uint8_t paBuf0[NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF0]ALIGN(CACHE_LINESZ);
 #define NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1    128 * TUNE_NETAPI_MAX_NUM_MAC
 uint8_t paBuf1[NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1]ALIGN(CACHE_LINESZ);
 
-//#define NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2   768 
-//#define NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2   6144
-#define NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2   12288
+#define NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2   13824
 
 
 uint8_t paBuf2[NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2]ALIGN(CACHE_LINESZ);
 
 /* Memory used for SA LLD global Handle */
-#define NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE    384
+#define NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE    512
 uint8_t salldHandle[NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE]ALIGN(CACHE_LINESZ);
 
 #if 0  //need to alloc this since we need phy addr also 
@@ -290,7 +287,8 @@ int netapip_initNwal(
                       Pktlib_createHeap(&heapCfg, &errCode);
     if(nwalGlobCfg.pa2SaBufPool.bufPool[0].heapHandle == NULL)
     {
-        netapi_Log (">Pktlib_createHeap:Heap Creation Failed for PA to SA Buffer Pool , Error Code: %d\n",errCode); 
+        netapi_Log ("netapip_initNwal: Pktlib_createHeap:Heap Creation Failed for PA to SA Buffer Pool, Error Code: %d\n",
+                    errCode); 
         netapipErrTeardown();
         return -1;
     }
@@ -308,7 +306,8 @@ int netapip_initNwal(
         Pktlib_createHeap(&heapCfg, &errCode);
     if(nwalGlobCfg.sa2PaBufPool.bufPool[0].heapHandle == NULL)
     {
-        netapi_Log (">Pktlib_createHeap:Heap Creation Failed for SA to PA Buffer Pool  , Error Code: %d\n",errCode); 
+        netapi_Log ("netapip_initNwal: Pktlib_createHeap:Heap Creation Failed for SA to PA Buffer Pool, Error Code: %d\n",
+                     errCode); 
         netapipErrTeardown();
         return -1;
     }
@@ -339,7 +338,7 @@ int netapip_initNwal(
                                    aligns);
     if(nwalRetVal != nwal_OK)
     {
-        netapi_Log ("netapi: init_nwal - nwal_getBufferReq Failed %d\n", nwalRetVal);
+        netapi_Log ("netapip_initNwal: nwal_getBufferReq Failed %d\n", nwalRetVal);
         return nwal_FALSE;
     }
 
@@ -356,7 +355,6 @@ int netapip_initNwal(
     bases[nwal_BUF_INDEX_INT_HANDLES] = (uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)nwalHandleMem);
     if(NWAL_CHAN_HANDLE_SIZE  < sizes[nwal_BUF_INDEX_INT_HANDLES])
     {
-        netapi_Log("one\n");
         /* Resize Memory */
         while(1);
     }
@@ -365,18 +363,13 @@ int netapip_initNwal(
     if((NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF0) < sizes[nwal_BUF_INDEX_PA_LLD_BUF0])
     {
         /* Resize Memory */
-        netapi_Log("two\n");
         while(1);
     }
     count++;
 
     bases[nwal_BUF_INDEX_PA_LLD_BUF1] = (uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)paBuf1);
-    netapi_Log("NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1 %d, size[nwal_BUF_INDEX_PA_LLD_BUF1] %d\n",
-        NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1, sizes[nwal_BUF_INDEX_PA_LLD_BUF1]);
     if((NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1) < sizes[nwal_BUF_INDEX_PA_LLD_BUF1])
     {
-        netapi_Log("NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1 %d, size[nwal_BUF_INDEX_PA_LLD_BUF1] %d\n",
-            NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1, sizes[nwal_BUF_INDEX_PA_LLD_BUF1]);
         /* Resize Memory */
         while(1);
     }
@@ -385,7 +378,6 @@ int netapip_initNwal(
     bases[nwal_BUF_INDEX_PA_LLD_BUF2] = (uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)paBuf2);
     if((NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2) < sizes[nwal_BUF_INDEX_PA_LLD_BUF2])
     {
-        netapi_Log("four\n");
         /* Resize Memory */
         while(1);
     }
@@ -394,7 +386,6 @@ int netapip_initNwal(
     bases[nwal_BUF_INDEX_SA_LLD_HANDLE] = (uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)salldHandle);
     if((NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE) < sizes[nwal_BUF_INDEX_SA_LLD_HANDLE])
     {
-        netapi_Log("five\n");
         /* Resize Memory */
         while(1);
     }
@@ -407,7 +398,6 @@ int netapip_initNwal(
     if((NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE_PER_CHAN * TUNE_NETAPI_MAX_NUM_IPSEC_CHANNELS*2) <
         sizes[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE])
     {
-        netapi_Log("netapip_initNwal:  sizes[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE] %d\n",  sizes[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE]);
         /* Resize Memory */
         while(1);
     }
@@ -431,11 +421,11 @@ int netapip_initNwal(
                              &p_nwal_context->nwalInstHandle);
     if(nwalRetVal != nwal_OK)
     {
-        netapi_Log ("netapi: init_nwal- nwal_create Failed %d\n",nwalRetVal);
+        netapi_Log ("netapip_initNwal: nwal_create Failed %d\n",nwalRetVal);
         while(1);
     }
 
-    netapi_Log("netapi: init_nwal - Global and Local Network initialization Successful \n");
+    netapi_Log("netapip_initNwal- Global and Local Network initialization Successful \n");
     return 1;
 }
 
@@ -644,21 +634,21 @@ int netapip_systemInit(NETAPI_HANDLE_T * handle)
     since number of regions created is appliction specific, put this in netapip_systemInit */
     /* (3) Allocate 2 QM regions from continguous chunk above */
     netapi_VM_QMemGlobalDescRam = 
-                                                            (void *)hplib_vmMemAlloc((TUNE_NETAPI_NUM_GLOBAL_DESC *
-                                                                                                        TUNE_NETAPI_DESC_SIZE),
-                                                                                                        128, 0);
+                                  (void *)hplib_vmMemAlloc((TUNE_NETAPI_NUM_GLOBAL_DESC *
+                                                            TUNE_NETAPI_DESC_SIZE),
+                                                             128, 0);
 
     netapi_VM_QMemLocalDescRam =
-                                                            (void *)hplib_vmMemAlloc((TUNE_NETAPI_NUM_LOCAL_DESC *
-                                                                                                        TUNE_NETAPI_DESC_SIZE),
-                                                                                                        128, 0);
+                                  (void *)hplib_vmMemAlloc((TUNE_NETAPI_NUM_LOCAL_DESC *
+                                                            TUNE_NETAPI_DESC_SIZE),
+                                                            128, 0);
     netapi_Log("netapi local desc region=%x global desc region=%x\n", netapi_VM_QMemLocalDescRam, netapi_VM_QMemGlobalDescRam);
 
     //get timer running
 #ifdef CORTEX_A8
     netapip_initTimer();
+    netapi_Log("netapip_systemInit: returned from netapip_initTimer\n");
 #endif
-     netapi_Log("netapip_systemInit: returned from netapip_initTimer\n");
 
     /* Initialize Queue Manager Sub System */
     result = netapip_initQm (netapi_global.cfg.def_max_descriptors); 
index a46d6625d7d13bd8160eb79490a6d29b737adc46..8d3473532887627f7ee76ea6b7f43cd0ca20925c 100755 (executable)
@@ -154,7 +154,8 @@ NETCP_CFG_SA_T netapi_secAddSA(NETAPI_T h,
         createParam.saIpSecParam.esnHi = sa_info->esnHi;
         if ((sa_info->cipherMode == NWAL_SA_EALG_AES_GCM) ||
             (sa_info->cipherMode == NWAL_SA_EALG_AES_CCM) ||
-            (sa_info->authMode == NWAL_SA_AALG_GMAC))
+            (sa_info->authMode == NWAL_SA_AALG_GMAC)      ||
+            (sa_info->authMode == NWAL_SA_AALG_HMAC_SHA2_256_RFC4868))
         {
             createParam.saIpSecParam.macSize = 16;
         }
@@ -432,9 +433,9 @@ void netapi_secDelSA(NETAPI_T h,
 
 
 /********************************************************************
- * FUNCTION PURPOSE:  API to add a recieve security policy
+ * FUNCTION PURPOSE:  API to add a receive security policy
  ********************************************************************
- * DESCRIPTION:  API to add a recieve security policy
+ * DESCRIPTION:  API to add a receive security policy
  ********************************************************************/
 NETCP_CFG_IPSEC_POLICY_T netapi_secAddRxPolicy(NETAPI_T h, 
                                                NETCP_CFG_SA_T sa,
@@ -565,9 +566,9 @@ NETCP_CFG_IPSEC_POLICY_T netapi_secAddRxPolicy(NETAPI_T h,
 }
 
 /********************************************************************
- * FUNCTION PURPOSE:  Internal function to delete a recieve security policy
+ * FUNCTION PURPOSE:  Internal function to delete a receive security policy
  ********************************************************************
- * DESCRIPTION:  Internal function to delete a recieve security policy
+ * DESCRIPTION:  Internal function to delete a receive security policy
  ********************************************************************/
 static void netapi_secDelRxPolicy_internal(NETAPI_T h,
                                            NETCP_CFG_IPSEC_POLICY_T policy_app_id,
@@ -649,9 +650,9 @@ ERR_netapi_secDelRxPolicy_internal:
 }
 
 /********************************************************************
- * FUNCTION PURPOSE:  API to delete a recieve security policy
+ * FUNCTION PURPOSE:  API to delete a receive security policy
  ********************************************************************
- * DESCRIPTION:  API to delete a recieve security policy
+ * DESCRIPTION:  API to delete a receive security policy
  ********************************************************************/
 void netapi_secDelRxPolicy(NETAPI_T h,
                            NETCP_CFG_IPSEC_POLICY_T policy_app_id,
index 90b96d4b280edaa963b03cb5e8798e39bd98b6df..ea558ae8644fa93191ee2cb76a17d024a31c0bf7 100755 (executable)
@@ -381,12 +381,13 @@ static int netapip_pktioSendSb(struct PKTIO_HANDLE_tag * pp,
                               PKTIO_METADATA_T *m, 
                               int * err)
 {
+
     nwal_RetValue nwalRetVal;
     nwalTxDmPSCmdInfo_t     *dmPSCmdInfo;
     nwalLocCxtInfo_t    nwalLocCxt;
     Cppi_HostDesc*          pPloadDesc;
     PKTIO_HANDLE_T *p=(PKTIO_HANDLE_T*) pp;
-    Qmss_QueueHnd rxQ;
+    nwalLocCxtInfo_t      info;
     nwalDmTxPayloadInfo_t *pPktInfoSB =  m->u.tx_sb_meta;
 
     NETCP_CFG_SA_T tunnel_id = (NETCP_CFG_SA_T) m->sa_handle;
@@ -394,15 +395,15 @@ static int netapip_pktioSendSb(struct PKTIO_HANDLE_tag * pp,
     dmPSCmdInfo = netapip_netcpCfgGetSaSBInfo(&netapi_get_global()->nwal_context, tunnel_id);
     if (dmPSCmdInfo)
     {
-        nwalRetVal = nwal_getDmRxQueue(pktio_mGetNwalInstance(p), &rxQ);
+        nwalRetVal = nwal_getLocCxtInfo(pktio_mGetNwalInstance(p),&info);
         if(nwalRetVal == nwal_OK)
         {
-            dmPSCmdInfo->rxSbSaQ = rxQ;
+            dmPSCmdInfo->rxSbSaQ = info.rxSbSaQ;
         }
-       else 
+        else
         {
-          *err=NETAPI_ERR_BAD_INPUT;
-          return -1;
+            *err=NETAPI_ERR_BAD_INPUT;
+            return -1;
         }
         nwal_mCmdDMUpdate(pkt,
             dmPSCmdInfo,
@@ -426,6 +427,7 @@ static int netapip_pktioSendSb(struct PKTIO_HANDLE_tag * pp,
           *err=NETAPI_ERR_BAD_INPUT;
           return -1;
     }
+
     return 1;
 }
 
index 27d478830e8ef95e77168416d687759c560b7b5f..fff7c106ac18d833526f25c0570d1894e588c967 100755 (executable)
@@ -5,6 +5,15 @@ export ARMV7LIBDIR ?= ./lib
 # Set NETAPI INSTALL PATH to Transport SDK for default
 export NETAPI_INSTALL_PATH ?= $(TRANS_SDK_INSTALL_PATH)
 
+export CPU ?= cortex-a15
+
+ifeq ($(CPU),  cortex-a8)
+        CFLAGS += -DCORTEX_A8
+endif
+ifeq ($(CPU),  cortex-a15)
+        CFLAGS += -DCORTEX_A15
+endif
+
 TRIE_OBJS=$(ARMV7OBJDIR)/netapi/test/trie.o
 NT_OBJS= $(ARMV7OBJDIR)/netapi/test/net_test.o  $(ARMV7OBJDIR)/netapi/test/stubs.o $(ARMV7OBJDIR)/netapi/test/net_test_utils.o $(ARMV7OBJDIR)/netapi/test/net_test_sa_utils.o $(ARMV7OBJDIR)/netapi/test/net_test_thread_utils.o
 #
@@ -38,13 +47,14 @@ PA_LIB   = -lpa
 PKTLIB_LIB = -lpktlib
 NETAPI_LIB = -lnetapi
 HP_LIB = -lhplib
+SA_LIB = -lsa
 #
 #with security enabled..
 NWAL_LIB = -lnwalsa
-SA_LIB=$(SA_INSTALL_PATH)/ti/drv/sa/lib/salld_c.av7A
-AES_LIB=$(SA_INSTALL_PATH)/ti/mas/aes/gcarmv7a/aes_c.av7A
-SHA1_LIB=$(SA_INSTALL_PATH)/ti/mas/sha1/gcarmv7a/sha1_c.av7A
-PKTUTL_LIB=$(SA_INSTALL_PATH)/ti/mas/pktutl/gcarmv7a/pktutl_c.av7A
+#SA_LIB=$(SA_INSTALL_PATH)/ti/drv/sa/lib/salld_c.av7A
+#AES_LIB=$(SA_INSTALL_PATH)/ti/mas/aes/gcarmv7a/aes_c.av7A
+#SHA1_LIB=$(SA_INSTALL_PATH)/ti/mas/sha1/gcarmv7a/sha1_c.av7A
+#PKTUTL_LIB=$(SA_INSTALL_PATH)/ti/mas/pktutl/gcarmv7a/pktutl_c.av7A
 
 
 #Cross tools
@@ -53,7 +63,7 @@ AR = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)ar -r
 
 CFLAGS+= $(DEBUG_FLAG) -I../ -I. -I$(NETAPI_INC_DIR) -I$(NETAPI_INC_DIR)/src -I$(HPLIB_INC_DIR) -I$(PDK_INSTALL_PATH)  -I$(NWAL_INSTALL_PATH) -I$(PKTLIB_INSTALL_PATH) -I$(HPLIB_INSTALL_PATH) -I$(TRANS_SDK_INSTALL_PATH) -I$(QMSS_INC_DIR) -I$(CPPI_INC_DIR) -I$(SA_INC_DIR) $(CSL_DEVICE) -D__ARMv7 -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DNWAL_ENABLE_SA -DMAKEFILE_BUILD -D _GNU_SOURCE
 # Linker options
-INTERNALLINKDEFS = --start-group -L$(ARMV7LIBDIR) -L$(PDK_ARMV7LIBDIR) $(NETAPI_LIB) $(PKTLIB_LIB) $(HP_LIB) $(QMSS_LIB) $(CPPI_LIB) $(NWAL_LIB) $(PA_LIB) $(SA_LIB) $(AES_LIB) $(SHA1_LIB) $(PKTUTL_LIB) -lrt --end-group -pthread 
+INTERNALLINKDEFS = --start-group -L$(ARMV7LIBDIR) -L$(PDK_ARMV7LIBDIR) $(NETAPI_LIB) $(PKTLIB_LIB) $(HP_LIB) $(QMSS_LIB) $(CPPI_LIB) $(NWAL_LIB) $(PA_LIB) $(SA_LIB) -lrt --end-group -pthread 
 
 
 all: tests 
index e6f79e18ac82fae16dbdf2d84a4d6fa50cd48720..4d38d0f207aefb0ea2ac228a55e37e443defa244 100755 (executable)
@@ -9,7 +9,7 @@
  * 
  * REVISION HISTORY:
  *
- *  Copyright (c) Texas Instruments Incorporated 2010-2011
+ *  Copyright (c) Texas Instruments Incorporated 2013
  * 
  *  Redistribution and use in source and binary forms, with or without 
  *  modification, are permitted provided that the following conditions 
@@ -167,16 +167,16 @@ int coreid=0;
     //memcpy(&p_pkt[0],real_mac_header,6); //for testing to wireshark pc
 
     //flip the ip  (outer in case of ipsec)
-    memcpy(&ip_temp, &p_pkt[14+12],4);
-    memcpy(&p_pkt[14+12],&p_pkt[14+12+4],4);
-    memcpy(&p_pkt[14+12+4],&ip_temp,4);
+    memcpy(&ip_temp, &p_pkt[netTest_MAC_HEADER_LEN+12],4);
+    memcpy(&p_pkt[netTest_MAC_HEADER_LEN+12],&p_pkt[netTest_MAC_HEADER_LEN+12+4],4);
+    memcpy(&p_pkt[netTest_MAC_HEADER_LEN+12+4],&ip_temp,4);
 
     p_head=&temp_head;
 
     //inner ip &udp for ipsec
     if (flag) 
     {
-        memcpy(p_head,&p_pkt[14],sizeof(netTestHead_T));
+        memcpy(p_head,&p_pkt[netTest_MAC_HEADER_LEN],sizeof(netTestHead_T));
 
         if ((p_head->ip[2]&0x0000ff00)==0x00003300)
         {
@@ -224,19 +224,21 @@ int coreid=0;
         if (netTestCfg.dest_udp_port_config == 0)
         {
             printf("dest_udp_port_config is 0, use src port as dest port\n");
-            memcpy(&p_pkt[p_sa_info->tx_payload_info.encOffset+20+2],&p_pkt[p_sa_info->tx_payload_info.encOffset+20],2);
+            memcpy(&p_pkt[p_sa_info->tx_payload_info.encOffset+netTest_IP_HEADER_LEN+2],
+                   &p_pkt[p_sa_info->tx_payload_info.encOffset+netTest_IP_HEADER_LEN],2);
         }
         else
         {
            dest_udp_port_config = htons(netTestCfg.dest_udp_port_config);
-            memcpy(&p_pkt[p_sa_info->tx_payload_info.encOffset+20+2],&dest_udp_port_config,2);
+            memcpy(&p_pkt[p_sa_info->tx_payload_info.encOffset+netTest_IP_HEADER_LEN+2],
+                   &dest_udp_port_config,2);
         }
-        memset(&p_pkt[p_sa_info->tx_payload_info.encOffset+20+6],0,2); //checksum
+        memset(&p_pkt[p_sa_info->tx_payload_info.encOffset+netTest_IP_HEADER_LEN+6],0,2); //checksum
 
         if (netTestCfg.ipsec_mode_tx == IPSEC_MODE_TX_SIDEBAND)
         {
             /* inner ip checksum : leave alone, outer ip, set to 0 (we will compute on way out */
-            memset(&p_pkt[14+10],0,2);
+            memset(&p_pkt[netTest_MAC_HEADER_LEN+10],0,2);
         }
     }
     else
@@ -245,17 +247,18 @@ int coreid=0;
         if (netTestCfg.dest_udp_port_config == 0)
         {
             printf("dest_udp_port_config is 0, use src port as dest port\n");
-            memcpy(&p_pkt[14+20+2],&p_pkt[14+20],2);
+            memcpy(&p_pkt[netTest_MAC_HEADER_LEN+netTest_IP_HEADER_LEN+2],
+                   &p_pkt[netTest_MAC_HEADER_LEN+netTest_IP_HEADER_LEN],2);
         }
         else
         {
             dest_udp_port_config = htons(netTestCfg.dest_udp_port_config);
             printf("flip_and_send_pkt: dest udp port is %d\n", netTestCfg.dest_udp_port_config);
-            //memcpy(&p_pkt[14+20+2],&new_dest_port[0],2);
-            memcpy(&p_pkt[14+20+2],&dest_udp_port_config,2);
+            //memcpy(&p_pkt[netTest_MAC_HEADER_LEN+20+2],&new_dest_port[0],2);
+            memcpy(&p_pkt[netTest_MAC_HEADER_LEN+netTest_IP_HEADER_LEN+2],&dest_udp_port_config,2);
         }
 
-        memset(&p_pkt[14+20+6],0,2);//0 udp checksum (we will compute on way out)
+        memset(&p_pkt[netTest_MAC_HEADER_LEN+netTest_IP_HEADER_LEN+6],0,2);//0 udp checksum (we will compute on way out)
     }
 
     /*IPSEC case */ 
@@ -422,6 +425,7 @@ void recv_sb_cb(struct PKTIO_HANDLE_Tag * channel, Ti_Pkt* p_recv[],
     uint8_t *p_spi;
     netTestSA_t *p_sa_info;
 
+    printf("recv_sb_cb: entered\n");
 #ifdef netTest_MULTI_THREAD
     int coreid=Osal_nwalGetProcId();  //who we are(thread local)
 #else
@@ -547,7 +551,7 @@ void recv_cb(struct PKTIO_HANDLE_Tag * channel, Ti_Pkt* p_recv[],
 #endif
     p_head=&temp_head;
 
-
+    printf("recv_cb called\n");
     /* loop over received pkts */
     for(i=0;i<n_pkts;i++)
     {
@@ -600,21 +604,24 @@ void recv_cb(struct PKTIO_HANDLE_Tag * channel, Ti_Pkt* p_recv[],
             netTest_utilDumpDescr((long *) tip,stats[coreid].rx);
         }
 #endif
-#if 0
+#if 1
+        //
         if(stats[coreid].rx<=16)
         {
             netTest_utilDumpHeader((long*)p_pkt,stats[coreid].rx, (int)meta[i].u.rx_meta->appId,meta[i].u.rx_meta->rxFlag1);
-              netTest_utilDumpBuffer((long*)p_pkt,len);
+            netTest_utilDumpBuffer((long*)p_pkt,len);
         }
 #endif
         /* check header */
-        memcpy(p_head,&p_pkt[14],sizeof(netTestHead_T));
+        memcpy(p_head,&p_pkt[netTest_MAC_HEADER_LEN],sizeof(netTestHead_T));
 
         /* check for IPSEC ESP or AH packet, 0x32 is ESP tunnel mode, 0x33 is AH tunnel mode*/
         if (((p_head->ip[2]&0x0000ff00)==0x00003200) || ((p_head->ip[2]&0x0000ff00)==0x00003300))
         {
+            printf("recv_cb: ipsec packet received\n");
             if (!netTest_utilCheckHeader(p_head,&meta[i]))
             {
+                printf("recv_cb: error in ipsec pkt\n");
                 stats[coreid].n_bad+=1;Pktlib_freePacket(tip); 
                 continue;
             }
@@ -685,23 +692,29 @@ void recv_cb(struct PKTIO_HANDLE_Tag * channel, Ti_Pkt* p_recv[],
                 //printf("recv_cb appCtxId: %lu\n", meta_tx.appCtxId);
 
                 /* post it to netcp sb tx channel*/
-            meta2.u.tx_sb_meta=&meta_tx;
+                meta2.u.tx_sb_meta=&meta_tx;
 
                 netapi_pktioSend(netcp_sb_tx_chan,tip,&meta2,&err);
                 continue;
             }
             else
             {
+                printf("calling flip_and_send_pkt for inflow mode\n");
                 //inflow mode.  flip and send
                 flip_and_send_pkt(tip,p_pkt,len,1, enet_port);
             }
         }
+        /* check for udp protocol */
         else if ((p_head->ip[2]&0x0000ff00)!=0x00001100)
+         //else if ((p_head->ip[2]&0x00ff0000)!=0x00110000)
         {
+            printf("not UDP packet: protocol: 0x%x\n", p_head->ip[2]&0x0000ff00);
             stats[coreid].n_new+=1;Pktlib_freePacket(tip); continue;
         }
         else  //non ipsec
         {
+            printf("UDP packet: protocol: 0x%x\n", p_head->ip[2]&0x00ff0000);
+            printf("recv_cb: calling flip_and_send_pkt\n");
             if (!netTest_utilCheckHeader(p_head,&meta[i]))
             {
                 stats[coreid].n_bad+=1;Pktlib_freePacket(tip); 
@@ -858,7 +871,8 @@ void open_pktio_tx_channels(void)
 }
 
 #ifdef netTest_DSP_FASTPATH
-void setup_netTestDSPFastPath(NETAPI_T handle, uint32_t thread_num)
+void setup_netTestDSPFastPath(NETAPI_T handle)
+
 {
     int i;
     int err = 0;
@@ -902,8 +916,6 @@ void setup_netTestDSPFastPath(NETAPI_T handle, uint32_t thread_num)
         dsp_classi.u.c_l4.ip = ip_rule[netTestCfg.dsp_ip];
         dsp_classi.u.c_l4.proto = NWAL_APP_PLOAD_PROTO_UDP;
         dsp_classi.u.c_l4.appProto.udpPort = TEST_NWAL_BASE_REM_FP_UDP_PORT + i;
-        printf("setup_netTestDSPFastPath: iface 0x%x, proto: 0x%x, thread_num %d\n", dsp_classi.u.c_l4.iface, dsp_classi.u.c_l4.proto, thread_num);
-
 
         dsp_route.p_dest_q = dsp_pktio_channels[i];
        
@@ -917,7 +929,6 @@ void setup_netTestDSPFastPath(NETAPI_T handle, uint32_t thread_num)
                                 NULL,
                                 &err);
 
-
         if (err == NETAPI_ERR_OK)
         {
             printf("setup_netTestDSPFastPath: netapi_netcpCfgAddClass sucess for core %d\n", i);
@@ -1046,10 +1057,6 @@ void fast_path_thread(uint32_t thread_num)
      //sb_tx_chan = netapi_pktioOpen(worker_nh[thread_num], NETCP_SB_TX, NULL, &netcp_sb_tx_cfg,  &err);
      sb_rx_chan = netapi_pktioOpen(worker_nh[thread_num], NETCP_SB_RX, (PKTIO_CB) recv_sb_cb, &netcp_sb_rx_cfg,  &err);
 
-#ifdef netTest_DSP_FASTPATH
-    setup_netTestDSPFastPath(netapi_handle, thread_num);
-#endif
-    
     netapi_setCookie(worker_nh[thread_num],(void*)thread_num);
     
     scheduler[thread_num] =netapi_schedOpen(worker_nh[thread_num],&our_sched_cfg, &err);
@@ -1108,7 +1115,7 @@ int main(int argc, char **argv)
         memset(&netTestCfg, 0, sizeof(netTestConfig_t));
         
         netTest_utilProcessConfigFile(fpr,&config_file);
-#if 1
+
         netTest_utilParseMac(&config_file);
 
         /* parse slow path/fast path thread configuration parameters */
@@ -1130,7 +1137,6 @@ int main(int argc, char **argv)
         netTest_utilParseSA(&config_file);
 
         parse_simple_param_u32(&config_file.dest_udp_port_config, &netTestCfg.dest_udp_port_config);
-#endif
     }
 
     memset(&sa_info, 0, sizeof(sa_info));
@@ -1182,7 +1188,7 @@ int main(int argc, char **argv)
         {printf("trie alloc for SA  failed\n"); exit(1);}
 
 #ifdef netTest_DSP_FASTPATH
-    //setup_netTestDSPFastPath();
+    setup_netTestDSPFastPath(netapi_handle);
 #endif
 
     /* Create RX SA's, RX Policy and TX SA's, all SA configuration parameters are read from net_test_config.txt file */
@@ -1190,14 +1196,13 @@ int main(int argc, char **argv)
 
 #ifdef netTest_MULTI_THREAD
 {
-
+#if 0
     nwalGlobCxtInfo_t nwalGlobCxt;
     nwalLocCxtInfo_t nwalLocCxt;
     int count;
     NETAPI_HANDLE_T * n = (NETAPI_HANDLE_T *) netapi_handle;
 
     nwal_getGlobCxtInfo(((NETAPI_GLOBAL_T*) (n->global))->nwal_context.nwalInstHandle,&nwalGlobCxt);
-    //printf("0x%x, 0x%x, 0x%x, 0x%x, 0x%x\n", Info.defFlowQ, Info.rxDefPktQ, Info.rxPaSaFlowId, Info.rxSaPaFlowId, Info.passCppiHandle);
 
 
     printf("*******NWAL Global Context Info Dump Begin *******\n");
@@ -1227,37 +1232,8 @@ int main(int argc, char **argv)
     
     printf("*******NWAL Local Context Info Dump End *******\n\n");
 
-
-
-
-
-#if 1
-typedef struct  {
-    uint16_t                numPendPAReq;/**< Number of pending PA requests for
-                                           *  process
-                                           */
-    NWAL_queueHnd           rxCtlQ;      /**< Response Queue for receiving
-                                           *  control response
-                                           */
-    NWAL_queueHnd           rxL4PktQ;    /**< Default Queue for receiving L4
-                                           *  Packets
-                                           */
-    NWAL_queueHnd           rxSbSaQ;     /**< Packet Queue to receive response
-                                          * for all data mode SA related
-                                          * responses
-                                          */
-    uint16_t                extErr;      /**< Extended Error details from NetCP
-                                           */
-    int16_t                 rxPktFlowId; /**< Default Flow Handle for packets
-                                           *  from NetCP to host
-                                           */
-    int16_t                 rxCtlFlowId; /**< Default Flow Handle for control
-                                           *  response from NetCP to host
-                                           */
-} nwalLocCxtInfo_t;
 #endif
 
-    char c;
     /* create and set affinity of slow path and fast path threads to
     * specific CPU cores as specified in the net_test_config.txt file */
     netTest_utilCreateSpFpThreads(netTestCfg.num_sp_threads, 
@@ -1265,6 +1241,7 @@ typedef struct  {
                                   netTestCfg.num_fp_threads,
                                   (NET_TEST_FUNC_PTR) fast_path_thread);
 
+    char c;
         //this thread of execution (main) now just waits on user input
         for(;;)
         {
index bd35c060afb1ec71a4285708b2bfbbce4886ba77..405993c3a5bbba1cb3b2c61ac03a0619cdb86e5f 100755 (executable)
@@ -64,7 +64,7 @@ extern paSysStats_t netcp_stats;
 netTestConfig_t netTestCfg;
 static  netTestConfigFile_t config_file;
 
-char    input_file_name[] = "net_test_config_max_sa.txt";
+char    input_file_name[] = "net_test_config_max_iface.txt";
 
 nwal_RetValue       nwalRetVal;
 Pktlib_HeapHandle ourHeap;
@@ -264,7 +264,7 @@ void open_pktio_tx_channels(void)
         }
     }
 
-    /*/* open netcp default  TX for AH packets */
+    /* open netcp default  TX for AH packets */
     netcp_tx_chan_ah= netapi_pktioOpen(netapi_handle, NETCP_TX, NULL, &netcp_tx_cfg,  &err);
     if (!netcp_tx_chan_ah)
     {
@@ -323,6 +323,8 @@ int main(int argc, char **argv)
     Pktlib_HeapIfTable*  pPktifTable;
     FILE * fpr = NULL;
 
+
+    setvbuf(stdout,NULL,_IONBF,0);
      /* install signal handler for ^c */
     signal(SIGINT,netTest_utilMySig);
 
@@ -337,6 +339,7 @@ int main(int argc, char **argv)
     }
     if (fpr == NULL)
     {
+        printf("error opening configfile\n");
         exit(1);
     }
     else
@@ -380,6 +383,11 @@ int main(int argc, char **argv)
     /* create netapi */
     netapi_handle = netapi_init(NETAPI_SYS_MASTER, &our_netapi_default_cfg);
 
+    if (netapi_handle)
+        printf("main: netapi_init sucess\n");
+    else
+        printf("main: netapi_init fail, null netapi_handle\n");
+
     /* open the main heap */
     ourHeap = Pktlib_findHeapByName("netapi");
     if (!ourHeap)
index e428dc560f6941af9cb009449c3943c23ef3d5bd..1d5ac0aa99da2b25d3a67f7f095a6ec0cc238729 100755 (executable)
@@ -889,7 +889,7 @@ void netTest_utilParseThreadParams(netTestConfigFile_t *pConfig)
     }
     netapi_Log("parse_fp: number of fp threads  %d\n", netTestCfg.num_fp_threads);
 
-    for(i=0;i<NET_TEST_MAX_FP_THREAD;i++)
+    for(i=0;i<NET_TEST_MAX_SP_THREAD;i++)
     {
         if (strlen(&pConfig->sp[i][0]))
         {
@@ -1085,40 +1085,17 @@ void netTest_utilProcessConfigFile(FILE * fpr, netTestConfigFile_t *pConfig)
             sprintf(temp_str,"ip%d",i);
             CHECK_SET_PARAM2(temp_str,&pConfig->ip[i][0], &pConfig->attach_iface[i][0]);
         }
-        for(i=0;i<2;i++)
+        for(i=0;i<NET_TEST_MAX_FP_THREAD;i++)
         {
             sprintf(temp_str,"fp%d",i);
             CHECK_SET_PARAM2(temp_str, &pConfig->fp_thread_num[i][0],&pConfig->fp[i][0]);
         }
-        for(i=0;i<2;i++)
+        for(i=0;i<NET_TEST_MAX_SP_THREAD;i++)
         {
             sprintf(temp_str,"sp%d",i);
             CHECK_SET_PARAM2(temp_str, &pConfig->sp_thread_num[i][0],&pConfig->sp[i][0]);
         }
     }
-#if 0
-    netTest_utilParseMac(pConfig);
-
-    /* parse slow path/fast path thread configuration parameters */
-    netTest_utilParseThreadParams(pConfig);
-
-    netTest_utilParseIP(pConfig);
-
-    netTest_utilParseIpsecMode(pConfig);
-
-    /* DSP mac processing */
-    parse_dsp_mac(&pConfig->dsp_mac[0]);
-
-   /* DSP IP processing */
-    parse_dsp_ip(&pConfig->dsp_ip[0]);
-
-
-    netTest_utilParseRoutes(pConfig);
-
-    parse_simple_param_u32((char*)&pConfig->ipsec_if_no[0], &netTestCfg.ipsec_if_no);
-
-    netTest_utilParseSA(pConfig);
-#endif
 }
 
 //******************************************************
@@ -1378,7 +1355,7 @@ void netTest_utilCreateInterfaces(uint8_t num_macs, uint8_t num_ips)
                           &err
                           );
         if (err) {
-            netapi_Log("netTest_utilCreateInterfaces: add dsp mac %d failed %d\n", i, err);
+            netapi_Log("netTest_utilCreateInterfaces: add ip %d failed %d\n", i, err);
         //exit(1); 
         }
         else
index a0b6e89f17004158c4c419bf4584397f6a1949c9..e97912a9d2c344bf5c97f128d125fcae6aba0172 100755 (executable)
@@ -9,7 +9,7 @@
 #define NET_TEST_MAX_MAC                64
 #define NET_TEST_MAX_IP                 64
 #define NET_TEST_MAX_FP_THREAD 5
-
+#define NET_TEST_MAX_SP_THREAD 5
 #define MAX_LINE_LENGTH 512
 #define MAX_ROUTES 16
 
@@ -53,9 +53,9 @@ typedef struct {
     uint8_t                 fp_proc_end[NET_TEST_MAX_FP_THREAD];
     uint32_t                fp_thread_num[NET_TEST_MAX_FP_THREAD];
     uint8_t                 num_fp_threads;
-    uint8_t                 sp_proc_start[NET_TEST_MAX_FP_THREAD];
-    uint8_t                 sp_proc_end[NET_TEST_MAX_FP_THREAD];
-    uint32_t                sp_thread_num[NET_TEST_MAX_FP_THREAD];
+    uint8_t                 sp_proc_start[NET_TEST_MAX_SP_THREAD];
+    uint8_t                 sp_proc_end[NET_TEST_MAX_SP_THREAD];
+    uint32_t                sp_thread_num[NET_TEST_MAX_SP_THREAD];
     uint8_t                 num_sp_threads;
     
     uint8_t                 auth_key[MAX_SEC_INDEX][36];
@@ -103,8 +103,8 @@ typedef struct{
     char paths[MAX_ROUTES][netTest_CONFIG_STRING_LEN];
     char ipsec_if_no[netTest_CONFIG_STRING_LEN];
     char fp_thread_num[NET_TEST_MAX_FP_THREAD][netTest_CONFIG_STRING_LEN];
-    char sp_thread_num[NET_TEST_MAX_FP_THREAD][netTest_CONFIG_STRING_LEN];
-    char sp[NET_TEST_MAX_FP_THREAD][netTest_CONFIG_STRING_LEN];
+    char sp_thread_num[NET_TEST_MAX_SP_THREAD][netTest_CONFIG_STRING_LEN];
+    char sp[NET_TEST_MAX_SP_THREAD][netTest_CONFIG_STRING_LEN];
     char fp[NET_TEST_MAX_FP_THREAD][netTest_CONFIG_STRING_LEN];
     char tunnel_id[netTest_CONFIG_STRING_LEN];
     netTestConfigSA_t sa_config[MAX_SEC_INDEX][netTest_CONFIG_STRING_LEN];