DPDK: Data Plane Development Kit

18.02.0-rc0
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_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 81 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_VXLAN   19

VXLAN protocol based flow

Definition at line 83 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_GENEVE   20

GENEVE protocol based flow

Definition at line 84 of file rte_eth_ctrl.h.

#define RTE_ETH_FLOW_NVGRE   21

NVGRE protocol based flow

Definition at line 85 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 148 of file rte_eth_ctrl.h.

#define RTE_ETHTYPE_FLAGS_DROP   0x0002

If set, drop packet when match

Definition at line 149 of file rte_eth_ctrl.h.

#define RTE_FLEX_FILTER_MAXLEN   128

bytes to use in flex filter.

Definition at line 163 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 164 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 197 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_SRC_IP   0x0002

If set, src_ip is part of ntuple

Definition at line 198 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_DST_PORT   0x0004

If set, dst_port is part of ntuple

Definition at line 199 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_SRC_PORT   0x0008

If set, src_port is part of ntuple

Definition at line 200 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_PROTO   0x0010

If set, protocol is part of ntuple

Definition at line 201 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_TCP_FLAG   0x0020

If set, tcp flag is involved

Definition at line 202 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_OMAC   0x01

filter type of tunneling packetfilter by outer MAC addr

Definition at line 266 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_OIP   0x02

filter by outer IP Addr

Definition at line 267 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_TENID   0x04

filter by tenant ID

Definition at line 268 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_IMAC   0x08

filter by inner MAC addr

Definition at line 269 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_IVLAN   0x10

filter by inner VLAN ID

Definition at line 270 of file rte_eth_ctrl.h.

#define ETH_TUNNEL_FILTER_IIP   0x20

filter by inner IP addr

Definition at line 271 of file rte_eth_ctrl.h.

#define RTE_ETH_FDIR_MAX_FLEXLEN   16

Max length of flexbytes.

Definition at line 334 of file rte_eth_ctrl.h.

#define RTE_ETH_INSET_SIZE_MAX   128

Max length of input set.

Definition at line 335 of file rte_eth_ctrl.h.

Enumeration Type Documentation

Feature filter types

Definition at line 91 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 109 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 126 of file rte_eth_ctrl.h.

Tunneled type.

Definition at line 252 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 287 of file rte_eth_ctrl.h.

Global eth device configuration type.

Definition at line 317 of file rte_eth_ctrl.h.

Input set fields for Flow Director and Hash filters

Definition at line 340 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 396 of file rte_eth_ctrl.h.

Tunnel type for flow director.

Definition at line 510 of file rte_eth_ctrl.h.

Behavior will be taken if FDIR match

Definition at line 570 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 580 of file rte_eth_ctrl.h.

Payload type

Definition at line 638 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 686 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 754 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 784 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 798 of file rte_eth_ctrl.h.