Open fszyang opened 6 years ago
This is in tuntap mode
Issue verification status: Open (still exists)
Issue verified in the following SRIOV build:
root@invader42:~# goes version
github.com/platinasystems/go: v0.41-244-g49d9e6da
github.com/platinasystems/fe1: v0.2-520-g85494c1
github.com/platinasystems/firmware-fe1a: v0.2
root@invader42:~#
root@invader42:~# goes hget platina-mk1 packages | grep version:
version: 49d9e6dae2471c7d8f20f88997cd3b4578dee36a
version: 85494c17b94de997f1d2dac7a0cf21a4e76343f0
version: 60f39141fbbf78ddb2260dba74c68f2789374f18
root@invader42:~#
root@invader42:~# dpkg --list | grep kernel
ii kmod 18-3 amd64 tools for managing Linux kernel modules
ii libdrm2:amd64 2.4.58-2 amd64 Userspace interface to kernel DRM services -- runtime
ii linux-image-4.13.0-platina-mk1 4.13-117-g00814e4e1a1e amd64 Linux kernel, version 4.13.0-platina-mk1
ii rsyslog 8.4.2-1+deb8u2 amd64 reliable system and kernel logging daemon
root@invader42:~#
Steps:
#!/bin/bash
loop=1
while true; do echo "========loop $loop==========" echo "restart goes" ip netns del net1 goes restart sleep 5
echo "bring up interfaces in default namespace" for i in $(seq 1 2 31); do for j in $(seq 1 2 3); do ip link add eth-$i-$j type platina-mk1 ip link set dev eth-$i-$j up ethtool -s eth-$i-$j speed 25000 autoneg off ip addr add 10.1.$i.${j}0/31 brd + dev eth-$i-$j done done
echo "create net1 namespace" ip netns add net1
echo "bring up interfaces in net1 namespace" for i in $(seq 2 2 32); do for j in $(seq 1 2 3); do ip link set eth-$i-$j netns net1 done done
sleep 3
for i in $(seq 2 2 32); do for j in $(seq 1 2 3); do ip netns exec net1 ip link set dev eth-$i-$j up ip netns exec net1 ip addr add 10.1.$(($i-1)).${j}1/31 brd + dev eth-$i-$j done done
sleep 2
echo "Executing command: goes vnet show ip fib | grep net1"
goes vnet show ip fib | grep net1 if [ $? == 0 ]; then echo "namespace passed" else echo "namespace failed" exit 1 fi ((loop++)) sleep 2
done exit 0
Attachment:
[issue114.txt](https://github.com/platinasystems/go/files/2223257/issue114.txt)
goes can potentially miss a namespace creation event in Linux. The following bash script can expose this issue. Usually in less than 50 run, the script will fail.