+ if [ ! -d "$vpp_run_dir" ] ; then
+ sudo mkdir $vpp_run_dir
+ sudo chown root:$USER $vpp_run_dir
+ fi
+ if [ -n "$multi_host" ] ; then
+ vpp_eth_pci_id="$(ls -ld /sys/class/net/$vpp_eth_name/device | awk '{print $11}' | cut -d/ -f4)"
+ if [ -z "$vpp_eth_pci_id" ] ; then
+ echo "ERROR: Missing ethernet interface $vpp_eth_name!"
+ usage
+ fi
+ printf -v bus "%x" "0x$(echo $vpp_eth_pci_id | cut -d: -f2)"
+ printf -v slot "%x" "0x$(echo $vpp_eth_pci_id | cut -d: -f3 | cut -d. -f1)"
+ printf -v func "%x" "0x$(echo $vpp_eth_pci_id | cut -d. -f2)"
+
+ vpp_eth_kernel_driver="$(basename $(ls -l /sys/bus/pci/devices/$vpp_eth_pci_id/driver | awk '{print $11}'))"
+ if [ -z "$vpp_eth_kernel_driver" ] ; then
+ echo "ERROR: Missing kernel driver for $vpp_eth_name!"
+ usage
+ fi
+ case $vpp_eth_kernel_driver in
+ e1000)
+ vpp_eth_ifname="GigabitEthernet$bus/$slot/$func" ;;
+ ixgbe)
+ vpp_eth_ifname="TenGigabitEthernet$bus/$slot/$func" ;;
+ i40e)
+ vpp_eth_ifname="FortyGigabitEthernet$bus/$slot/$func" ;;
+ *)
+ echo "ERROR: Unknown ethernet kernel driver $vpp_eth_kernel_driver!"
+ usage ;;
+ esac
+
+ vpp_eth_ip4_addr="$(ip -4 -br addr show $vpp_eth_name | awk '{print $3}')"
+ if [ -z "$vpp_eth_ip4_addr" ] ; then
+ if [ "$multi_host" = "server" ] ; then
+ vpp_eth_ip4_addr="10.10.10.10/24"
+ else
+ vpp_eth_ip4_addr="10.10.10.11/24"
+ fi
+ fi
+ if [ $use_ipv6 -eq 1 ] && [ -z "$vpp_eth_ip6_addr" ] ; then
+ echo "ERROR: No inet6 address configured for $vpp_eth_name!"
+ usage
+ fi
+ vpp_args="$vpp_args plugins { path ${lib64_dir}vpp_plugins } dpdk { dev $vpp_eth_pci_id }"
+
+ sudo ifconfig $vpp_eth_name down 2> /dev/null
+ echo "Configuring VPP to use $vpp_eth_name ($vpp_eth_pci_id), inet addr $vpp_eth_ip4_addr"
+
+ cat <<EOF >> $tmp_vpp_exec_file
+set int state $vpp_eth_ifname up
+set int ip addr $vpp_eth_ifname $vpp_eth_ip4_addr
+EOF
+
+ fi