If the nic on docker 1 of echo client can receive replies, the reason should not be PMD I think. Did you make sure every field in every layer is completely the same between eth0 in docker 1 and eth0 in docker 2, and all of them are expected? Boris Ouretskey 于2022年11月9日周三 03:51写道: > > > Hi > > I am trying to run a docker based system in one VM, with some servers > using the DPDK and facing a very strange issue. > > The relevant part of the system is the echo server which is built with > DPDK library and runs in docker, connected to the virtual bridge (with > AF_PACKET driver), and echo client built with regular sockets (java > application). See the drawing below for visual details. > > The strange thing is that echo replies sent from DPDK echo server docker > (Docker2), can be seen in tcpdump in the docker of echo client (Docker1) > however the application (java client) does not receive it on socket level. > When the echo server runs as a socket application everything works. Seams > like OS (linux) decide not to route the packet to the application for > some reason. > > Some quick important notes. > > - DPDK layer starts ok and no EAL errors are reported. Its echo replies as > mentioned before can clearly be seen when capturing traffic on eth0 in > client docker. > - It is not the issue of parsing the echo replies on application level. I > checked the strace logs and cannot see any traffic delivered to the > application > - I have compared the captures from working socket based echo server and > MACs seam to be ok, also the packets sent from DPDK server are formed well. > - No logs for martian packets when enabled. > > I would like to focus the attention of dear DPDK experts on the following > question: is it possible that DPDK AF_PACKET driver intercepts both packets > destined to the virtual nic eth0 of Docker1 AND eth0 of Docker2, > preventing it from being received by application? > > DPDK Version 18 > > VIRTUAL BOX VM (Alma Linux) > > Docker1 Docker2 > +---------------+ +------------+ > | | Request | | > | | --------------> | DPDK | > | Socket Echo | | Echo Server > | Client | Reply | Server | > | | <------------- | | > --vdev=eth_af_packet0,iface=eth0,qdisc_bypass=1 > | | | | > | tcpdump -i eth0 +------+-----+ > +-------+-------+ eth0 | > | eth0 | > | No IP | > +------v--------------------------------------v-----+ > | Virtual Docker Bridge | > +---------------------------------------------------+ > > > Thanks >