1*cfc80d9aSSridhar Samudrala /* SPDX-License-Identifier: GPL-2.0 */ 2*cfc80d9aSSridhar Samudrala /* Copyright (c) 2018, Intel Corporation. */ 3*cfc80d9aSSridhar Samudrala 4*cfc80d9aSSridhar Samudrala #ifndef _NET_FAILOVER_H 5*cfc80d9aSSridhar Samudrala #define _NET_FAILOVER_H 6*cfc80d9aSSridhar Samudrala 7*cfc80d9aSSridhar Samudrala #include <net/failover.h> 8*cfc80d9aSSridhar Samudrala 9*cfc80d9aSSridhar Samudrala /* failover state */ 10*cfc80d9aSSridhar Samudrala struct net_failover_info { 11*cfc80d9aSSridhar Samudrala /* primary netdev with same MAC */ 12*cfc80d9aSSridhar Samudrala struct net_device __rcu *primary_dev; 13*cfc80d9aSSridhar Samudrala 14*cfc80d9aSSridhar Samudrala /* standby netdev */ 15*cfc80d9aSSridhar Samudrala struct net_device __rcu *standby_dev; 16*cfc80d9aSSridhar Samudrala 17*cfc80d9aSSridhar Samudrala /* primary netdev stats */ 18*cfc80d9aSSridhar Samudrala struct rtnl_link_stats64 primary_stats; 19*cfc80d9aSSridhar Samudrala 20*cfc80d9aSSridhar Samudrala /* standby netdev stats */ 21*cfc80d9aSSridhar Samudrala struct rtnl_link_stats64 standby_stats; 22*cfc80d9aSSridhar Samudrala 23*cfc80d9aSSridhar Samudrala /* aggregated stats */ 24*cfc80d9aSSridhar Samudrala struct rtnl_link_stats64 failover_stats; 25*cfc80d9aSSridhar Samudrala 26*cfc80d9aSSridhar Samudrala /* spinlock while updating stats */ 27*cfc80d9aSSridhar Samudrala spinlock_t stats_lock; 28*cfc80d9aSSridhar Samudrala }; 29*cfc80d9aSSridhar Samudrala 30*cfc80d9aSSridhar Samudrala struct failover *net_failover_create(struct net_device *standby_dev); 31*cfc80d9aSSridhar Samudrala void net_failover_destroy(struct failover *failover); 32*cfc80d9aSSridhar Samudrala 33*cfc80d9aSSridhar Samudrala #define FAILOVER_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \ 34*cfc80d9aSSridhar Samudrala NETIF_F_FRAGLIST | NETIF_F_ALL_TSO | \ 35*cfc80d9aSSridhar Samudrala NETIF_F_HIGHDMA | NETIF_F_LRO) 36*cfc80d9aSSridhar Samudrala 37*cfc80d9aSSridhar Samudrala #define FAILOVER_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \ 38*cfc80d9aSSridhar Samudrala NETIF_F_RXCSUM | NETIF_F_ALL_TSO) 39*cfc80d9aSSridhar Samudrala 40*cfc80d9aSSridhar Samudrala #endif /* _NET_FAILOVER_H */ 41