NAT encapsulated flows have one 5-tuple per sled
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Domain
- networking
Research direction
Start with the linked sections of dpd/p4/sidecar.p4, especially lines 515-516, 527, and 529-530, and trace how encapsulated packets are hashed before reaching the NIC. Determine how the inner 5-tuple can influence the encapsulation UDP source port, then verify that external-to-guest packets distribute across rings while viona ring hashing remains intact.
Written by the indexing model from the issue text.
Description
https://github.com/oxidecomputer/dendrite/blob/f9fba02fd5351f468b15bda21d83d6dedae90818/dpd/p4/sidecar.p4#L515-L516
https://github.com/oxidecomputer/dendrite/blob/f9fba02fd5351f468b15bda21d83d6dedae90818/dpd/p4/sidecar.p4#L527
https://github.com/oxidecomputer/dendrite/blob/f9fba02fd5351f468b15bda21d83d6dedae90818/dpd/p4/sidecar.p4#L529-L530
I think as a consequence every packet from the external network to a guest will have the same flowhash when seen by the NIC, and thus land on the same ring and softring. Packets will at least be hashed among viona rings properly, since we're using the inner 5-tuple at that point.
We probably need to hash (some of?) the inner 5-tuple and place it in the encap's UDP source port field.
- Dominant language
- Rust
- Stars
- 21
- Forks
- 3
- Avg merge
- 10h 45m
- Merged PRs (30d)
- 2
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from oxidecomputer/dendrite
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
oxidecomputer/dendrite#384 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
oxidecomputer/dendrite#375 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
oxidecomputer/dendrite#369 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 58/100
oxidecomputer/dendrite#368 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
oxidecomputer/dendrite#359 · 1 comment ·
Maintainers usually reply within 1 day
All issues in oxidecomputer/dendrite
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
software-challenge/player_rust#22 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
foundry-rs/foundry#17175 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
state:triage-needed
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
github/copilot-sdk#2793 ·
Maintainers usually reply within 1 day