Hi, Everyone
I have a couple of questions:
- We used these standard option run DPDK in QEMU:
-chardev socket,id=char1,path=/usr/bin/usvhost-1\
-netdev type=vhost-user,id=mynet1,chardev=char1\
-device virtio-net-pci,mac==x1:x2:x3:x4:x5:x6,netdev=mynet1,id=net1,csum=off,gso=off,guest_csum=off,guest_tso4=off,guest_tso6=off,guest_ecn=off &
How to 1 on 1 mapping and correct run in container? what is these docker command? My targets:
(1) The docker’s all application can transmit/ receive in container’s interface(eth0).
(2) The container’s interface/IP can connect to outside PC when the DPDK is running.
- Here is dockerfile.
FROM ubuntu:16.04
RUN sed -i 's/# (.multiverse$)/\1/g’ /etc/apt/sources.list &&
apt-get update
&& apt-get -y upgrade
&& apt-get install -y
kmod
net-tools
iperf3
python-pip
python-httplib2
python-websocket
python-backports.ssl-match-hostname
&& rm -rf /var/lib/apt/lists/
RUN mkdir /mnt/huge-1048576kB > /dev/null
COPY dpdk-stable-16.07.2 /root/dpdk/.
ENV HOME /root
ENV RTE_SDK /root/sw_package/dpdk-stable-16.07.2
ENV RTE_TARGET=x86_64-native-linuxapp-gcc
ENV PATH “$PATH:$RTE_SDK/$RTE_TARGET/app”
WORKDIR /root/dpdk/x86_64-native-linuxapp-gcc/app
CMD ["/bin/bash"]
- Start a container instance with a virtio-user port.
docker run -it
-v /usr/bin/usvhost-1:/var/run/usvhost
-v /mnt/huge-1048576kB:/mnt/huge-1048576kB
–privileged --name container1 ubuntu:16.04 /bin/bash
- Run the testpmd and testing.
mount -t hugetlbfs nodev /mnt/huge-1048576kB
./testpmd -l 2-3 -n 2 -m 1024
–vdev=virtio_user0,mac=x1:x2:x3:x4:x5:x6,path=/var/run/usvhost1
–huge-dir /mnt/huge-1048576kB
–file-prefix=usvhost1 – -i
–txqflags=0xf00 --disable-hw-vlan
- Test Environment: PC <-> Host <-> container(It has DPDK function).
How to the PC side can ping to container’s IP?
I appreciate your help in clarifying this.