mirror of https://github.com/vishvananda/netlink
133 lines
6.6 KiB
Go
133 lines
6.6 KiB
Go
|
package netlink
|
||
|
|
||
|
// features for virtio net
|
||
|
const (
|
||
|
VIRTIO_NET_F_CSUM = 0 // Host handles pkts w/ partial csum
|
||
|
VIRTIO_NET_F_GUEST_CSUM = 1 // Guest handles pkts w/ partial csum
|
||
|
VIRTIO_NET_F_CTRL_GUEST_OFFLOADS = 2 // Dynamic offload configuration.
|
||
|
VIRTIO_NET_F_MTU = 3 // Initial MTU advice
|
||
|
VIRTIO_NET_F_MAC = 5 // Host has given MAC address.
|
||
|
VIRTIO_NET_F_GUEST_TSO4 = 7 // Guest can handle TSOv4 in.
|
||
|
VIRTIO_NET_F_GUEST_TSO6 = 8 // Guest can handle TSOv6 in.
|
||
|
VIRTIO_NET_F_GUEST_ECN = 9 // Guest can handle TSO[6] w/ ECN in.
|
||
|
VIRTIO_NET_F_GUEST_UFO = 10 // Guest can handle UFO in.
|
||
|
VIRTIO_NET_F_HOST_TSO4 = 11 // Host can handle TSOv4 in.
|
||
|
VIRTIO_NET_F_HOST_TSO6 = 12 // Host can handle TSOv6 in.
|
||
|
VIRTIO_NET_F_HOST_ECN = 13 // Host can handle TSO[6] w/ ECN in.
|
||
|
VIRTIO_NET_F_HOST_UFO = 14 // Host can handle UFO in.
|
||
|
VIRTIO_NET_F_MRG_RXBUF = 15 // Host can merge receive buffers.
|
||
|
VIRTIO_NET_F_STATUS = 16 // virtio_net_config.status available
|
||
|
VIRTIO_NET_F_CTRL_VQ = 17 // Control channel available
|
||
|
VIRTIO_NET_F_CTRL_RX = 18 // Control channel RX mode support
|
||
|
VIRTIO_NET_F_CTRL_VLAN = 19 // Control channel VLAN filtering
|
||
|
VIRTIO_NET_F_CTRL_RX_EXTRA = 20 // Extra RX mode control support
|
||
|
VIRTIO_NET_F_GUEST_ANNOUNCE = 21 // Guest can announce device on the* network
|
||
|
VIRTIO_NET_F_MQ = 22 // Device supports Receive Flow Steering
|
||
|
VIRTIO_NET_F_CTRL_MAC_ADDR = 23 // Set MAC address
|
||
|
VIRTIO_NET_F_VQ_NOTF_COAL = 52 // Device supports virtqueue notification coalescing
|
||
|
VIRTIO_NET_F_NOTF_COAL = 53 // Device supports notifications coalescing
|
||
|
VIRTIO_NET_F_GUEST_USO4 = 54 // Guest can handle USOv4 in.
|
||
|
VIRTIO_NET_F_GUEST_USO6 = 55 // Guest can handle USOv6 in.
|
||
|
VIRTIO_NET_F_HOST_USO = 56 // Host can handle USO in.
|
||
|
VIRTIO_NET_F_HASH_REPORT = 57 // Supports hash report
|
||
|
VIRTIO_NET_F_GUEST_HDRLEN = 59 // Guest provides the exact hdr_len value.
|
||
|
VIRTIO_NET_F_RSS = 60 // Supports RSS RX steering
|
||
|
VIRTIO_NET_F_RSC_EXT = 61 // extended coalescing info
|
||
|
VIRTIO_NET_F_STANDBY = 62 // Act as standby for another device with the same MAC.
|
||
|
VIRTIO_NET_F_SPEED_DUPLEX = 63 // Device set linkspeed and duplex
|
||
|
VIRTIO_NET_F_GSO = 6 // Host handles pkts any GSO type
|
||
|
)
|
||
|
|
||
|
// virtio net status
|
||
|
const (
|
||
|
VIRTIO_NET_S_LINK_UP = 1 // Link is up
|
||
|
VIRTIO_NET_S_ANNOUNCE = 2 // Announcement is needed
|
||
|
)
|
||
|
|
||
|
// virtio config
|
||
|
const (
|
||
|
// Do we get callbacks when the ring is completely used, even if we've
|
||
|
// suppressed them?
|
||
|
VIRTIO_F_NOTIFY_ON_EMPTY = 24
|
||
|
// Can the device handle any descriptor layout?
|
||
|
VIRTIO_F_ANY_LAYOUT = 27
|
||
|
// v1.0 compliant
|
||
|
VIRTIO_F_VERSION_1 = 32
|
||
|
// If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature.
|
||
|
// If set - use platform DMA tools to access the memory.
|
||
|
// Note the reverse polarity (compared to most other features),
|
||
|
// this is for compatibility with legacy systems.
|
||
|
VIRTIO_F_ACCESS_PLATFORM = 33
|
||
|
// Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace)
|
||
|
VIRTIO_F_IOMMU_PLATFORM = VIRTIO_F_ACCESS_PLATFORM
|
||
|
// This feature indicates support for the packed virtqueue layout.
|
||
|
VIRTIO_F_RING_PACKED = 34
|
||
|
// Inorder feature indicates that all buffers are used by the device
|
||
|
// in the same order in which they have been made available.
|
||
|
VIRTIO_F_IN_ORDER = 35
|
||
|
// This feature indicates that memory accesses by the driver and the
|
||
|
// device are ordered in a way described by the platform.
|
||
|
VIRTIO_F_ORDER_PLATFORM = 36
|
||
|
// Does the device support Single Root I/O Virtualization?
|
||
|
VIRTIO_F_SR_IOV = 37
|
||
|
// This feature indicates that the driver passes extra data (besides
|
||
|
// identifying the virtqueue) in its device notifications.
|
||
|
VIRTIO_F_NOTIFICATION_DATA = 38
|
||
|
// This feature indicates that the driver uses the data provided by the device
|
||
|
// as a virtqueue identifier in available buffer notifications.
|
||
|
VIRTIO_F_NOTIF_CONFIG_DATA = 39
|
||
|
// This feature indicates that the driver can reset a queue individually.
|
||
|
VIRTIO_F_RING_RESET = 40
|
||
|
)
|
||
|
|
||
|
// virtio device ids
|
||
|
const (
|
||
|
VIRTIO_ID_NET = 1 // virtio net
|
||
|
VIRTIO_ID_BLOCK = 2 // virtio block
|
||
|
VIRTIO_ID_CONSOLE = 3 // virtio console
|
||
|
VIRTIO_ID_RNG = 4 // virtio rng
|
||
|
VIRTIO_ID_BALLOON = 5 // virtio balloon
|
||
|
VIRTIO_ID_IOMEM = 6 // virtio ioMemory
|
||
|
VIRTIO_ID_RPMSG = 7 // virtio remote processor messaging
|
||
|
VIRTIO_ID_SCSI = 8 // virtio scsi
|
||
|
VIRTIO_ID_9P = 9 // 9p virtio console
|
||
|
VIRTIO_ID_MAC80211_WLAN = 10 // virtio WLAN MAC
|
||
|
VIRTIO_ID_RPROC_SERIAL = 11 // virtio remoteproc serial link
|
||
|
VIRTIO_ID_CAIF = 12 // Virtio caif
|
||
|
VIRTIO_ID_MEMORY_BALLOON = 13 // virtio memory balloon
|
||
|
VIRTIO_ID_GPU = 16 // virtio GPU
|
||
|
VIRTIO_ID_CLOCK = 17 // virtio clock/timer
|
||
|
VIRTIO_ID_INPUT = 18 // virtio input
|
||
|
VIRTIO_ID_VSOCK = 19 // virtio vsock transport
|
||
|
VIRTIO_ID_CRYPTO = 20 // virtio crypto
|
||
|
VIRTIO_ID_SIGNAL_DIST = 21 // virtio signal distribution device
|
||
|
VIRTIO_ID_PSTORE = 22 // virtio pstore device
|
||
|
VIRTIO_ID_IOMMU = 23 // virtio IOMMU
|
||
|
VIRTIO_ID_MEM = 24 // virtio mem
|
||
|
VIRTIO_ID_SOUND = 25 // virtio sound
|
||
|
VIRTIO_ID_FS = 26 // virtio filesystem
|
||
|
VIRTIO_ID_PMEM = 27 // virtio pmem
|
||
|
VIRTIO_ID_RPMB = 28 // virtio rpmb
|
||
|
VIRTIO_ID_MAC80211_HWSIM = 29 // virtio mac80211-hwsim
|
||
|
VIRTIO_ID_VIDEO_ENCODER = 30 // virtio video encoder
|
||
|
VIRTIO_ID_VIDEO_DECODER = 31 // virtio video decoder
|
||
|
VIRTIO_ID_SCMI = 32 // virtio SCMI
|
||
|
VIRTIO_ID_NITRO_SEC_MOD = 33 // virtio nitro secure module
|
||
|
VIRTIO_ID_I2C_ADAPTER = 34 // virtio i2c adapter
|
||
|
VIRTIO_ID_WATCHDOG = 35 // virtio watchdog
|
||
|
VIRTIO_ID_CAN = 36 // virtio can
|
||
|
VIRTIO_ID_DMABUF = 37 // virtio dmabuf
|
||
|
VIRTIO_ID_PARAM_SERV = 38 // virtio parameter server
|
||
|
VIRTIO_ID_AUDIO_POLICY = 39 // virtio audio policy
|
||
|
VIRTIO_ID_BT = 40 // virtio bluetooth
|
||
|
VIRTIO_ID_GPIO = 41 // virtio gpio
|
||
|
// Virtio Transitional IDs
|
||
|
VIRTIO_TRANS_ID_NET = 0x1000 // transitional virtio net
|
||
|
VIRTIO_TRANS_ID_BLOCK = 0x1001 // transitional virtio block
|
||
|
VIRTIO_TRANS_ID_BALLOON = 0x1002 // transitional virtio balloon
|
||
|
VIRTIO_TRANS_ID_CONSOLE = 0x1003 // transitional virtio console
|
||
|
VIRTIO_TRANS_ID_SCSI = 0x1004 // transitional virtio SCSI
|
||
|
VIRTIO_TRANS_ID_RNG = 0x1005 // transitional virtio rng
|
||
|
VIRTIO_TRANS_ID_9P = 0x1009 // transitional virtio 9p console
|
||
|
)
|