Hi there,
We have an application running on top of DPDK. Now we need to change the setup so that some traffic enters in the Linux stack while other continues to be processed by the already existing DPDK application. For this reason we decided to modify the DPDK application to run on top of XDP sockets with applied BPF filters for the traffic separation. The scheme seems to work fine in case of a single port. However, we have usage scenarios where the application runs on top of several ports and creates bonding internally.
So, I tried to create a bonding of net_af_xdp devices but it doesn't seem to work and I can't figure the reason why, looking at the code. It prints the following errors internally:
xsk_configure(): Failed to create xsk socket.
eth_rx_queue_setup(): Failed to configure xdp socket
slave_start(1817) - rte_eth_rx_queue_setup: port=0 queue_id 0, err (-22)
bond_ethdev_start(2057) - bonded port (3) failed to start slave device (0)
1. If bonding with net_af_xdp devices possible or not?
2. If the bonding is not possible are there other options to run DPDK on top of XDP sockets when there are multiple physcial ports at the bottom? Should I use "directly" the net_af_xdp devices and implement the bonding logic in the application?