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

Packet Accelerator (PA) sub-system LLD Flow Cache related API and Data Definitions. More...

#include <stdint.h>
#include <stdlib.h>
#include <ti/drv/pa/pa.h>

Data Structures

struct  paEfRecLevel1_t
 PA Egress Flow Level One Record data structure. More...
struct  paEfRecIpsecParams_t
 Egress Flow IPSEC Configuration Parameters structure. More...
struct  paEfRecLevel2_t
 PA Egress Flow Level Two Record data structure. More...
struct  paEfRecLevel3_t
 PA Egress Flow Level Three Record data structure. More...
struct  paEfRecLevel4_t
 PA Egress Flow Level Four Record data structure. More...
struct  paEfRec_t
 PA Egress Flow Record data structure. More...
struct  paFcInfo_t
 Flow cache lookup information. More...
struct  paFcStats_s
 PA Flow Cache Entry Statistics Structure. More...

Defines

#define pa_MAX_EF_REC_IP_HDR_LEN   40
#define pa_MAX_EF_REC_L2_HDR_LEN   40
#define pa_MAX_EF_LVL1_RECORDS   256
 Define the maximum number of PASS egress flow records.
PA Egress Flow Exception Route Types

These values are used to define exception route conditions in egress path.

The Egress Flow exception route defines the global routing information when the exception condition such as Flow Cache lookup failure, packet parsing failure, TCP control detection and etc. Multiple exception routes can be configured through Pa_configEflowExceptionRoute. The PASS will drop all exception route packets by default until the corresponding exception route is configured.

#define pa_EFLOW_EROUTE_FC_FAIL   0
#define pa_EFLOW_EROUTE_PARSE_FAIL   1
#define pa_EFLOW_EROUTE_IP_FRAG   2
#define pa_EFLOW_EROUTE_IPV6_OPT_FAIL   3
#define pa_EFLOW_EROUTE_IP_OPTIONS   4
#define pa_EFLOW_EROUTE_IP_EXPIRE   5
#define pa_EFLOW_EROUTE_TCP_CTRL   6
#define pa_EFLOW_EROUTE_INVALID_REC   7
#define pa_EFLOW_EROUTE_SYSTEM_FAIL   10
#define pa_EFLOW_EROUTE_MAX   11
PA Egress Flow Record types

These values are used to define the modification record types in the egress flow operation

#define pa_EFLOW_REC_TYPE_LVL1   1
#define pa_EFLOW_REC_TYPE_LVL2   2
#define pa_EFLOW_REC_TYPE_LVL3   3
#define pa_EFLOW_REC_TYPE_LVL4   4
PA Egress Flow Level One Record Valid Bit Definitions

Bitmap definition of the validBitMap in paEfRecLevel1_t.

#define pa_EF_LVL1_RECORD_VALID_CTRL_FLAGS   0x0001
#define pa_EF_LVL1_RECORD_VALID_IP_SRC   0x0002
#define pa_EF_LVL1_RECORD_VALID_IP_DST   0x0004
#define pa_EF_LVL1_RECORD_VALID_FLOW_LABEL   0x0008
#define pa_EF_LVL1_RECORD_VALID_TOS_CLASS   0x0010
#define pa_EF_LVL1_RECORD_VALID_IP_MTU   0x0020
#define pa_EF_LVL1_RECORD_VALID_SRC_PORT   0x0040
#define pa_EF_LVL1_RECORD_VALID_DST_PORT   0x0080
PA Egress Flow Level One Record Control Flag Definitions

Bitmap definition of the ctrlFlags in paEfRecLevel1_t.

#define pa_EF_LVL1_RECORD_CONTROL_FLAG_IP_CKSUM   0x0001
#define pa_EF_LVL1_RECORD_CONTROL_FLAG_L4_CKSUM   0x0002
#define pa_EF_LVL1_RECORD_CONTROL_FLAG_TTL_DEC   0x0004
#define pa_EF_LVL1_RECORD_CONTROL_FLAG_EXP_TCP_CTRL   0x0008
#define pa_EF_LVL1_RECORD_CONTROL_FLAG_EXP_IP_OPTION   0x0010
#define pa_EF_LVL1_RECORD_CONTROL_FLAG_EXP_IP_FRAGMENT   0x0020
#define pa_EF_LVL1_RECORD_CONTROL_FLAG_EXP_IP_EXPIRE   0x0040
PA Egress Flow Record IPSEC Configuration Control Bit Definitions

Bitmap definition of the ctrlBitMap in paEfRecIpsecParams_t.

#define pa_EF_RECORD_IPSEC_USE_LOC_DMA   0x0001
PA Egress Flow Level two Record Valid Bit Definitions

Bitmap definition of the validBitMap in paEfRecLevel2_t.

#define pa_EF_LVL2_RECORD_VALID_CTRL_FLAGS   0x0001
#define pa_EF_LVL2_RECORD_VALID_IP_MTU   0x0002
#define pa_EF_LVL2_RECORD_VALID_IPSEC   0x0004
PA EgressFlow Level Two Record Control Flag Definitions

Bitmap definition of the ctrlFlags in paEfRecLevel2_t.

#define pa_EF_LVL2_RECORD_CONTROL_SINGLE_IP   0x0001
#define pa_EF_LVL2_RECORD_CONTROL_INSERT_IPSEC_HDR_TRAIL   0x0002
#define pa_EF_LVL2_RECORD_CONTROL_FLAG_TTL_DEC   0x0004
#define pa_EF_LVL2_RECORD_CONTROL_FLAG_EXP_IP_OPTION   0x0008
#define pa_EF_LVL2_RECORD_CONTROL_FLAG_EXP_IP_FRAGMENT   0x0010
#define pa_EF_LVL2_RECORD_CONTROL_FLAG_EXP_IP_EXPIRE   0x0020
PA Egress Flow Level Three Record Valid Bit Definitions

Bitmap definition of the validBitMap in paEfRecLevel3_t.

#define pa_EF_LVL3_RECORD_VALID_CTRL_FLAGS   0x0001
#define pa_EF_LVL3_RECORD_VALID_IP_MTU   0x0002
#define pa_EF_LVL3_RECORD_VALID_IPSEC   0x0004
PA EgressFlow Level Three Record Control Flag Definitions

Bitmap definition of the ctrlFlags in paEfRecLevel3_t.

#define pa_EF_LVL3_RECORD_CONTROL_REPLACE_HDR   0x0001
PA Egress Flow Level Four Record Valid Bit Definitions

Bitmap definition of the validBitMap in paEfRecLevel4_t.

#define pa_EF_LVL4_RECORD_VALID_CTRL_FLAGS   0x0001
#define pa_EF_LVL4_RECORD_VALID_802_3   0x0002
#define pa_EF_LVL4_RECORD_VALID_PPPoE   0x0004
#define pa_EF_LVL4_RECORD_VALID_VLAN1   0x0008
#define pa_EF_LVL4_RECORD_VALID_VLAN2   0x0010
#define pa_EF_LVL4_RECORD_VALID_MIN_PKTSIZE   0x0020
#define pa_REF_LVL4_RECORD_VALID_ROUTE_PRIORITY_TYPE   0x0040
PA Egress Flow Record Control Flag Definitions

Bitmap definition of the ctrlBitMap in paEfRec_t.

#define pa_EF_RECORD_CONTROL_ENABLE   0x0001
PA Flow Cache Matching Info Valid Bit Definitions

Bitmap definition of the validBitfield in paFcInfo_t. It allows selective Flow Cache matching parameters

#define pa_FC_INFO_VALID_SRC_IP   0x0001
#define pa_FC_INFO_VALID_SRC_IP_MASK   0x0002
#define pa_FC_INFO_VALID_DST_IP   0x0004
#define pa_FC_INFO_VALID_DST_IP_MASK   0x0008
#define pa_FC_INFO_VALID_CTRL_FLAG   0x0010
#define pa_FC_INFO_VALID_PROTO   0x0020
#define pa_FC_INFO_VALID_DSCP   0x0040
#define pa_FC_INFO_VALID_SRC_PORT   0x0100
#define pa_FC_INFO_VALID_DST_PORT   0x0200
PA Flow Cache Info Control Flag Definitions

Bitmap definition of the ctrlFlags and ctrlFlagsMask in paFcInfo_t.

#define pa_FC_INFO_CONTROL_FLAG_FRAG   0x0001
#define pa_FC_INFO_CONTROL_FLAG_CONTAIN_L4   0x0002

Typedefs

typedef struct paFcStats_s paFcStats_t
 PA Flow Cache Entry Statistics Structure.

Enumerations

IPSEC Protocols

Parameter ipsecProto of paEfRecIpsecParams_t should be set to one of these types.

enum  paIpsecProto_e

Functions

paReturn_t Pa_configEflowExceptionRoute (Pa_Handle iHandle, int nRoute, int *routeTypes, paRouteInfo_t *eRoutes, paCmd_t cmd, uint16_t *cmdSize, paCmdReply_t *reply, int *cmdDest)
 Pa_configEflowExceptionRoute configures the routing of packets based on an exception condition such as no match, parsing failure, TCP control packet etc in the egress direction (PASS Gen2 only)
paReturn_t Pa_configEflowRecords (Pa_Handle iHandle, int nRecords, int *nRecProc, paEfRec_t *records)
 Pa_configEflowRecords configures the egress flow records (PASS Gen2 only)
paReturn_t Pa_addFc (Pa_Handle iHandle, int index, paEfOpInfo_t *efOpInfo, paFcInfo_t *fcInfo, paHandleFc_t *retHandle, paCmd_t cmd, uint16_t *cmdSize, paCmdReply_t *reply, int *cmdDest)
 Pa_addFc adds a Flow Cache entry to the Flow Cache table (PASS Gen2 only)
paReturn_t Pa_delFcHandle (Pa_Handle iHandle, paHandleFc_t *handle, paCmd_t cmd, uint16_t *cmdSize, paCmdReply_t *reply, int *cmdDest)
 Pa_delFcHandle deletes a Flow Cache handle (PASS Gen2 only)
paReturn_t Pa_queryFcStats (Pa_Handle iHandle, paHandleFc_t fcHandle, uint16_t doClear, paFcStats_t *pFcStats)
 Pa_queryFcStats queries Flow Cache per-entry statistics (PASS Gen2 only)

Detailed Description

Packet Accelerator (PA) sub-system LLD Flow Cache related API and Data Definitions.

path ti/drv/pa/pa_fc.h

============================================================================ 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 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.


Copyright 2014, Texas Instruments Incorporated