• Benjamin Berg's avatar
    ath9k: Fix beacon configuration for addition/removal of interfaces · cfda2d8e
    Benjamin Berg authored
    This patch fixes some issues with interface reconfiguration. It could
    for example happen that an AP interface in beacon slot 0 was removed
    leaving an IBSS station in one of the other slots. When this happens
    the driver never sends out the beacon as it only tries to send a beacon
    from slot 0.
    
    Appart from that the tracking of required changes to the beacon config is
    relatively complicated and prone to errors.
    
    The approach taken here is to solve reconfiguration issues is to
    reconfigure the beacons when any interface changes. This means that
    the complexity of deciding whether an interface change may modify the
    beacon configuration is gone. It also means that the beacon config will
    be reliably updated when an interface is removed.
    
    The issue that a single non-AP interface might not be in beacon
    slot 0 and wouldn't be send out is solved by moving it into the
    first slot. The TSF value in hardware is adjusted accordingly so
    that the timestamp of the beacons stay consistent.
    Signed-off-by: default avatarBenjamin Berg <benjamin.berg@open-mesh.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    cfda2d8e
main.c 64.8 KB