• Martin Schiller's avatar
    net/lapb: support netdev events · a4989fa9
    Martin Schiller authored
    This patch allows layer2 (LAPB) to react to netdev events itself and
    avoids the detour via layer3 (X.25).
    
    1. Establish layer2 on NETDEV_UP events, if the carrier is already up.
    
    2. Call lapb_disconnect_request() on NETDEV_GOING_DOWN events to signal
       the peer that the connection will go down.
       (Only when the carrier is up.)
    
    3. When a NETDEV_DOWN event occur, clear all queues, enter state
       LAPB_STATE_0 and stop all timers.
    
    4. The NETDEV_CHANGE event makes it possible to handle carrier loss and
       detection.
    
       In case of Carrier Loss, clear all queues, enter state LAPB_STATE_0
       and stop all timers.
    
       In case of Carrier Detection, we start timer t1 on a DCE interface,
       and on a DTE interface we change to state LAPB_STATE_1 and start
       sending SABM(E).
    Signed-off-by: default avatarMartin Schiller <ms@dev.tdt.de>
    Acked-by: default avatarXie He <xie.he.0141@gmail.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    a4989fa9
lapb_iface.c 10.6 KB