Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

network: fix IPv6 address removal issue #20081

Closed
wants to merge 7 commits into from

Conversation

yuwata
Copy link
Member

@yuwata yuwata commented Jun 30, 2021

Fixes #20050.

Also slightly rename functions.
Previously, the router address was appended to each configuration. But
that is inefficient in both speed and memory usage.
This makes each configuration such as address, route, dnssl, and rdnss
provided by the same router is managed by `struct NDiscInfo`, which also
contains the router address. Each NDiscInfo is managed by the router
address, so we can easily search configurations provided by a router.
Previously, NDisc configurations with `marked` flag are considered as old,
and removed when all netlink messages are processed and at least one
address becomes ready.

However, when request queue was introduced, the logic was not updated.
As all requests are once queued and processed later when each request is
ready, the `marked` flag of each configuration is not removed within the
same event. Thus, all previous configurations are removed before no address
or route request is processed. This causes the issue systemd#20050.

This introduces another request type to clear old NDisc configureations
to make the cleanup is certainly processed after all address and route
requests are processed.

Fixes systemd#20050.
@yuwata yuwata added this to the v249 milestone Jun 30, 2021
@lgtm-com
Copy link

lgtm-com bot commented Jul 1, 2021

This pull request introduces 1 alert when merging f40ed45 into 24c006d - view on LGTM.com

new alerts:

  • 1 for FIXME comment

@yuwata
Copy link
Member Author

yuwata commented Jul 2, 2021

Let's postpone this, as the change is too big to be included v249.

@yuwata yuwata removed this from the v249 milestone Jul 2, 2021
@yuwata yuwata closed this Aug 10, 2021
@yuwata yuwata deleted the network-fix-ndisc branch August 10, 2021 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

networkd: IPv6 rapid rotation of temporary addresses
1 participant