Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/bhyve/net_backends.h
Show First 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | |||||
/* | /* | ||||
* Network device capabilities taken from the VirtIO standard. | * Network device capabilities taken from the VirtIO standard. | ||||
* Despite the name, these capabilities can be used by different frontents | * Despite the name, these capabilities can be used by different frontents | ||||
* (virtio-net, ptnet) and supported by different backends (netmap, tap, ...). | * (virtio-net, ptnet) and supported by different backends (netmap, tap, ...). | ||||
*/ | */ | ||||
#define VIRTIO_NET_F_CSUM (1 << 0) /* host handles partial cksum */ | #define VIRTIO_NET_F_CSUM (1 << 0) /* host handles partial cksum */ | ||||
#define VIRTIO_NET_F_GUEST_CSUM (1 << 1) /* guest handles partial cksum */ | #define VIRTIO_NET_F_GUEST_CSUM (1 << 1) /* guest handles partial cksum */ | ||||
#define VIRTIO_NET_F_MTU (1 << 3) /* initial MTU advice */ | |||||
#define VIRTIO_NET_F_MAC (1 << 5) /* host supplies MAC */ | #define VIRTIO_NET_F_MAC (1 << 5) /* host supplies MAC */ | ||||
#define VIRTIO_NET_F_GSO_DEPREC (1 << 6) /* deprecated: host handles GSO */ | #define VIRTIO_NET_F_GSO_DEPREC (1 << 6) /* deprecated: host handles GSO */ | ||||
#define VIRTIO_NET_F_GUEST_TSO4 (1 << 7) /* guest can rcv TSOv4 */ | #define VIRTIO_NET_F_GUEST_TSO4 (1 << 7) /* guest can rcv TSOv4 */ | ||||
#define VIRTIO_NET_F_GUEST_TSO6 (1 << 8) /* guest can rcv TSOv6 */ | #define VIRTIO_NET_F_GUEST_TSO6 (1 << 8) /* guest can rcv TSOv6 */ | ||||
#define VIRTIO_NET_F_GUEST_ECN (1 << 9) /* guest can rcv TSO with ECN */ | #define VIRTIO_NET_F_GUEST_ECN (1 << 9) /* guest can rcv TSO with ECN */ | ||||
#define VIRTIO_NET_F_GUEST_UFO (1 << 10) /* guest can rcv UFO */ | #define VIRTIO_NET_F_GUEST_UFO (1 << 10) /* guest can rcv UFO */ | ||||
#define VIRTIO_NET_F_HOST_TSO4 (1 << 11) /* host can rcv TSOv4 */ | #define VIRTIO_NET_F_HOST_TSO4 (1 << 11) /* host can rcv TSOv4 */ | ||||
#define VIRTIO_NET_F_HOST_TSO6 (1 << 12) /* host can rcv TSOv6 */ | #define VIRTIO_NET_F_HOST_TSO6 (1 << 12) /* host can rcv TSOv6 */ | ||||
#define VIRTIO_NET_F_HOST_ECN (1 << 13) /* host can rcv TSO with ECN */ | #define VIRTIO_NET_F_HOST_ECN (1 << 13) /* host can rcv TSO with ECN */ | ||||
#define VIRTIO_NET_F_HOST_UFO (1 << 14) /* host can rcv UFO */ | #define VIRTIO_NET_F_HOST_UFO (1 << 14) /* host can rcv UFO */ | ||||
#define VIRTIO_NET_F_MRG_RXBUF (1 << 15) /* host can merge RX buffers */ | #define VIRTIO_NET_F_MRG_RXBUF (1 << 15) /* host can merge RX buffers */ | ||||
#define VIRTIO_NET_F_STATUS (1 << 16) /* config status field available */ | #define VIRTIO_NET_F_STATUS (1 << 16) /* config status field available */ | ||||
#define VIRTIO_NET_F_CTRL_VQ (1 << 17) /* control channel available */ | #define VIRTIO_NET_F_CTRL_VQ (1 << 17) /* control channel available */ | ||||
#define VIRTIO_NET_F_CTRL_RX (1 << 18) /* control channel RX mode support */ | #define VIRTIO_NET_F_CTRL_RX (1 << 18) /* control channel RX mode support */ | ||||
#define VIRTIO_NET_F_CTRL_VLAN (1 << 19) /* control channel VLAN filtering */ | #define VIRTIO_NET_F_CTRL_VLAN (1 << 19) /* control channel VLAN filtering */ | ||||
#define VIRTIO_NET_F_GUEST_ANNOUNCE \ | #define VIRTIO_NET_F_GUEST_ANNOUNCE \ | ||||
(1 << 21) /* guest can send gratuitous pkts */ | (1 << 21) /* guest can send gratuitous pkts */ | ||||
vmaffione: s/multiqueues/multiple VQ pairs | |||||
/* | /* | ||||
* Fixed network header size | * Fixed network header size | ||||
*/ | */ | ||||
struct virtio_net_rxhdr { | struct virtio_net_rxhdr { | ||||
uint8_t vrh_flags; | uint8_t vrh_flags; | ||||
uint8_t vrh_gso_type; | uint8_t vrh_gso_type; | ||||
uint16_t vrh_hdr_len; | uint16_t vrh_hdr_len; | ||||
uint16_t vrh_gso_size; | uint16_t vrh_gso_size; | ||||
uint16_t vrh_csum_start; | uint16_t vrh_csum_start; | ||||
uint16_t vrh_csum_offset; | uint16_t vrh_csum_offset; | ||||
uint16_t vrh_bufs; | uint16_t vrh_bufs; | ||||
} __packed; | } __packed; | ||||
#endif /* __NET_BACKENDS_H__ */ | #endif /* __NET_BACKENDS_H__ */ |
s/multiqueues/multiple VQ pairs