On Wed, 16 Feb 2022 10:19:02 +0100 Staffan Wiklund <staffan...@gmail.com> wrote:
> Hello > > I wonder if it is possible for a DPDK application using the memif feature > to communicate with a native Linux application? > > I have tried to create a Docker container and start the image by: > docker run -ti --privileged -v "/mnt/huge:/mnt/huge" -v "/var/run:/var/run" > -v "/tmp:/tmp" -v "/run:/run" -v "/sys:/sys" -v "/dev:/dev" testpmd > /bin/bash > > In this container I start the dpdk-testpmd application in server mode by: > ./dpdk-testpmd -l 1-2 --no-pci --proc-type=primary --file-prefix=td1 > --vdev=net_memif,role=server,mac=00:00:00:00:00:01 -- -i > > From a UNIX shell in the same server I start the dpdk-testpmd in client > mode: > sudo ./dpdk-testpmd -l 3-4 --no-pci --proc-type=primary --file-prefix=td2 > --vdev=net_memif,zero-copy=yes,mac=00:00:00:00:00:02 --single-file-segments > -- -i > > This results in the following error message on the client side: > . . . > Configuring Port 0 (socket 0) > memif_connect_client(): Failed to connect socket: /run/memif.sock. > Fail to start port 0 > . . . > > If I start both sides in a UNIX shell, the client can connect to the server. > Do you know what can be the fault when executing in a Docker container and > in a UNIX shell for communication using the DPDK memif feature? > > Thanks > Staffan The docker container is in a different filesystem namespace so the two can't talk to each other. You might get it to work with the abstract option to memif.