-
Notifications
You must be signed in to change notification settings - Fork 752
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add constants with kernel values for virtio device attributes
Signed-off-by: Yury Kulazhenkov <ykulazhenkov@nvidia.com>
- Loading branch information
1 parent
759ce08
commit 65ac9e9
Showing
1 changed file
with
132 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
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 | ||
) |