oxidecomputer / oxidecomputer/opte

Unicast DHCP request packets not handled

Open
#946 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
77
Forks
11
Avg merge
9d 20h
Merged PRs (30d)
8

Description

The initial DHCP request is a broadcast packet:

22:52:49.998312 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:40:25:f0:00:01, length 297
22:52:49.998394 IP 172.30.0.1.67 > 172.30.0.6.68: BOOTP/DHCP, Reply, length 304

But a renewal is a unicast packet to the current dhcp server:

22:57:19.834564 IP 172.30.0.6.68 > 172.30.0.1.67: BOOTP/DHCP, Request from a8:40:25:f0:00:01, length 291

And we are not handling those.

https://github.com/oxidecomputer/opte/blob/5d0c81948b6160eb53939532761fa3a8036e0e24/lib/opte/src/engine/dhcp.rs#L436-L441

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in lib/opte/src/engine/dhcp.rs around lines 436-441, where DHCP request handling is identified. Compare the broadcast initial request with the unicast renewal packet described in the issue, then trace the relevant packet path. Done means unicast DHCP renewal requests are handled as well as broadcast requests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.