Jun Wang via discuss <ovs-discuss@openvswitch.org> writes:

>> Hello,
>  
>> Yes, this will result in better ovs-tcpdump performance. The reason
>> why it hasn't been added so far is because we can't guarantee or even
>> check for the existence of any given DPDK driver at runtime in a
>> generic fashion.
>>  
>> One option would be to select this type of interface with a
>> non-default command line flag.
>
> Hi, I also believe that choosing a non-default command line flag to support 
> this is a good option, allowing customers to decide whether or not
> to use this flag.
> However, there are still some details to consider, such as whether to allow 
> users to configure the virtio-user port queue, 
> and whether virtio-user usage requires affinity configuration, etc.

ovs-tcpdump will already support using `--mirror-to` as a destination.
Wouldn't that be an appropriate flag?  There's a lot involved with setup
for a successful DPDK environment, and as you note lots of user required
input.

>> What do you think?
>> M
>>  
>> On Mon, Feb 24, 2025 at 2:25 AM Jun Wang via discuss
>> <ovs-discuss@openvswitch.org> wrote:
>>>
>>> Hi,team.
>>>     In OVS-DPDK scenarios, using ovs-tcpdump for packet capture can 
>>> significantly impact forwarding performance due to the packet
> processing between user space and kernel space.
>>> This impact is especially noticeable when there is high traffic or when 
>>> multiple capture ports are started, causing the performance to
> degrade drastically.
>>> Therefore, the question is whether we have considered improving the packet 
>>> capture capability of ovs-tcpdump in OVS-DPDK scenarios.
> Based on my analysis,
>>> I believe replacing the default ovs-tcpdump mirror port with the DPDK 
>>> virtio-user interface would greatly enhance processing performance.
>>>
>>> https://doc.dpdk.org/guides-24.11/howto/virtio_user_as_exception_path.html
>>>
>>> Command to create a virtio-user port on an OVS-DPDK bridge:
>>>
>>> ovs-vsctl --may-exist add-port br-tun veth1 -- set interface veth1 
>>> type=dpdk -- set interface veth1
> options:dpdk-devargs="vdev:virtio_user0,path=/dev/vhost-net,iface=veth1"
>>>
>>> After creation, the corresponding interface veth1 is bound to PMD:
>>> [root@compute0-dpdk /]# ovs-appctl dpif-netdev/pmd-rxq-show
>>> pmd thread numa_id 1 core_id 21:
>>>   isolated : false
>>>   port: tun_port_p0       queue-id:  0 (enabled)   pmd usage:  0 %
>>>   port: vh-userclient-e5281ddf-c8  queue-id:  0 (enabled)   pmd usage:  0 %
>>>   overhead:  0 %
>>> pmd thread numa_id 1 core_id 22:
>>>   isolated : false
>>>   port: tun_port_p0       queue-id:  1 (enabled)   pmd usage:  0 %
>>>   port: veth1             queue-id:  0 (enabled)   pmd usage:  0 %
>>>   overhead:  0 %
>>> pmd thread numa_id 1 core_id 23:
>>>   isolated : false
>>>   port: tun_port_p1       queue-id:  0 (enabled)   pmd usage:  0 %
>>>   overhead:  0 %
>>> pmd thread numa_id 1 core_id 24:
>>>   isolated : false
>>>   port: tun_port_p1       queue-id:  1 (enabled)   pmd usage:  0 %
>>>   overhead:  0 %
>>>
>>> And the corresponding veth1 kernel interface can be seen in the kernel:
>>> [root@compute0-dpdk /]# ip ad|grep veth1
>>> 700: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group 
>>> default qlen 1000
>>>
>>> So, we only need to redirect the mirrored traffic to the virtio-user port, 
>>> which significantly improves performance compared to the default
> kernel-space mirror port.
>>>
>>> ________________________________
>>> Jun Wang
>>> _______________________________________________
>>> discuss mailing list
>>> disc...@openvswitch.org
>>> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>
> -------------------------------------------------------------------------------------------------------------------------
> Jun Wang
>
> _______________________________________________
> discuss mailing list
> disc...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to