OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio-comment] [PATCH v4 1/1] virtio-net: Define per-packet hash reporting feature



On 2020/2/20 äå3:41, Yuri Benditovich wrote:


------------------------------------------------------------------------

    *From: *"Jason Wang" <jasowang@redhat.com>
    *To: *"Michael S. Tsirkin" <mst@redhat.com>
    *Cc: *"Yuri Benditovich" <yuri.benditovich@daynix.com>,
    virtio-comment@lists.oasis-open.org
    *Sent: *Thursday, February 20, 2020 8:38:50 AM
    *Subject: *Re: [virtio-comment] [PATCH v4 1/1] virtio-net: Define
    per-packet hash reporting feature


    On 2020/2/19 äå10:23, Michael S. Tsirkin wrote:
    > On Wed, Feb 19, 2020 at 08:27:10PM +0800, Jason Wang wrote:
    >> On 2020/2/19 äå3:53, Yuri Benditovich wrote:
    >>> Â ÂThe device MUST set
    \field{rss_max_indirection_table_length} to at least 128, if it offers
    >>> Â ÂVIRTIO_NET_F_RSS.
    >>> @@ -3195,6 +3180,8 @@ \subsection{Device
    Operation}\label{sec:Device Types / Network Device / Device O
    >>> Â Â Â Â Â Âle16 csum_start;
    >>> Â Â Â Â Â Âle16 csum_offset;
    >>> Â Â Â Â Â Âle16 num_buffers;
    >>> + Â Â Â Âle32 hash_value; (Only if VIRTIO_NET_F_HASH_REPORT
    negotiated)
    >>> + Â Â Â Âle16 hash_type; Â(Only if VIRTIO_NET_F_HASH_REPORT
    negotiated)
    >>> Â Â};
    >>> Â Â\end{lstlisting}
    >> A question here:
    >>
    >> Consider we introduce VIRTIO_NET_F_FEATURE_INFORMATION in the
    future:
    >>
    >> le32 hash_type; // VIRTIO_NET_F_HASH_REPORT
    >> le32 feature_information; // VIRTIO_NET_F_FEATURE_INFORMATION
    >>
    >> What happens if HASH_REPORT is not negotiated, I believe we
    expect a stable
    >> ABI(offset) here for feature_information?
    >>
    >> Thanks
    >>
    > We'll have to decide at that point ... any better ideas?


    Not sure but something that is self descriptive? (which could be an
    overkill for fields that only need few bytes).

The problem is that the driver typically wants to know the header size from the beginning to configure SG table.


Yes, so still the above example. Consider a driver only support VIRTIO_NET_F_FEATURE_INFORMATION, how to determine the size of the vnet header?

Stable offset is simpler but may waste space.


So any self-descriptive layout seems good but in practice not so usable, IMO.


I think then it can calculate the header length based on the feature negotiated.

hdr_len = sizeof(vnet_hdr) + VIRTIO_NET_F_HASH_REPORT ? 4 : 0 + VIRTIO_NET_F_FEAUTER_INFORMATION ? 4 : 0

Thanks



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]