All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Yuri Benditovich <yuri.benditovich@daynix.com>
Cc: yan@daynix.com, linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH 3/3] virtio-net: Introduce hash report feature
Date: Sun, 1 Mar 2020 03:43:28 -0500	[thread overview]
Message-ID: <20200301033900-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200229171301.15234-4-yuri.benditovich@daynix.com>

On Sat, Feb 29, 2020 at 07:13:01PM +0200, Yuri Benditovich wrote:
> The feature VIRTIO_NET_F_HASH_REPORT extends the
> layout of the packet and requests the device to
> calculate hash on incoming packets and report it
> in the packet header.
> 
> Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
> ---
>  include/uapi/linux/virtio_net.h | 36 +++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
> index 7a342657fb6c..6d7230469c57 100644
> --- a/include/uapi/linux/virtio_net.h
> +++ b/include/uapi/linux/virtio_net.h
> @@ -57,6 +57,7 @@
>  					 * Steering */
>  #define VIRTIO_NET_F_CTRL_MAC_ADDR 23	/* Set MAC address */
>  
> +#define VIRTIO_NET_F_HASH_REPORT  57	/* Supports hash report */
>  #define VIRTIO_NET_F_RSS	  60	/* Supports RSS RX steering */
>  #define VIRTIO_NET_F_RSC_EXT	  61	/* extended coalescing info */
>  #define VIRTIO_NET_F_STANDBY	  62	/* Act as standby for another device
> @@ -144,6 +145,23 @@ struct virtio_net_hdr_v1 {
>  	__virtio16 num_buffers;	/* Number of merged rx buffers */
>  };
>  
> +struct virtio_net_hdr_v1_hash {
> +	struct virtio_net_hdr_v1 hdr;
> +	__virtio32 hash_value;
> +#define VIRTIO_NET_HASH_REPORT_NONE            0
> +#define VIRTIO_NET_HASH_REPORT_IPv4            1
> +#define VIRTIO_NET_HASH_REPORT_TCPv4           2
> +#define VIRTIO_NET_HASH_REPORT_UDPv4           3
> +#define VIRTIO_NET_HASH_REPORT_IPv6            4
> +#define VIRTIO_NET_HASH_REPORT_TCPv6           5
> +#define VIRTIO_NET_HASH_REPORT_UDPv6           6
> +#define VIRTIO_NET_HASH_REPORT_IPv6_EX         7
> +#define VIRTIO_NET_HASH_REPORT_TCPv6_EX        8
> +#define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
> +	__virtio16 hash_report;
> +	__virtio16 padding;
> +};
> +
>  #ifndef VIRTIO_NET_NO_LEGACY
>  /* This header comes first in the scatter-gather list.
>   * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
> @@ -292,6 +310,24 @@ struct virtio_net_rss_config {
>  
>   #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
>  
> +/*
> + * The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device
> + * to include in the virtio header of the packet the value of the
> + * calculated hash and the report type of hash. It also provides
> + * parameters for hash calculation. The command requires feature
> + * VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the
> + * layout of virtio header as defined in virtio_net_hdr_v1_hash.
> + */
> +struct virtio_net_hash_config {
> +	__virtio32 hash_types;
> +	/* for compatibility with virtio_net_rss_config */
> +	__virtio16 reserved[4];

I expect these should all be le32/le16 respectively.

> +	__u8 hash_key_length;
> +	__u8 hash_key_data[/*hash_key_length*/];
> +};

Should be /* hash_key_length */ as per coding style.

> +
> + #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG         2
> +
>  /*
>   * Control network offloads
>   *
> -- 
> 2.17.1

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Yuri Benditovich <yuri.benditovich@daynix.com>
Cc: jasowang@redhat.com, virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org, yan@daynix.com
Subject: Re: [PATCH 3/3] virtio-net: Introduce hash report feature
Date: Sun, 1 Mar 2020 03:43:28 -0500	[thread overview]
Message-ID: <20200301033900-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200229171301.15234-4-yuri.benditovich@daynix.com>

On Sat, Feb 29, 2020 at 07:13:01PM +0200, Yuri Benditovich wrote:
> The feature VIRTIO_NET_F_HASH_REPORT extends the
> layout of the packet and requests the device to
> calculate hash on incoming packets and report it
> in the packet header.
> 
> Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
> ---
>  include/uapi/linux/virtio_net.h | 36 +++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
> index 7a342657fb6c..6d7230469c57 100644
> --- a/include/uapi/linux/virtio_net.h
> +++ b/include/uapi/linux/virtio_net.h
> @@ -57,6 +57,7 @@
>  					 * Steering */
>  #define VIRTIO_NET_F_CTRL_MAC_ADDR 23	/* Set MAC address */
>  
> +#define VIRTIO_NET_F_HASH_REPORT  57	/* Supports hash report */
>  #define VIRTIO_NET_F_RSS	  60	/* Supports RSS RX steering */
>  #define VIRTIO_NET_F_RSC_EXT	  61	/* extended coalescing info */
>  #define VIRTIO_NET_F_STANDBY	  62	/* Act as standby for another device
> @@ -144,6 +145,23 @@ struct virtio_net_hdr_v1 {
>  	__virtio16 num_buffers;	/* Number of merged rx buffers */
>  };
>  
> +struct virtio_net_hdr_v1_hash {
> +	struct virtio_net_hdr_v1 hdr;
> +	__virtio32 hash_value;
> +#define VIRTIO_NET_HASH_REPORT_NONE            0
> +#define VIRTIO_NET_HASH_REPORT_IPv4            1
> +#define VIRTIO_NET_HASH_REPORT_TCPv4           2
> +#define VIRTIO_NET_HASH_REPORT_UDPv4           3
> +#define VIRTIO_NET_HASH_REPORT_IPv6            4
> +#define VIRTIO_NET_HASH_REPORT_TCPv6           5
> +#define VIRTIO_NET_HASH_REPORT_UDPv6           6
> +#define VIRTIO_NET_HASH_REPORT_IPv6_EX         7
> +#define VIRTIO_NET_HASH_REPORT_TCPv6_EX        8
> +#define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
> +	__virtio16 hash_report;
> +	__virtio16 padding;
> +};
> +
>  #ifndef VIRTIO_NET_NO_LEGACY
>  /* This header comes first in the scatter-gather list.
>   * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
> @@ -292,6 +310,24 @@ struct virtio_net_rss_config {
>  
>   #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
>  
> +/*
> + * The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device
> + * to include in the virtio header of the packet the value of the
> + * calculated hash and the report type of hash. It also provides
> + * parameters for hash calculation. The command requires feature
> + * VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the
> + * layout of virtio header as defined in virtio_net_hdr_v1_hash.
> + */
> +struct virtio_net_hash_config {
> +	__virtio32 hash_types;
> +	/* for compatibility with virtio_net_rss_config */
> +	__virtio16 reserved[4];

I expect these should all be le32/le16 respectively.

> +	__u8 hash_key_length;
> +	__u8 hash_key_data[/*hash_key_length*/];
> +};

Should be /* hash_key_length */ as per coding style.

> +
> + #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG         2
> +
>  /*
>   * Control network offloads
>   *
> -- 
> 2.17.1


  reply	other threads:[~2020-03-01  8:43 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-29 17:12 [PATCH 0/3] virtio-net: introduce features defined in the spec Yuri Benditovich
2020-02-29 17:12 ` [PATCH 1/3] virtio-net: Introduce extended RSC feature Yuri Benditovich
2020-03-01  8:44   ` Michael S. Tsirkin
2020-03-01  8:44     ` Michael S. Tsirkin
2020-02-29 17:13 ` [PATCH 2/3] virtio-net: Introduce RSS receive steering feature Yuri Benditovich
2020-03-01  8:49   ` Michael S. Tsirkin
2020-02-29 17:13 ` [PATCH 3/3] virtio-net: Introduce hash report feature Yuri Benditovich
2020-03-01  8:43   ` Michael S. Tsirkin [this message]
2020-03-01  8:43     ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200301033900-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=yan@daynix.com \
    --cc=yuri.benditovich@daynix.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.