[ovs-dev] [ovs-dev v3] dpif-netdev: Allow to set max capacity of flow on netdev.

Ilya Maximets i.maximets at ovn.org
Fri Jan 10 16:44:33 UTC 2020


On 10.01.2020 03:16, Tonghao Zhang wrote:
> On Fri, Jan 10, 2020 at 2:04 AM Ben Pfaff <blp at ovn.org> wrote:
>>
>> On Thu, Jan 09, 2020 at 04:14:10PM +0100, Ilya Maximets wrote:
>>> On 09.01.2020 08:36, xiangxia.m.yue at gmail.com wrote:
>>>> From: Tonghao Zhang <xiangxia.m.yue at gmail.com>
>>>>
>>>> For installing more than MAX_FLOWS (65536) flows to netdev datapath.
>>>> Add the ovs-appctl subcommand "dpif-netdev/pmd-set-max-flow" which
>>>> can change the flow number which netdev datapath support.
>>>>
>>>> Signed-off-by: Tonghao Zhang <xiangxia.m.yue at gmail.com>
>>>
>>> Hi.
>>>
>>> I'm wondering why we need the flow limit on the datapath level at all?
>>>
>>> MAX_FLOWS constant was there from the introduction of dpif-netdev,
>>> however, later new flow-limit mechanism was implemented that
>>> controls number of datapath flows in a dynamic way on ofproto level.
>>>
>>> So, maybe we can just remove the limit and fully rely on ofproto
>>> to decide what flow limit we need?  There are no limitations for
>>> flow table size in dpif-netdev beside the artificial one.
>>> 'other_config:flow-limit' seems suitable to control this.
>>>
>>> Ben, what do you think?
>>
>> Hmm, that's a good point.
>>
>> Tonghao, do you have a good reason to want to limit flows at this level?
> Hi Ben, as I explained, we don't use the ofproto layer, and use the
> ovs-appctl to install flow and
> offload them to hardware. so the "other_config:flow-limit" and
> "should_install_flow"  function is called
> when upcall install the rules, and can't limit it in dpcls layer as I
> know.  I am not sure installing rule via ovs-appctl
> is welcome.

As far as I understand, revalidators will start flow eviction if flow-limit
is reached while dumping datapath flows.  So, you should start seeing
flow deletion events if you'll reach ~200K flows installed in dpif-netdev.

Anyway, why you need a flow limit on datapath level if you're managing them
in so tricky way?

Best regards, Ilya Maximets.


More information about the dev mailing list