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: [EXT] [PATCH 7/7] virtio-net: Add flow filter device and driver requirements


Hi Parav

> -----Original Message-----
> From: Parav Pandit <parav@nvidia.com>
> Sent: Friday, September 22, 2023 6:49 AM
> To: virtio-comment@lists.oasis-open.org; mst@redhat.com; cohuck@redhat.com
> Cc: Satananda Burla <sburla@marvell.com>; shahafs@nvidia.com; si-
> wei.liu@oracle.com; xuanzhuo@linux.alibaba.com; Parav Pandit
> <parav@nvidia.com>; Heng Qi <hengqi@linux.alibaba.com>
> Subject: [EXT] [PATCH 7/7] virtio-net: Add flow filter device and driver
> requirements
> 
> External Email
> 
> ----------------------------------------------------------------------
> The flow filter functionality consists of the following
> four components.
> Add driver and device requirements for it.
> 
> 1. Device capabilities query for commands VIRTIO_NET_CTRL_FF_CAP_GET,
>    VIRTIO_NET_CTRL_FF_MATCH_CAP_GET.
> 2. Flow filter group operation commands VIRTIO_NET_CTRL_FF_GROUP_ADD
>    and VIRTIO_NET_CTRL_FF_GROUP_DEL.
> 3. Flow filter transport mode set command
>    VIRTIO_NET_CTRL_FF_TRANSPORT_MODE_SET.
> 4. Flow filter requests using command VIRTIO_NET_CTRL_FF_REQ and
>    the structure virtio_net_ff_op for the flow filter virtqueue.
> 
> Fixes: https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__github.com_oasis-2Dtcs_virtio-
> 2Dspec_issues_179&d=DwIDAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=NHDPsfcAYlN2z-
> NXHHG4WB09qqS0voo_nf6_kGS625A&m=8GgvPPzhkMzjnrqhLPEu7j1B0uqFdiy5e7lQGfUZEW
> MOxPwYNGtfRt_j2pephKf8&s=8VGvaTxBK738Ex8bGnhEXIrrDkavvG_JfEZ7TkUYe-4&e=
> Signed-off-by: Parav Pandit <parav@nvidia.com>
> Signed-off-by: Heng Qi <hengqi@linux.alibaba.com>
> ---
>  device-types/net/description.tex | 116 +++++++++++++++++++++++++++++++
>  1 file changed, 116 insertions(+)
> 
> diff --git a/device-types/net/description.tex b/device-
> types/net/description.tex
> index a96e47a..6f89096 100644
> --- a/device-types/net/description.tex
> +++ b/device-types/net/description.tex
> @@ -2358,6 +2358,122 @@ \subsubsection{Control Virtqueue}\label{sec:Device
> Types / Network Device / Devi
>  \field{command-specific-result} is in format of
>  \field{struct virtio_net_ff_req_result}.
> 
> +\devicenormative{\subparagraph}{Flow Filter}{Device Types / Network
> Device / Device Operation / Control Virtqueue / Flow Filter}
> +
> +When the VIRTIO_NET_F_FLOW_FILTER is negotiated, the device MUST support
> +VIRTIO_NET_CTRL_FF_CAP_GET, VIRTIO_NET_CTRL_FF_MATCH_CAP_GET,
> VIRTIO_NET_CTRL_FF_GROUP_ADD,
> +VIRTIO_NET_CTRL_FF_GROUP_DEL, VIRTIO_NET_CTRL_FF_TRANSPORT_MODE_SET and
> +VIRTIO_NET_CTRL_FF_REQ commands.
> +
> +When the VIRTIO_NET_F_FLOW_FILTER is not negotiated, the device MUST
> respond
> +with error VIRTIO_NET_ERR for
> +VIRTIO_NET_CTRL_FF_CAP_GET, VIRTIO_NET_CTRL_FF_MATCH_CAP_GET,
> VIRTIO_NET_CTRL_FF_GROUP_ADD,
> +VIRTIO_NET_CTRL_FF_GROUP_DEL, VIRTIO_NET_CTRL_FF_TRANSPORT_MODE_SET and
> +VIRTIO_NET_CTRL_FF_REQ commands.
> +
> +When the command VIRTIO_NET_CTRL_FF_CAP_GET completes successfully, the
> device
> +MUST return either \field{max_vqs} to be non zero or return
> +\field{cvq_supports_ff_ops} to 1; the device MUST return non zero value
> for fields
> +\field{max_groups}, \field{max_ff_per_group}, \field{max_ff},
> +\field{max_match_fields} and \field{max_flow_priorities_per_group}.
> +
> +When the command VIRTIO_NET_CTRL_FF_MATCH_CAP_GET completes successfully,
> the
> +device MUST return non zero value for \field{num_entries} and return
> +corresponding number of valid entries.
May be better to say the fields_bmap cannot be 0 for any returned entry.
The same field type should not repeat multiple times. Also it is better 
to order the entries in network protocol order (l2,l3,l4).
> +
> +The device MUST respond VIRTIO_NET_ERROR for the command
> +VIRTIO_NET_CTRL_FF_GROUP_ADD if there are existing flow filters for the
> +supplied group \field{id} or for the supplied \field{priority}.
> +
> +The device MUST respond VIRTIO_NET_ERROR for the command
> +VIRTIO_NET_CTRL_FF_GROUP_DEL if the group identified with \field{id}
> +does not exist in the device.
How about issuing VIRTIO_NET_CTRL_FF_GROUP_DEL when there are non zero
number of flow filters in the group ? that also result in error, right? 



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