[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]