kernelkit / infix

Linux :yellow_heart: NETCONF = Infix
https://kernelkit.org
GNU General Public License v2.0
52 stars 12 forks source link

Fix eui 64 based ipv6 addresses #615

Closed rical closed 2 months ago

rical commented 2 months ago

Description

This PR fixes the EUI-64 based IPv6 autoconf address on bridges and updates the IGMP basic test.

The EUI-64 address is fixed by explicitly assigning the base mac address to the bridge when creating it. Strangely, this messes with some timing in the bridge, causing the first multicast querier message sent to the bridge from user-space to be lost. This is caused by the bridge using the "NOOP" scheduler (noop_enqueue()) for a short period of time while the interface is starting up. To avoid the test-case failing when this happens we introduce a retry that will wait for the second query message. This is a bit strange in the case of a software device such as a bridge, i.e. it might be a bug. However, loosing the first query isn't strange in the case of a normal HW interface. That's how we justify the retry loop.