Data Structures | Defines | Typedefs | Functions
nwal.h File Reference

Network Adaptation Layer Unit sub-system API and Data Definitions. More...

#include <stdint.h>
#include <stdlib.h>
#include <ti/drv/nwal/nwal_netcp.h>
#include <ti/drv/nwal/nwal_tune.h>

Data Structures

struct  nwalRxPktInfo_t
 NWAL Packet meta data information for incoming packet. More...
struct  nwalTxPktInfo_t
 NWAL Packet meta data information for outgoing packet. More...
struct  nwalDmRxPayloadInfo_t
 NWAL Data mode meta data payload information from NetCP. More...
struct  nwalDmTxPayloadInfo_t
 NWAL Data Mode Payload information for packet to SA. More...
union  nwalIpAddr_t
 IP address specification. More...
struct  nwalBufPool_t
 Buffer pool definition for RX and TX path. More...
struct  nwalGlobCfg_t
 NWAL Global System Level configuration. More...
struct  nwalLocCfg_t
 NWAL Local per core configuration. More...
struct  nwalSizeInfo_t
 NWAL Memory Size Configuration Structure. More...
struct  nwalCreateSAParams_t
 nwalCreateSA configuration parameters More...
struct  nwalCreateDmSAParams_t
 nwalCreateSA configuration parameters More...
struct  nwalTxConnCfg_t
 Configuration details for packets being transmitted for the connection Will be used in the case of NWAL module being used to create TX headers. More...
struct  nwalGlobCxtInfo_t
 Global context information at NWAL. More...
struct  nwalChanCxtInfo_t
 Channel context information stored within NWAL channel handle. More...
struct  nwalLocCxtInfo_t
 Local (per process) context information in NWAL. More...

Defines

#define nwal_OK   0
#define nwal_TRANS_COMPLETE   1
#define nwal_ERR_INVALID_CMD_DEST   -1
#define nwal_ERR_NO_FREE_CMD_DESC   -2
#define nwal_ERR_PA   -3
#define nwal_ERR_NO_FREE_CMD_BUF   -4
#define nwal_ERR_INVALID_HANDLE   -5
#define nwal_ERR_NO_FREE_BUF   -6
#define nwal_ERR_INVALID_ADDR   -7
#define nwal_ERR_INVALID_PARAM   -8
#define nwal_ERR_PA_PREV_REQ   -9
#define nwal_ERR_MEM_ALLOC   -10
#define nwal_ERR_SA   -11
#define nwal_ERR_RES_UNAVAILABLE   -12
#define nwal_ERR_INVALID_KEY   -13
#define nwal_ERR_INVALID_PREV_HANDLE_STATE   -14
#define nwal_ERR_INVALID_STATE   -15
#define nwal_ERR_POWER_DOMAIN_FAIL   -16
#define nwal_ERR_PA_DOWNLOAD   -17
#define nwal_ERR_CPPI   -18
#define nwal_ERR_QMSS   -19
#define nwal_ERR_DEST_MISMATCH   -20
#define nwal_ERR_SA_NOT_ENABLED   -21
#define nwal_ERR_INVALID_PROC_ID   -22
#define nwal_ERR_L2L3_UNAVAILABLE   -23
#define nwal_ERR_PORT_UNAVAILABLE   -24
#define nwal_ERR_PKT_LIB   -25
#define nwal_ERR_POLICY_CHECK_FAIL   -26
#define NWAL_IPSEC_AH_MAX_AUTH_TAG_BYTES   pa_MAX_PATCH_BYTES
 Maximum size allowed for Authentication Tag bytes.
#define NWAL_MAX_BUF_POOLS
 NWAL Multi Buffer pool configuration.
#define NWAL_DEF_MAX_PKTS_PER_POLL   100
#define nwal_MAX_NETCP_PASS_ACTIVE_PDSP   (pa_CMD_TX_DEST_5+1)
 Handle owned by NWAL abstracted to Application.
#define nwal_N_BUFS   8
 Define the maximum number of buffers the module can request.
#define NWAL_TRANSID_SPIN_WAIT   0xFFFF
#define nwal_TRUE   1
 TRUE.
#define nwal_FALSE   0
 FALSE.
#define NWAL_MAC_PKT_UNICAST   0x2
#define NWAL_MAC_PKT_BROADCAST   0x3
#define NWAL_MAC_PKT_MULTICAST   0x4
#define NWAL_MAC_PKT_LOCAL_ADDR_MISMATCH   0x5
#define NWAL_RX_FLAG1_IPV4_CHKSUM_VERIFY_UNKNOWN   0
#define NWAL_RX_FLAG1_IPV4_CHKSUM_VERIFY_NACK   1
#define NWAL_RX_FLAG1_IPV4_CHKSUM_VERIFY_ACK   3
#define NWAL_RX_FLAG1_L4_CHKSUM_VERIFY_UNKNOWN   0
#define NWAL_RX_FLAG1_L4_CHKSUM_VERIFY_NACK   1
#define NWAL_RX_IPSEC_CRYPTO_DONE_OK   0x00000020
#define NWAL_RX_IPSEC_WINDOW_DONE_OK   0x00000040
#define NWAL_RX_IP_FRAGMENT_PKT   0x00000080
#define NWAL_ROUTE_DSCP_PRIORITY   0x2
#define NWAL_ROUTE_RX_INTF   0x4
#define NWAL_TX_FLAG1_DO_IPV4_CHKSUM   0x00000001
#define NWAL_TX_FLAG1_DO_UDP_CHKSUM   0x00000002
#define NWAL_TX_FLAG1_DO_TCP_CHKSUM   0x00000004
#define NWAL_TX_FLAG1_DO_UPDATE_ETHER_LEN   0x00000008
#define NWAL_TX_FLAG1_DO_IPSEC_ESP_CRYPTO   0x00000020
#define NWAL_TX_FLAG1_DO_IPSEC_AH_CRYPTO   0x00000040
#define NWAL_NEXT_ROUTE_FAIL_ACTION_HOST   0x1
#define NWAL_MATCH_ACTION_DISCARD   0x1
#define NWAL_MATCH_ACTION_HOST   0x2
IP Options Valid Parameters

Bit map indicating valid Parameters for the configuration.

Defines valid parameters for IP Options

#define NWAL_IP_OPT_VALID_PARAMS_L4_PROTO   0x1
#define NWAL_IP_OPT_VALID_PARAMS_TOS   0x2
#define NWAL_IP_OPT_VALID_PARAMS_FLOW_LABEL   0x4
MAC Options Valid Parameters

Bit map indicating valid Parameters for the configuration.

Defines valid parameters for MAC Options

#define NWAL_MAC_OPT_VALID_PARAM_VLAN_ID   0x1
#define NWAL_MAC_OPT_VALID_PARAM_VLAN_PRIO   0x2
#define NWAL_MAC_OPT_FRAME_FORMAT_DIX   0x2
#define nwal_IPV4   pa_IPV4
#define nwal_IPV6   pa_IPV6
Valid Parameter configuration for nwal_setMacIface API

nwalAddIPParam structure.

Configuration parameters for nwal_setIPAddr() API

Valid Parameter configuration

Valid Parameter to configure optional parameters.

#define NWAL_SET_MAC_VALID_PARAM_IFNUM   0x1
#define NWAL_SET_IP_VALID_PARAM_ROUTE_TYPE   0x1
#define NWAL_SET_MAC_VALID_PARAM_VLAN_ID   0x2
#define NWAL_SET_MAC_VALID_PARAM_ROUTE_TYPE   0x4
#define NWAL_SET_MAC_VALID_PARAM_REMOTE_MAC   0x8
#define NWAL_SET_IP_VALID_PARAM_REMOTE_IP   0x2
#define nwal_IpSecProtoESP   4
Valid Parameter configuration for nwalSaIpSecParam_t

IPSec SA Configuration Parameters for the channel

Configuration uniquely identifying an IPSec channel.

Valid Parameter configuration

Valid Parameter to configure optional parameters.

#define NWAL_SA_INFO_VALID_PARAM_ESN   0x01
#define NWAL_SA_INFO_VALID_PARAM_ROUTE_TYPE   0x02
#define nwal_SA_MODE_TUNNEL   1
#define NWAL_SA_DIR_OUTBOUND   2
#define NWAL_SA_AALG_HMAC_MD5   1
#define NWAL_SA_AALG_HMAC_SHA1   2
#define NWAL_SA_AALG_HMAC_SHA2_224   3
#define NWAL_SA_AALG_HMAC_SHA2_256   4
#define NWAL_SA_AALG_GMAC   5
#define NWAL_SA_AALG_AES_XCBC   6
#define NWAL_SA_AALG_HMAC_SHA2_256_RFC4868   7
#define NWAL_SA_EALG_AES_CTR   1
#define NWAL_SA_EALG_AES_CBC   3
#define NWAL_SA_EALG_DES_CBC   4
#define NWAL_SA_EALG_3DES_CBC   5
#define NWAL_SA_EALG_AES_CCM   6
#define NWAL_SA_EALG_AES_GCM   7
Maximum Key Size configuration

Maximum Key Size configuration

Maximum size for Encryption and Authentication Keys

#define NWAL_SA_MAX_AUTH_KEY_LEN   64
#define NWAL_SA_MAX_ENC_KEY_LEN   32
#define NWAL_DM_CHAN_ENCRYPT   1
#define NWAL_SET_SEC_POLICY_VALID_PARAM_ROUTE_TYPE   0x1
 Configuration details for packets being received for the connection.
#define NWAL_APP_PLOAD_PROTO_GTPU   0x02
#define NWAL_APP_PLOAD_16_BIT_PORT   0x03
#define nwal_POLL_DEFAULT_PER_PROC_PKT_Q   0x0002
#define nwal_POLL_APP_MANAGED_PKT_Q   0x0004
#define nwal_POLL_DM_APP_MANAGED_Q   3
#define NWAL_CTRL_CXT_VALID_PA_OUTER_IP_HANDLE   0x00000002
#define NWAL_CTRL_CXT_VALID_PA_INNER_IP_HANDLE   0x00000004
#define NWAL_CTRL_CXT_VALID_PA_L4_HANDLE   0x00000008
#define NWAL_CTRL_CXT_VALID_IPSEC_SA_HANDLE   0x00000010
#define NWAL_CTRL_CXT_VALID_DM_SA_HANDLE   0x00000020
#define NWAL_CTRL_CFG_SINGLE_EXCEPTION   1
#define NWAL_CTRL_CFG_PA_ASSISTED_REASSEM   2
Valid Parameter configuration for nwal_control API

Valid Parameter configuration

Valid Parameter to configure optional parameters.

#define NWAL_CONTROL_VALID_PARAM_ROUTE_TYPE   0x1

Typedefs

typedef int16_t nwal_RetValue
typedef void * nwal_Handle
 Handle owned by NWAL abstracted to Application.
typedef void * nwal_AppId
 Handle owned by Application.
typedef void * nwal_Inst
 NWAL Instance abstracted to Application.
typedef uint16_t nwal_TransID_t
 Transaction ID type.
typedef uint16_t nwal_Bool_t
 Boolean Type definition.
typedef void nwal_CmdCallBack (nwal_AppId appId, nwal_TransID_t transId, nwal_RetValue ret)
 nwal_CmdCallBack Callback function for non blocking configuration request
typedef void nwal_rxPktCallBack (uint32_t appCookie, uint16_t numPkts, nwalRxPktInfo_t *pPktInfo, uint64_t timestamp, nwal_Bool_t *pFreePkt)
 nwal_rxPktCallBack Callback function for incoming packets from NWAL
typedef void nwal_CmdPaStatsReply (nwal_AppId appId, nwal_TransID_t transId, paSysStats_t *stats)
 nwal_CmdPaStatsReply Callback function for statistics response
typedef void nwal_rxDmCallback (uint32_t appCookie, uint16_t numPkts, nwalDmRxPayloadInfo_t *pDmRxPayloadInfo, nwal_Bool_t *pFreePkt)
 nwal_rxDmCallback function callback to be used for Data Mode payload received from SA
typedef int nwal_rxReassemProc (Ti_Pkt *pPkt, NWAL_queueHnd destQ)
 nwal_rxReassemProc function callback being called from NWAL if NWAL_CTRL_CFG_PA_ASSISTED_REASSEM is enabled through
typedef uint16_t nwal_IpType
 Defines the IP version type used.

Functions

nwal_RetValue nwal_getBufferReq (nwalSizeInfo_t *sizeCfg, int sizes[nwal_N_BUFS], int aligns[nwal_N_BUFS])
 API to retrieve memory buffer requirement by NWAL module.
nwal_RetValue nwal_create (const nwalGlobCfg_t *pCfg, nwalSizeInfo_t *pSizeInfo, int sizes[nwal_N_BUFS], void *bases[nwal_N_BUFS], nwal_Inst *pNwalInst)
 API instantiates the driver and allocated global resources and is pre-requisite.
nwal_RetValue nwal_delete (nwal_Inst nwalInst)
 API frees the NetCP resources allocated byNWAL.
nwal_RetValue nwal_getGlobCxtInfo (nwal_Inst nwalInst, nwalGlobCxtInfo_t *pInfo)
 API to retrieve global resources created by NWAL at the end of.
nwal_RetValue nwal_start (nwal_Inst nwalInst, const nwalLocCfg_t *pCfg)
 API would need to be called for all cores as a pre-requisite. API allows local per core related resource configuration to NWAL.
nwal_RetValue nwal_control (nwal_Inst nwalInst, nwalCtlInfo_t *pCtlInfo)
 Control API for additional global configuration at NetCP.
nwal_RetValue nwal_getLocCxtInfo (nwal_Inst nwalInst, nwalLocCxtInfo_t *pInfo)
 API to retrieve local per process resources created by NWAL at the end of.
nwal_RetValue nwal_getChanCxtInfo (nwal_Inst nwalInst, nwal_Handle nwalHandle, nwalChanCxtInfo_t *pInfo)
 API to retrieve internal context information from channel resources maintained by NWAL. Selective NetCP PA/SA channel handles are exposed to handle the case of multiple owner use case for PA/SA LLD.
nwal_Bool_t nwal_getMacIface (nwal_Inst nwalInst, nwalMacParam_t *pParam, nwal_Handle *pIfHandle)
 nwal_getMacIface API will check for already configuration for MAC entry
nwal_RetValue nwal_setMacIface (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_AppId appId, nwalMacParam_t *pParam, nwal_Handle *pIfHandle)
 nwal_setMacIface Configures MAC LUT entry at NetCP.
nwal_RetValue nwal_delMacIface (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_Handle ifHandle)
 nwal_delMacIface Delete MAC LUT entry at NetCP.
nwal_Bool_t nwal_getIPAddr (nwal_Inst nwalInst, nwalIpParam_t *pParam, nwal_Handle pPrevHandle, nwal_Handle *pIpHandle)
 nwal_getIPAddr API will check if there is already IP Address configured by application.If found returns the handle
nwal_RetValue nwal_setIPAddr (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_AppId appId, nwal_Handle ifHandle, nwalIpParam_t *pParam, nwal_Handle *pIpHandle)
 nwal_setIPAddr Add IP Address configuration to NETCP.
nwal_RetValue nwal_delIPAddr (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_Handle ipHandle)
 nwal_deleteIPAddr Delete IP Address configuration at NETCP.
nwal_Bool_t nwal_getSecAssoc (nwal_Inst nwalInst, nwalSaIpSecId_t *pSaId, nwal_SaDir dir, nwal_Handle *pNwalSecAssocHandle, uint32_t *pSwInfo0, uint32_t *pSwInfo1)
 Get an IPSec Security Association Channel.
nwal_RetValue nwal_setSecAssoc (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_AppId appId, nwalSaIpSecId_t *pSaId, nwalCreateSAParams_t *pCreateParam, nwal_Handle *pNwalSecAssocHandle)
 API to create outer IPSec Security Association Channel For inbound direction API will trigger allocating resources at NetCP. Application can either block by passing transaction ID as NWAL_TRANSID_SPIN_WAIT or wait for call back being called with the results For outbound, API will return nwal_TRANS_COMPLETE and no further callback will be called.Application can free transaction ID after returning from API.
nwal_RetValue nwal_delSecAssoc (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_Handle nwalSecAssocHandle)
 API to delete an existing Policy Handle For inbound direction API will trigger allocating resources at NetCP. Application can either block by passing transaction ID as NWAL_TRANSID_SPIN_WAIT or wait for call back being called with the results For outbound, API will return nwal_TRANS_COMPLETE and no further callback will be called.Application can free transaction ID after returning from API.
nwal_Bool_t nwal_getSecPolicy (nwal_Inst nwalInst, nwalSecPolParams_t *pPolParam, nwal_Handle *pNwalSecPolHandle)
 API to retrieve handle for existing security policy for a connection.
nwal_RetValue nwal_setSecPolicy (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_AppId appId, nwalSecPolParams_t *pPolParam, nwal_Handle *pNwalSecPolHandle)
 API to create policy for a connection.
nwal_RetValue nwal_delSecPolicy (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_Handle nwalSecPolHandle)
 API to delete an existing Policy Handle.
nwal_RetValue nwal_addConn (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_AppId appId, nwal_appProtoType_t proto, nwalRxConnCfg_t *pRxConnCfg, nwalTxConnCfg_t *pTxConnCfg, nwal_Handle *pNwalConHandle)
 API to create connection establishment.
nwal_RetValue nwal_delConn (nwal_Inst nwalInst, nwal_TransID_t transId, nwal_Handle nwalConHandle)
 API to delete an existing connection.
nwal_RetValue nwal_cfgConn (nwal_Inst nwalInst, nwal_Handle nwalConHandle, nwalTxConnCfg_t *pTxConnCfg)
 API for run time configuration connection establishment.
nwal_RetValue nwal_refreshConn (nwal_Inst nwalInst, nwal_Handle nwalHandle)
 nwal_refreshConn Refreshes a connection for the core.
nwal_RetValue nwal_getPAStats (nwal_Inst nwalInst, nwal_TransID_t transId, paSysStats_t *pPaStats, nwal_Bool_t doClear)
 nwal_getPAStats Get Statistics from PA
nwal_RetValue nwal_setDMSecAssoc (nwal_Inst nwalInst, nwal_AppId appId, nwalCreateDmSAParams_t *pCreateParam, nwal_Handle *pNwalDmSaHandle)
 nwal_setDMSecAssoc API for creating Data Mode Security Association
nwal_RetValue nwal_delDMSecAssoc (nwal_Inst nwalInst, nwal_Handle nwalDmSaHandle)
 API to delete an existing Data Mode Security Channel.
nwal_RetValue nwal_sendRaw (nwal_Inst nwalInst, nwal_Bool_t lpbackPass, uint16_t bufLen, uint8_t *pBuf)
 nwal_sendRaw Transmit raw packet to the PA
nwal_RetValue nwal_updateProtoHdr (nwal_Inst nwalInst, nwal_Handle nwalHandle, nwalTxPktInfo_t *pPktInfo)
 nwal_updateProtoHdr Update protocol header to the packet
nwal_RetValue nwal_send (nwal_Inst nwalInst, nwal_Handle nwalHandle, nwalTxPktInfo_t *pPktInfo)
 nwal_send Transmit packet out for a connection
nwal_RetValue nwal_sendDM (nwal_Inst nwalInst, nwal_Handle nwalDmSaHandle, nwalDmTxPayloadInfo_t *pDmPloadInfo)
 nwal_sendDM Transmit payload for side band Data Mode Channel
void nwal_pollCtl (nwal_Inst nwalInst, nwal_CmdCallBack *pCmdCallBack, nwal_CmdPaStatsReply *pPaStatsCallBack)
 nwal_pollCtl API for polling Control message response from NetCP: PA Subsystem.
uint16_t nwal_pollPkt (nwal_Inst nwalInst, nwal_pollPktQCtl pktQCtl, uint32_t appCookie, uint16_t maxPkts, NWAL_queueHnd appRxPktQueue, nwal_rxPktCallBack *pRxPktCallBack)
 nwal_pollPkt API for polling packets from network.
uint16_t nwal_pollDm (nwal_Inst nwalInst, nwal_pollDmQCtl dmQCtl, uint32_t appCookie, uint16_t maxPkts, NWAL_queueHnd appRxQueue, nwal_rxDmCallback *pRxDmCallBack)
 nwal_pollDm API for polling Data Mode payload from NetCP after Crypto completion

MAC packet Type

MAC packet Type

MAC packet Type

#define NWAL_MAC_PKT_UNKNOWN   0x1
typedef uint16_t nwal_macPktType_t

RX Flag 1

List of NetCP actions completed for incoming packet

List of NetCP actions completed for incoming packet

#define NWAL_RX_FLAG1_META_DATA_VALID   0x80000000
typedef uint32_t nwal_rxFlag1_t

NWAL Route types

NWAL Route types

NWAL Route types.Used to specify the mode of priority-based routing or interface based routing. PASS forwards the matched packets to the desired QoS queue which is equal to the base queue plus an offset specified by the VLAN priority or DSCP value in prority-based routing. For interface based routing,PASS forwards the matched packets to the desired host queue which is equal to the base queue plus an offset specified by the receive emac port (interface) number number with the CPPI flow which is equal to the base flow number plus the EMAC port (interface) number optionally in interface-based routing..

#define NWAL_ROUTE_VLAN_PRIORITY   0x1
typedef uint32_t nwalRouteType_t

EMAC Port Id

Incoming/Outgoing Port Id: 1 based

Incoming/Outgoing Port Id: 1 based

#define NWAL_ENET_PORT_UNKNOWN   0
typedef uint16_t nwal_enetPort_t

TX Flag 1

List of actions to be completed by NetCP for outgoing packet

List of actions to be completed by NetCP for outgoing packet

#define NWAL_TX_FLAG1_META_DATA_VALID   0x80000000
typedef uint32_t nwal_txFlag1_t

Configuration for action by NETCP when next route classification

Action from NETCP when next route classification check fails

fails

Configuration action to either terminate to host or discard packets in case next route classification fails. An example for MAC/L2 would be IP L3 classification fails

#define NWAL_NEXT_ROUTE_FAIL_ACTION_DISCARD   0x0
typedef uint16_t nwal_nextRtFailAction_t

Configuration for action by NETCP when classification matches

Action from NETCP when classification check passes

Configuration actions in case classification matches at NetCP.

#define NWAL_MATCH_ACTION_CONTINUE_NEXT_ROUTE   0x0
typedef uint16_t nwal_matchAction_t

Configuration for Frame format in MAC header

MAC frame format configuration

MAC frame format configuration

#define NWAL_MAC_OPT_FRAME_FORMAT_802_3   0x1
typedef uint16_t nwal_macOptFrameFormat_t
#define NWAL_MAC_ADDR_SIZE   6
 nwalMacAddr MAC address specification
#define NWAL_IPV4_ADDR_SIZE   4
 nwalIpv4Addr IPv4 address specification
#define NWAL_IPV6_ADDR_SIZE   16
 nwalIpv6Addr IPv6 address specificiation

COMMON (Common Interface) APIs

#define nwal_IpSecProtoAH   3
typedef uint16_t nwal_IpSecProto
 Defines the IPSec Protocol configuration for channel.

SA Mode for the IPSec Channel

SA Mode for the IPSec Channel

SA Mode configuration

#define nwal_SA_MODE_TRANSPORT   0
typedef uint16_t nwal_saMode

Channel Direction Inbound/Outbound

Channel Direction Inbound/Outbound

Channel configuration

#define NWAL_SA_DIR_INBOUND   1
typedef uint16_t nwal_SaDir

SA Authentication Algorithms

Authentication Algorithms

Authentication Algorithm supported

#define NWAL_SA_AALG_NULL   0
typedef uint16_t nwal_saAALG

Encryption Algorithm Configuration

Encryption Algorithm Configuration

Encryption Algorithm supported

#define NWAL_SA_EALG_NULL   0
typedef uint16_t nwal_saEALG

Data Mode Channel Type Encryption/Decryption

Data Mode SA Configuration Parameters for the channel

Configuration uniquely identifying an Data Mode SA Channel.

Data Mode Channel Type Encryption/Decryption

Channel configuration

#define NWAL_DM_CHAN_DECRYPT   0
typedef uint16_t nwal_DmChnType
#define NWAL_APP_PLOAD_PROTO_UDP   0x01
typedef uint16_t nwal_appProtoType_t
 Application Layer protocol type for payload.

Bit Map indicating the queues to be polled by NWAL

Bit Map indicating the queues to be polled by NWAL

Bit Map indicating the queues to be polled by NWAL.

#define nwal_POLL_DEFAULT_GLOB_PKT_Q   0x0001
typedef uint16_t nwal_pollPktQCtl

Control for queue to be polled by NWAL for Data Mode SA channel

Control for queue to be polled by NWAL for Data Mode SA channel

Control for queue to be polled by NWAL. Only one queue can be polled per API Call

#define nwal_POLL_DM_DEF_SB_SA_Q   1
typedef uint16_t nwal_pollDmQCtl

Valid bitmap for internal handles

Global configuration for unclassified packets from NetCP

Global configuration for unclassified packets from NetCP To be configured after nwal_start

#define NWAL_CTRL_CXT_VALID_PA_MAC_HANDLE   0x00000001
typedef uint32_t nwal_ChanCxtValidBitMap_t

Global configuration for unclassified packets from NetCP

Global configuration for unclassified packets from NetCP

Global configuration for unclassified packets from NetCP To be configured after nwal_start

#define NWAL_CTRL_CFG_ALL_EXCEPTIONS   0
typedef uint16_t nwal_ctlCfg_t

Detailed Description

Network Adaptation Layer Unit sub-system API and Data Definitions.

path ti/drv/nwal/nwal.h


Define Documentation

#define NWAL_APP_PLOAD_16_BIT_PORT   0x03

All other 16 bit ports

#define NWAL_APP_PLOAD_PROTO_GTPU   0x02

Protocol Type for Application payload is GTPU

#define NWAL_APP_PLOAD_PROTO_UDP   0x01

Protocol Type for Application payload is UDP

Route Type is valid

Configure NetCP for all Exception Packets defined under pa_EROUTE_XXX. Refer PA API file under ti/drv/pa/pa.h .

NetCP Assisted Reasssembly. The feature will allow incoming fragmented packets to be reassembled at application and being further redirected back to PA for further classification. The feature will also maintain ordering of incoming packets from network. In order to enable PA Assisted Reassembly matchAction need to be configured to NWAL_MATCH_ACTION_HOST and application need to register callback pRxReassemProc. For disabling PA Assisted Reassembly feature matchAction need to be configured to NWAL_MATCH_ACTION_DISCARD

Configure NetCP for single Exception packets defined under pa_EROUTE_XXX. Refer PA API file under ti/drv/pa/pa.h .

#define NWAL_CTRL_CXT_VALID_DM_SA_HANDLE   0x00000020

Valid SA Handle. Applicable when nwal_Handle being passed is the one returned from

See also:
nwal_setDMSecAssoc
#define NWAL_CTRL_CXT_VALID_IPSEC_SA_HANDLE   0x00000010

Valid SA Handle. Applicable when nwal_Handle being passed is the one returned from

See also:
nwal_setSecAssoc
#define NWAL_CTRL_CXT_VALID_PA_INNER_IP_HANDLE   0x00000004

Valid PA IP Handle. Applicable when nwal_Handle being passed is the one returned from

See also:
nwal_setIPAddr or
nwal_setSecPolicy
#define NWAL_CTRL_CXT_VALID_PA_L4_HANDLE   0x00000008

Valid PA UDP Handle. Applicable when nwal_Handle being passed is the one returned from

See also:
nwal_addConn
#define NWAL_CTRL_CXT_VALID_PA_MAC_HANDLE   0x00000001

Valid PA MAC Handle. Applicable when nwal_Handle being passed is the one returned from either

See also:
nwal_setMacIface /
nwal_setIPAddr / Outer IP Handle in the case of
nwal_setSecAssoc
#define NWAL_CTRL_CXT_VALID_PA_OUTER_IP_HANDLE   0x00000002

Valid PA IP Handle. Applicable when nwal_Handle being passed is the one returned from Outer IP Handle retruned through

See also:
nwal_setSecAssoc
#define NWAL_DEF_MAX_PKTS_PER_POLL   100

Default packets processed by NWAL per poll

#define NWAL_DM_CHAN_DECRYPT   0

Data Mode Channel to be used for Decryption

#define NWAL_DM_CHAN_ENCRYPT   1

Data Mode Channel to be used for Encryption

#define NWAL_ENET_PORT_UNKNOWN   0

ENET Port Not Applicable. For TX direction switch will redirect to appropriate port.

Valid Flow Label

Valid Protocol Type.

#define NWAL_IP_OPT_VALID_PARAMS_TOS   0x2

Valid Type of Service

#define nwal_IpSecProtoAH   3

IPSEC AH Mode

#define nwal_IpSecProtoESP   4

IPSEC ESP Mode

#define nwal_IPV4   pa_IPV4

IPv4

#define nwal_IPV6   pa_IPV6

IPv6

802_3 Frame format.

DIX Frame format.

Valid VLAN ID.

Valid VLAN Priority

#define NWAL_MAC_PKT_BROADCAST   0x3

Broadcast MAC packet

Packets not for local MAC point

#define NWAL_MAC_PKT_MULTICAST   0x4

Multicast MAC packet

#define NWAL_MAC_PKT_UNICAST   0x2

Unicast MAC packet

#define NWAL_MAC_PKT_UNKNOWN   0x1

Unknown Mac Packet Type from NetCP. Application would be required to retrieve the correct type

NetCP to continue parsing for next route when classification rule matches

#define NWAL_MATCH_ACTION_DISCARD   0x1

Discard all packets which does not match next route classification.

#define NWAL_MATCH_ACTION_HOST   0x2

NetCP to terminate packet at host if classification matches

#define nwal_N_BUFS   8

Define the maximum number of buffers the module can request.

Number of Buffers to be used by NWAL

Discard all packets which does not match next route classification.

Terminate next route mismatch packets to host for further processing

#define nwal_POLL_APP_MANAGED_PKT_Q   0x0004

Poll for packets to be terminated at Application managed packet Queue/Flow

Poll for all packets from NetCP received at Application managed flow/queue

#define nwal_POLL_DEFAULT_GLOB_PKT_Q   0x0001

Poll for common Global L2/L3 packets which failed next route classification at NetCP

Poll for all packets received per system. This includes packets received through next route fail for MAC/[IPSec]/IP classification or packets matching MAC/[IPSec]/IP classification and being terminated to host at

See also:
rxDefPktQ.
#define nwal_POLL_DEFAULT_PER_PROC_PKT_Q   0x0002

Poll for packets to be terminated to Fast Path core

Poll for all packets matching L4 or L5 classification from NetCP through NWAL managed flow/ queue per process terminated through

See also:
rxL4PktQ

Poll for Data Mode Application managed packet Queue

#define nwal_POLL_DM_DEF_SB_SA_Q   1

Poll default Side Band SA Response Q from NetCP

#define NWAL_ROUTE_DSCP_PRIORITY   0x2

Route by using DSCP value as priority

#define NWAL_ROUTE_RX_INTF   0x4

Route by using EMAC port (interface) number as destination queue offset

Route by using EMAC port (interface) number as both destination queue and CPPI flow offset

#define NWAL_ROUTE_VLAN_PRIORITY   0x1

Route by using VLAN bits as priority

IPV4 Header Checksum verification passed at NetCP

IPV4 Header Checksum verification failed at NetCP

IPV4 Header Checksum verification result not done NetCP and hence unknown

IPV4 Header Checksum verification failed at NetCP

L4 Header Checksum verification result not done NetCP and hence unknown

#define NWAL_RX_FLAG1_META_DATA_VALID   0x80000000

Meta data information is valid. If this bit is not set all other fields in meta data related to packet will not be valid

#define NWAL_RX_IP_FRAGMENT_PKT   0x00000080

IP Fragment Packet to be reassembled by Host which had not gone through full PA classification.

#define NWAL_RX_IPSEC_CRYPTO_DONE_OK   0x00000020

IPSec Decryption/Authentication passed

#define NWAL_RX_IPSEC_WINDOW_DONE_OK   0x00000040

IPSec Decryption/Authentication passed

#define NWAL_SA_AALG_AES_XCBC   6

AES Extended Cipher Block Chaining - Message Autnentication Code mode

#define NWAL_SA_AALG_GMAC   5

Galois Message Authentication Code mode

#define NWAL_SA_AALG_HMAC_MD5   1

HMAC with SHA1 mode

#define NWAL_SA_AALG_HMAC_SHA1   2

HMAC with 224-bit SHA2 mode

HMAC with 224-bit SHA2 mode

HMAC with 256-bit SHA2 mode

HMAC with 256-bit SHA2 mode, ICV length truncated to 128 bits

#define NWAL_SA_AALG_NULL   0

No idviudal Authentication

#define NWAL_SA_DIR_INBOUND   1

Inbound Channel. NetCP would need to authentication/decryption

#define NWAL_SA_DIR_OUTBOUND   2

Outbound.NetCP would need to perform encryption and add authentication tag

#define NWAL_SA_EALG_3DES_CBC   5

DES CBC mode

#define NWAL_SA_EALG_AES_CBC   3

AES CBC mode

#define NWAL_SA_EALG_AES_CCM   6

Counter with CBC-MAC mode

#define NWAL_SA_EALG_AES_CTR   1

AES Counter mode

#define NWAL_SA_EALG_AES_GCM   7

Galois Counter mode

#define NWAL_SA_EALG_DES_CBC   4

DES CBC mode

#define NWAL_SA_EALG_NULL   0

No encryption

#define NWAL_SA_INFO_VALID_PARAM_ESN   0x01

Valid ESN configuration

Valid Route Type configuration

#define NWAL_SA_MAX_AUTH_KEY_LEN   64

Maximum size for Authentication Key

#define NWAL_SA_MAX_ENC_KEY_LEN   32

Maximum size for Encryption Kepys

#define nwal_SA_MODE_TRANSPORT   0

Transport Mode

#define nwal_SA_MODE_TUNNEL   1

Tunnel Mode

Remote IP is valid

Route Type is valid

Restrict MAC packets from NetCP if received from a particular Interface and destination MAC

Remote Mac is valid

Route Type is valid

VLAN ID is valid

#define NWAL_TRANSID_SPIN_WAIT   0xFFFF

Reserved Transaction ID for Blocking the API until transaction is complete. NWAL module will do spin wait until transaction is complete

#define NWAL_TX_FLAG1_DO_IPSEC_AH_CRYPTO   0x00000040

IPSec Crypto/Authentication to be done at NetCP

#define NWAL_TX_FLAG1_DO_IPSEC_ESP_CRYPTO   0x00000020

IPSec Crypto/Authentication to be done at NetCP

#define NWAL_TX_FLAG1_DO_IPV4_CHKSUM   0x00000001

IPV4 Header Checksum offload to hardware. Only supported for innermost IP header of the packet in the case of tunnel configuration Packet received at NWAL already should have rest of the header populated

#define NWAL_TX_FLAG1_DO_TCP_CHKSUM   0x00000004

TCP checksum to be computed at NetCP

#define NWAL_TX_FLAG1_DO_UDP_CHKSUM   0x00000002

UDP checksum to be computed at NetCP

#define NWAL_TX_FLAG1_DO_UPDATE_ETHER_LEN   0x00000008

Update Length for the Ethernel Header eg: 802.3.Only one Length field update is currently supported.Offset to the length would need to be provided through etherLenOffBytes configuration

#define NWAL_TX_FLAG1_META_DATA_VALID   0x80000000

Meta data information is valid. If this bit is not set all other fields in meta data related to packet will not be valid


Typedef Documentation

typedef uint16_t nwal_IpType

Defines the IP version type used.

The packet accelerator module parses both IPv4 and IPv6 network layer headers. This group is used to distinguish which type of header will be used.


Copyright 2014, Texas Instruments Incorporated