Skip to content

fix(iface): invalidate pending output with neighbor cache - #27

Merged
fslongjin merged 1 commit into
dragonos/v0.12.0from
codex/issue-2233-neighbor-cache-flush
Sep 4, 2026
Merged

fix(iface): invalidate pending output with neighbor cache#27
fslongjin merged 1 commit into
dragonos/v0.12.0from
codex/issue-2233-neighbor-cache-flush

Conversation

@fslongjin

Copy link
Copy Markdown
Member

Summary

  • make flush_neighbor_cache() invalidate both dynamic neighbor entries/rate limits and pending fragmented output that may retain a stale link-layer destination
  • preserve neighbor-discovery policy while making link-down invalidation idempotent
  • keep neighbor-discovery mode transitions on the same invalidation path
  • add regression coverage for pending IPv4 fragments with cached destination hardware addresses

Validation

  • cargo fmt --all -- --check
  • cargo test (634 unit tests and 7 doc tests)
  • cargo check --no-default-features --features "proto-ipv4 medium-ip socket-udp"
  • cargo check --no-default-features --features "proto-ipv4 proto-dhcpv4 medium-ethernet socket-dhcpv4"
  • cargo check --no-default-features --features "proto-ipv6 medium-ethernet socket-udp"

Drop an in-progress fragmentation sequence whenever dynamic neighbor resolution state is flushed, because it may retain a link-layer destination selected before a link transition.

Keep neighbor discovery mode unchanged, preserve idempotent empty-state behavior, and cover stale pending IPv4 output with a regression test.

Signed-off-by: longjin <longjin@dragonos.org>
@fslongjin
fslongjin merged commit ebeaec6 into dragonos/v0.12.0 Sep 4, 2026
6 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant