From 73f56f16a45e6ff77363956cb6c1130cbf4025c3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 9 Apr 2019 06:47:51 -0500 Subject: vfirewall usecase for arm64 vfirewall support for running on arm64 openstack deployment. Due to lack of support for arm64 un current vfirewall usecase deps we had to update some components version like the ubuntu (16.04) vpp, dpdk, and honeycomb Change-Id: I3a434df1493fab9bdb43cb0ec1313b1a626b33c9 Issue-ID: INT-884 Signed-off-by: Paul Vaduva --- vnfs/vFW/scripts/v_packetgen_init_arm64.sh | 94 ++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100755 vnfs/vFW/scripts/v_packetgen_init_arm64.sh (limited to 'vnfs/vFW/scripts/v_packetgen_init_arm64.sh') diff --git a/vnfs/vFW/scripts/v_packetgen_init_arm64.sh b/vnfs/vFW/scripts/v_packetgen_init_arm64.sh new file mode 100755 index 00000000..ca2cb7c1 --- /dev/null +++ b/vnfs/vFW/scripts/v_packetgen_init_arm64.sh @@ -0,0 +1,94 @@ +#!/bin/bash +set -x + +# Convert Network CIDR to Netmask +mask2cidr() { + nbits=0 + IFS=. + for dec in $1 ; do + case $dec in + 255) let nbits+=8;; + 254) let nbits+=7;; + 252) let nbits+=6;; + 248) let nbits+=5;; + 240) let nbits+=4;; + 224) let nbits+=3;; + 192) let nbits+=2;; + 128) let nbits+=1;; + 0);; + *) echo "Error: $dec is not recognized"; exit 1 + esac + done + echo "$nbits" +} + +# Start VPP +if ! which start; then + echo "#!/bin/bash" > /usr/local/sbin/start + echo "systemctl start \$1" >> /usr/local/sbin/start + chmod u+x /usr/local/sbin/start +fi +start vpp +sleep 1 + +# Configure VPP for vPacketGenerator +IPADDR1=$(ifconfig enp2s0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2) +HWADDR1=$(ifconfig enp2s0 | grep -Po "HWaddr \K(.*)") +FAKE_HWADDR1=$(echo -n 00; dd bs=1 count=5 if=/dev/urandom 2>/dev/null | hexdump -v -e '/1 ":%02X"') +PROTECTED_NET_CIDR=$(cat /opt/config/protected_net_cidr.txt) +FW_IPADDR=$(cat /opt/config/fw_ipaddr.txt) +SINK_IPADDR=$(cat /opt/config/sink_ipaddr.txt) + +IPADDR1_MASK=$(ifconfig enp2s0 | grep "Mask" | awk '{print $4}' | awk -F ":" '{print $2}') +IPADDR1_CIDR=$(mask2cidr $IPADDR1_MASK) + +ifconfig enp2s0 down +ifconfig enp2s0 hw ether $FAKE_HWADDR1 +ip addr flush dev enp2s0 +ifconfig enp2s0 up +vppctl tap connect tap111 hwaddr $HWADDR1 +vppctl set int ip address tapcli-0 $IPADDR1"/"$IPADDR1_CIDR +vppctl set int state tapcli-0 up +brctl addbr br0 +brctl addif br0 tap111 +brctl addif br0 enp2s0 +ifconfig br0 up +vppctl ip route add $PROTECTED_NET_CIDR via $FW_IPADDR +sleep 1 + +# Install packet streams +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp1 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp2 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp3 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp4 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp5 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp6 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp7 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp8 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp9 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp10 +vppctl exec /opt/pg_streams/stream_fw_udp1 +vppctl exec /opt/pg_streams/stream_fw_udp2 +vppctl exec /opt/pg_streams/stream_fw_udp3 +vppctl exec /opt/pg_streams/stream_fw_udp4 +vppctl exec /opt/pg_streams/stream_fw_udp5 +vppctl exec /opt/pg_streams/stream_fw_udp6 +vppctl exec /opt/pg_streams/stream_fw_udp7 +vppctl exec /opt/pg_streams/stream_fw_udp8 +vppctl exec /opt/pg_streams/stream_fw_udp9 +vppctl exec /opt/pg_streams/stream_fw_udp10 +sleep 1 + +# Start HoneyComb +#VERSION=$(cat /opt/config/demo_artifacts_version.txt) +mkdir -p /var/lib/honeycomb/persist/{config,context}/ +echo "" > /var/lib/honeycomb/persist/context/data.json +echo "" > /var/lib/honeycomb/persist/config/data.json +#/opt/honeycomb/sample-distribution-$VERSION/honeycomb &>/dev/null &disown +systemctl restart honeycomb +sleep 20 + +# Enable traffic flows +cd /opt +chmod +x run_traffic_fw_demo.sh +./run_traffic_fw_demo.sh &>/dev/null &disown -- cgit 1.2.3-korg