All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yuri Benditovich <yuri.benditovich@daynix.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org, Yan Vugenfirer <yan@daynix.com>,
	virtio-dev@lists.oasis-open.org
Subject: Re: [PATCH v3 2/3] virtio-net: Introduce RSS receive steering feature
Date: Mon, 2 Mar 2020 12:58:34 +0200	[thread overview]
Message-ID: <CAOEp5Oc8p6b4eDKOQoNfoER2UKNGwN6HrbVqvY+qgFwHev4qcQ@mail.gmail.com> (raw)
In-Reply-To: <20200302055359-mutt-send-email-mst@kernel.org>

All the classes of commands are defined without indentation.
All the commands are defined with indentation of 1 space.
Only the last one (VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET at the end of
the file) does not have an indentation.

On Mon, Mar 2, 2020 at 12:54 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Mon, Mar 02, 2020 at 10:53:14AM +0200, Yuri Benditovich wrote:
> > On Sun, Mar 1, 2020 at 9:58 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> > >
> > > On Sun, Mar 01, 2020 at 04:33:01PM +0200, Yuri Benditovich wrote:
> > > > RSS (Receive-side scaling) defines hash calculation
> > > > rules and decision on receive virtqueue according to
> > > > the calculated hash, provided mask to apply and
> > > > provided indirection table containing indices of
> > > > receive virqueues. The driver sends the control
> > > > command to enable multiqueue and provide parameters
> > > > for receive steering.
> > > >
> > > > Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
> > > > ---
> > > >  include/uapi/linux/virtio_net.h | 42 +++++++++++++++++++++++++++++++--
> > > >  1 file changed, 40 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
> > > > index 19e76b3e3a64..188ad3eecdc8 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_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
> > > >                                        * with the same MAC.
> > > > @@ -70,6 +71,17 @@
> > > >  #define VIRTIO_NET_S_LINK_UP 1       /* Link is up */
> > > >  #define VIRTIO_NET_S_ANNOUNCE        2       /* Announcement is needed */
> > > >
> > > > +/* supported/enabled hash types */
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_IPv4          (1 << 0)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4         (1 << 1)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4         (1 << 2)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_IPv6          (1 << 3)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6         (1 << 4)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6         (1 << 5)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX         (1 << 6)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX        (1 << 7)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX        (1 << 8)
> > > > +
> > > >  struct virtio_net_config {
> > > >       /* The config defining mac address (if VIRTIO_NET_F_MAC) */
> > > >       __u8 mac[ETH_ALEN];
> > > > @@ -93,6 +105,12 @@ struct virtio_net_config {
> > > >        * Any other value stands for unknown.
> > > >        */
> > > >       __u8 duplex;
> > > > +     /* maximum size of RSS key */
> > > > +     __u8 rss_max_key_size;
> > > > +     /* maximum number of indirection table entries */
> > > > +     __le16 rss_max_indirection_table_length;
> > > > +     /* bitmask of supported VIRTIO_NET_RSS_HASH_ types */
> > > > +     __le32 supported_hash_types;
> > > >  } __attribute__((packed));
> > > >
> > > >  /*
> > > > @@ -246,7 +264,9 @@ struct virtio_net_ctrl_mac {
> > > >
> > > >  /*
> > > >   * Control Receive Flow Steering
> > > > - *
> > > > + */
> > > > +#define VIRTIO_NET_CTRL_MQ   4
> > > > +/*
> > > >   * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET
> > > >   * enables Receive Flow Steering, specifying the number of the transmit and
> > > >   * receive queues that will be used. After the command is consumed and acked by
> > > > @@ -259,11 +279,29 @@ struct virtio_net_ctrl_mq {
> > > >       __virtio16 virtqueue_pairs;
> > > >  };
> > > >
> > > > -#define VIRTIO_NET_CTRL_MQ   4
> > > >   #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET        0
> > > >   #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN        1
> > > >   #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX        0x8000
> > > >
> > > > +/*
> > > > + * The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as
> > > > + * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures
> > > > + * the receive steering to use a hash calculated for incoming packet
> > > > + * to decide on receive virtqueue to place the packet. The command
> > > > + * also provides parameters to calculate a hash and receive virtqueue.
> > > > + */
> > > > +struct virtio_net_rss_config {
> > > > +     __le32 hash_types;
> > > > +     __le16 indirection_table_mask;
> > > > +     __le16 unclassified_queue;
> > > > +     __le16 indirection_table[1/* + indirection_table_mask */];
> > > > +     __le16 max_tx_vq;
> > > > +     __u8 hash_key_length;
> > > > +     __u8 hash_key_data[/* hash_key_length */];
> > > > +};
> > > > +
> > > > + #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
> > > > +
> > >
> > >
> > > Extra space here.
> >
> > Where exactly you want to remove the empty line?
> > The format here is exactly as in other places:
> > comment - structure - space - command - space
>
> + #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
>
> should be
>
> +#define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
>
> >
> > >
> > > >  /*
> > > >   * Control network offloads
> > > >   *
> > > > --
> > > > 2.17.1
> > >
>

WARNING: multiple messages have this Message-ID (diff)
From: Yuri Benditovich <yuri.benditovich@daynix.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org, Yan Vugenfirer <yan@daynix.com>,
	virtio-dev@lists.oasis-open.org
Subject: [virtio-dev] Re: [PATCH v3 2/3] virtio-net: Introduce RSS receive steering feature
Date: Mon, 2 Mar 2020 12:58:34 +0200	[thread overview]
Message-ID: <CAOEp5Oc8p6b4eDKOQoNfoER2UKNGwN6HrbVqvY+qgFwHev4qcQ@mail.gmail.com> (raw)
In-Reply-To: <20200302055359-mutt-send-email-mst@kernel.org>

All the classes of commands are defined without indentation.
All the commands are defined with indentation of 1 space.
Only the last one (VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET at the end of
the file) does not have an indentation.

On Mon, Mar 2, 2020 at 12:54 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Mon, Mar 02, 2020 at 10:53:14AM +0200, Yuri Benditovich wrote:
> > On Sun, Mar 1, 2020 at 9:58 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> > >
> > > On Sun, Mar 01, 2020 at 04:33:01PM +0200, Yuri Benditovich wrote:
> > > > RSS (Receive-side scaling) defines hash calculation
> > > > rules and decision on receive virtqueue according to
> > > > the calculated hash, provided mask to apply and
> > > > provided indirection table containing indices of
> > > > receive virqueues. The driver sends the control
> > > > command to enable multiqueue and provide parameters
> > > > for receive steering.
> > > >
> > > > Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
> > > > ---
> > > >  include/uapi/linux/virtio_net.h | 42 +++++++++++++++++++++++++++++++--
> > > >  1 file changed, 40 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
> > > > index 19e76b3e3a64..188ad3eecdc8 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_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
> > > >                                        * with the same MAC.
> > > > @@ -70,6 +71,17 @@
> > > >  #define VIRTIO_NET_S_LINK_UP 1       /* Link is up */
> > > >  #define VIRTIO_NET_S_ANNOUNCE        2       /* Announcement is needed */
> > > >
> > > > +/* supported/enabled hash types */
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_IPv4          (1 << 0)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4         (1 << 1)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4         (1 << 2)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_IPv6          (1 << 3)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6         (1 << 4)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6         (1 << 5)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX         (1 << 6)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX        (1 << 7)
> > > > +#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX        (1 << 8)
> > > > +
> > > >  struct virtio_net_config {
> > > >       /* The config defining mac address (if VIRTIO_NET_F_MAC) */
> > > >       __u8 mac[ETH_ALEN];
> > > > @@ -93,6 +105,12 @@ struct virtio_net_config {
> > > >        * Any other value stands for unknown.
> > > >        */
> > > >       __u8 duplex;
> > > > +     /* maximum size of RSS key */
> > > > +     __u8 rss_max_key_size;
> > > > +     /* maximum number of indirection table entries */
> > > > +     __le16 rss_max_indirection_table_length;
> > > > +     /* bitmask of supported VIRTIO_NET_RSS_HASH_ types */
> > > > +     __le32 supported_hash_types;
> > > >  } __attribute__((packed));
> > > >
> > > >  /*
> > > > @@ -246,7 +264,9 @@ struct virtio_net_ctrl_mac {
> > > >
> > > >  /*
> > > >   * Control Receive Flow Steering
> > > > - *
> > > > + */
> > > > +#define VIRTIO_NET_CTRL_MQ   4
> > > > +/*
> > > >   * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET
> > > >   * enables Receive Flow Steering, specifying the number of the transmit and
> > > >   * receive queues that will be used. After the command is consumed and acked by
> > > > @@ -259,11 +279,29 @@ struct virtio_net_ctrl_mq {
> > > >       __virtio16 virtqueue_pairs;
> > > >  };
> > > >
> > > > -#define VIRTIO_NET_CTRL_MQ   4
> > > >   #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET        0
> > > >   #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN        1
> > > >   #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX        0x8000
> > > >
> > > > +/*
> > > > + * The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as
> > > > + * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures
> > > > + * the receive steering to use a hash calculated for incoming packet
> > > > + * to decide on receive virtqueue to place the packet. The command
> > > > + * also provides parameters to calculate a hash and receive virtqueue.
> > > > + */
> > > > +struct virtio_net_rss_config {
> > > > +     __le32 hash_types;
> > > > +     __le16 indirection_table_mask;
> > > > +     __le16 unclassified_queue;
> > > > +     __le16 indirection_table[1/* + indirection_table_mask */];
> > > > +     __le16 max_tx_vq;
> > > > +     __u8 hash_key_length;
> > > > +     __u8 hash_key_data[/* hash_key_length */];
> > > > +};
> > > > +
> > > > + #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
> > > > +
> > >
> > >
> > > Extra space here.
> >
> > Where exactly you want to remove the empty line?
> > The format here is exactly as in other places:
> > comment - structure - space - command - space
>
> + #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
>
> should be
>
> +#define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
>
> >
> > >
> > > >  /*
> > > >   * Control network offloads
> > > >   *
> > > > --
> > > > 2.17.1
> > >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


  reply	other threads:[~2020-03-02 10:58 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-01 14:32 [PATCH v3 0/3] virtio-net: introduce features defined in the spec Yuri Benditovich
2020-03-01 14:32 ` [virtio-dev] " Yuri Benditovich
2020-03-01 14:33 ` [PATCH v3 1/3] virtio-net: Introduce extended RSC feature Yuri Benditovich
2020-03-01 14:33   ` [virtio-dev] " Yuri Benditovich
2020-03-01 20:06   ` Michael S. Tsirkin
2020-03-01 20:06     ` [virtio-dev] " Michael S. Tsirkin
2020-03-02 12:09   ` [virtio-dev] " Rob Miller
2020-03-01 14:33 ` [PATCH v3 2/3] virtio-net: Introduce RSS receive steering feature Yuri Benditovich
2020-03-01 14:33   ` [virtio-dev] " Yuri Benditovich
2020-03-01 19:58   ` Michael S. Tsirkin
2020-03-01 19:58     ` [virtio-dev] " Michael S. Tsirkin
2020-03-02  8:53     ` Yuri Benditovich
2020-03-02  8:53       ` [virtio-dev] " Yuri Benditovich
2020-03-02 10:54       ` Michael S. Tsirkin
2020-03-02 10:54         ` [virtio-dev] " Michael S. Tsirkin
2020-03-02 10:58         ` Yuri Benditovich [this message]
2020-03-02 10:58           ` Yuri Benditovich
2020-03-02 11:16           ` Michael S. Tsirkin
2020-03-02 11:16             ` [virtio-dev] " Michael S. Tsirkin
2020-03-02 12:17   ` [virtio-dev] " Rob Miller
2020-03-02 13:04     ` Yuri Benditovich
2020-03-03 13:47       ` Rob Miller
2020-03-01 14:33 ` [PATCH v3 3/3] virtio-net: Introduce hash report feature Yuri Benditovich
2020-03-01 14:33   ` [virtio-dev] " Yuri Benditovich
2020-03-01 20:06 ` [PATCH v3 0/3] virtio-net: introduce features defined in the spec Michael S. Tsirkin
2020-03-01 20:06   ` [virtio-dev] " Michael S. Tsirkin
2020-03-02  4:31   ` Jason Wang
2020-03-02  4:31     ` [virtio-dev] " Jason Wang

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=CAOEp5Oc8p6b4eDKOQoNfoER2UKNGwN6HrbVqvY+qgFwHev4qcQ@mail.gmail.com \
    --to=yuri.benditovich@daynix.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=yan@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.