diff options
| author | Sven Eckelmann <sven@narfation.org> | 2026-08-06 14:35:19 +0200 |
|---|---|---|
| committer | Sven Eckelmann <sven@narfation.org> | 2026-09-27 19:03:32 +0200 |
| commit | 85fb027f611b200c75b456404def8665216bc2db (patch) | |
| tree | 23c2b2efe11f462de68232b0cd0da013257bad2d /include/linux/timerqueue.h | |
| parent | a6746cb1907615a37acf26f7e529a022e99876a0 (diff) | |
batman-adv: tt: reject VLAN/TT entries before reaching size limit
The translation table is announcing its current state via the TT TVLV in
each OGM(2). If another originator detects a desync with its own copy of
this state information, it will request a full table sync. Each originator
must therefore be able to send a reply with its full table without hitting
the size limit of this response.
The translation table code already tries to limit the amount of local TT
entries. But the code itself fails to achieve this task because:
* the size check uses shared, unlocked information
* the size check isn't done for VLANs
When enough VLANs + TT entries are created in parallel, then the TT will
need more room then allowed for a full translation table reply. Other
originators will then send regularly requests for a table sync but never
get a reply.
To avoid this problem for new VLAN and local TT entries, each new entry
must reserve "room" before it is actually allocated. Only when enough
"room" is available, this reservation is granted. This makes it possible to
keep the reservation handling locked and therefore safe for multiple
parallel contexts.
For now, over-reservation caused by a reduction of the MTU is not taken
into account.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions
