I'm trying to complie and run Caladan with an easy udp-send application. The application is modified from apps/bench/netbench_udp.cc by just calling udp_send() in the RunExperiment() function. I run the app in server A, and run tcpdump in the server B. However, server B cannot capture any packet from server A.
Any idea on how to resolve the problem? Thank you for your time and effort.
Environment
CPU: Intel(R) Xeon(R) CPU E5-2620
NIC: Intel XL710
Ubuntu 20.04.1 with kernel 5.15.0
The NIC binds to vfio-pci.
The two NICs in the two servers are connected directly.
More details
I have read the packet from rte_mbuf in tx_burst, the packet is valid.
The eth_rte_tx_burst return a right value.
I write another app with pure dpdk. I construct an identical packet, and send it by the rte_eth_tx_burst. Server B can receive the packet.
$ sudo ./iokerneld simple noht
CPU 03| <5> cpu: detected 12 cores, 2 nodes
CPU 03| <5> time: detected 2397 ticks / us
[ 0.003655] CPU 03| <5> sched: CPU configuration...
node 0: [0][2][4][6][8][10]
node 1: [1][3][5][7][9][11]
[ 0.003687] CPU 03| <5> sched: dataplane on 2, control on 0
===== Processor information =====
Linux arch_perfmon flag : yes
Hybrid processor : no
IBRS and IBPB supported : yes
STIBP supported : yes
Spec arch caps supported : no
Max CPUID level : 15
IBRS enabled in the kernel : no
STIBP enabled in the kernel : no
Socket 0: 2 memory controllers detected with total number of 5 channels. 2 QPI ports detected. 0 M2M (mesh to memory) blocks detected. 1 Home Agents detected. 0 M3UPI blocks detected.
Socket 1: 2 memory controllers detected with total number of 5 channels. 2 QPI ports detected. 0 M2M (mesh to memory) blocks detected. 1 Home Agents detected. 0 M3UPI blocks detected.
[ 0.189100] CPU 00| <5> control: spawning control thread
EAL: Detected CPU lcores: 12
EAL: Detected NUMA nodes: 2
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_i40e (8086:1583) device: 0000:06:00.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
[ 0.796731] CPU 02| <5> dpdk: driver: net_i40e port 0 MAC: 3c fd fe 9e 81 98
[ 0.797045] CPU 02| <5> main: core 2 running dataplane. [Ctrl+C to quit]
[ 4.456723] CPU 02| <3> tx: transmitted 1 packets on port 0
[ 5.456809] CPU 02| <3> tx: transmitted 1 packets on port 0
[ 6.456958] CPU 02| <3> tx: transmitted 1 packets on port 0
[ 7.457047] CPU 02| <3> tx: transmitted 1 packets on port 0
...
I'm trying to complie and run Caladan with an easy udp-send application. The application is modified from apps/bench/netbench_udp.cc by just calling
udp_send()
in theRunExperiment()
function. I run the app in server A, and run tcpdump in the server B. However, server B cannot capture any packet from server A. Any idea on how to resolve the problem? Thank you for your time and effort.Environment CPU: Intel(R) Xeon(R) CPU E5-2620 NIC: Intel XL710 Ubuntu 20.04.1 with kernel 5.15.0 The NIC binds to vfio-pci. The two NICs in the two servers are connected directly.
More details I have read the packet from rte_mbuf in
tx_burst
, the packet is valid. Theeth_rte_tx_burst
return a right value. I write another app with pure dpdk. I construct an identical packet, and send it by therte_eth_tx_burst
. Server B can receive the packet.The configuration file
the output