[ovs-dev] [PATCH V2 00/14] Netdev vxlan-decap offload

Eli Britstein elibr at nvidia.com
Tue Feb 23 11:50:58 UTC 2021


On 2/23/2021 1:38 PM, Kovacevic, Marko wrote:
> External email: Use caution opening links or attachments
>
>
>>>
>>> <...>
>>>> Sending to Marko. As he wasn't subscribed to ovs-dev then.
>>>>
>>> <...>
>>>>> VXLAN decap in OVS-DPDK configuration consists of two flows:
>>>>> F1: in_port(ens1f0),eth(),ipv4(),udp(), actions:tnl_pop(vxlan_sys_4789)
>>>>> F2: tunnel(),in_port(vxlan_sys_4789),eth(),ipv4(), actions:ens1f0_0
>>>>>
>>>>> F1 is a classification flow. It has outer headers matches and it classifies
>> the
>>>>> packet as a VXLAN packet, and using tnl_pop action the packet continues
>>>>> processing in F2.
>>>>> F2 is a flow that has matches on tunnel metadata as well as on the inner
>>>>> packet headers (as any other flow).
>>>>>
>>> <...>
>>>
>>> Hi Eli,
>>>
>>> Hi,
>>> After testing the patchset it seems  after the tenth patch I start seeing a
>> drop in the scatter performance around ~4% decrease  across all packet sizes
>> tested(112,256,512,1518)
>>> Burst measurement see a decrease also but not as much as the scatter
>> does.
>>
>> Hi Marko,
>>
>> Thanks for testing this series.
>>
>>> Patch10
>>> fff1f9168 netdev-offload-dpdk: Support tunnel pop action
>> It doesn't make sense that this commit causes any degradation as it only
>> enhances offloads that are not in the datapath and not done for
>> virtio-user ports in any case.
>>
>> Could you please double check?
>>
>> I would expect maybe a degradation with:
>>
>> Patch 12: 8a21a377c dpif-netdev: Provide orig_in_port in metadata for
>> tunneled packets
>>
>> Patch 6: e548c079d dpif-netdev: Add HW miss packet state recover logic
>>
>> Could you please double check what is the offending commit?
> So what I did after initial testing was rolled it back to patch 3 then 7 didn’t see any perf drop then went to 10 and once I tested it then I saw the perf drop as from the initial test.
> Ill double check it again to be sure with more commits.
>
>> Do you compile with ALLOW_EXPERIMENTAL_API defined or not?
> This is what I compile with:
> ./boot.sh
> ./configure --with-dpdk=static CFLAGS="-g -Ofast -march=native"
> make -j 10
> make install

Thanks. There is no ALLOW_EXPERIMENTAL_API defined, so there are no new 
offloads introduced by this series for this compilation.

The only datapath commits that might be suspected are then as above 
(6,12). Please double check it.

I would expect your PF (NIC) support for partial offload. Could you 
please verify that this is not affected before and after the series?

>>> The test used for this is a 32 virito-user ports with 1Millions flows.
>> Could you please elaborate exactly about your setup and test?
>>
>> What are "1M flows"? what are the differences between them?
>          No difference in the million flows that is just how many are generated.
>          Ip changes are mostly changed  with each flow
>
> I commented below about the 1m flows on the test
>
>
>> What are the OpenFlow rules you use?
>>
>> Are there any other configurations set (other_config for example)?
>>
>> What is being done with the packets in the guest side? all ports are in
>> the same VM?
>          Encap decap on the vhost connection, and its 32virtio user ports and not vms is simulates the vm connection without using one.
Could you please elaborate the details of this? is it testpmd? if so, 
what's the execution line? some other app?
>
> Traffic @ Phy NIC Rx:
> Ether()/IP()/UDP()/VXLAN()/Ether()/IP()
>
> BURST:
>
> On the outer IP the source address remains the same for 32 instances before changing by .1 for 1024 times,
>   while the destination remains the same, for the inner IP both destination and source IP’s increment by .1 for a total of 1048576 creating the 1 million flows for the test.
>
> SCATTER:
>
> On the outer IP the source address changes incrementally for 1-32 unlike burst which uses the same IP for 32 instances,
> the destination address remains the same on the outer IP, for the inner IP source IP remains the same while the destination
> address increments for a total of 1048576 times creating the million flows for the test.
>
>>> Traffic @ Phy NIC Rx:
>>> Ether()/IP()/UDP()/VXLAN()/Ether()/IP()
>>>
>>> Burst: on the outer ip we do a burst of 32 packets with same ip then switch
>> for next 32 and so on
>>> Scatter: for scatter we do incrementally for 32
>>> And on the inner packet we have a total of  1048576 flows
>>>
>>> I can send on a diagram directly just restricted with html here to send the
>> diagram here of the test setup
>>
>> As commented above, I would appreciate more details about your tests and
>> setup.
>>
>> Thanks,
>>
>> Eli
>>
>>> Thanks
>>> Marko K


More information about the dev mailing list