summaryrefslogtreecommitdiff
path: root/init_mcn_network
diff options
context:
space:
mode:
author牛翔 <[email protected]>2019-12-16 15:17:14 +0800
committer牛翔 <[email protected]>2019-12-16 15:17:14 +0800
commit3aa014e4d8d280b28d3088471ba4418e0c117a78 (patch)
tree7426f6fc63157c73d80446976c614327c001bb42 /init_mcn_network
parent5802d522f41fd529abf8e1fbbeb328530e48edd8 (diff)
Upload New File
Diffstat (limited to 'init_mcn_network')
-rw-r--r--init_mcn_network/tsg-env/tsg-env-mcn0_setup134
1 files changed, 134 insertions, 0 deletions
diff --git a/init_mcn_network/tsg-env/tsg-env-mcn0_setup b/init_mcn_network/tsg-env/tsg-env-mcn0_setup
new file mode 100644
index 0000000..279c55b
--- /dev/null
+++ b/init_mcn_network/tsg-env/tsg-env-mcn0_setup
@@ -0,0 +1,134 @@
+#!/bin/bash
+# set -x
+
+CURRENT_PATH=`dirname $0`
+TP_SVR=192.168.100.5
+TP_PORT=10000
+REMOTE_CONTROL_BIN=switch_control_client_non_block
+
+function get_netdev_by_pci()
+{
+ DEV_LIST=`ifconfig -a |grep flags |awk -F: '{print $1}'`
+ for i in ${DEV_LIST}
+ do
+ ethtool -i ${i} |grep bus-info |grep "$1" > /dev/null 2>&1
+ if [ $? -eq 0 ];then
+ TARGET=${i}
+ break
+ fi
+ done
+
+ echo ${TARGET}
+}
+
+function pf_setup()
+{
+ ifconfig ens1 up
+
+ modprobe 8021q
+ vconfig add ens1 100
+ vconfig set_flag ens1.100 1 1
+ ifconfig ens1.100 192.168.100.1 netmask 255.255.255.0 up
+ sleep 1
+}
+
+function vf_setup()
+{
+ echo 8 > /sys/class/net/ens1/device/sriov_numvfs
+ sleep 5
+
+ ifconfig ens1f3 up
+ ip link set ens1 vf 2 vlan 200
+ ifconfig ens1f3 192.168.200.1 netmask 255.255.255.0
+
+ ifconfig ens1f1 up
+ ifconfig ens1f2 up
+ ifconfig ens1f3 up
+ ifconfig ens1f4 up
+ ifconfig ens1f5 up
+ ifconfig ens1f6 up
+ ifconfig ens1f7 up
+ ifconfig enp1s1 up
+
+ sleep 5
+}
+
+function bring_down_pfvf()
+{
+ echo 0 > /sys/class/net/ens1/device/sriov_numvfs
+ ifconfig ens1 down
+ sleep 3
+}
+
+
+# Main loop
+while :
+do
+ FAIL_FLAG=0
+
+ # Make sure PF is valid
+ ping ${TP_SVR} -c 1
+ if [ $? -ne 0 ];then
+ echo "Please make sure switch board is up."
+ bring_down_pfvf
+ pf_setup
+ continue
+ fi
+
+ # Make sure TestPoint is up.
+ ${CURRENT_PATH}/${REMOTE_CONTROL_BIN} -s ${TP_SVR} -n ${TP_PORT} -c "show version"
+ if [ $? -ne 0 ];then
+ echo "Cannot reach TestPoint!"
+ echo "Please make sure TestPoint is up and in remote-listen mode."
+ sleep 5
+ continue
+ fi
+
+ # Create VFs and get MAC addresses
+ #vf_setup
+ /usr/bin/sh /opt/tsg/env/vf-setup
+ sleep 5
+
+ PF=`get_netdev_by_pci 01:00.0`
+ VF1=`get_netdev_by_pci 01:00.1`
+ VF2=`get_netdev_by_pci 01:00.2`
+ VF3=`get_netdev_by_pci 01:00.3`
+ VF4=`get_netdev_by_pci 01:00.4`
+ VF5=`get_netdev_by_pci 01:00.5`
+ VF6=`get_netdev_by_pci 01:00.6`
+ VF7=`get_netdev_by_pci 01:00.7`
+ VF8=`get_netdev_by_pci 01:01.0`
+
+ MAC1=`ifconfig ${VF1} |grep ether |awk -F' ' '{print $2}'`
+ MAC2=`ifconfig ${VF2} |grep ether |awk -F' ' '{print $2}'`
+ MAC3=`ifconfig ${VF3} |grep ether |awk -F' ' '{print $2}'`
+ MAC4=`ifconfig ${VF4} |grep ether |awk -F' ' '{print $2}'`
+ MAC5=`ifconfig ${VF5} |grep ether |awk -F' ' '{print $2}'`
+ MAC6=`ifconfig ${VF6} |grep ether |awk -F' ' '{print $2}'`
+ MAC7=`ifconfig ${VF7} |grep ether |awk -F' ' '{print $2}'`
+ MAC8=`ifconfig ${VF8} |grep ether |awk -F' ' '{print $2}'`
+ MAC9=`ifconfig ${PF} |grep ether |awk -F' ' '{print $2}'`
+
+ # Make sure VFs are valid
+ MAC_TABLE=`${CURRENT_PATH}/${REMOTE_CONTROL_BIN} -s ${TP_SVR} -n ${TP_PORT} -c "show mac table all"`
+
+ for i in ${MAC1} ${MAC2} ${MAC3} ${MAC4} ${MAC5} ${MAC6} ${MAC7} ${MAC8} ${MAC9}
+ do
+ echo ${MAC_TABLE} |grep ${i} > /dev/null 2>&1
+ if [ $? -ne 0 ];then
+ echo "MAC ${i} is not in table!"
+ FAIL_FLAG=1
+ break
+ fi
+ done
+
+ if [ ${FAIL_FLAG} -eq 1 ];then
+ bring_down_pfvf
+ continue
+ fi
+
+ echo "PF/VF setup successful."
+ exit 0
+done
+
+