Skip to content

Include all of the IPv6 address in homa_qdisc_can_bypass - #137

Open
randomizedcoder wants to merge 1 commit into
PlatformLab:mainfrom
randomizedcoder:fix/qdisc-bypass-ipv6-hash
Open

randomizedcoder wants to merge 1 commit into
PlatformLab:mainfrom
randomizedcoder:fix/qdisc-bypass-ipv6-hash

Conversation

@randomizedcoder

Copy link
Copy Markdown
Contributor

homa_qdisc_can_bypass hashed the new packet's IPv6 destination as words 0^2^3, but each deferred packet's as 0^1^2^3. For any real IPv6 address (nonzero second word) they never match, so a TCP packet can bypass deferred packets of the same flow and be reordered.

  • Fix: add the missing u6_addr32[1].
  • Test: homa_qdisc_can_bypass__ipv6_address_uses_all_words. The existing test uses IPv4-mapped addresses, whose word 1 is zero, which hid this.
  • Found by reading the code (IPv4/IPv6 asymmetry).

Verified: the new test fails before the fix and passes after; full unit suite 885/885 in both IPv6 and --ipv4 modes; homa.ko compiles warning-free on 7.3, normal and __STRIP__=1; checkpatch clean.

🤖 Generated with Claude Code

* homa_qdisc_can_bypass hashed the new packet's IPv6 destination as
  words 0^2^3 but each deferred packet's as 0^1^2^3. For any address
  whose second word is nonzero the two never match, so a TCP packet
  could bypass deferred packets of the same flow and be reordered.
* The existing test uses IPv4-mapped addresses (word 1 is zero), which
  hid the mismatch; the new test uses a real IPv6 address.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
randomizedcoder added a commit to randomizedcoder/HomaModule that referenced this pull request Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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