diff options
author | Javier Cardona <javier@cozybit.com> | 2012-04-12 17:32:23 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-04-16 14:19:29 -0400 |
commit | ec14bcd20f5139a3dc42cfc34cdcebcbdc062c00 (patch) | |
tree | ef7122cf0abbf407db9c0c0ce4eb9dd03b94e16b /net/mac80211/mesh_sync.c | |
parent | a802a6eba13282ddd5718f8db9d476e42e84e2ba (diff) |
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: Shinichi Hotori <hotorinn@gmail.com>
Signed-off-by: Yu Niiro <yu.niiro@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mesh_sync.c')
-rw-r--r-- | net/mac80211/mesh_sync.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/mesh_sync.c b/net/mac80211/mesh_sync.c index 22a5f1e66996..ff60d6bcc631 100644 --- a/net/mac80211/mesh_sync.c +++ b/net/mac80211/mesh_sync.c | |||
@@ -24,11 +24,17 @@ | |||
24 | */ | 24 | */ |
25 | #define TOFFSET_MINIMUM_ADJUSTMENT 10 | 25 | #define TOFFSET_MINIMUM_ADJUSTMENT 10 |
26 | 26 | ||
27 | /* This is not in the standard. It is a margin added to the | ||
28 | * Toffset setpoint to mitigate TSF overcorrection | ||
29 | * introduced by TSF adjustment latency. | ||
30 | */ | ||
31 | #define TOFFSET_SET_MARGIN 20 | ||
32 | |||
27 | /* This is not in the standard. It represents the maximum Toffset jump above | 33 | /* This is not in the standard. It represents the maximum Toffset jump above |
28 | * which we'll invalidate the Toffset setpoint and choose a new setpoint. This | 34 | * which we'll invalidate the Toffset setpoint and choose a new setpoint. This |
29 | * could be, for instance, in case a neighbor is restarted and its TSF counter | 35 | * could be, for instance, in case a neighbor is restarted and its TSF counter |
30 | * reset. | 36 | * reset. |
31 | * */ | 37 | */ |
32 | #define TOFFSET_MAXIMUM_ADJUSTMENT 30000 /* 30 ms */ | 38 | #define TOFFSET_MAXIMUM_ADJUSTMENT 30000 /* 30 ms */ |
33 | 39 | ||
34 | struct sync_method { | 40 | struct sync_method { |