[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
> From: Satananda Burla <sburla@marvell.com> > Sent: Sunday, October 1, 2023 3:13 PM > > 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=NHDPsfcAYl > N2z- > > > NXHHG4WB09qqS0voo_nf6_kGS625A&m=8GgvPPzhkMzjnrqhLPEu7j1B0uqFdiy > 5e7lQGf > > UZEW > > > MOxPwYNGtfRt_j2pephKf8&s=8VGvaTxBK738Ex8bGnhEXIrrDkavvG_JfEZ7TkUY > e-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? Yes. good point. I will add it v1.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]