Stephen Hemminger
2018-May-25 22:38 UTC
[PATCH net-next v12 1/5] net: Introduce generic failover module
On Thu, 24 May 2018 09:55:13 -0700 Sridhar Samudrala <sridhar.samudrala at intel.com> wrote:> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > index 03ed492c4e14..0f4ba52b641d 100644 > --- a/include/linux/netdevice.h > +++ b/include/linux/netdevice.h > @@ -1421,6 +1421,8 @@ struct net_device_ops { > * entity (i.e. the master device for bridged veth) > * @IFF_MACSEC: device is a MACsec device > * @IFF_NO_RX_HANDLER: device doesn't support the rx_handler hook > + * @IFF_FAILOVER: device is a failover master device > + * @IFF_FAILOVER_SLAVE: device is lower dev of a failover master device > */ > enum netdev_priv_flags { > IFF_802_1Q_VLAN = 1<<0, > @@ -1450,6 +1452,8 @@ enum netdev_priv_flags { > IFF_PHONY_HEADROOM = 1<<24, > IFF_MACSEC = 1<<25, > IFF_NO_RX_HANDLER = 1<<26, > + IFF_FAILOVER = 1<<27, > + IFF_FAILOVER_SLAVE = 1<<28, > };Why is FAILOVER any different than other master/slave relationships. I don't think you need to take up precious netdev flag bits for this.
Samudrala, Sridhar
2018-May-25 23:06 UTC
[PATCH net-next v12 1/5] net: Introduce generic failover module
On 5/25/2018 3:38 PM, Stephen Hemminger wrote:> On Thu, 24 May 2018 09:55:13 -0700 > Sridhar Samudrala <sridhar.samudrala at intel.com> wrote: > >> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h >> index 03ed492c4e14..0f4ba52b641d 100644 >> --- a/include/linux/netdevice.h >> +++ b/include/linux/netdevice.h >> @@ -1421,6 +1421,8 @@ struct net_device_ops { >> * entity (i.e. the master device for bridged veth) >> * @IFF_MACSEC: device is a MACsec device >> * @IFF_NO_RX_HANDLER: device doesn't support the rx_handler hook >> + * @IFF_FAILOVER: device is a failover master device >> + * @IFF_FAILOVER_SLAVE: device is lower dev of a failover master device >> */ >> enum netdev_priv_flags { >> IFF_802_1Q_VLAN = 1<<0, >> @@ -1450,6 +1452,8 @@ enum netdev_priv_flags { >> IFF_PHONY_HEADROOM = 1<<24, >> IFF_MACSEC = 1<<25, >> IFF_NO_RX_HANDLER = 1<<26, >> + IFF_FAILOVER = 1<<27, >> + IFF_FAILOVER_SLAVE = 1<<28, >> }; > Why is FAILOVER any different than other master/slave relationships. > I don't think you need to take up precious netdev flag bits for this.These are netdev priv flags. Jiri says that IFF_MASTER/IFF_SLAVE are bonding specific flags and cannot be used with other failover mechanisms. Team also doesn't use this flags and it has its own priv_flags.
Stephen Hemminger
2018-May-25 23:29 UTC
[PATCH net-next v12 1/5] net: Introduce generic failover module
On Fri, 25 May 2018 16:06:58 -0700 "Samudrala, Sridhar" <sridhar.samudrala at intel.com> wrote:> On 5/25/2018 3:38 PM, Stephen Hemminger wrote: > > On Thu, 24 May 2018 09:55:13 -0700 > > Sridhar Samudrala <sridhar.samudrala at intel.com> wrote: > > > >> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > >> index 03ed492c4e14..0f4ba52b641d 100644 > >> --- a/include/linux/netdevice.h > >> +++ b/include/linux/netdevice.h > >> @@ -1421,6 +1421,8 @@ struct net_device_ops { > >> * entity (i.e. the master device for bridged veth) > >> * @IFF_MACSEC: device is a MACsec device > >> * @IFF_NO_RX_HANDLER: device doesn't support the rx_handler hook > >> + * @IFF_FAILOVER: device is a failover master device > >> + * @IFF_FAILOVER_SLAVE: device is lower dev of a failover master device > >> */ > >> enum netdev_priv_flags { > >> IFF_802_1Q_VLAN = 1<<0, > >> @@ -1450,6 +1452,8 @@ enum netdev_priv_flags { > >> IFF_PHONY_HEADROOM = 1<<24, > >> IFF_MACSEC = 1<<25, > >> IFF_NO_RX_HANDLER = 1<<26, > >> + IFF_FAILOVER = 1<<27, > >> + IFF_FAILOVER_SLAVE = 1<<28, > >> }; > > Why is FAILOVER any different than other master/slave relationships. > > I don't think you need to take up precious netdev flag bits for this. > > These are netdev priv flags. > Jiri says that IFF_MASTER/IFF_SLAVE are bonding specific flags and cannot be used > with other failover mechanisms. Team also doesn't use this flags and it has its own > priv_flags. >They are already used by bonding and team. I don't see why this can't reuse them.
Stephen Hemminger
2018-May-31 02:52 UTC
[PATCH net-next v12 1/5] net: Introduce generic failover module
On Fri, 25 May 2018 16:06:58 -0700 "Samudrala, Sridhar" <sridhar.samudrala at intel.com> wrote:> On 5/25/2018 3:38 PM, Stephen Hemminger wrote: > > On Thu, 24 May 2018 09:55:13 -0700 > > Sridhar Samudrala <sridhar.samudrala at intel.com> wrote: > > > >> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > >> index 03ed492c4e14..0f4ba52b641d 100644 > >> --- a/include/linux/netdevice.h > >> +++ b/include/linux/netdevice.h > >> @@ -1421,6 +1421,8 @@ struct net_device_ops { > >> * entity (i.e. the master device for bridged veth) > >> * @IFF_MACSEC: device is a MACsec device > >> * @IFF_NO_RX_HANDLER: device doesn't support the rx_handler hook > >> + * @IFF_FAILOVER: device is a failover master device > >> + * @IFF_FAILOVER_SLAVE: device is lower dev of a failover master device > >> */ > >> enum netdev_priv_flags { > >> IFF_802_1Q_VLAN = 1<<0, > >> @@ -1450,6 +1452,8 @@ enum netdev_priv_flags { > >> IFF_PHONY_HEADROOM = 1<<24, > >> IFF_MACSEC = 1<<25, > >> IFF_NO_RX_HANDLER = 1<<26, > >> + IFF_FAILOVER = 1<<27, > >> + IFF_FAILOVER_SLAVE = 1<<28, > >> }; > > Why is FAILOVER any different than other master/slave relationships. > > I don't think you need to take up precious netdev flag bits for this. > > These are netdev priv flags. > Jiri says that IFF_MASTER/IFF_SLAVE are bonding specific flags and cannot be used > with other failover mechanisms. Team also doesn't use this flags and it has its own > priv_flags. >This change breaks userspace. We already have worked with partners to ignore devices marked as IFF_SLAVE, and IFF_SLAVE is visible to user space API's. NAK