diff options
author | Victor Morales <v.morales@samsung.com> | 2020-06-16 18:00:04 -0700 |
---|---|---|
committer | Victor Morales <v.morales@samsung.com> | 2020-06-17 08:15:40 -0700 |
commit | dd79554660e0f81cc8723243235e82e8769490f7 (patch) | |
tree | 3bf0c12317e8cbd59a2ad85cfbc3cfa2284b76b1 /kud/tests/cFW/packetgen | |
parent | 7b860ae60bf9686b449ab2fe3f18c33944bdd71c (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/Dockerfile | 47 | ||||
-rwxr-xr-x | kud/tests/cFW/packetgen/init.sh | 58 |
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 |