added del_ip, del_mac functions
[keystone-rtos/netapi.git] / ti / runtime / netapi / netcp_cfg.h
index 780768a70b4d973d8d59cc5ddff53a766e2befd3..d4be186259cddd38084a176b56cfe8de448c07a2 100644 (file)
-/***************************************************
- * File: netcp_cfg.h 
- * Purpose: netcp config API
- **************************************************************
- *@file netcp_cfg.h
- * 
- * @brief DESCRIPTION:  netapi NETCP configuration API header  file 
- *          for user space transport library
- * 
- * REVISION HISTORY:  rev 0.0.1 
- *
- *  Copyright (c) Texas Instruments Incorporated 2010-2011
- * 
- *  Redistribution and use in source and binary forms, with or without 
- *  modification, are permitted provided that the following conditions 
- *  are met:
- *
- *    Redistributions of source code must retain the above copyright 
- *    notice, this list of conditions and the following disclaimer.
- *
- *    Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the 
- *    documentation and/or other materials provided with the   
- *    distribution.
- *
- *    Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ***************************************************/
-
-#ifndef __NETCP_CFG__H
-#define __NETCP_CFG__H
-
-#include "netapi.h"
-#include "ti/drv/pa/pa.h"
-#include "ti/runtime/pktlib/pktlib.h"
-
-//NETCP FLOW
-typedef struct NETCP_CFG_FLOW_Tag
-{
-       int flowid;
-} NETCP_CFG_FLOW_T;
-typedef void *  NETCP_CFG_FLOW_HANDLE_T;
-
-
-//NETCP ROUTE
-typedef struct NETCP_CFG_ROUTE_Tag
-{
-   NETCP_CFG_FLOW_HANDLE_T p_flow;
-   PKTIO_HANDLE_T * p_dest_q;
-   int nextAction;
-} NETCP_CFG_ROUTE_T;
-typedef void * NETCP_CFG_ROUTE_HANDLE_T;
-
-/*--------------flow management--------*/
-NETCP_CFG_FLOW_HANDLE_T netcp_cfgAddFlow(NETAPI_T ,
-                                            int n, 
-                                            Pktlib_HeapHandle handles[],
-                                            int * err );
-void netcp_cfgDelFlow(NETAPI_T , NETCP_CFG_FLOW_HANDLE_T , int * err);
-
-/*------------Routes------------------*/
-NETCP_CFG_ROUTE_HANDLE_T netcp_cfgAddRoute(NETAPI_T ,int nh, 
-                                               Pktlib_HeapHandle heaps[],
-                                               int *err );
-void netcp_cfgDelRoute(NETAPI_T , NETCP_CFG_ROUTE_HANDLE_T, int *err );
-
-/*-----------Actions----------*/
-#define NETCP_CFG_ACTION_DISCARD 0
-#define NETCP_CFG_ACTION_CONTINUE 1  //pass packet on to next classifier
-#define NETCP_CFG_ACTION_TO_SW    2
-
-/******************************************************************/
-/***********************APP ids for rx meta data********************/
-/******************************************************************/
-// NWAL "AP ids" for PA Rules that are added
-#define NETAPI_NETCP_MATCH_GENERIC_MAC   0x10000000  //lower byte==interface
-#define NETAPI_NETCP_MATCH_GENERIC_IP    0x20000000  //lower byte==interface
-#define NETAPI_NETCP_MATCH_CLASS         0x80000000  //or' in classifier #, lower byte==interface
-
-
-/*---------MAC APPID------------------*/
-typedef uint32_t NETCP_CFG_MACIF_T;
-
-/*------------L2----------------------*/
-typedef void * NETCP_CFG_VLAN_T;
-
-/*---------------IP APPID-------------------*/
-typedef uint32_t NETCP_CFG_IP_T;
-
-/* del mac i/f */
-void netcp_cfgDelMac(NETAPI_T h,int iface_no,  int *err);
-void netcp_cfgDelIp(NETAPI_T h, int iface_no,  nwal_IpType ipType,
-                  nwalIpAddr_t  * ip_addr,
-                  nwalIpOpt_t * ip_qualifiers, int *err);
-
-/*****************************************************************
- * Create a  MAC interface 
- ****************************************************************/
-/*
-*  @brief  API Creates a MAC interface  
- *
- *  @details This api is used to create a MAC interface.
- *      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 netcp_cfgAddIp) to
- *      the supplied route, @ref NETCP_CFG_ROUTE_T, (or default route).
- *      Packets arriving that match this rule are identified in meta data with Appid=  NETAPI_NETCP_MATCH_GENERIC_MAC
- *  Note: The internal SOC switch must be "taught" that this mac
- *      address is present by transmitting a packet with destination mac = this interface mac address.
- *  @param[in]  @ref NETAPI_T: NETAPI instance 
- *  @param[in]  char *: pointer to 6 byte MAC address for interface
- *  @param[in]  int : interface number (0,1,..) 
- *  @param[in]  int : switch port (0 don't care, 1 switch port 1, 1 switch port 2) [only 0 supported] 
- *  @param[in]  @ref NETCP_CFG_ROUTE_HANDLE_T : [future] handle of a created route or NULL to use internal default route 
- *  @oaram[in]  @ref NETCP_CFG_VLAN_T : [future[ vlan configuration . Set to NULL
- *  @param[in]  int : [future] interface state (0=down, 1= up)
- *  @param[out] int * err:  pointer to error return
- *  @retval     @ref NETCP_CFG_MACIF_T : returned AppID for interface (this is returned in meta data for
- *                 received packets matching this rule an no others)
- *  @pre       @ref netapi_init 
- */
-NETCP_CFG_MACIF_T  netcp_cfgCreateMacInterface(
-                  NETAPI_T  h,     //
-                  uint8_t *p_mac, //mac address associated with interface
-                 int iface_no, //0,1, ..
-                  int switch_port,//0=don't care, 1=switch port 1, 2=switch port 2 , ..
-                  NETCP_CFG_ROUTE_HANDLE_T  route, //NULL to use default
-                  NETCP_CFG_VLAN_T  vlan,  //future
-                  int state,  //0=down, 1=up  //FUTURE
-                  int * err
-                  );
-
-/*****************************************************************
- * Add IP address/qualifier to MAC interface 
- ****************************************************************/
-/*
-*  @brief  API attaches an IP adderess and qualifier to a MAC interface 
- *
- *  @details This api is used to add an IP address to a MAC interface along
- *           with optional IP qualifier. A route, @ref NETCP_CFG_ROUTE_HANDLE_T,or NULL for default 
- *            may be specified to indicate where to send packets matching the MAC interface MAC address, the
- *            supplied IP address and any qualifier.  This API adds a rule to the NETCP level 1 lookup tables
- *            Packets arriving that match this rule are identified in meta data with Appid=  NETAPI_NETCP_MATCH_GENERIC_IP
- * Note: An IP address must be attached to enable NETCP Recevie Checksum offload feature
- *  @param[in]  @ref NETAPI_T: NETAPI instance
- *  @param[in]  int : interface number (0,1,..)
- *  @param[in]  @ref nwal_IpType : type of IP address (V4 for V6) 
- *  @oaram[in]  @ref nwalIpAddr_t : ip_address
- *  @param[in]  @ref nwalIpOpt_t : ip_qualifiers (all 0 for no qualifiers). This can be used to apply special handling for
- *                  diffserv category for example
- *  @param[in]  @ref NETCP_CFG_ROUTE_HANDLE_T : [future] handle of a created route or NULL to use internal default route 
- *  @param[out] int * err:  pointer to error return
- *  @retval     @ref NETCP_CFG_IP_T : returned AppID for attached rule. This is returned in RX meta data for
- *              packets matching this rule and no other.
- *  @pre       @ref netapi_init , @ref netcp_cfgAddMac 
- */
-NETCP_CFG_IP_T  netcp_AddIp(
-                  NETAPI_T  h,
-                  int  iface_no,
-                  nwal_IpType ipType,
-                  nwalIpAddr_t  * ip_addr,
-                  nwalIpOpt_t * ip_qualifiers,
-                  NETCP_CFG_ROUTE_HANDLE_T  route,  //NULL for default
-                  int * err
-                  );
-
-/*------------------classification [FUTURE]-------------------*/
-typedef void *NETCP_CFG_CLASS_T;
-
-//add classifier
-typedef struct NETCP_CFG_CLASSIFIER_Tag
-{
-  //tbd a classisfier
-
-} NETCP_CFG_CLASSIFIER_T;
-
-NETCP_CFG_CLASS_T netcp_cfgAddClass(NETAPI_T h,
-                                      NETCP_CFG_CLASSIFIER_T *p_class,
-                                      NETCP_CFG_ROUTE_HANDLE_T p_route,
-                                      int action, int * err);
-//del classifier
-void netcp_cfgDelClass(NETAPI_T h,
-                         NETCP_CFG_CLASS_T p_class,
-                         int *err);
-
-
-
-/***************************************************************************
-********************************STATS**************************************
-**************************************************************************/
-
-/*
- *  @brief  This is the callback function that is used to return statistics from NETCP 
- *
- *  @details The application provides a callback function that NETAPI  uses to report statistics.
-*    The request for stats is generated from the @ref netcp_cfgReqStats API.
- *   Note: to receive ths stats callback, the @ref netapi_netcpPoll funcition must be called
- *  @param[in]  @ref NETAPI_T: NETAPI instance
- *  @param[in]  @ref paSysStats_t * : the PA (NETCP packet accelerator subsystem) statistics block 
- *  @retval     none 
- *  @pre       @ref netapi_init , @ref netapi_cfgReqStats, @ref netapi_netcpPoll
- */
-//stats CB
-typedef void (*NETCP_CFG_STATS_CB)( NETAPI_T h, paSysStats_t* pPaStats);
-
-
-//stats request
-/*
- *  @brief  API request statistics from NETCP 
- *
- *  @details This api is used to request a statistics from NETCP.  This will generate a stats request
- *           command to NETCP. Sometime later, the statistics result will arrive and will be passed to 
- *           the caller via the asynchronus callback @ref NETCP_CFG_STATS_CB that is registered in this call.
- *       Note: to receive the stats callback, the @ref netapi_netcpPoll funcition must be called
- *  @param[in]  @ref NETAPI_T: NETAPI instance
- *  @param[in]  @ref NETCP_CFG_STATS_CB : the function to call with the resulting statistics block
- *  @param[in]  int :  clear the stats in NETCP after the report (0=no, 1=yes)                                          
- *  @param[out] int * err:  pointer to error return
- *  @retval     none 
- *  @pre       @ref netapi_init 
- */
-void netcp_cfgReqStats(NETAPI_T  h,  //NEAPI instance
-                       NETCP_CFG_STATS_CB c, //stats report callback function
-                       int doClear,   //0: don't clear, 1 clear
-                       int *err);
-
-#endif
-
+/***************************************************\r
+ * File: netcp_cfg.h \r
+ * Purpose: netcp config API\r
+ **************************************************************\r
+ *@file netcp_cfg.h\r
+ * \r
+ * @brief DESCRIPTION:  netapi NETCP configuration API header  file \r
+ *          for user space transport library\r
+ * \r
+ * REVISION HISTORY:  rev 0.0.1 \r
+ *\r
+ *  Copyright (c) Texas Instruments Incorporated 2010-2011\r
+ * \r
+ *  Redistribution and use in source and binary forms, with or without \r
+ *  modification, are permitted provided that the following conditions \r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright \r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the \r
+ *    documentation and/or other materials provided with the   \r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+\r
+ ***************************************************/\r
+\r
+#ifndef __NETCP_CFG__H\r
+#define __NETCP_CFG__H\r
+\r
+#include "netapi.h"\r
+#include "ti/drv/pa/pa.h"\r
+#include "ti/runtime/pktlib/pktlib.h"\r
+\r
+//NETCP FLOW\r
+typedef struct NETCP_CFG_FLOW_Tag\r
+{\r
+       int flowid;\r
+} NETCP_CFG_FLOW_T;\r
+typedef void *  NETCP_CFG_FLOW_HANDLE_T;\r
+\r
+\r
+//NETCP ROUTE\r
+typedef struct NETCP_CFG_ROUTE_Tag\r
+{\r
+   NETCP_CFG_FLOW_HANDLE_T p_flow;\r
+   PKTIO_HANDLE_T * p_dest_q;\r
+   int nextAction;\r
+} NETCP_CFG_ROUTE_T;\r
+typedef void * NETCP_CFG_ROUTE_HANDLE_T;\r
+\r
+/*--------------flow management--------*/\r
+NETCP_CFG_FLOW_HANDLE_T netcp_cfgAddFlow(NETAPI_T ,\r
+                                            int n, \r
+                                            Pktlib_HeapHandle handles[],\r
+                                            int * err );\r
+void netcp_cfgDelFlow(NETAPI_T , NETCP_CFG_FLOW_HANDLE_T , int * err);\r
+\r
+/*------------Routes------------------*/\r
+NETCP_CFG_ROUTE_HANDLE_T netcp_cfgAddRoute(NETAPI_T ,int nh, \r
+                                               Pktlib_HeapHandle heaps[],\r
+                                               int *err );\r
+void netcp_cfgDelRoute(NETAPI_T , NETCP_CFG_ROUTE_HANDLE_T, int *err );\r
+\r
+/*-----------Actions----------*/\r
+#define NETCP_CFG_ACTION_DISCARD 0\r
+#define NETCP_CFG_ACTION_CONTINUE 1  //pass packet on to next classifier\r
+#define NETCP_CFG_ACTION_TO_SW    2\r
+\r
+/******************************************************************/\r
+/***********************APP ids for rx meta data********************/\r
+/******************************************************************/\r
+// NWAL "AP ids" for PA Rules that are added\r
+#define NETAPI_NETCP_MATCH_GENERIC_MAC   0x10000000  //lower byte==interface\r
+#define NETAPI_NETCP_MATCH_GENERIC_IP    0x20000000  //lower byte==interface\r
+#define NETAPI_NETCP_MATCH_CLASS         0x80000000  //or' in classifier #, lower byte==interface\r
+\r
+\r
+/*---------MAC APPID------------------*/\r
+typedef uint32_t NETCP_CFG_MACIF_T;\r
+\r
+/*------------L2----------------------*/\r
+typedef void * NETCP_CFG_VLAN_T;\r
+\r
+/*---------------IP APPID-------------------*/\r
+typedef uint32_t NETCP_CFG_IP_T;\r
+\r
+/* del mac i/f */\r
+void netcp_cfgDelMac(NETAPI_T h,int iface_no,  int *err);\r
+void netcp_cfgDelIp(NETAPI_T h, int iface_no,  nwal_IpType ipType,\r
+                  nwalIpAddr_t  * ip_addr,\r
+                  nwalIpOpt_t * ip_qualifiers, \r
+                  NETCP_CFG_IP_T, \r
+                  int *err);\r
\r
+\r
+/*****************************************************************\r
+ * Create a  MAC interface \r
+ ****************************************************************/\r
+/*\r
+*  @brief  API Creates a MAC interface  \r
+ *\r
+ *  @details This api is used to create a MAC interface.\r
+ *      Once it is created, the MAC interface can be used to receive packets. The API\r
+ *      adds a rule to the NETCP 1st level lookup tables to route all packets with destination\r
+ *      MAC matching supplied argument and not matching any other lookup entry (see @ref netcp_cfgAddIp) to\r
+ *      the supplied route, @ref NETCP_CFG_ROUTE_T, (or default route).\r
+ *      Packets arriving that match this rule are identified in meta data with Appid=  NETAPI_NETCP_MATCH_GENERIC_MAC\r
+ *  Note: The internal SOC switch must be "taught" that this mac\r
+ *      address is present by transmitting a packet with destination mac = this interface mac address.\r
+ *  @param[in]  @ref NETAPI_T: NETAPI instance \r
+ *  @param[in]  char *: pointer to 6 byte MAC address for interface\r
+ *  @param[in]  int : interface number (0,1,..) \r
+ *  @param[in]  int : switch port (0 don't care, 1 switch port 1, 1 switch port 2) [only 0 supported] \r
+ *  @param[in]  @ref NETCP_CFG_ROUTE_HANDLE_T : [future] handle of a created route or NULL to use internal default route \r
+ *  @oaram[in]  @ref NETCP_CFG_VLAN_T : [future[ vlan configuration . Set to NULL\r
+ *  @param[in]  int : [future] interface state (0=down, 1= up)\r
+ *  @param[out] int * err:  pointer to error return\r
+ *  @retval     @ref NETCP_CFG_MACIF_T : returned AppID for interface (this is returned in meta data for\r
+ *                 received packets matching this rule an no others)\r
+ *  @pre       @ref netapi_init \r
+ */\r
+NETCP_CFG_MACIF_T  netcp_cfgCreateMacInterface(\r
+                  NETAPI_T  h,     //\r
+                  uint8_t *p_mac, //mac address associated with interface\r
+                 int iface_no, //0,1, ..\r
+                  int switch_port,//0=don't care, 1=switch port 1, 2=switch port 2 , ..\r
+                  NETCP_CFG_ROUTE_HANDLE_T  route, //NULL to use default\r
+                  NETCP_CFG_VLAN_T  vlan,  //future\r
+                  int state,  //0=down, 1=up  //FUTURE\r
+                  int * err\r
+                  );\r
+\r
+/*****************************************************************\r
+ * Add IP address/qualifier to MAC interface \r
+ ****************************************************************/\r
+/*\r
+*  @brief  API attaches an IP adderess and qualifier to a MAC interface \r
+ *\r
+ *  @details This api is used to add an IP address to a MAC interface along\r
+ *           with optional IP qualifier. A route, @ref NETCP_CFG_ROUTE_HANDLE_T,or NULL for default \r
+ *            may be specified to indicate where to send packets matching the MAC interface MAC address, the\r
+ *            supplied IP address and any qualifier.  This API adds a rule to the NETCP level 1 lookup tables\r
+ *            Packets arriving that match this rule are identified in meta data with Appid=  NETAPI_NETCP_MATCH_GENERIC_IP\r
+ * Note: An IP address must be attached to enable NETCP Recevie Checksum offload feature\r
+ *  @param[in]  @ref NETAPI_T: NETAPI instance\r
+ *  @param[in]  int : interface number (0,1,..)\r
+ *  @param[in]  @ref nwal_IpType : type of IP address (V4 for V6) \r
+ *  @oaram[in]  @ref nwalIpAddr_t : ip_address\r
+ *  @param[in]  @ref nwalIpOpt_t : ip_qualifiers (all 0 for no qualifiers). This can be used to apply special handling for\r
+ *                  diffserv category for example\r
+ *  @param[in]  @ref NETCP_CFG_ROUTE_HANDLE_T : [future] handle of a created route or NULL to use internal default route \r
+ *  @param[out] int * err:  pointer to error return\r
+ *  @retval     @ref NETCP_CFG_IP_T : returned AppID for attached rule. This is returned in RX meta data for\r
+ *              packets matching this rule and no other.\r
+ *  @pre       @ref netapi_init , @ref netcp_cfgAddMac \r
+ */\r
+NETCP_CFG_IP_T  netcp_cfgAddIp(\r
+                  NETAPI_T  h,\r
+                  int  iface_no,\r
+                  nwal_IpType ipType,\r
+                  nwalIpAddr_t  * ip_addr,\r
+                  nwalIpOpt_t * ip_qualifiers,\r
+                  NETCP_CFG_ROUTE_HANDLE_T  route,  //NULL for default\r
+                  int * err\r
+                  );\r
+#define netcp_addIp netcp_cfgAddIp //oops\r
+\r
+/*------------------classification [FUTURE]-------------------*/\r
+typedef void *NETCP_CFG_CLASS_T;\r
+\r
+//add classifier\r
+typedef struct NETCP_CFG_CLASSIFIER_Tag\r
+{\r
+  //tbd a classisfier\r
+\r
+} NETCP_CFG_CLASSIFIER_T;\r
+\r
+NETCP_CFG_CLASS_T netcp_cfgAddClass(NETAPI_T h,\r
+                                      NETCP_CFG_CLASSIFIER_T *p_class,\r
+                                      NETCP_CFG_ROUTE_HANDLE_T p_route,\r
+                                      int action, int * err);\r
+//del classifier\r
+void netcp_cfgDelClass(NETAPI_T h,\r
+                         NETCP_CFG_CLASS_T p_class,\r
+                         int *err);\r
+\r
+\r
+\r
+/***************************************************************************\r
+********************************STATS**************************************\r
+**************************************************************************/\r
+\r
+/*\r
+ *  @brief  This is the callback function that is used to return statistics from NETCP \r
+ *\r
+ *  @details The application provides a callback function that NETAPI  uses to report statistics.\r
+*    The request for stats is generated from the @ref netcp_cfgReqStats API.\r
+ *   Note: to receive ths stats callback, the @ref netapi_netcpPoll funcition must be called\r
+ *  @param[in]  @ref NETAPI_T: NETAPI instance\r
+ *  @param[in]  @ref paSysStats_t * : the PA (NETCP packet accelerator subsystem) statistics block \r
+ *  @retval     none \r
+ *  @pre       @ref netapi_init , @ref netapi_cfgReqStats, @ref netapi_netcpPoll\r
+ */\r
+//stats CB\r
+typedef void (*NETCP_CFG_STATS_CB)( NETAPI_T h, paSysStats_t* pPaStats);\r
+\r
+\r
+//stats request\r
+/*\r
+ *  @brief  API request statistics from NETCP \r
+ *\r
+ *  @details This api is used to request a statistics from NETCP.  This will generate a stats request\r
+ *           command to NETCP. Sometime later, the statistics result will arrive and will be passed to \r
+ *           the caller via the asynchronus callback @ref NETCP_CFG_STATS_CB that is registered in this call.\r
+ *       Note: to receive the stats callback, the @ref netapi_netcpPoll funcition must be called\r
+ *  @param[in]  @ref NETAPI_T: NETAPI instance\r
+ *  @param[in]  @ref NETCP_CFG_STATS_CB : the function to call with the resulting statistics block\r
+ *  @param[in]  int :  clear the stats in NETCP after the report (0=no, 1=yes)                                          \r
+ *  @param[out] int * err:  pointer to error return\r
+ *  @retval     none \r
+ *  @pre       @ref netapi_init \r
+ */\r
+void netcp_cfgReqStats(NETAPI_T  h,  //NEAPI instance\r
+                       NETCP_CFG_STATS_CB c, //stats report callback function\r
+                       int doClear,   //0: don't clear, 1 clear\r
+                       int *err);\r
+\r
+#endif\r
+\r