Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfc80d9a authored by Sridhar Samudrala's avatar Sridhar Samudrala Committed by David S. Miller
Browse files

net: Introduce net_failover driver



The net_failover driver provides an automated failover mechanism via APIs
to create and destroy a failover master netdev and manages a primary and
standby slave netdevs that get registered via the generic failover
infrastructure.

The failover netdev acts a master device and controls 2 slave devices. The
original paravirtual interface gets registered as 'standby' slave netdev and
a passthru/vf device with the same MAC gets registered as 'primary' slave
netdev. Both 'standby' and 'failover' netdevs are associated with the same
'pci' device. The user accesses the network interface via 'failover' netdev.
The 'failover' netdev chooses 'primary' netdev as default for transmits when
it is available with link up and running.

This can be used by paravirtual drivers to enable an alternate low latency
datapath. It also enables hypervisor controlled live migration of a VM with
direct attached VF by failing over to the paravirtual datapath when the VF
is unplugged.

Signed-off-by: default avatarSridhar Samudrala <sridhar.samudrala@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1ff78076
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

============
NET_FAILOVER
============

Overview
========

The net_failover driver provides an automated failover mechanism via APIs
to create and destroy a failover master netdev and mananges a primary and
standby slave netdevs that get registered via the generic failover
infrastructrure.

The failover netdev acts a master device and controls 2 slave devices. The
original paravirtual interface is registered as 'standby' slave netdev and
a passthru/vf device with the same MAC gets registered as 'primary' slave
netdev. Both 'standby' and 'failover' netdevs are associated with the same
'pci' device. The user accesses the network interface via 'failover' netdev.
The 'failover' netdev chooses 'primary' netdev as default for transmits when
it is available with link up and running.

This can be used by paravirtual drivers to enable an alternate low latency
datapath. It also enables hypervisor controlled live migration of a VM with
direct attached VF by failing over to the paravirtual datapath when the VF
is unplugged.
+8 −0
Original line number Diff line number Diff line
@@ -9654,6 +9654,14 @@ S: Maintained
F:	Documentation/hwmon/nct6775
F:	drivers/hwmon/nct6775.c

NET_FAILOVER MODULE
M:	Sridhar Samudrala <sridhar.samudrala@intel.com>
L:	netdev@vger.kernel.org
S:	Supported
F:	driver/net/net_failover.c
F:	include/net/net_failover.h
F:	Documentation/networking/net_failover.rst

NETEFFECT IWARP RNIC DRIVER (IW_NES)
M:	Faisal Latif <faisal.latif@intel.com>
L:	linux-rdma@vger.kernel.org
+12 −0
Original line number Diff line number Diff line
@@ -510,4 +510,16 @@ config NETDEVSIM
	  To compile this driver as a module, choose M here: the module
	  will be called netdevsim.

config NET_FAILOVER
	tristate "Failover driver"
	select FAILOVER
	help
	  This provides an automated failover mechanism via APIs to create
	  and destroy a failover master netdev and manages a primary and
	  standby slave netdevs that get registered via the generic failover
	  infrastructure. This can be used by paravirtual drivers to enable
	  an alternate low latency datapath. It alsoenables live migration of
	  a VM with direct attached VF by failing over to the paravirtual
	  datapath when the VF is unplugged.

endif # NETDEVICES
+1 −0
Original line number Diff line number Diff line
@@ -78,3 +78,4 @@ obj-$(CONFIG_FUJITSU_ES) += fjes/
thunderbolt-net-y += thunderbolt.o
obj-$(CONFIG_THUNDERBOLT_NET) += thunderbolt-net.o
obj-$(CONFIG_NETDEVSIM) += netdevsim/
obj-$(CONFIG_NET_FAILOVER) += net_failover.o
+836 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading