diff options
author | Ritu Sood <Ritu.Sood@intel.com> | 2020-06-28 03:06:50 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2020-06-28 03:06:50 +0000 |
commit | 8e446beb55c68314896f16cb3105816cacc05f84 (patch) | |
tree | b4a91164192c8fd96e933e51cea55737383cb8ce /kud/tests/cFW/packetgen | |
parent | 5a06648cdee4011b355c4be59ff265462e4c3d76 (diff) | |
parent | dd79554660e0f81cc8723243235e82e8769490f7 (diff) |
Merge "Update cFW instruction set"
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 |