> -----Original Message-----
> From: Simon Horman <simon.hor...@corigine.com>
> Sent: Thursday, April 6, 2023 8:48 PM
> To: Ilya Maximets <i.maxim...@ovn.org>
> Cc: lin huang <mit...@outlook.com>; d...@openvswitch.org
> Subject: Re: [ovs-dev] [PATCH v1 0/2] Add netdev-dpdk support for ingress
> and egress pkts policer.
> 
> On Thu, Apr 06, 2023 at 02:13:00PM +0200, Ilya Maximets wrote:
> > On 4/6/23 08:38, Simon Horman wrote:
> > > On Wed, Apr 05, 2023 at 02:07:42PM +0000, lin huang wrote:
> > >> Hi Simon,
> > >>
> > >> : )
> > >> Thanks for your reply.
> > >>
> > >> There are some explanations about your comments.
> > >>
> > >> Best regards, Huang Lin.
> > >>
> > >>> -----Original Message-----
> > >>> From: Simon Horman <simon.hor...@corigine.com>
> > >>> Sent: Wednesday, April 5, 2023 8:28 PM
> > >>> To: lin huang <mit...@outlook.com>
> > >>> Cc: d...@openvswitch.org; i.maxim...@ovn.org
> > >>> Subject: Re: [ovs-dev] [PATCH v1 0/2] Add netdev-dpdk support for
> ingress and
> > >>> egress pkts policer.
> > >>>
> > >>> On Tue, Apr 04, 2023 at 01:46:05PM +0000, lin huang wrote:
> > >>>> Hi Ilya,
> > >>>>
> > >>>> Pls review my code.
> > >>>>
> > >>>> I want to add a new policer which is pps-based in netdev-dpdk
> module.
> > >>>> The policer is divided into ingress and egress part. Both use the ovs
> native
> > >>> tocken bucket library as the counter.
> > >>>> Compared to bandwidth-based policers, the pps-based policer is more
> > >>> effective at combating low-and-slow types of DDoS attacks.
> > >>>>
> > >>>> This new ingress policer is configured using the "policer_kpkts_rate"
> and
> > >>> "policer_kpkts_burst" configuration statement. Here is the example.
> > >>>> ovs-vsctl set interface dpdk0 policer_kpkts_rate=2
> > >>>> ovs-vsctl set interface dpdk0 policer_kpkts_burst=2
> > >>>>
> > >>>> This new egress policer is configured using the " egress-pkts-policer "
> > >>> configuration statement. Here is the example.
> > >>>> ovs-vsctl set port vhost-user0 qos=@newqos -- \
> > >>>>     --id=@newqos create qos type=egress-pkts-policer
> > >>> other-config:pkts_rate=2048 \
> > >>>>     other-config:pkts_burst=2048`
> > >>>
> > >>> I have some high level questions about this.
> > >>>
> > >>> 1. For ingress there is, as you mention above,
> > >>>    already options at the ovs-vsctl for port-based PPS policing.
> > >>>
> > >>>    Did you consider making the egress options you are adding consistent
> > >>>    with the existing ingress options?
> > >>>    f.e.  egress_policing_kpkts_rate and egress_policing_kpkts_rate.
> > >>
> > >>  Yes we can add new egress options in interface. But this work will
> conflict the
> > >>     userspace datapath egress QoS (egress policing) framework.
> > >>  The framework needs to set up a QoS instance which is configured by
> cir/cbs/pps... to a specific port.
> > >>  So, I add a new egress policer called pkts-policer.
> > >
> > > My point was mainly that for ingress we use 'kpkts'
> > > But your proposal for egress uses 'pkts'.
> > > I think they should be the same.
> >
> > I had the same thought, so pointed that out in my review for the patch.
> > I think, we agreed to change to kilo-. The math will also become less
> > confusing.
> 
> Thanks

Thanks for your reply.
As Ilya said, we agreed to change egress parameters to kilo.

> 
> > >>> 2. Metering operates on egress, is a policer, and can support PPS.
> > >>>    Did you consider using this instead of adding a new egress policer?
> > >>
> > >>  In my opinion, meter table is used in flow rate limit not in interface
> traffic.
> > >>     Interface policer is different from meter policer which you can 
> > >> police a
> specific flow.
> > >>  The new egress policer is just in userspace datapath not in kernel
> datapath.
> > >>  Does the new policer involve the kernel datapath?
> > >>
> > >>>
> > >>>    There is an upstreamed implementation of this for upstreamed
> > >>>    for the kernel datapath with and without TC HW offload.
> > >
> > > My point is that, in my experience, metering covers your use-case as I
> > > understand it. I'd be interested to hear of an example where it does not.
> >
> > I suppose, it's useful for those who are using OVS as a simple learning
> > switch and don't want to mess with OpenFlow rules.  I'm guessing that's
> > a fair share of DPDK port users.
> 
> Point taken.
> 
> I guess for my use-cases the complexity of meters was managed at a higher
> layer, which made it a good choice - partly because it was already
> supported by the higher layers.
> 

Thank you for sharing your advice with me.

Yes, meters can do kpkts and pps rate limit by openflow rules which can cover 
my use-cases.
But In some specific case, user just want to limit flow by a simple command 
line configuration not Openflow rules.
A lot of OpenFlow rules which added by controller will spend a higher memory 
and cpu cycles.


_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to