aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Multanen <eric.w.multanen@intel.com>2017-11-29 23:22:11 -0800
committerEric Multanen <eric.w.multanen@intel.com>2017-11-29 23:22:11 -0800
commit9f8f157397a44c8183040902fe1d990336cdb8e6 (patch)
treebccb7f84f7aaa2610e8fb350fa89c0481585050d
parentce34d8a702ab6fe99dab6d6a94b2600bd1464e59 (diff)
Reset VES packet loss rate to zero on reboot
Adds logic to reset the VES packet loss rate to 0% when the vg-mux is rebooted. As part of this change, the VES agent configuration will only be restored via the honeycomb persistence mechanism. So, if the VES agent is configured via the vppctl CLI, that setting will not be saved during shutdown. In other words, setting of the VES agent and VES mode should be done via the honeycomb REST API in order for the configuration to be persisted across reboot (with the pkt loss rate being reset to 0 %). Change-Id: I8d1f43316d9608f8d7e7ce919f129ce8fe48aa7f Issue-ID: INT-63 Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
-rw-r--r--vnfs/vCPE/scripts/v_gmux_install.sh40
1 files changed, 14 insertions, 26 deletions
diff --git a/vnfs/vCPE/scripts/v_gmux_install.sh b/vnfs/vCPE/scripts/v_gmux_install.sh
index 5e98fe1b..e1702ee4 100644
--- a/vnfs/vCPE/scripts/v_gmux_install.sh
+++ b/vnfs/vCPE/scripts/v_gmux_install.sh
@@ -397,6 +397,7 @@ After=vpp.service
[Service]
ExecStart=/opt/honeycomb/honeycomb
+ExecStop=/opt/reset_ves_mode.sh
Restart=always
RestartSec=10
@@ -405,6 +406,19 @@ WantedBy=multi-user.target
EOF
systemctl enable /etc/systemd/system/honeycomb.service
+ # Create script that is used to reset the ves mode configuration
+ # when the honeycomb service is stopped
+ cat > /opt/reset_ves_mode.sh << EOF
+#!/bin/bash
+mode_data=\$(curl -X GET -u admin:admin http://127.0.0.1:8183/restconf/config/vesagent:vesagent/mode 2>/dev/null | sed s/\"base-packet-loss\":[0-9]\*,/\"base-packet-loss\":0,/)
+if [[ "\${mode_data}" != "" ]]
+then
+ curl -X DELETE -u admin:admin http://127.0.0.1:8183/restconf/config/vesagent:vesagent/mode
+ curl -H "Content-Type:application/json" --data "\${mode_data}" -X POST -u admin:admin http://127.0.0.1:8183/restconf/config/vesagent:vesagent
+fi
+EOF
+ chmod a+x /opt/reset_ves_mode.sh
+
#Create a systemd service for auto-save
cat > /usr/bin/save_config << EOF
#!/bin/bash
@@ -463,30 +477,6 @@ write_startup_scripts()
fi
}
-# Saves the VES agent configuration to the startup script.
-#
-# Get the current VES agent configuration from the bash command:
-# \$vppctl show ves agent
-# Server Addr Server Port Interval Enabled
-# 127.0.0.1 8080 10 True
-# Set the VES agent configuration with the bash command:
-# \$vppctl set ves agent server 127.0.0.1 port 8080 intval 10
-#
-save_ves_config()
-{
- local server=""
- local port=""
- local intval=""
-
- local ves_config=\`vppctl show ves agent | head -2 | tail -1\`
- if [ "\${ves_config}" != "" ] ;then
- server=\`echo \${ves_config} | awk '{ print \$1 }'\`
- port=\`echo \${ves_config} | awk '{ print \$2 }'\`
- intval=\`echo \${ves_config} | awk '{ print \$3 }'\`
- write_startup_scripts add "set ves agent server \${server} port \${port} intval \${intval}"
- fi
-}
-
# Save the VxLAN Tunnel Configuration to the startup script.
#
# Get the current VxLAN tunnel configuration with bash command:
@@ -551,8 +541,6 @@ save_vxlan_xconnect()
################################# MAIN ###################################
-save_ves_config
-
save_vxlan_tunnel
save_vxlan_xconnect