OpenFlow Data Plane Abstraction (OF-DPA) API Guide and Reference Manual
Data Structures | Macros | Typedefs | Enumerations
ofdpa_datatypes.h File Reference
#include <stdint.h>
#include <sys/time.h>
#include <netinet/in.h>

Go to the source code of this file.

Data Structures

struct  ofdpa_buffdesc
 Intrinsic buffer descriptor. More...
 
struct  ofdpaAccessPortConfig_t
 
struct  ofdpaBridgingFlowEntry_s
 Bridging Flow Table Entry. More...
 
struct  ofdpaBridgingFlowMatch_s
 Bridging Flow Table Match. More...
 
struct  ofdpaEndpointConfig_t
 
struct  ofdpaFlowEntry_s
 This structure is used to add a new flow or modify an existing flow. More...
 
struct  ofdpaFlowEntryStats_s
 Flow Stats information. More...
 
struct  ofdpaFlowEvent_s
 Flow events. More...
 
struct  ofdpaFlowTableInfo_s
 Flow table information. More...
 
struct  ofdpaGroupBucketEntry_s
 Group Bucket Table Entry. More...
 
struct  ofdpaGroupEntry_s
 The Group Table contains one entry for each Group. More...
 
struct  ofdpaGroupEntryStats_s
 Group Table Entry Statistics. More...
 
struct  ofdpaGroupTableInfo_s
 Group table information. More...
 
struct  ofdpaIngressPortFlowEntry_s
 Ingress Port Flow Table Entry. More...
 
struct  ofdpaIngressPortFlowMatch_s
 Ingress Port Flow Table Match. More...
 
struct  ofdpaL2InterfaceGroupBucketData_s
 L2 Interface Group Bucket. More...
 
struct  ofdpaL2OverlayGroupBucketData_t
 
struct  ofdpaL2RewriteGroupBucketData_s
 L2 Rewrite Group Bucket. More...
 
struct  ofdpaL3InterfaceGroupBucketData_s
 L3 Interface Group Bucket. More...
 
struct  ofdpaL3UnicastGroupBucketData_s
 L3 Unicast Group Bucket. More...
 
struct  ofdpaMacAddr_s
 MAC address. More...
 
struct  ofdpaMulticastRoutingFlowEntry_s
 Multicast Routing Flow Table Entry. More...
 
struct  ofdpaMulticastRoutingFlowMatch_s
 Multicast Routing Flow Table Match. More...
 
struct  ofdpaNvgreProtoInfo_t
 
struct  ofdpaPacket_s
 Packet. More...
 
struct  ofdpaPolicyAclFlowEntry_s
 Policy ACL Flow Table Entry. More...
 
struct  ofdpaPolicyAclFlowMatch_s
 ACL Flow Table Match. More...
 
struct  ofdpaPortEvent_s
 Port events. More...
 
struct  ofdpaPortFeature_s
 Bitmaps of OFDPA_PORT_FEAT_* that describe features. More...
 
struct  ofdpaPortQueueStats_s
 Queue Stats. More...
 
struct  ofdpaPortStats_s
 Port Statistics. More...
 
struct  ofdpaSrcMacLearnModeCfg_s
 Source MAC Learning Mode. More...
 
struct  ofdpaTerminationMacFlowEntry_s
 Termination MAC Flow Table Entry. More...
 
struct  ofdpaTerminationMacFlowMatch_s
 Termination MAC Flow Table Match. More...
 
struct  ofdpaTunnelEcmpNextHopGroupConfig_t
 
struct  ofdpaTunnelEcmpNextHopGroupStatus_t
 
struct  ofdpaTunnelNextHopConfig_t
 
struct  ofdpaTunnelNextHopStatus_t
 
struct  ofdpaTunnelPortConfig_t
 
struct  ofdpaTunnelPortStatus_t
 
struct  ofdpaTunnelPortTenantStatus_t
 
struct  ofdpaTunnelTenantConfig_t
 
struct  ofdpaTunnelTenantStatus_t
 
struct  ofdpaUnicastRoutingFlowEntry_s
 Unicast Routing Flow Table Entry. More...
 
struct  ofdpaUnicastRoutingFlowMatch_s
 Unicast Routing Flow Table Match. More...
 
struct  ofdpaVlanFlowEntry_s
 VLAN Flow Table Entry. More...
 
struct  ofdpaVlanFlowMatch_s
 VLAN Flow Table Match. More...
 
struct  ofdpaVxlanProtoInfo_t
 

Macros

#define OFDPA_FLOW_TABLE_ID_SA_LOOKUP   254
 Source MAC Lookup Table.
 
#define OFDPA_INPORT_EXACT_MASK   0xffffffffu
 Exact Mask.
 
#define OFDPA_INPORT_FIELD_MASK   0x00000000u
 Field Mask.
 
#define OFDPA_INPORT_INDEX_MASK   0x0000ffffu
 Number Mask.
 
#define OFDPA_INPORT_TYPE_MASK   0xffff0000u
 Type Mask.
 
#define OFDPA_IPV4_ADDR_EXACT_MASK   0xffffffffu
 IPv4 Address Exact Mask.
 
#define OFDPA_IPV4_ADDR_FIELD_MASK   0x00000000u
 IPv4 Address Field Mask.
 
#define OFDPA_MAC_ADDR_IS_NULL(mac)
 Check if MAC address is NULL.
 
#define OFDPA_MAC_ADDR_LEN   6
 MAC address length.
 
#define OFDPA_PKT_LOOKUP   1
 Flags field in ofdpaPktSend()
 
#define OFDPA_PORT_CONTROLLER   0xfffffffdu
 Open Flow Controller port.
 
#define OFDPA_PORT_NAME_STRING_SIZE   16
 Port name maximum string length.
 
#define OFDPA_TABLE_NAME_LEN   32
 Table name maximum string length.
 
#define OFDPA_VID_EXACT_MASK   0x0fff
 VLAN Id Exact Mask.
 
#define OFDPA_VID_FIELD_MASK   0x0000
 VLAN Id Field Mask.
 
#define OFDPA_VID_NONE   0x0000
 VLAN Id None.
 
#define OFDPA_VID_PRESENT   0x1000
 VLAN Id present.
 

Typedefs

typedef struct
ofdpaBridgingFlowEntry_s 
ofdpaBridgingFlowEntry_t
 Bridging Flow Table Entry.
 
typedef struct
ofdpaBridgingFlowMatch_s 
ofdpaBridgingFlowMatch_t
 Bridging Flow Table Match.
 
typedef struct ofdpaFlowEntry_s ofdpaFlowEntry_t
 This structure is used to add a new flow or modify an existing flow.
 
typedef struct
ofdpaFlowEntryStats_s 
ofdpaFlowEntryStats_t
 Flow Stats information.
 
typedef struct ofdpaFlowEvent_s ofdpaFlowEvent_t
 Flow events.
 
typedef struct ofdpaFlowTableInfo_s ofdpaFlowTableInfo_t
 Flow table information.
 
typedef struct
ofdpaGroupBucketEntry_s 
ofdpaGroupBucketEntry_t
 Group Bucket Table Entry.
 
typedef struct ofdpaGroupEntry_s ofdpaGroupEntry_t
 The Group Table contains one entry for each Group.
 
typedef struct
ofdpaGroupEntryStats_s 
ofdpaGroupEntryStats_t
 Group Table Entry Statistics.
 
typedef struct
ofdpaGroupTableInfo_s 
ofdpaGroupTableInfo_t
 Group table information.
 
typedef struct
ofdpaIngressPortFlowEntry_s 
ofdpaIngressPortFlowEntry_t
 Ingress Port Flow Table Entry.
 
typedef struct
ofdpaIngressPortFlowMatch_s 
ofdpaIngressPortFlowMatch_t
 Ingress Port Flow Table Match.
 
typedef struct
ofdpaL2InterfaceGroupBucketData_s 
ofdpaL2InterfaceGroupBucketData_t
 L2 Interface Group Bucket.
 
typedef struct
ofdpaL2RewriteGroupBucketData_s 
ofdpaL2RewriteGroupBucketData_t
 L2 Rewrite Group Bucket.
 
typedef struct
ofdpaL3InterfaceGroupBucketData_s 
ofdpaL3InterfaceGroupBucketData_t
 L3 Interface Group Bucket.
 
typedef struct
ofdpaL3UnicastGroupBucketData_s 
ofdpaL3UnicastGroupBucketData_t
 L3 Unicast Group Bucket.
 
typedef struct ofdpaMacAddr_s ofdpaMacAddr_t
 MAC address.
 
typedef struct
ofdpaMulticastRoutingFlowEntry_s 
ofdpaMulticastRoutingFlowEntry_t
 Multicast Routing Flow Table Entry.
 
typedef struct
ofdpaMulticastRoutingFlowMatch_s 
ofdpaMulticastRoutingFlowMatch_t
 Multicast Routing Flow Table Match.
 
typedef struct ofdpaPacket_s ofdpaPacket_t
 Packet.
 
typedef struct
ofdpaPolicyAclFlowEntry_s 
ofdpaPolicyAclFlowEntry_t
 Policy ACL Flow Table Entry.
 
typedef struct
ofdpaPolicyAclFlowMatch_s 
ofdpaPolicyAclFlowMatch_t
 ACL Flow Table Match.
 
typedef struct ofdpaPortEvent_s ofdpaPortEvent_t
 Port events.
 
typedef struct ofdpaPortFeature_s ofdpaPortFeature_t
 Bitmaps of OFDPA_PORT_FEAT_* that describe features.
 
typedef struct
ofdpaPortQueueStats_s 
ofdpaPortQueueStats_t
 Queue Stats.
 
typedef struct ofdpaPortStats_s ofdpaPortStats_t
 Port Statistics.
 
typedef struct
ofdpaSrcMacLearnModeCfg_s 
ofdpaSrcMacLearnModeCfg_t
 Source MAC Learning Mode.
 
typedef struct
ofdpaTerminationMacFlowEntry_s 
ofdpaTerminationMacFlowEntry_t
 Termination MAC Flow Table Entry.
 
typedef struct
ofdpaTerminationMacFlowMatch_s 
ofdpaTerminationMacFlowMatch_t
 Termination MAC Flow Table Match.
 
typedef struct
ofdpaUnicastRoutingFlowEntry_s 
ofdpaUnicastRoutingFlowEntry_t
 Unicast Routing Flow Table Entry.
 
typedef struct
ofdpaUnicastRoutingFlowMatch_s 
ofdpaUnicastRoutingFlowMatch_t
 Unicast Routing Flow Table Match.
 
typedef struct ofdpaVlanFlowEntry_s ofdpaVlanFlowEntry_t
 VLAN Flow Table Entry.
 
typedef struct ofdpaVlanFlowMatch_s ofdpaVlanFlowMatch_t
 VLAN Flow Table Match.
 

Enumerations

enum  OFDPA_CONTROL_t { OFDPA_DISABLE, OFDPA_ENABLE }
 enable or disable for config or status parameter. More...
 
enum  OFDPA_ERROR_t {
  OFDPA_E_NONE = 0, OFDPA_E_RPC = -20, OFDPA_E_INTERNAL = -21, OFDPA_E_PARAM = -22,
  OFDPA_E_ERROR = -23, OFDPA_E_FULL = -24, OFDPA_E_EXISTS = -25, OFDPA_E_TIMEOUT = -26,
  OFDPA_E_FAIL = -27, OFDPA_E_DISABLED = -28, OFDPA_E_UNAVAIL = -29, OFDPA_E_NOT_FOUND = -30,
  OFDPA_E_EMPTY = -31
}
 OFDPA uses these enumerators to indicate the error codes. More...
 
enum  OFDPA_FLOW_EVENT_MASK_t { OFDPA_FLOW_EVENT_IDLE_TIMEOUT = 1 << 0, OFDPA_FLOW_EVENT_HARD_TIMEOUT = 1 << 1 }
 Flow event type. More...
 
enum  OFDPA_FLOW_TABLE_ID_t {
  OFDPA_FLOW_TABLE_ID_INGRESS_PORT = 0, OFDPA_FLOW_TABLE_ID_VLAN = 10, OFDPA_FLOW_TABLE_ID_TERMINATION_MAC = 20, OFDPA_FLOW_TABLE_ID_UNICAST_ROUTING = 30,
  OFDPA_FLOW_TABLE_ID_MULTICAST_ROUTING = 40, OFDPA_FLOW_TABLE_ID_BRIDGING = 50, OFDPA_FLOW_TABLE_ID_ACL_POLICY = 60
}
 Flow Table Id enumerator. More...
 
enum  OFDPA_GROUP_ENTRY_TYPE_t {
  OFDPA_GROUP_ENTRY_TYPE_L2_INTERFACE = 0, OFDPA_GROUP_ENTRY_TYPE_L2_REWRITE = 1, OFDPA_GROUP_ENTRY_TYPE_L3_UNICAST = 2, OFDPA_GROUP_ENTRY_TYPE_L2_MULTICAST = 3,
  OFDPA_GROUP_ENTRY_TYPE_L2_FLOOD = 4, OFDPA_GROUP_ENTRY_TYPE_L3_INTERFACE = 5, OFDPA_GROUP_ENTRY_TYPE_L3_MULTICAST = 6, OFDPA_GROUP_ENTRY_TYPE_L3_ECMP = 7,
  OFDPA_GROUP_ENTRY_TYPE_L2_OVERLAY = 8, OFDPA_GROUP_ENTRY_TYPE_LAST
}
 Group Type Enumerator. More...
 
enum  OFDPA_L2_OVERLAY_SUBTYPE_t { OFDPA_L2_OVERLAY_FLOOD_UNICAST_TUNNEL = 0, OFDPA_L2_OVERLAY_FLOOD_MULTICAST_TUNNEL = 1, OFDPA_L2_OVERLAY_MULTICAST_UNICAST_TUNNEL = 2, OFDPA_L2_OVERLAY_MULTICAST_MULTICAST_TUNNEL = 3 }
 L2 Overlay Group Sub-type Enumerator. More...
 
enum  OFDPA_PACKET_IN_REASON_t { OFDPA_PACKET_IN_REASON_NO_MATCH = 0, OFDPA_PACKET_IN_REASON_ACTION, OFDPA_PACKET_IN_REASON_INVALID_TTL }
 Packet In reason codes. More...
 
enum  OFDPA_PORT_CONFIG_t { OFDPA_PORT_CONFIG_DOWN = 1 << 0 }
 Flags to indicate behavior of the physical port. More...
 
enum  OFDPA_PORT_EVENT_MASK_t { OFDPA_EVENT_PORT_CREATE = 1 << 0, OFDPA_EVENT_PORT_DELETE = 1 << 1, OFDPA_EVENT_PORT_STATE = 1 << 2 }
 Port event type. More...
 
enum  OFDPA_PORT_FEATURE_t {
  OFDPA_PORT_FEAT_10MB_HD = 1 << 0, OFDPA_PORT_FEAT_10MB_FD = 1 << 1, OFDPA_PORT_FEAT_100MB_HD = 1 << 2, OFDPA_PORT_FEAT_100MB_FD = 1 << 3,
  OFDPA_PORT_FEAT_1GB_HD = 1 << 4, OFDPA_PORT_FEAT_1GB_FD = 1 << 5, OFDPA_PORT_FEAT_10GB_FD = 1 << 6, OFDPA_PORT_FEAT_40GB_FD = 1 << 7,
  OFDPA_PORT_FEAT_100GB_FD = 1 << 8, OFDPA_PORT_FEAT_1TB_FD = 1 << 9, OFDPA_PORT_FEAT_OTHER = 1 << 10, OFDPA_PORT_FEAT_COPPER = 1 << 11,
  OFDPA_PORT_FEAT_FIBER = 1 << 12, OFDPA_PORT_FEAT_AUTONEG = 1 << 13, OFDPA_PORT_FEAT_PAUSE = 1 << 14, OFDPA_PORT_FEAT_PAUSE_ASYM = 1 << 15
}
 Features of ports available in a datapath. More...
 
enum  OFDPA_PORT_STATE_t { OFDPA_PORT_STATE_LINK_DOWN = 1 << 0 }
 Current state of the physical port. More...
 
enum  OFDPA_PORT_TYPE_t { OFDPA_PORT_TYPE_PHYSICAL = 0, OFDPA_PORT_TYPE_LOGICAL_TUNNEL = 1 }
 
enum  OFDPA_TUNNEL_PORT_TYPE_t { OFDPA_TUNNEL_PORT_TYPE_ENDPOINT = 1, OFDPA_TUNNEL_PORT_TYPE_ACCESS }
 
enum  OFDPA_TUNNEL_PROTO_t { OFDPA_TUNNEL_PROTO_VXLAN = 1, OFDPA_TUNNEL_PROTO_NVGRE }
 
enum  ofdpaComponentIds_t {
  OFDPA_COMPONENT_FIRST = 1, OFDPA_COMPONENT_API = OFDPA_COMPONENT_FIRST, OFDPA_COMPONENT_MAPPING, OFDPA_COMPONENT_RPC,
  OFDPA_COMPONENT_OFDB, OFDPA_COMPONENT_DATAPATH, OFDPA_COMPONENT_MAX
}
 Component enumerator. More...
 
enum  ofdpaDebugLevels_t {
  OFDPA_DEBUG_ALWAYS = 0, OFDPA_DEBUG_BASIC, OFDPA_DEBUG_VERBOSE, OFDPA_DEBUG_VERY_VERBOSE,
  OFDPA_DEBUG_TOO_VERBOSE, OFDPA_DEBUG_MAX
}
 Debug verbosity enumerator. More...