virtio-comment

 View Only

[PATCH v2] virtio-network: Clarify VLAN filter table configuration

  • 1.  [PATCH v2] virtio-network: Clarify VLAN filter table configuration

    Posted 01-01-2023 18:11
    The filtering behavior of the VLAN filter commands is not very clear as
    discussed in thread [1].

    Hence, add the command description and device requirements for it.

    [1] qemu-devel@nongnu.org/msg912392.html">https://www.mail-archive.com/qemu-devel@nongnu.org/msg912392.html
    Fixes: https://github.com/oasis-tcs/virtio-spec/issues/147
    Suggested-by: Si-Wei Liu <si-wei.liu@oracle.com>
    Signed-off-by: Parav Pandit <parav@nvidia.com>
    ---
    changelog:
    v1->v2:
    - adapt to new file path
    v0->v1:
    - added missing conformance section link
    ---
    .../virtio-network/device-conformance.tex | 1 +
    device-types/virtio-network/device.tex | 23 +++++++++++++++++++
    2 files changed, 24 insertions(+)

    diff --git a/device-types/virtio-network/device-conformance.tex b/device-types/virtio-network/device-conformance.tex
    index c686377..54f6783 100644
    --- a/device-types/virtio-network/device-conformance.tex
    +++ b/device-types/virtio-network/device-conformance.tex
    @@ -9,6 +9,7 @@
    \item \ref{devicenormative:Device Types / Network Device / Device Operation / Processing of Incoming Packets}
    \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}
    \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering}
    +\item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering}
    \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Gratuitous Packet Sending}
    \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Automatic receive steering in multiqueue mode}
    \item \ref{devicenormative:Device Types / Network Device / Device Operation / Control Virtqueue / Receive-side scaling (RSS) / RSS processing}
    diff --git a/device-types/virtio-network/device.tex b/device-types/virtio-network/device.tex
    index e7cdd6f..1b8fde9 100644
    --- a/device-types/virtio-network/device.tex
    +++ b/device-types/virtio-network/device.tex
    @@ -1210,6 +1210,29 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types / Network Device / Devi
    Both the VIRTIO_NET_CTRL_VLAN_ADD and VIRTIO_NET_CTRL_VLAN_DEL
    command take a little-endian 16-bit VLAN id as the command-specific-data.

    +VIRTIO_NET_CTRL_VLAN_ADD command adds the specified VLAN to the VLAN
    +filtering table.
    +
    +VIRTIO_NET_CTRL_VLAN_DEL command removes specified VLAN from the VLAN
    +filtering table which was previously added using
    +VIRTIO_NET_CTRL_VLAN_ADD command.
    +
    +\devicenormative{\subparagraph}{VLAN Filtering}{Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering}
    +
    +When VIRTIO_NET_F_CTRL_VLAN is not negotiated, the device accepts all
    +VLAN tagged packets which matches device's filter configuration.
    +
    +When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device starts with empty
    +VLAN filtering table.
    +
    +When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device accepts all the
    +VLAN tagged packets whose VLAN tag is found in the VLAN filtering table;
    +device should drop all VLAN tagged packets whose VLAN tag is not found
    +in the VLAN filtering table.
    +
    +When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device accepts all
    +untagged packets which matches device's filter configuration.
    +
    \subparagraph{Legacy Interface: VLAN Filtering}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering / Legacy Interface: VLAN Filtering}
    When using the legacy interface, transitional devices and drivers
    MUST format the VLAN id
    --
    2.26.2