[ovs-dev] [PATCH v2] dpctl: add add-flows command to dpctl

Eelco Chaudron echaudro at redhat.com
Tue Oct 13 08:42:49 UTC 2020



On 8 Oct 2020, at 18:00, Ilya Maximets wrote:

> On 10/8/20 5:50 PM, Eelco Chaudron wrote:
>>
>>
>> On 8 Oct 2020, at 17:43, Ilya Maximets wrote:
>>
>>> On 10/1/20 3:37 PM, Eelco Chaudron wrote:
>>>> When you would like to add, modify, or delete a lot of flows in the
>>>> datapath, for example when you want to measure performance, adding
>>>> one flow at the time won't scale. This as it takes a decent amount
>>>> of time to set up the datapath connection.
>>>>
>>>> This new command is in-line with the same command available in
>>>> ovs-ofctl which allows the same thing, with the only difference 
>>>> that
>>>> we do not verify all lines before we start execution. This allows 
>>>> for
>>>> a continuous add/delete stream. For example with a command like 
>>>> this:
>>>>
>>>> python3 -c 'while True:
>>>>   for i in range(0, 1000):
>>>>     print("add 
>>>> in_port(0),eth(),eth_type(0x800),ipv4(src=100.1.{}.{}) 
>>>> 1".format(int(i / 256), i % 256))
>>>>   for i in range(0, 1000):
>>>>     print("delete 
>>>> in_port(0),eth(),eth_type(0x800),ipv4(src=100.1.{}.{})".format(int(i 
>>>> / 256), i % 256))' \
>>>> |  sudo utilities/ovs-dpctl add-flows -
>>>>
>>>>
>>>> Signed-off-by: Eelco Chaudron <echaudro at redhat.com>
>>>> ---
>>>> v2: - Added change to NEWS
>>>>     - Updated man page to be more clear
>>>>
>>>>  NEWS                  |    3 +
>>>>  lib/dpctl.c           |  179 
>>>> ++++++++++++++++++++++++++++++++++++++++++++-----
>>>>  lib/dpctl.man         |   11 +++
>>>>  utilities/ovs-dpctl.c |    5 +
>>>>  4 files changed, 177 insertions(+), 21 deletions(-)
>>>>
>>>> diff --git a/NEWS b/NEWS
>>>> index 015facff5..93909ab07 100644
>>>> --- a/NEWS
>>>> +++ b/NEWS
>>>> @@ -35,7 +35,8 @@ Post-v2.13.0
>>>>     - Tunnels: TC Flower offload
>>>>       * Tunnel Local endpoint address masked match are 
>>>> supported.
>>>>       * Tunnel Romte endpoint address masked match are 
>>>> supported.
>>>> -
>>>> +   - 'ovs-dpctl add-flows' command has been added which allows 
>>>> adding,
>>>> +     deleting, or modifying flows based on information read 
>>>> from a file.
>>>
>>> This in a wrong section.
>>
>> Guess it should be in  “Linux datapath:”?
>
> It should be in Post-v2.14.0. :)
> And, please, keep 2 empty lines between releases.
>
> For the entry itself, it might look like:
>
>    - ovs-dpctl and 'ovs-appctl dpctl/':
>      * New command ...

Ack, just sent a v3.

>>
>>> Anyway, this looks a bit wierd that in order to delete flows I need 
>>> to
>>> run 'add-flows' with 'delete' argument.
>>> IIUC, ability to add/remove/modify flows within single add-flows 
>>> command
>>> of ovs-ofclt was added to utilize OF1.4 --bundle support, i.e. to 
>>> make
>>> such modifications atomically.  So, this is additional 
>>> functionality, not
>>> the basic one.  This is a bit annoying that I can not delete flows 
>>> using
>>> the same file that I used for addition.  Basic commands are 
>>> missing.
>>> Maybe it's better to add 'del-flows' and, probably, 'mod-flows' 
>>> commands
>>> so it will be easier to use?
>>
>> I still would like to do add/delete/mod in a single file, as it will 
>> help testing.
>
> Sure.
>
>> However, I could add ‘del-flows' and, probably, 'mod-flows' which 
>> will use their perspective name as the default action?
>
> Yes, that would be good.

Done in v3, as well as the tests suggested below.

> Additionally it might make sense to add some tests to tests/dpctl.at.
> Just basic things, i.e. add and del some flows with single commands
> and via flows listed in some file.



More information about the dev mailing list