linux_dsm_epyc7002/drivers/s390/net
Alexandra Winter 521c65b649 s390/qeth: implement ndo_bridge_setlink for learning_sync
Documentation/networking/switchdev.txt and 'man bridge' indicate that the
learning_sync bridge attribute is used to control whether a given
device will sync MAC addresses learned on its device port to a master
bridge FDB, where they will show up as 'extern_learn offload'. So we map
qeth_l2_dev2br_an_set() to the learning_sync bridge link attribute.

Turning off learning_sync will flush all extern_learn entries from the
bridge fdb and all pending events from the card's work queue.

When the hardware interface goes offline with learning_sync on
(e.g. for HW recovery), all extern_learn entries will be flushed from the
bridge fdb and all pending events from the card's work queue. When the
interface goes online again, it will send new notifications for all then
valid MACs. learning_sync attribute can not be modified while interface is
offline. See
'commit e6e771b3d8 ("s390/qeth: detach netdevice while card is offline")'

An alternative implementation would be to always offload the 'learning'
attribute of a software bridge to the hardware interface attached to it
and thus implicitly enable fdb notification. This was not chosen for 2
reasons:
1) In our case the software bridge is NOT a representation of a hardware
switch. It is just connected to a smart NIC that is able to inform
about the addresses attached to it. It is not necessarily using source
MAC learning for this and other bridgeports can be attached to other
NICs with different properties.
2) We want a means to enable this notification explicitly. There may be
cases where a bridgeport is set to 'learning', but we do not want to
enable the notification.

Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-09-15 13:21:47 -07:00
..
ctcm_dbug.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_dbug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_fsms.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ctcm_fsms.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_main.c s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
ctcm_main.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_mpc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ctcm_mpc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_sysfs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fsm.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-30 08:13:36 -08:00
fsm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ism_drv.c s390/ism: indicate correct error reason in ism_alloc_dmb() 2020-07-27 10:30:01 -07:00
ism.h net/smc: immediate termination for SMCD link groups 2019-11-15 12:28:28 -08:00
Kconfig s390/net: add SMC config as one of the defaults of CCWGROUP 2020-09-10 15:24:26 -07:00
lcs.c s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
lcs.h net: convert lcs_reply.refcnt from atomic_t to refcount_t 2017-12-20 15:23:44 -05:00
Makefile s390/qeth: move ethtool code into its own file 2019-02-15 20:35:29 -08:00
netiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
qeth_core_main.c s390/qeth: Detect PNSO OC3 capability 2020-09-15 13:21:47 -07:00
qeth_core_mpc.c s390/qeth: constify the MPC initialization data 2020-07-14 14:53:45 -07:00
qeth_core_mpc.h s390/qeth: unify structs for bridge port state 2020-08-27 07:42:03 -07:00
qeth_core_sys.c s390/qeth: clean up error handling for isolation mode cmds 2020-07-14 14:53:45 -07:00
qeth_core.h s390/qeth: Reset address notification in case of buffer overflow 2020-09-15 13:21:47 -07:00
qeth_ethtool.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
qeth_l2_main.c s390/qeth: implement ndo_bridge_setlink for learning_sync 2020-09-15 13:21:47 -07:00
qeth_l2_sys.c s390/qeth: Reset address notification in case of buffer overflow 2020-09-15 13:21:47 -07:00
qeth_l2.h s390/qeth: Reset address notification in case of buffer overflow 2020-09-15 13:21:47 -07:00
qeth_l3_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-04 21:28:59 -07:00
qeth_l3_sys.c s390/qeth: remove fake_broadcast attribute 2020-03-27 15:36:56 -07:00
qeth_l3.h s390/qeth: stop yielding the ip_lock during IPv4 registration 2019-12-18 12:34:56 -08:00
smsgiucv_app.c s390: net: add SPDX identifiers to the remaining files 2017-11-24 14:28:43 +01:00
smsgiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
smsgiucv.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00