Skip to content
  • Javier Cardona's avatar
    mac80211: Implement mesh synchronization framework · dbf498fb
    Javier Cardona authored and John W. Linville's avatar John W. Linville committed
    
    
    This patch adds MBSS extensible synchronization framework (Sec.
    13.13.2 of IEEE Std. 802.11-2012).
    
    The framework is implemented via an ops table which defines the
    following functions:
    
        rx_bcn_presp() - this is called every time a mesh beacon is
    received.
        adjust_tbtt() - this is called immediately before a beacon is about
    to be transmitted.
    
    The default neighbor offset synchronization defined in the standard is
    implemented.  We also provide template functions for vendor specific
    methods.
    
    When neighbor offset synchronization is active (which is the default)
    mesh neighbors in the same MBSS will track timing offsets to each other
    and compensate clock drift.
    
    In our tests we observed that this mesh synchronization implementation
    successfully corrected drifts between stations of ~2PPM while
    introducing a jitter of ~20us.
    
    It is also possible to test this framework on mac80211_hwsim simulated
    phys to see how it behaves under different topologies, over poor links,
    etc.
    
    Signed-off-by: default avatarMarco Porsch <marco.porsch@s2005.tu-chemnitz.de>
    Signed-off-by: default avatarPavel Zubarev <pavel.zubarev@gmail.com>
    Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    dbf498fb