aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/open-contrail/templates/vrouter-functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/roles/open-contrail/templates/vrouter-functions.sh')
-rwxr-xr-xdeploy/adapters/ansible/roles/open-contrail/templates/vrouter-functions.sh223
1 files changed, 0 insertions, 223 deletions
diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/vrouter-functions.sh b/deploy/adapters/ansible/roles/open-contrail/templates/vrouter-functions.sh
deleted file mode 100755
index 69af7b2a..00000000
--- a/deploy/adapters/ansible/roles/open-contrail/templates/vrouter-functions.sh
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/bin/bash
-##############################################################################
-# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
-#
-# 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
-##############################################################################
-
-source /etc/contrail/agent_param
-
-function pkt_setup () {
- for f in /sys/class/net/$1/queues/rx-*
- do
- q="$(echo $f | cut -d '-' -f2)"
- r=$(($q%32))
- s=$(($q/32))
- ((mask=1<<$r))
- str=(`printf "%x" $mask`)
- if [ $s -gt 0 ]; then
- for ((i=0; i < $s; i++))
- do
- str+=,00000000
- done
- fi
- echo $str > $f/rps_cpus
- done
-}
-
-function insert_vrouter() {
- if cat $CONFIG | grep '^\s*platform\s*=\s*dpdk\b' &>/dev/null; then
- vrouter_dpdk_start
- return $?
- fi
-
- grep $kmod /proc/modules 1>/dev/null 2>&1
- if [ $? != 0 ]; then
- insmod /var/lib/dkms/vrouter/2.21/build/vrouter.ko
- if [ $? != 0 ]
- then
- echo "$(date) : Error inserting vrouter module"
- return 1
- fi
-
- if [ -f /sys/class/net/pkt1/queues/rx-0/rps_cpus ]; then
- pkt_setup pkt1
- fi
- if [ -f /sys/class/net/pkt2/queues/rx-0/rps_cpus ]; then
- pkt_setup pkt2
- fi
- if [ -f /sys/class/net/pkt3/queues/rx-0/rps_cpus ]; then
- pkt_setup pkt3
- fi
- fi
-
- # check if vhost0 is not present, then create vhost0 and $dev
- if [ ! -L /sys/class/net/vhost0 ]; then
- echo "$(date): Creating vhost interface: $DEVICE."
- # for bonding interfaces
- loops=0
- while [ ! -f /sys/class/net/$dev/address ]
- do
- sleep 1
- loops=$(($loops + 1))
- if [ $loops -ge 60 ]; then
- echo "Unable to look at /sys/class/net/$dev/address"
- return 1
- fi
- done
-
- DEV_MAC=$(cat /sys/class/net/$dev/address)
- vif --create $DEVICE --mac $DEV_MAC
- if [ $? != 0 ]; then
- echo "$(date): Error creating interface: $DEVICE"
- fi
-
-
- echo "$(date): Adding $dev to vrouter"
- DEV_MAC=$(cat /sys/class/net/$dev/address)
- vif --add $dev --mac $DEV_MAC --vrf 0 --vhost-phys --type physical
- if [ $? != 0 ]; then
- echo "$(date): Error adding $dev to vrouter"
- fi
-
- vif --add $DEVICE --mac $DEV_MAC --vrf 0 --type vhost --xconnect $dev
- if [ $? != 0 ]; then
- echo "$(date): Error adding $DEVICE to vrouter"
- fi
- fi
- return 0
-}
-
-function vrouter_dpdk_start() {
- # wait for vRouter/DPDK to start
- echo "$(date): Waiting for vRouter/DPDK to start..."
- service ${VROUTER_SERVICE} start
- loops=0
- while ! is_vrouter_dpdk_running
- do
- sleep 1
- loops=$(($loops + 1))
- if [ $loops -ge 60 ]; then
- echo "No vRouter/DPDK running."
- echo "Please check if ${VROUTER_SERVICE} service is up and running."
- return 1
- fi
- done
-
- # TODO: at the moment we have no interface deletion, so this loop might
- # be unnecessary in the future
- echo "$(date): Waiting for Agent to configure $DEVICE..."
- loops=0
- while [ ! -L /sys/class/net/vhost0 ]
- do
- sleep 1
- loops=$(($loops + 1))
- if [ $loops -ge 10 ]; then
- break
- fi
- done
-
- # check if vhost0 is not present, then create vhost0 and $dev
- if [ ! -L /sys/class/net/vhost0 ]; then
- echo "$(date): Creating vhost interface: $DEVICE."
- agent_conf_read
-
- DEV_MAC=${physical_interface_mac}
- DEV_PCI=${physical_interface_address}
-
- if [ -z "${DEV_MAC}" -o -z "${DEV_PCI}" ]; then
- echo "No device configuration found in ${CONFIG}"
- return 1
- fi
-
- # TODO: the vhost creation is happening later in vif --add
-# vif --create $DEVICE --mac $DEV_MAC
-# if [ $? != 0 ]; then
-# echo "$(date): Error creating interface: $DEVICE"
-# fi
-
- echo "$(date): Adding $dev to vrouter"
- # add DPDK ethdev 0 as a physical interface
- vif --add 0 --mac $DEV_MAC --vrf 0 --vhost-phys --type physical --pmd --id 0
- if [ $? != 0 ]; then
- echo "$(date): Error adding $dev to vrouter"
- fi
-
- # TODO: vif --xconnect seems does not work without --id parameter?
- vif --add $DEVICE --mac $DEV_MAC --vrf 0 --type vhost --xconnect 0 --pmd --id 1
- if [ $? != 0 ]; then
- echo "$(date): Error adding $DEVICE to vrouter"
- fi
- fi
- return 0
-}
-
-DPDK_BIND=/opt/contrail/bin/dpdk_nic_bind.py
-VROUTER_SERVICE="supervisor-vrouter"
-
-function is_vrouter_dpdk_running() {
- # check for NetLink TCP socket
- lsof -ni:20914 -sTCP:LISTEN > /dev/null
-
- return $?
-}
-
-function agent_conf_read() {
- eval `cat ${CONFIG} | grep -E '^\s*physical_\w+\s*='`
-}
-
-function vrouter_dpdk_if_bind() {
- if [ ! -s /sys/class/net/${dev}/address ]; then
- echo "No ${dev} device found."
- ${DPDK_BIND} --status
- return 1
- fi
-
- modprobe igb_uio
- # multiple kthreads for port monitoring
- modprobe rte_kni kthread_mode=multiple
-
- ${DPDK_BIND} --force --bind=igb_uio $dev
- ${DPDK_BIND} --status
-}
-
-function vrouter_dpdk_if_unbind() {
- if [ -s /sys/class/net/${dev}/address ]; then
- echo "Device ${dev} is already unbinded."
- ${DPDK_BIND} --status
- return 1
- fi
-
- agent_conf_read
-
- DEV_PCI=${physical_interface_address}
- DEV_DRIVER=`lspci -vmmks ${DEV_PCI} | grep 'Module:' | cut -d $'\t' -f 2`
-
- if [ -z "${DEV_DRIVER}" -o -z "${DEV_PCI}" ]; then
- echo "No device ${dev} configuration found in ${AGENT_DPDK_PARAMS_FILE}"
- return 1
- fi
-
- # wait for vRouter/DPDK to stop
- echo "$(date): Waiting for vRouter/DPDK to stop..."
- loops=0
- while is_vrouter_dpdk_running
- do
- sleep 1
- loops=$(($loops + 1))
- if [ $loops -ge 60 ]; then
- echo "vRouter/DPDK is still running."
- echo "Please try to stop ${VROUTER_SERVICE} service."
- return 1
- fi
- done
-
- ${DPDK_BIND} --force --bind=${DEV_DRIVER} ${DEV_PCI}
- ${DPDK_BIND} --status
-
- rmmod rte_kni
- rmmod igb_uio
-}