• Alexandra Winter's avatar
    s390/qeth: Reset address notification in case of buffer overflow · 817741a8
    Alexandra Winter authored
    In case hardware sends more device-to-bridge-address-change notfications
    than the qeth-l2 driver can handle, the hardware will send an overflow
    event and then stop sending any events. It expects software to flush its
    FDB and start over again. Re-enabling address-change-notification will
    report all current addresses.
    
    In order to re-enable address-change-notification this patch defines
    the functions qeth_l2_dev2br_an_set() and qeth_l2_dev2br_an_set_cb
    to enable or disable dev-to-bridge-address-notification.
    
    A following patch will use the learning_sync bridgeport flag to trigger
    enabling or disabling of address-change-notification, so we define
    priv->brport_features to store the current setting. BRIDGE_INFO and
    ADDR_INFO functionality are mutually exclusive, whereas ADDR_INFO and
    qeth_l2_vnicc* can be used together.
    
    Alternative implementations to handle buffer overflow:
    Just re-enabling notification and adding all newly reported addresses
    would cover any lost 'add' events, but not the lost 'delete' events.
    Then these invalid addresses would stay in the bridge FDB as long as the
    device exists.
    Setting the net device down and up, would be an alternative, but is a bit
    drastic. If the net device has many secondary addresses this will create
    many delete/add events at its peers which could de-stabilize the
    network segment.
    Signed-off-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
    Reviewed-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    817741a8
qeth_l2_sys.c 10.4 KB