Tools: Update PktGen Container. 31/73031/1
authorSridhar K. N. Rao <sridhar.rao@spirent.com>
Mon, 22 Nov 2021 16:35:49 +0000 (22:05 +0530)
committerSridhar K. N. Rao <sridhar.rao@spirent.com>
Mon, 22 Nov 2021 16:36:55 +0000 (22:06 +0530)
This patch updates pktgen container.

Signed-off-by: Sridhar K. N. Rao <sridhar.rao@spirent.com>
Change-Id: Id12ed71a2c531c3462985882e980a97f1151eefa

tools/docker/test-containers/trafficgen-pods/pktgen/Dockerfile
tools/docker/test-containers/trafficgen-pods/pktgen/vhost_substitute.sh [new file with mode: 0755]

index 44bed3e..3307860 100644 (file)
@@ -20,6 +20,8 @@ RUN cp bin/libnetutil_api.so /lib64/libnetutil_api.so; cp bin/libnetutil_api.h /
 
 ## Download and Build DPDK
 ##
+
+
 ENV DPDK_VER 21.02
 ENV DPDK_DIR /usr/src/dpdk-${DPDK_VER}
 WORKDIR /usr/src/
@@ -32,17 +34,17 @@ WORKDIR ${DPDK_DIR}
 COPY ./vhost_substitute.sh ./vhost_substitute.sh
 RUN ./vhost_substitute.sh
 
+EXPOSE 22 8474
+
 RUN yum install -y epel-release && yum install -y dnf
 RUN dnf install -y meson ninja-build
 RUN pip3 install pyelftools
 
 RUN meson build && ninja -C build && ninja -C build install && ldconfig
 
-EXPOSE 22 8474
-
 WORKDIR /usr/src/
 ENV PKG_CONFIG_PATH /usr/local/lib64/pkgconfig
 RUN git clone http://dpdk.org/git/apps/pktgen-dpdk
 RUN yum install -y libpcap libpcap-devel
-RUN cd pktgen-dpdk && make -j
-
+RUN yum install -y kernel-devel kernel-headers
+RUN cd pktgen-dpdk && git checkout tags/pktgen-21.02.0 && make -j
diff --git a/tools/docker/test-containers/trafficgen-pods/pktgen/vhost_substitute.sh b/tools/docker/test-containers/trafficgen-pods/pktgen/vhost_substitute.sh
new file mode 100755 (executable)
index 0000000..b33f352
--- /dev/null
@@ -0,0 +1,19 @@
+!/bin/bash
+
+# The first two commands update one of the 'if' checks to remove
+# the check for 'master == VHOST_USER_SET_VRING_CALL'.
+#
+# Search for:   "                       !(dev->flags & VIRTIO_DEV_VDPA_CONFIGURED) &&".
+# Replace with: "                       !(dev->flags & VIRTIO_DEV_VDPA_CONFIGURED)) {".
+sed -i -e 's/                   !(dev->flags & VIRTIO_DEV_VDPA_CONFIGURED) &&/                  !(dev->flags \& VIRTIO_DEV_VDPA_CONFIGURED)) {/g' lib/librte_vhost/vhost_user.c
+#
+# Search for line with: "                       msg.request.master == VHOST_USER_SET_VRING_CALL) {".
+# Delete the line.
+sed -i -e '/                    msg\.request\.master == VHOST_USER_SET_VRING_CALL) {/d' lib/librte_vhost/vhost_user.c
+
+
+# Force an RARP message to be sent out.
+#
+# Search for line with: "       hw->started = true;".
+# Append line:          "       virtio_notify_peers(dev);".
+sed -i -e '/    hw->started = true;/a    virtio_notify_peers(dev);' drivers/net/virtio/virtio_ethdev.c