FD.io VPP  v20.05-21-gb1500e9ff
Vector Packet Processing
ixge.h File Reference
+ Include dependency graph for ixge.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ixge_dma_regs_t
 
struct  ixge_rx_to_hw_descriptor_t
 
struct  ixge_rx_from_hw_descriptor_t
 
struct  ixge_tx_descriptor_t
 
struct  ixge_tx_context_descriptor_t
 
union  ixge_descriptor_t
 
struct  ixge_regs_t
 
union  ixge_flow_director_key_t
 
struct  ixge_phy_t
 
struct  ixge_dma_queue_t
 
struct  ixge_device_t
 
struct  ixge_main_t
 

Macros

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_LAYER2   (1 << (4 + 11))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP4   (1 << (4 + 0))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP4_EXT   (1 << (4 + 1))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP6   (1 << (4 + 2))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP6_EXT   (1 << (4 + 3))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_IS_TCP   (1 << (4 + 4))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_IS_UDP   (1 << (4 + 5))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_L3_OFFSET(s)   (((s) >> 21) & 0x3ff)
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_OWNED_BY_SOFTWARE   (1 << (0 + 0))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_END_OF_PACKET   (1 << (0 + 1))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_VLAN   (1 << (0 + 3))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_UDP_CHECKSUMMED   (1 << (0 + 4))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_TCP_CHECKSUMMED   (1 << (0 + 5))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_IP4_CHECKSUMMED   (1 << (0 + 6))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_NOT_UNICAST   (1 << (0 + 7))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IS_DOUBLE_VLAN   (1 << (0 + 9))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_UDP_CHECKSUM_ERROR   (1 << (0 + 10))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_ETHERNET_ERROR   (1 << (20 + 9))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_TCP_CHECKSUM_ERROR   (1 << (20 + 10))
 
#define IXGE_RX_DESCRIPTOR_STATUS2_IP4_CHECKSUM_ERROR   (1 << (20 + 11))
 
#define IXGE_RX_DESCRIPTOR_STATUS0_LAYER2_ETHERNET_TYPE(s)   ((s) & 7)
 
#define IXGE_TX_DESCRIPTOR_STATUS0_ADVANCED   (3 << 4)
 
#define IXGE_TX_DESCRIPTOR_STATUS0_IS_ADVANCED   (1 << (8 + 5))
 
#define IXGE_TX_DESCRIPTOR_STATUS0_LOG2_REPORT_STATUS   (8 + 3)
 
#define IXGE_TX_DESCRIPTOR_STATUS0_REPORT_STATUS   (1 << IXGE_TX_DESCRIPTOR_STATUS0_LOG2_REPORT_STATUS)
 
#define IXGE_TX_DESCRIPTOR_STATUS0_INSERT_FCS   (1 << (8 + 1))
 
#define IXGE_TX_DESCRIPTOR_STATUS0_LOG2_IS_END_OF_PACKET   (8 + 0)
 
#define IXGE_TX_DESCRIPTOR_STATUS0_IS_END_OF_PACKET   (1 << IXGE_TX_DESCRIPTOR_STATUS0_LOG2_IS_END_OF_PACKET)
 
#define IXGE_TX_DESCRIPTOR_STATUS1_DONE   (1 << 0)
 
#define IXGE_TX_DESCRIPTOR_STATUS1_CONTEXT(i)   (/* valid */ (1 << 7) | ((i) << 4))
 
#define IXGE_TX_DESCRIPTOR_STATUS1_IPSEC_OFFLOAD   (1 << (8 + 2))
 
#define IXGE_TX_DESCRIPTOR_STATUS1_INSERT_TCP_UDP_CHECKSUM   (1 << (8 + 1))
 
#define IXGE_TX_DESCRIPTOR_STATUS1_INSERT_IP4_CHECKSUM   (1 << (8 + 0))
 
#define IXGE_TX_DESCRIPTOR_STATUS0_N_BYTES_THIS_BUFFER(l)   ((l) << 0)
 
#define IXGE_TX_DESCRIPTOR_STATUS1_N_BYTES_IN_PACKET(l)   ((l) << 14)
 
#define foreach_ixge_counter
 
#define foreach_ixge_pci_device_id
 

Enumerations

enum  ixge_counter_type_t { IXGE_N_COUNTER }
 
enum  ixge_pci_device_id_t { foreach_ixge_pci_device_id }
 
enum  ixge_rx_next_t {
  IXGE_RX_NEXT_IP4_INPUT, IXGE_RX_NEXT_IP6_INPUT, IXGE_RX_NEXT_ETHERNET_INPUT, IXGE_RX_NEXT_DROP,
  IXGE_RX_N_NEXT
}
 

Functions

static void ixge_throttle_queue_interrupt (ixge_regs_t *r, u32 queue_interrupt_index, f64 inter_interrupt_interval_in_secs)
 
void ixge_set_next_node (ixge_rx_next_t, char *)
 

Variables

ixge_main_t ixge_main
 
vnet_device_class_t ixge_device_class
 

Macro Definition Documentation

◆ foreach_ixge_counter

#define foreach_ixge_counter

Definition at line 1016 of file ixge.h.

◆ foreach_ixge_pci_device_id

#define foreach_ixge_pci_device_id
Value:
_ (82598, 0x10b6) \
_ (82598_bx, 0x1508) \
_ (82598af_dual_port, 0x10c6) \
_ (82598af_single_port, 0x10c7) \
_ (82598at, 0x10c8) \
_ (82598at2, 0x150b) \
_ (82598eb_sfp_lom, 0x10db) \
_ (82598eb_cx4, 0x10dd) \
_ (82598_cx4_dual_port, 0x10ec) \
_ (82598_da_dual_port, 0x10f1) \
_ (82598_sr_dual_port_em, 0x10e1) \
_ (82598eb_xf_lr, 0x10f4) \
_ (82599_kx4, 0x10f7) \
_ (82599_kx4_mezz, 0x1514) \
_ (82599_kr, 0x1517) \
_ (82599_combo_backplane, 0x10f8) \
_ (82599_cx4, 0x10f9) \
_ (82599_sfp, 0x10fb) \
_ (82599_backplane_fcoe, 0x152a) \
_ (82599_sfp_fcoe, 0x1529) \
_ (82599_sfp_em, 0x1507) \
_ (82599_xaui_lom, 0x10fc) \
_ (82599_t3_lom, 0x151c) \
_ (x540t, 0x1528)

Definition at line 1169 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_IP4

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP4   (1 << (4 + 0))

Definition at line 102 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_IP4_EXT

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP4_EXT   (1 << (4 + 1))

Definition at line 103 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_IP6

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP6   (1 << (4 + 2))

Definition at line 104 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_IP6_EXT

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_IP6_EXT   (1 << (4 + 3))

Definition at line 105 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_LAYER2

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_LAYER2   (1 << (4 + 11))

Definition at line 100 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_TCP

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_TCP   (1 << (4 + 4))

Definition at line 106 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_IS_UDP

#define IXGE_RX_DESCRIPTOR_STATUS0_IS_UDP   (1 << (4 + 5))

Definition at line 107 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_L3_OFFSET

#define IXGE_RX_DESCRIPTOR_STATUS0_L3_OFFSET (   s)    (((s) >> 21) & 0x3ff)

Definition at line 108 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS0_LAYER2_ETHERNET_TYPE

#define IXGE_RX_DESCRIPTOR_STATUS0_LAYER2_ETHERNET_TYPE (   s)    ((s) & 7)

Definition at line 124 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_ETHERNET_ERROR

#define IXGE_RX_DESCRIPTOR_STATUS2_ETHERNET_ERROR   (1 << (20 + 9))

Definition at line 119 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IP4_CHECKSUM_ERROR

#define IXGE_RX_DESCRIPTOR_STATUS2_IP4_CHECKSUM_ERROR   (1 << (20 + 11))

Definition at line 121 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_DOUBLE_VLAN

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_DOUBLE_VLAN   (1 << (0 + 9))

Definition at line 117 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_END_OF_PACKET

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_END_OF_PACKET   (1 << (0 + 1))

Definition at line 111 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_IP4_CHECKSUMMED

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_IP4_CHECKSUMMED   (1 << (0 + 6))

Definition at line 115 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_OWNED_BY_SOFTWARE

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_OWNED_BY_SOFTWARE   (1 << (0 + 0))

Definition at line 110 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_TCP_CHECKSUMMED

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_TCP_CHECKSUMMED   (1 << (0 + 5))

Definition at line 114 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_UDP_CHECKSUMMED

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_UDP_CHECKSUMMED   (1 << (0 + 4))

Definition at line 113 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_IS_VLAN

#define IXGE_RX_DESCRIPTOR_STATUS2_IS_VLAN   (1 << (0 + 3))

Definition at line 112 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_NOT_UNICAST

#define IXGE_RX_DESCRIPTOR_STATUS2_NOT_UNICAST   (1 << (0 + 7))

Definition at line 116 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_TCP_CHECKSUM_ERROR

#define IXGE_RX_DESCRIPTOR_STATUS2_TCP_CHECKSUM_ERROR   (1 << (20 + 10))

Definition at line 120 of file ixge.h.

◆ IXGE_RX_DESCRIPTOR_STATUS2_UDP_CHECKSUM_ERROR

#define IXGE_RX_DESCRIPTOR_STATUS2_UDP_CHECKSUM_ERROR   (1 << (0 + 10))

Definition at line 118 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_ADVANCED

#define IXGE_TX_DESCRIPTOR_STATUS0_ADVANCED   (3 << 4)

Definition at line 132 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_INSERT_FCS

#define IXGE_TX_DESCRIPTOR_STATUS0_INSERT_FCS   (1 << (8 + 1))

Definition at line 136 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_IS_ADVANCED

#define IXGE_TX_DESCRIPTOR_STATUS0_IS_ADVANCED   (1 << (8 + 5))

Definition at line 133 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_IS_END_OF_PACKET

#define IXGE_TX_DESCRIPTOR_STATUS0_IS_END_OF_PACKET   (1 << IXGE_TX_DESCRIPTOR_STATUS0_LOG2_IS_END_OF_PACKET)

Definition at line 138 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_LOG2_IS_END_OF_PACKET

#define IXGE_TX_DESCRIPTOR_STATUS0_LOG2_IS_END_OF_PACKET   (8 + 0)

Definition at line 137 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_LOG2_REPORT_STATUS

#define IXGE_TX_DESCRIPTOR_STATUS0_LOG2_REPORT_STATUS   (8 + 3)

Definition at line 134 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_N_BYTES_THIS_BUFFER

#define IXGE_TX_DESCRIPTOR_STATUS0_N_BYTES_THIS_BUFFER (   l)    ((l) << 0)

Definition at line 144 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS0_REPORT_STATUS

#define IXGE_TX_DESCRIPTOR_STATUS0_REPORT_STATUS   (1 << IXGE_TX_DESCRIPTOR_STATUS0_LOG2_REPORT_STATUS)

Definition at line 135 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS1_CONTEXT

#define IXGE_TX_DESCRIPTOR_STATUS1_CONTEXT (   i)    (/* valid */ (1 << 7) | ((i) << 4))

Definition at line 140 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS1_DONE

#define IXGE_TX_DESCRIPTOR_STATUS1_DONE   (1 << 0)

Definition at line 139 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS1_INSERT_IP4_CHECKSUM

#define IXGE_TX_DESCRIPTOR_STATUS1_INSERT_IP4_CHECKSUM   (1 << (8 + 0))

Definition at line 143 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS1_INSERT_TCP_UDP_CHECKSUM

#define IXGE_TX_DESCRIPTOR_STATUS1_INSERT_TCP_UDP_CHECKSUM   (1 << (8 + 1))

Definition at line 142 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS1_IPSEC_OFFLOAD

#define IXGE_TX_DESCRIPTOR_STATUS1_IPSEC_OFFLOAD   (1 << (8 + 2))

Definition at line 141 of file ixge.h.

◆ IXGE_TX_DESCRIPTOR_STATUS1_N_BYTES_IN_PACKET

#define IXGE_TX_DESCRIPTOR_STATUS1_N_BYTES_IN_PACKET (   l)    ((l) << 14)

Definition at line 145 of file ixge.h.

Enumeration Type Documentation

◆ ixge_counter_type_t

Enumerator
IXGE_N_COUNTER 

Definition at line 1101 of file ixge.h.

◆ ixge_pci_device_id_t

Enumerator
foreach_ixge_pci_device_id 

Definition at line 1195 of file ixge.h.

◆ ixge_rx_next_t

Enumerator
IXGE_RX_NEXT_IP4_INPUT 
IXGE_RX_NEXT_IP6_INPUT 
IXGE_RX_NEXT_ETHERNET_INPUT 
IXGE_RX_NEXT_DROP 
IXGE_RX_N_NEXT 

Definition at line 1273 of file ixge.h.

Function Documentation

◆ ixge_set_next_node()

void ixge_set_next_node ( ixge_rx_next_t  ,
char *   
)

Definition at line 2906 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_throttle_queue_interrupt()

static void ixge_throttle_queue_interrupt ( ixge_regs_t r,
u32  queue_interrupt_index,
f64  inter_interrupt_interval_in_secs 
)
inlinestatic

Definition at line 994 of file ixge.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ ixge_device_class

vnet_device_class_t ixge_device_class

◆ ixge_main

ixge_main_t ixge_main

Definition at line 55 of file ixge.c.