virtio-net: add feature bit for any header s/g
Subsystems (2)
Michael S. Tsirkin
maintainerPATCH 1/1 virtio-net: add feature bit for any header s/g
Old qemu versions required that 1st s/g entry is the header.
My recent patchset titled "virtio-net: iovec handling cleanup" removed this limitation but a feature
bit is needed so guests know it's safe to lay out header differently.
This patch applies on top and adds such a feature bit. virtio net header inline with the data is beneficial for latency and small packet bandwidth.
Signed-off-by Michael S. Tsirkin <[email protected]>
--- hw/virtio-net.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
hw/virtio-net.h +3 -1
@@ -44,6 +44,7 @@#define VIRTIO_NET_F_CTRL_RX 18/* Control channel RX mode support */ #define VIRTIO_NET_F_CTRL_VLAN 19/* Control channel VLAN filtering */ #define VIRTIO_NET_F_CTRL_RX_EXTRA 20/* Extra RX mode control support */ +#define VIRTIO_NET_F_ANY_HEADER_SG 22/* Host can handle any header s/g */ #define VIRTIO_NET_S_LINK_UP 1/* Link is up */
@@ -186,5 +187,6 @@ struct virtio_net_ctrl_mac {DEFINE_PROP_BIT ("ctrl_vq" , _state, _field,VIRTIO_NET_F_CTRL_VQ , true), \DEFINE_PROP_BIT ("ctrl_rx" , _state, _field,VIRTIO_NET_F_CTRL_RX , true), \DEFINE_PROP_BIT ("ctrl_vlan" , _state, _field,VIRTIO_NET_F_CTRL_VLAN , true), \ - DEFINE_PROP_BIT("ctrl_rx_extra", _state, _field, VIRTIO_NET_F_CTRL_RX_EXTRA, true) +DEFINE_PROP_BIT ("ctrl_rx_extra" , _state, _field,VIRTIO_NET_F_CTRL_RX_EXTRA , true), \ + DEFINE_PROP_BIT("any_header_sg", _state, _field, VIRTIO_NET_F_ANY_HEADER_SG, true)#endif
Signature · 1 line
MST