• Alexandra Winter's avatar
    s390/qeth: Switchdev event handler · 4e20e73e
    Alexandra Winter authored
    QETH HiperSockets devices with LEARNING_SYNC capability can be used
    to construct a linux bridge with:
    2 isolated southbound interfaces:
         a) a default network interface
         b) a LEARNING-SYNC HiperSockets interface
    and 1 non-isolated northbound interface. This is called a 'HiperSockets
    Converged Interface' (HSCI).
    The existing LEARNING_SYNC functionality is used to update the bridge fdb
    with MAC addresses that should be sent-out via the HiperSockets interface,
    instead of the default network interface.
    
    Add handling of switchdev events SWITCHDEV_FDB_ADD_TO_DEVICE and
    SWITCHDEV_FDB_DEL_TO_DEVICE to the qeth LEARNING_SYNC functionality. Thus
    if the northbound bridgeport of an HSCI doesn't only have a single static
    MAC address, but instead is a learning bridgeport, work is enqueued, so
    the HiperSockets virtual switch (that is external to this Linux instance)
    can update its fdb.
    
    When BRIDGE is a loadable module, QETH_L2 mustn't be built-in:
    
    drivers/s390/net/qeth_l2_main.o: in function 'qeth_l2_switchdev_event':
    drivers/s390/net/qeth_l2_main.c:927: undefined reference to
    'br_port_flag_is_set'
    
    Add Kconfig dependency to enforce usable configurations.
    Signed-off-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
    Reviewed-by: default avatarWenjia Zhang <wenjia@linux.ibm.com>
    Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4e20e73e
Kconfig 3.53 KB