Commit ec14bcd2 authored by Javier Cardona's avatar Javier Cardona Committed by John W. Linville
Browse files

mac80211: Take into account TSF adjustment latency in Toffset setpoint



When testing mesh synchronization we observed a global TSF slowdown that
was dependent on the number of synchronized mesh stations.  This seems
to be caused by the TSF adjustment (read/write) latency.

Adding a small margin to the Toffset setpoint solved the problem.

Signed-off-by: default avatarShinichi Hotori <hotorinn@gmail.com>
Signed-off-by: default avatarYu Niiro <yu.niiro@gmail.com>
Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent a802a6eb
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -24,11 +24,17 @@
 */
#define TOFFSET_MINIMUM_ADJUSTMENT 10

/* This is not in the standard. It is a margin added to the
 * Toffset setpoint to mitigate TSF overcorrection
 * introduced by TSF adjustment latency.
 */
#define TOFFSET_SET_MARGIN 20

/* This is not in the standard.  It represents the maximum Toffset jump above
 * which we'll invalidate the Toffset setpoint and choose a new setpoint.  This
 * could be, for instance, in case a neighbor is restarted and its TSF counter
 * reset.
 * */
 */
#define TOFFSET_MAXIMUM_ADJUSTMENT 30000		/* 30 ms */

struct sync_method {