|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
16 #ifndef __included_virtio_pci_h__
17 #define __included_virtio_pci_h__
20 #define VIRTIO_PCI_ABI_VERSION 0
23 #define VIRTIO_ID_NETWORK 0x01
29 #define VIRTIO_MSI_NO_VECTOR 0xFFFF
32 #define VIRTIO_PCI_ISR_INTR 0x1
34 #define VIRTIO_PCI_ISR_CONFIG 0x2
37 #define foreach_virtio_config_status_flags \
38 _ (VIRTIO_CONFIG_STATUS_RESET, 0x00) \
39 _ (VIRTIO_CONFIG_STATUS_ACK, 0x01) \
40 _ (VIRTIO_CONFIG_STATUS_DRIVER, 0x02) \
41 _ (VIRTIO_CONFIG_STATUS_DRIVER_OK, 0x04) \
42 _ (VIRTIO_CONFIG_STATUS_FEATURES_OK, 0x08) \
43 _ (VIRTIO_CONFIG_STATUS_DEVICE_NEEDS_RESET, 0x40) \
44 _ (VIRTIO_CONFIG_STATUS_FAILED, 0x80)
48 #define _(a, b) a = b,
54 #define VIRTIO_NET_S_LINK_UP 1
55 #define VIRTIO_NET_S_ANNOUNCE 2
57 #define VIRTIO_NET_OK 0
58 #define VIRTIO_NET_ERR 1
61 #define VIRTIO_NET_CTRL_MQ 4
62 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0
63 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1
64 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000
74 #define VIRTIO_NET_CTRL_GUEST_OFFLOADS 5
75 #define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET 0
78 #define VIRTIO_PCI_CAP_COMMON_CFG 1
80 #define VIRTIO_PCI_CAP_NOTIFY_CFG 2
82 #define VIRTIO_PCI_CAP_ISR_CFG 3
84 #define VIRTIO_PCI_CAP_DEVICE_CFG 4
86 #define VIRTIO_PCI_CAP_PCI_CFG 5
88 #define VIRTIO_PCI_QUEUE_ADDR_SHIFT 12
90 #define VIRTIO_PCI_VRING_ALIGN 4096
162 }) virtio_net_ctrl_hdr_t;
174 typedef struct _virtio_pci_func
201 u16 queue_notify_offset);
215 #define foreach_virtio_flags \
217 _ (CSUM_OFFLOAD, 1) \
218 _ (GRO_COALESCE, 2) \
225 #define _(a, b) VIRTIO_FLAG_##a = (1 << b),
255 int checksum_offload_enabled,
256 int offloads_disabled);
virtio_net_ctrl_ack_t status
virtio_config_status_flags_t
void virtio_pci_create_if(vlib_main_t *vm, virtio_pci_create_if_args_t *args)
virtio_net_ctrl_hdr_t ctrl
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
u32 device_feature_select
#define foreach_virtio_config_status_flags
#define foreach_virtio_flags
int virtio_pci_delete_if(vlib_main_t *vm, virtio_if_t *ad)
typedef CLIB_PACKED(struct { u8 class;u8 cmd;}) virtio_net_ctrl_hdr_t
u8 checksum_offload_enabled
vl_api_mac_address_t mac_addr
const virtio_pci_func_t virtio_pci_legacy_func
u32 notify_off_multiplier
const virtio_pci_func_t virtio_pci_modern_func
int virtio_pci_enable_disable_offloads(vlib_main_t *vm, virtio_if_t *vif, int gso_enabled, int checksum_offload_enabled, int offloads_disabled)
u32 driver_feature_select
struct _virtio_pci_func virtio_pci_func_t
void device_status(vlib_main_t *vm, virtio_if_t *vif)