On Wed, Jan 20, 2021 at 10:38:47PM +0800, Hangbin Liu wrote: > Hi Ido, > > On Wed, Jan 20, 2021 at 12:42:10PM +0200, Ido Schimmel wrote: > > > diff --git a/tools/testing/selftests/net/rtnetlink.sh > > > b/tools/testing/selftests/net/rtnetlink.sh > > > index c9ce3dfa42ee..a26fddc63992 100755 > > > --- a/tools/testing/selftests/net/rtnetlink.sh > > > +++ b/tools/testing/selftests/net/rtnetlink.sh > > > @@ -1205,6 +1205,8 @@ kci_test_bridge_parent_id() > > > dev20=`ls ${sysfsnet}20/net/` > > > > > > ip link add name test-bond0 type bond mode 802.3ad > > > + ip link set dev $dev10 down > > > + ip link set dev $dev20 down > > > > But these netdevs are created with their administrative state set to > > 'DOWN'. Who is setting them to up? > > Would you please point me where we set the state to 'DOWN'? Cause on my > host it is init as UP: > > ++ ls /sys/bus/netdevsim/devices/netdevsim10/net/ > + dev10=eth3 > ++ ls /sys/bus/netdevsim/devices/netdevsim20/net/ > + dev20=eth4 > + ip link add name test-bond0 type bond mode 802.3ad > + ip link show eth3 > 66: eth3: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN > mode DEFAULT group default qlen 1000 > link/ether 1e:52:27:5f:a5:3c brd ff:ff:ff:ff:ff:ff
I didn't have time to look into this today, but I suspect the problem is either: 1. Some interface manager on your end that is setting these interfaces up after they are created 2. A bug in netdevsim that does not initialize the carrier to off. Maybe try with this patch (didn't test): diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index aec92440eef1..1e0dc298bf20 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -312,6 +312,8 @@ nsim_create(struct nsim_dev *nsim_dev, struct nsim_dev_port *nsim_dev_port) nsim_ipsec_init(ns); + netif_carrier_off(dev); + err = register_netdevice(dev); if (err) goto err_ipsec_teardown; > > # uname -r > 5.11.0-rc3+ > > Thanks > Hangbin