DPDK  18.11.11
Data Structures | Macros | Enumerations
rte_eth_ctrl.h File Reference
#include <stdint.h>
#include <rte_common.h>
#include <rte_ether.h>

Go to the source code of this file.

Data Structures

struct  rte_eth_mac_filter
 
struct  rte_eth_ethertype_filter
 
struct  rte_eth_flex_filter
 
struct  rte_eth_syn_filter
 
struct  rte_eth_ntuple_filter
 
struct  rte_eth_tunnel_filter_conf
 
struct  rte_eth_global_cfg
 
struct  rte_eth_input_set_conf
 
struct  rte_eth_l2_flow
 
struct  rte_eth_ipv4_flow
 
struct  rte_eth_udpv4_flow
 
struct  rte_eth_tcpv4_flow
 
struct  rte_eth_sctpv4_flow
 
struct  rte_eth_ipv6_flow
 
struct  rte_eth_udpv6_flow
 
struct  rte_eth_tcpv6_flow
 
struct  rte_eth_sctpv6_flow
 
struct  rte_eth_mac_vlan_flow
 
struct  rte_eth_tunnel_flow
 
union  rte_eth_fdir_flow
 
struct  rte_eth_fdir_flow_ext
 
struct  rte_eth_fdir_input
 
struct  rte_eth_fdir_action
 
struct  rte_eth_fdir_filter
 
struct  rte_eth_fdir_masks
 
struct  rte_eth_flex_payload_cfg
 
struct  rte_eth_fdir_flex_mask
 
struct  rte_eth_fdir_flex_conf
 
struct  rte_eth_fdir_info
 
struct  rte_eth_fdir_stats
 
struct  rte_eth_fdir_filter_info
 
struct  rte_eth_hash_global_conf
 
struct  rte_eth_hash_filter_info
 
struct  rte_eth_l2_tunnel_conf
 

Macros

#define RTE_ETH_FLOW_PORT   18
 
#define RTE_ETH_FLOW_VXLAN   19
 
#define RTE_ETH_FLOW_GENEVE   20
 
#define RTE_ETH_FLOW_NVGRE   21
 
#define RTE_ETH_FLOW_VXLAN_GPE   22
 
#define RTE_ETHTYPE_FLAGS_MAC   0x0001
 
#define RTE_ETHTYPE_FLAGS_DROP   0x0002
 
#define RTE_FLEX_FILTER_MAXLEN   128
 
#define RTE_FLEX_FILTER_MASK_SIZE   (RTE_ALIGN(RTE_FLEX_FILTER_MAXLEN, CHAR_BIT) / CHAR_BIT)
 
#define RTE_NTUPLE_FLAGS_DST_IP   0x0001
 
#define RTE_NTUPLE_FLAGS_SRC_IP   0x0002
 
#define RTE_NTUPLE_FLAGS_DST_PORT   0x0004
 
#define RTE_NTUPLE_FLAGS_SRC_PORT   0x0008
 
#define RTE_NTUPLE_FLAGS_PROTO   0x0010
 
#define RTE_NTUPLE_FLAGS_TCP_FLAG   0x0020
 
#define ETH_TUNNEL_FILTER_OMAC   0x01
 
#define ETH_TUNNEL_FILTER_OIP   0x02
 
#define ETH_TUNNEL_FILTER_TENID   0x04
 
#define ETH_TUNNEL_FILTER_IMAC   0x08
 
#define ETH_TUNNEL_FILTER_IVLAN   0x10
 
#define ETH_TUNNEL_FILTER_IIP   0x20
 
#define RTE_ETH_FDIR_MAX_FLEXLEN   16
 
#define RTE_ETH_INSET_SIZE_MAX   128
 

Enumerations

enum  rte_filter_type
 
enum  rte_filter_op {
  RTE_ETH_FILTER_NOP = 0, RTE_ETH_FILTER_ADD, RTE_ETH_FILTER_UPDATE, RTE_ETH_FILTER_DELETE,
  RTE_ETH_FILTER_FLUSH, RTE_ETH_FILTER_GET, RTE_ETH_FILTER_SET, RTE_ETH_FILTER_INFO,
  RTE_ETH_FILTER_STATS
}
 
enum  rte_mac_filter_type { RTE_MAC_PERFECT_MATCH = 1, RTE_MACVLAN_PERFECT_MATCH, RTE_MAC_HASH_MATCH, RTE_MACVLAN_HASH_MATCH }
 
enum  rte_eth_tunnel_type
 
enum  rte_tunnel_iptype { RTE_TUNNEL_IPTYPE_IPV4 = 0, RTE_TUNNEL_IPTYPE_IPV6 }
 
enum  rte_eth_global_cfg_type
 
enum  rte_eth_input_set_field
 
enum  rte_filter_input_set_op { , RTE_ETH_INPUT_SET_SELECT, RTE_ETH_INPUT_SET_ADD }
 
enum  rte_eth_fdir_tunnel_type
 
enum  rte_eth_fdir_behavior
 
enum  rte_eth_fdir_status { RTE_ETH_FDIR_NO_REPORT_STATUS = 0, RTE_ETH_FDIR_REPORT_ID, RTE_ETH_FDIR_REPORT_ID_FLEX_4, RTE_ETH_FDIR_REPORT_FLEX_8 }
 
enum  rte_eth_payload_type
 
enum  rte_fdir_mode {
  RTE_FDIR_MODE_NONE = 0, RTE_FDIR_MODE_SIGNATURE, RTE_FDIR_MODE_PERFECT, RTE_FDIR_MODE_PERFECT_MAC_VLAN,
  RTE_FDIR_MODE_PERFECT_TUNNEL
}
 
enum  rte_eth_fdir_filter_info_type { , RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT }
 
enum  rte_eth_hash_filter_info_type { , RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT, RTE_ETH_HASH_FILTER_GLOBAL_CONFIG, RTE_ETH_HASH_FILTER_INPUT_SET_SELECT }
 
enum  rte_eth_hash_function { , RTE_ETH_HASH_FUNCTION_TOEPLITZ, RTE_ETH_HASH_FUNCTION_SIMPLE_XOR }
 

Detailed Description

Ethernet device features and related data structures used by control APIs should be defined in this file.

Definition in file rte_eth_ctrl.h.

Macro Definition Documentation

#define RTE_ETH_FLOW_PORT   18

Consider device port number as a flow differentiator

Definition at line 52 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_VXLAN   19

VXLAN protocol based flow

Definition at line 54 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_GENEVE   20

GENEVE protocol based flow

Definition at line 55 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_NVGRE   21

NVGRE protocol based flow

Definition at line 56 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_VXLAN_GPE   22

VXLAN-GPE protocol based flow

Definition at line 57 of file rte_eth_ctrl.h.

#define RTE_ETHTYPE_FLAGS_MAC   0x0001

Define all structures for Ethertype Filter type.If set, compare mac

Definition at line 120 of file rte_eth_ctrl.h.

#define RTE_ETHTYPE_FLAGS_DROP   0x0002

If set, drop packet when match

Definition at line 121 of file rte_eth_ctrl.h.

#define RTE_FLEX_FILTER_MAXLEN   128

bytes to use in flex filter.

Definition at line 135 of file rte_eth_ctrl.h.

#define RTE_FLEX_FILTER_MASK_SIZE   (RTE_ALIGN(RTE_FLEX_FILTER_MAXLEN, CHAR_BIT) / CHAR_BIT)

mask bytes in flex filter.

Definition at line 136 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_DST_IP   0x0001

Define all structures for ntuple Filter type.If set, dst_ip is part of ntuple

Definition at line 169 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_SRC_IP   0x0002

If set, src_ip is part of ntuple

Definition at line 170 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_DST_PORT   0x0004

If set, dst_port is part of ntuple

Definition at line 171 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_SRC_PORT   0x0008

If set, src_port is part of ntuple

Definition at line 172 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_PROTO   0x0010

If set, protocol is part of ntuple

Definition at line 173 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_TCP_FLAG   0x0020

If set, tcp flag is involved

Definition at line 174 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_OMAC   0x01

filter type of tunneling packetfilter by outer MAC addr

Definition at line 238 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_OIP   0x02

filter by outer IP Addr

Definition at line 239 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_TENID   0x04

filter by tenant ID

Definition at line 240 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_IMAC   0x08

filter by inner MAC addr

Definition at line 241 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_IVLAN   0x10

filter by inner VLAN ID

Definition at line 242 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_IIP   0x20

filter by inner IP addr

Definition at line 243 of file rte_eth_ctrl.h.

#define RTE_ETH_FDIR_MAX_FLEXLEN   16

Max length of flexbytes.

Definition at line 306 of file rte_eth_ctrl.h.

#define RTE_ETH_INSET_SIZE_MAX   128

Max length of input set.

Definition at line 307 of file rte_eth_ctrl.h.

Enumeration Type Documentation

Feature filter types

Definition at line 63 of file rte_eth_ctrl.h.

Generic operations on filters

Enumerator
RTE_ETH_FILTER_NOP 

used to check whether the type filter is supported

RTE_ETH_FILTER_ADD 

add filter entry

RTE_ETH_FILTER_UPDATE 

update filter entry

RTE_ETH_FILTER_DELETE 

delete filter entry

RTE_ETH_FILTER_FLUSH 

flush all entries

RTE_ETH_FILTER_GET 

get filter entry

RTE_ETH_FILTER_SET 

configurations

RTE_ETH_FILTER_INFO 

retrieve information

RTE_ETH_FILTER_STATS 

retrieve statistics

Definition at line 81 of file rte_eth_ctrl.h.

MAC filter type

Enumerator
RTE_MAC_PERFECT_MATCH 

exact match of MAC addr.

RTE_MACVLAN_PERFECT_MATCH 

exact match of MAC addr and VLAN ID.

RTE_MAC_HASH_MATCH 

hash match of MAC addr.

RTE_MACVLAN_HASH_MATCH 

hash match of MAC addr and exact match of VLAN ID.

Definition at line 98 of file rte_eth_ctrl.h.

Tunneled type.

Definition at line 224 of file rte_eth_ctrl.h.

Select IPv4 or IPv6 for tunnel filters.

Enumerator
RTE_TUNNEL_IPTYPE_IPV4 

IPv4.

RTE_TUNNEL_IPTYPE_IPV6 

IPv6.

Definition at line 259 of file rte_eth_ctrl.h.

Global eth device configuration type.

Definition at line 289 of file rte_eth_ctrl.h.

Input set fields for Flow Director and Hash filters

Definition at line 312 of file rte_eth_ctrl.h.

Filters input set operations

Enumerator
RTE_ETH_INPUT_SET_SELECT 

select input set

RTE_ETH_INPUT_SET_ADD 

add input set entry

Definition at line 368 of file rte_eth_ctrl.h.

Tunnel type for flow director.

Definition at line 482 of file rte_eth_ctrl.h.

Behavior will be taken if FDIR match

Definition at line 542 of file rte_eth_ctrl.h.

Flow director report status It defines what will be reported if FDIR entry is matched.

Enumerator
RTE_ETH_FDIR_NO_REPORT_STATUS 

Report nothing.

RTE_ETH_FDIR_REPORT_ID 

Only report FD ID.

RTE_ETH_FDIR_REPORT_ID_FLEX_4 

Report FD ID and 4 flex bytes.

RTE_ETH_FDIR_REPORT_FLEX_8 

Report 8 flex bytes.

Definition at line 552 of file rte_eth_ctrl.h.

Payload type

Definition at line 610 of file rte_eth_ctrl.h.

Flow Director setting modes: none, signature or perfect.

Enumerator
RTE_FDIR_MODE_NONE 

Disable FDIR support.

RTE_FDIR_MODE_SIGNATURE 

Enable FDIR signature filter mode.

RTE_FDIR_MODE_PERFECT 

Enable FDIR perfect filter mode.

RTE_FDIR_MODE_PERFECT_MAC_VLAN 

Enable FDIR filter mode - MAC VLAN.

RTE_FDIR_MODE_PERFECT_TUNNEL 

Enable FDIR filter mode - tunnel.

Definition at line 658 of file rte_eth_ctrl.h.

Flow Director filter information types.

Enumerator
RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT 

Flow Director filter input set configuration

Definition at line 726 of file rte_eth_ctrl.h.

Hash filter information types.

  • RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT is for getting/setting the information/configuration of 'symmetric hash enable' per port.
  • RTE_ETH_HASH_FILTER_GLOBAL_CONFIG is for getting/setting the global configurations of hash filters. Those global configurations are valid for all ports of the same NIC.
  • RTE_ETH_HASH_FILTER_INPUT_SET_SELECT is for setting the global hash input set fields
Enumerator
RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT 

Symmetric hash enable per port

RTE_ETH_HASH_FILTER_GLOBAL_CONFIG 

Configure globally for hash filter

RTE_ETH_HASH_FILTER_INPUT_SET_SELECT 

Global Hash filter input set configuration

Definition at line 756 of file rte_eth_ctrl.h.

Hash function types.

Enumerator
RTE_ETH_HASH_FUNCTION_TOEPLITZ 

Toeplitz

RTE_ETH_HASH_FUNCTION_SIMPLE_XOR 

Simple XOR

Definition at line 770 of file rte_eth_ctrl.h.