[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZCb7bYpIbxvH7Yvz@corigine.com>
Date: Fri, 31 Mar 2023 17:25:33 +0200
From: Simon Horman <simon.horman@...igine.com>
To: Pavan Kumar Linga <pavan.kumar.linga@...el.com>
Cc: intel-wired-lan@...ts.osuosl.org, netdev@...r.kernel.org,
shiraz.saleem@...el.com, emil.s.tantilov@...el.com,
willemb@...gle.com, decot@...gle.com, joshua.a.hay@...el.com,
sridhar.samudrala@...el.com, Alan Brady <alan.brady@...el.com>,
Madhu Chittim <madhu.chittim@...el.com>,
Phani Burra <phani.r.burra@...el.com>
Subject: Re: [Intel-wired-lan] [PATCH net-next 01/15] virtchnl: add virtchnl
version 2 ops
On Wed, Mar 29, 2023 at 07:03:50AM -0700, Pavan Kumar Linga wrote:
> Virtchnl version 1 is an interface used by the current generation of
> foundational NICs to negotiate the capabilities and configure the
> HW resources such as queues, vectors, RSS LUT, etc between the PF
> and VF drivers. It is not extensible to enable new features supported
> in the next generation of NICs/IPUs and to negotiate descriptor types,
> packet types and register offsets.
>
> To overcome the limitations of the existing interface, introduce
> the virtchnl version 2 and add the necessary opcodes, structures,
> definitions, and descriptor formats. The driver also learns the
> data queue and other register offsets to use instead of hardcoding
> them. The advantage of this approach is that it gives the flexibility
> to modify the register offsets if needed, restrict the use of
> certain descriptor types and negotiate the supported packet types.
>
> Following are the links to the specifications for reference
>
> Virtchnl version1:
> https://www.intel.com/content/dam/www/public/us/en/documents/
> product-specifications/ethernet-adaptive-virtual-function-hardware-spec.pdf
>
> Virtchnl version2:
> https://www.oasis-open.org/committees/documents.php?wg_abbrev=idpf
>
> Co-developed-by: Alan Brady <alan.brady@...el.com>
> Signed-off-by: Alan Brady <alan.brady@...el.com>
> Co-developed-by: Joshua Hay <joshua.a.hay@...el.com>
> Signed-off-by: Joshua Hay <joshua.a.hay@...el.com>
> Co-developed-by: Madhu Chittim <madhu.chittim@...el.com>
> Signed-off-by: Madhu Chittim <madhu.chittim@...el.com>
> Co-developed-by: Phani Burra <phani.r.burra@...el.com>
> Signed-off-by: Phani Burra <phani.r.burra@...el.com>
> Co-developed-by: Sridhar Samudrala <sridhar.samudrala@...el.com>
> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@...el.com>
> Signed-off-by: Pavan Kumar Linga <pavan.kumar.linga@...el.com>
> Reviewed-by: Sridhar Samudrala <sridhar.samudrala@...el.com>
I guess this patchset has a while to run in review.
Some initial nits from my side, in case they are of any use to you.
...
> +/* Transmit queue config info */
> +struct virtchnl2_txq_info {
> + __le64 dma_ring_addr;
> +
> + /* See VIRTCHNL2_QUEUE_TYPE definitions */
> + __le32 type;
> +
> + __le32 queue_id;
> + /* Valid only if queue model is split and type is trasmit queue. Used
nit: s/trasmit/transmit/
...
> +/* Receive Descriptors */
> +/* Splitq buf
> + * | 16| 0|
> + * ----------------------------------------------------------------
> + * | RSV | Buffer ID |
> + * ----------------------------------------------------------------
> + * | Rx packet buffer adresss |
nit: s/adresss/address
> + * ----------------------------------------------------------------
> + * | Rx header buffer adresss |
ditto
> + * ----------------------------------------------------------------
> + * | RSV |
> + * ----------------------------------------------------------------
> + * | 0|
> + */
> +struct virtchnl2_splitq_rx_buf_desc {
> + struct {
> + /* Buffer Identifier */
> + __le16 buf_id;
> + __le16 rsvd0;
> + __le32 rsvd1;
> + } qword0;
> +
> + /* Packet buffer address */
ditto
> + __le64 pkt_addr;
> + /* Header buffer address */
ditto
> + __le64 hdr_addr;
> + __le64 rsvd2;
> +}; /* RX buffer descriptor format */
Powered by blists - more mailing lists