Project

General

Profile

Actions

Bug #452

open

bla: missing rehash on update of primary_if address

Added by Sven Eckelmann 5 days ago.

Status:
New
Priority:
Normal
Target version:
-
Start date:
07/05/2026
Due date:
% Done:

0%

Estimated time:

Description

Got an report for @Simon Wunderlich 's commit 23721387c409 ("batman-adv: add basic bridge loop avoidance code"):

When the primary interface (and with it the own originator address) changes, batadv_bla_update_orig_address() rewrites the orig field of all own backbone gateway entries in place. But the orig address is part of the backbone gateway hash key (batadv_choose_backbone_gw
hashes orig and vid), so the updated entry remains in the bucket derived from the old address.

Lookups for the new address compute a different bucket and no longer find the entry: the next claim processed for the own backbone creates a duplicate backbone gateway under the new address. From then on the own claims are split across two objects for the same originator and VLAN. Both objects announce their (diverging) claim CRC, so remote backbone gateways see the CRC for the own originator flapping between two values and keep requesting and rebuilding the claim table - a
permanent resync loop during which broadcast traffic is repeatedly dropped. The stale object never expires because the periodic worker keeps refreshing every backbone gateway matching the (updated) own address.

The report and the patch has to be reviewed and integrated (with adjustments)


Files

No data to display

Actions

Also available in: Atom PDF