DPDK  2.0.0
Data Structures | Macros | Enumerations
rte_eth_ctrl.h File Reference

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_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
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_hash_global_conf
struct  rte_eth_hash_filter_info

Macros

#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

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_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 }
enum  rte_eth_hash_filter_info_type { , RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT, RTE_ETH_HASH_FILTER_GLOBAL_CONFIG }
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.

Macro Definition Documentation

#define ETH_TUNNEL_FILTER_IIP   0x20

filter by inner IP addr

#define ETH_TUNNEL_FILTER_IMAC   0x08

filter by inner MAC addr

#define ETH_TUNNEL_FILTER_IVLAN   0x10

filter by inner VLAN ID

#define ETH_TUNNEL_FILTER_OIP   0x02

filter by outer IP Addr

#define ETH_TUNNEL_FILTER_OMAC   0x01

filter type of tunneling packetfilter by outer MAC addr

#define ETH_TUNNEL_FILTER_TENID   0x04

filter by tenant ID

#define RTE_ETHTYPE_FLAGS_DROP   0x0002

If set, drop packet when match

#define RTE_ETHTYPE_FLAGS_MAC   0x0001

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

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

mask bytes in flex filter.

#define RTE_FLEX_FILTER_MAXLEN   128

bytes to use in flex filter.

#define RTE_NTUPLE_FLAGS_DST_IP   0x0001

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

#define RTE_NTUPLE_FLAGS_DST_PORT   0x0004

If set, dst_port is part of ntuple

#define RTE_NTUPLE_FLAGS_PROTO   0x0010

If set, protocol is part of ntuple

#define RTE_NTUPLE_FLAGS_SRC_IP   0x0002

If set, src_ip is part of ntuple

#define RTE_NTUPLE_FLAGS_SRC_PORT   0x0008

If set, src_port is part of ntuple

#define RTE_NTUPLE_FLAGS_TCP_FLAG   0x0020

If set, tcp flag is involved

Enumeration Type Documentation

Behavior will be taken if FDIR match

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.

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

Hash function types.

Enumerator:
RTE_ETH_HASH_FUNCTION_TOEPLITZ 

Toeplitz

RTE_ETH_HASH_FUNCTION_SIMPLE_XOR 

Simple XOR

Payload type

Tunneled type.

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.

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

Feature filter types

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.

Select IPv4 or IPv6 for tunnel filters.

Enumerator:
RTE_TUNNEL_IPTYPE_IPV4 

IPv4.

RTE_TUNNEL_IPTYPE_IPV6 

IPv6.