aboutsummaryrefslogtreecommitdiffstats
path: root/kud/tests/cFW/packetgen
diff options
context:
space:
mode:
authorVictor Morales <v.morales@samsung.com>2020-06-16 18:00:04 -0700
committerVictor Morales <v.morales@samsung.com>2020-06-17 08:15:40 -0700
commitdd79554660e0f81cc8723243235e82e8769490f7 (patch)
tree3bf0c12317e8cbd59a2ad85cfbc3cfa2284b76b1 /kud/tests/cFW/packetgen
parent7b860ae60bf9686b449ab2fe3f18c33944bdd71c (diff)
Update cFW instruction set
The cFW example has been changed since 1.3.0 version. This commit reduces the steps to setup and provision this CNF. Its main goal is to simplify deployment process. Issue-ID: MULTICLOUD-301 Change-Id: Id96ea4b427aff4c42ecfd43b42fa5d6970c4a6df Signed-off-by: Victor Morales <v.morales@samsung.com>
Diffstat (limited to 'kud/tests/cFW/packetgen')
-rw-r--r--kud/tests/cFW/packetgen/Dockerfile47
-rwxr-xr-xkud/tests/cFW/packetgen/init.sh58
2 files changed, 76 insertions, 29 deletions
diff --git a/kud/tests/cFW/packetgen/Dockerfile b/kud/tests/cFW/packetgen/Dockerfile
index cb1da555..074fec02 100644
--- a/kud/tests/cFW/packetgen/Dockerfile
+++ b/kud/tests/cFW/packetgen/Dockerfile
@@ -1,44 +1,33 @@
-FROM electrocucaracha/vpp
+FROM ubuntu:18.04 as builder
MAINTAINER Victor Morales <electrocucaracha@gmail.com>
-ARG HTTP_PROXY=${HTTP_PROXY}
-ARG HTTPS_PROXY=${HTTPS_PROXY}
-
-ENV http_proxy $HTTP_PROXY
-ENV https_proxy $HTTPS_PROXY
+ENV demo_artifacts_version "1.6.0"
ENV repo_url "https://nexus.onap.org/content/repositories/staging/org/onap/demo/vnf"
-ENV protected_net_cidr "192.168.20.0/24"
-ENV fw_ipaddr "192.168.10.100"
-ENV sink_ipaddr "192.168.20.250"
-ENV demo_artifacts_version "1.3.0"
-
-RUN apt-get install -y -qq wget openjdk-8-jre bridge-utils net-tools \
- bsdmainutils
+RUN apt-get update && apt-get install -y -qq --no-install-recommends \
+ wget ca-certificates
WORKDIR /opt
EXPOSE 8183
-RUN wget "https://git.onap.org/demo/plain/vnfs/vFW/scripts/v_packetgen_init.sh" \
- && wget "https://git.onap.org/demo/plain/vnfs/vFW/scripts/run_traffic_fw_demo.sh" \
- && chmod +x *.sh \
- && sed -i 's|start vpp|/usr/bin/vpp -c /etc/vpp/startup.conf|g;s|/opt/honeycomb/sample-distribution-\$VERSION/honeycomb|/opt/honeycomb/honeycomb|g' v_packetgen_init.sh
-
RUN wget "${repo_url}/sample-distribution/${demo_artifacts_version}/sample-distribution-${demo_artifacts_version}-hc.tar.gz" \
&& tar -zmxf sample-distribution-${demo_artifacts_version}-hc.tar.gz \
&& rm sample-distribution-${demo_artifacts_version}-hc.tar.gz \
&& mv sample-distribution-${demo_artifacts_version} honeycomb \
- && sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' /opt/honeycomb/config/honeycomb.json
+ && sed -i 's/"restconf-binding-address": .*/"restconf-binding-address": "0.0.0.0",/g' /opt/honeycomb/config/restconf.json
+
+FROM vpp
+
+COPY --from=builder /opt/honeycomb /opt/honeycomb
+COPY init.sh /opt/init.sh
-RUN wget "${repo_url}/vfw/vfw_pg_streams/${demo_artifacts_version}/vfw_pg_streams-${demo_artifacts_version}-demo.tar.gz" \
- && tar -zmxf vfw_pg_streams-${demo_artifacts_version}-demo.tar.gz \
- && rm vfw_pg_streams-${demo_artifacts_version}-demo.tar.gz \
- && mv vfw_pg_streams-${demo_artifacts_version} pg_streams
+ENV PROTECTED_NET_CIDR "192.168.20.0/24"
+ENV FW_IPADDR "192.168.10.100"
+ENV SINK_IPADDR "192.168.20.250"
-RUN mkdir -p /opt/config/ \
- && echo $protected_net_cidr > /opt/config/protected_net_cidr.txt \
- && echo $fw_ipaddr > /opt/config/fw_ipaddr.txt \
- && echo $sink_ipaddr > /opt/config/sink_ipaddr.txt \
- && echo $demo_artifacts_version > /opt/config/demo_artifacts_version.txt
+RUN apt-get update && apt-get install -y -qq --no-install-recommends \
+ openjdk-8-jre iproute2 \
+ && mkdir -p /opt/pg_streams
-CMD ["./v_packetgen_init.sh"]
+ENTRYPOINT ["/bin/bash"]
+CMD ["/opt/init.sh"]
diff --git a/kud/tests/cFW/packetgen/init.sh b/kud/tests/cFW/packetgen/init.sh
new file mode 100755
index 00000000..1df98424
--- /dev/null
+++ b/kud/tests/cFW/packetgen/init.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2020
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+set -o pipefail
+set -o xtrace
+set -o errexit
+set -o nounset
+
+echo 'start... vpp'
+/usr/bin/vpp -c /etc/vpp/startup.conf
+echo 'wait vpp be up ...'
+until vppctl show ver; do
+ sleep 1;
+done
+
+# Configure VPP for vPacketGenerator
+nic=eth0
+ip_addr=$(ip addr show $nic | grep inet | awk '{print $2}')
+
+vppctl create host-interface name "$nic"
+vppctl set int state "host-$nic" up
+vppctl set int ip address "host-$nic" "$ip_addr"
+vppctl ip route add "$PROTECTED_NET_CIDR" via "$FW_IPADDR"
+
+vppctl loop create
+vppctl set int ip address loop0 11.22.33.1/24
+vppctl set int state loop0 up
+
+# Install packet streams
+for i in $(seq 1 10); do
+ cat <<EOL > "/opt/pg_streams/stream_fw_udp"
+packet-generator new {
+ name fw_udp$i
+ rate 10
+ node ip4-input
+ size 64-64
+ no-recycle
+ interface loop0
+ data {
+ UDP: ${ip_addr%/*} -> $SINK_IPADDR
+ UDP: 15320 -> 8080
+ length 128 checksum 0 incrementing 1
+ }
+}
+EOL
+ vppctl exec "/opt/pg_streams/stream_fw_udp"
+done
+vppctl packet-generator enable
+
+# Start HoneyComb
+/opt/honeycomb/honeycomb