On Sat, Jan 19, 2019 at 05:37:31PM +0100, Stefan Fritsch wrote:
> ---
>  sys/dev/pv/if_vio.c    | 84 +++++++++++++++++++++++-------------------
>  sys/dev/pv/vioblk.c    |  3 ++
>  sys/dev/pv/vioblkreg.h | 21 ++++++-----
>  sys/dev/pv/virtio.c    |  1 +
>  4 files changed, 62 insertions(+), 47 deletions(-)
> 

ok mlarkin

> diff --git a/sys/dev/pv/if_vio.c b/sys/dev/pv/if_vio.c
> index a4cd80af62d..bfc7cfd1ddc 100644
> --- a/sys/dev/pv/if_vio.c
> +++ b/sys/dev/pv/if_vio.c
> @@ -68,25 +68,29 @@
>  #define VIRTIO_NET_CONFIG_STATUS     6 /* 16bit */
>  
>  /* Feature bits */
> -#define VIRTIO_NET_F_CSUM            (1ULL<<0)
> -#define VIRTIO_NET_F_GUEST_CSUM              (1ULL<<1)
> -#define VIRTIO_NET_F_MAC             (1ULL<<5)
> -#define VIRTIO_NET_F_GSO             (1ULL<<6)
> -#define VIRTIO_NET_F_GUEST_TSO4              (1ULL<<7)
> -#define VIRTIO_NET_F_GUEST_TSO6              (1ULL<<8)
> -#define VIRTIO_NET_F_GUEST_ECN               (1ULL<<9)
> -#define VIRTIO_NET_F_GUEST_UFO               (1ULL<<10)
> -#define VIRTIO_NET_F_HOST_TSO4               (1ULL<<11)
> -#define VIRTIO_NET_F_HOST_TSO6               (1ULL<<12)
> -#define VIRTIO_NET_F_HOST_ECN                (1ULL<<13)
> -#define VIRTIO_NET_F_HOST_UFO                (1ULL<<14)
> -#define VIRTIO_NET_F_MRG_RXBUF               (1ULL<<15)
> -#define VIRTIO_NET_F_STATUS          (1ULL<<16)
> -#define VIRTIO_NET_F_CTRL_VQ         (1ULL<<17)
> -#define VIRTIO_NET_F_CTRL_RX         (1ULL<<18)
> -#define VIRTIO_NET_F_CTRL_VLAN               (1ULL<<19)
> -#define VIRTIO_NET_F_CTRL_RX_EXTRA   (1ULL<<20)
> -#define VIRTIO_NET_F_GUEST_ANNOUNCE  (1ULL<<21)
> +#define VIRTIO_NET_F_CSUM                    (1ULL<<0)
> +#define VIRTIO_NET_F_GUEST_CSUM                      (1ULL<<1)
> +#define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS        (1ULL<<2)
> +#define VIRTIO_NET_F_MTU                        (1ULL<<3)
> +#define VIRTIO_NET_F_MAC                     (1ULL<<5)
> +#define VIRTIO_NET_F_GSO                     (1ULL<<6)
> +#define VIRTIO_NET_F_GUEST_TSO4                      (1ULL<<7)
> +#define VIRTIO_NET_F_GUEST_TSO6                      (1ULL<<8)
> +#define VIRTIO_NET_F_GUEST_ECN                       (1ULL<<9)
> +#define VIRTIO_NET_F_GUEST_UFO                       (1ULL<<10)
> +#define VIRTIO_NET_F_HOST_TSO4                       (1ULL<<11)
> +#define VIRTIO_NET_F_HOST_TSO6                       (1ULL<<12)
> +#define VIRTIO_NET_F_HOST_ECN                        (1ULL<<13)
> +#define VIRTIO_NET_F_HOST_UFO                        (1ULL<<14)
> +#define VIRTIO_NET_F_MRG_RXBUF                       (1ULL<<15)
> +#define VIRTIO_NET_F_STATUS                  (1ULL<<16)
> +#define VIRTIO_NET_F_CTRL_VQ                 (1ULL<<17)
> +#define VIRTIO_NET_F_CTRL_RX                 (1ULL<<18)
> +#define VIRTIO_NET_F_CTRL_VLAN                       (1ULL<<19)
> +#define VIRTIO_NET_F_CTRL_RX_EXTRA           (1ULL<<20)
> +#define VIRTIO_NET_F_GUEST_ANNOUNCE          (1ULL<<21)
> +#define VIRTIO_NET_F_MQ                              (1ULL<<22)
> +#define VIRTIO_NET_F_CTRL_MAC_ADDR           (1ULL<<23)
>  
>  /*
>   * Config(8) flags. The lowest byte is reserved for generic virtio stuff.
> @@ -97,25 +101,29 @@
>  
>  static const struct virtio_feature_name virtio_net_feature_names[] = {
>  #if VIRTIO_DEBUG
> -     { VIRTIO_NET_F_CSUM,            "CSum" },
> -     { VIRTIO_NET_F_GUEST_CSUM,      "GuestCSum" },
> -     { VIRTIO_NET_F_MAC,             "MAC" },
> -     { VIRTIO_NET_F_GSO,             "GSO" },
> -     { VIRTIO_NET_F_GUEST_TSO4,      "GuestTSO4" },
> -     { VIRTIO_NET_F_GUEST_TSO6,      "GuestTSO6" },
> -     { VIRTIO_NET_F_GUEST_ECN,       "GuestECN" },
> -     { VIRTIO_NET_F_GUEST_UFO,       "GuestUFO" },
> -     { VIRTIO_NET_F_HOST_TSO4,       "HostTSO4" },
> -     { VIRTIO_NET_F_HOST_TSO6,       "HostTSO6" },
> -     { VIRTIO_NET_F_HOST_ECN,        "HostECN" },
> -     { VIRTIO_NET_F_HOST_UFO,        "HostUFO" },
> -     { VIRTIO_NET_F_MRG_RXBUF,       "MrgRXBuf" },
> -     { VIRTIO_NET_F_STATUS,          "Status" },
> -     { VIRTIO_NET_F_CTRL_VQ,         "CtrlVQ" },
> -     { VIRTIO_NET_F_CTRL_RX,         "CtrlRX" },
> -     { VIRTIO_NET_F_CTRL_VLAN,       "CtrlVLAN" },
> -     { VIRTIO_NET_F_CTRL_RX_EXTRA,   "CtrlRXExtra" },
> -     { VIRTIO_NET_F_GUEST_ANNOUNCE,  "GuestAnnounce" },
> +     { VIRTIO_NET_F_CSUM,                    "CSum" },
> +     { VIRTIO_NET_F_GUEST_CSUM,              "GuestCSum" },
> +     { VIRTIO_NET_F_CTRL_GUEST_OFFLOADS,     "CtrlGuestOffl" },
> +     { VIRTIO_NET_F_MTU,                     "MTU", },
> +     { VIRTIO_NET_F_MAC,                     "MAC" },
> +     { VIRTIO_NET_F_GSO,                     "GSO" },
> +     { VIRTIO_NET_F_GUEST_TSO4,              "GuestTSO4" },
> +     { VIRTIO_NET_F_GUEST_TSO6,              "GuestTSO6" },
> +     { VIRTIO_NET_F_GUEST_ECN,               "GuestECN" },
> +     { VIRTIO_NET_F_GUEST_UFO,               "GuestUFO" },
> +     { VIRTIO_NET_F_HOST_TSO4,               "HostTSO4" },
> +     { VIRTIO_NET_F_HOST_TSO6,               "HostTSO6" },
> +     { VIRTIO_NET_F_HOST_ECN,                "HostECN" },
> +     { VIRTIO_NET_F_HOST_UFO,                "HostUFO" },
> +     { VIRTIO_NET_F_MRG_RXBUF,               "MrgRXBuf" },
> +     { VIRTIO_NET_F_STATUS,                  "Status" },
> +     { VIRTIO_NET_F_CTRL_VQ,                 "CtrlVQ" },
> +     { VIRTIO_NET_F_CTRL_RX,                 "CtrlRX" },
> +     { VIRTIO_NET_F_CTRL_VLAN,               "CtrlVLAN" },
> +     { VIRTIO_NET_F_CTRL_RX_EXTRA,           "CtrlRXExtra" },
> +     { VIRTIO_NET_F_GUEST_ANNOUNCE,          "GuestAnnounce" },
> +     { VIRTIO_NET_F_MQ,                      "MQ" },
> +     { VIRTIO_NET_F_CTRL_MAC_ADDR,           "CtrlMAC" },
>  #endif
>       { 0,                            NULL }
>  };
> diff --git a/sys/dev/pv/vioblk.c b/sys/dev/pv/vioblk.c
> index fc46e52c09c..460c2dfa766 100644
> --- a/sys/dev/pv/vioblk.c
> +++ b/sys/dev/pv/vioblk.c
> @@ -82,6 +82,9 @@ struct virtio_feature_name vioblk_feature_names[] = {
>       { VIRTIO_BLK_F_SCSI,            "SCSI" },
>       { VIRTIO_BLK_F_FLUSH,           "Flush" },
>       { VIRTIO_BLK_F_TOPOLOGY,        "Topology" },
> +     { VIRTIO_BLK_F_CONFIG_WCE,      "ConfigWCE" },
> +     { VIRTIO_BLK_F_DISCARD,         "Discard" },
> +     { VIRTIO_BLK_F_WRITE_ZEROES,    "Write0s" },
>  #endif
>       { 0,                            NULL }
>  };
> diff --git a/sys/dev/pv/vioblkreg.h b/sys/dev/pv/vioblkreg.h
> index dbfa37e60ea..307c66af535 100644
> --- a/sys/dev/pv/vioblkreg.h
> +++ b/sys/dev/pv/vioblkreg.h
> @@ -40,15 +40,18 @@
>  #define VIRTIO_BLK_CONFIG_BLK_SIZE   20 /* 32bit */
>  
>  /* Feature bits */
> -#define VIRTIO_BLK_F_BARRIER (1ULL<<0)
> -#define VIRTIO_BLK_F_SIZE_MAX        (1ULL<<1)
> -#define VIRTIO_BLK_F_SEG_MAX (1ULL<<2)
> -#define VIRTIO_BLK_F_GEOMETRY        (1ULL<<4)
> -#define VIRTIO_BLK_F_RO              (1ULL<<5)
> -#define VIRTIO_BLK_F_BLK_SIZE        (1ULL<<6)
> -#define VIRTIO_BLK_F_SCSI    (1ULL<<7)
> -#define VIRTIO_BLK_F_FLUSH   (1ULL<<9)
> -#define VIRTIO_BLK_F_TOPOLOGY        (1ULL<<10)
> +#define VIRTIO_BLK_F_BARRIER         (1ULL<<0)
> +#define VIRTIO_BLK_F_SIZE_MAX                (1ULL<<1)
> +#define VIRTIO_BLK_F_SEG_MAX         (1ULL<<2)
> +#define VIRTIO_BLK_F_GEOMETRY                (1ULL<<4)
> +#define VIRTIO_BLK_F_RO                      (1ULL<<5)
> +#define VIRTIO_BLK_F_BLK_SIZE                (1ULL<<6)
> +#define VIRTIO_BLK_F_SCSI            (1ULL<<7)
> +#define VIRTIO_BLK_F_FLUSH           (1ULL<<9)
> +#define VIRTIO_BLK_F_TOPOLOGY                (1ULL<<10)
> +#define VIRTIO_BLK_F_CONFIG_WCE              (1ULL<<11)
> +#define VIRTIO_BLK_F_DISCARD         (1ULL<<12)
> +#define VIRTIO_BLK_F_WRITE_ZEROES    (1ULL<<13)
>  
>  /* Command */
>  #define VIRTIO_BLK_T_IN                      0
> diff --git a/sys/dev/pv/virtio.c b/sys/dev/pv/virtio.c
> index 18b78927180..40ea0b8a85e 100644
> --- a/sys/dev/pv/virtio.c
> +++ b/sys/dev/pv/virtio.c
> @@ -80,6 +80,7 @@ static const struct virtio_feature_name 
> transport_feature_names[] = {
>       { VIRTIO_F_RING_INDIRECT_DESC,  "RingIndirectDesc"},
>       { VIRTIO_F_RING_EVENT_IDX,      "RingEventIdx"},
>       { VIRTIO_F_BAD_FEATURE,         "BadFeature"},
> +     { VIRTIO_F_VERSION_1,           "Version1"},
>       { 0,                            NULL}
>  };
>  
> -- 
> 2.19.0
> 

Reply via email to