oxidecomputer / oxidecomputer/omicron
preflight check should complain if network setup is incomplete
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
During RSS, I uploaded a config file for london to switch 14.
That file contained this config
# TODO: docs on network config
[rack_network_config]
infra_ip_first = "172.20.15.25"
infra_ip_last = "172.20.15.32"
bgp = []
[rack_network_config.switch0.qsfp0]
routes = [ ]
addresses = [ ]
uplink_port_speed = "40G"
uplink_port_fec = "none"
autoneg = true
bgp_peers = []
# The one routed through lab `172.20.27.0/24`
[rack_network_config.switch1.qsfp0]
routes = [ { nexthop = "172.20.15.25", destination = "0.0.0.0/0" } ]
addresses = [ {address = "172.20.15.29/29" } ]
uplink_port_speed = "40G"
uplink_port_fec = "none"
autoneg = true
bgp_peers = []
So, no actual network routes/addresses for switch 0.
I then ran preflight check, and it went ahead and tried to configure that address, and things failed:
alan@jeeves $ ssh -t wicket@fe80::aa40:25ff:fe05:2702%london_sw0tp0 preflight uplink
Warning: Permanently added 'fe80::aa40:25ff:fe05:2702%london_sw0tp0' (ED25519) to the list of known hosts.
✔ Configuring switch (11.398809ms)
configured Qsfp(Qsfp("qsfp0"))/0: ips [], routes []
✔ Waiting for L1 link up (1.004374661s)
missing metadata
✔ Configuring IP address in host OS (37.391µs)
configured uplinks/qsfp0_0
✔ Configuring routing in host OS (35.097µs)
added routes []
Checking for external DNS connectivity (60.121132165s)
DNS server 1.1.1.1 A query attempt 1: failed to look up ntp.eng.oxide.computer: proto error: io error: No route to host (os error 148)
....
DNS server 1.1.1.1 A query attempt 31: failed to look up ntp.eng.oxide.computer: proto error: io error: No route to host (os error 148)
DNS server 9.9.9.9 A query attempt 1: failed to look up ntp.eng.oxide.computer: proto error: io error: No route to host (os error 148)
....
DNS server 9.9.9.9 A query attempt 31: failed to look up ntp.eng.oxide.computer: proto error: io error: No route to host (os error 148)
* Checking for external NTP connectivity (6.051µs)
missing metadata
no NTP IP addresses known (DNS failure?)
✔ Cleaning up host OS routing configuration (56.628µs)
missing metadata
✘ Cleaning up host OS IP address configuration (20.848173ms)
missing metadata
failed to remove uplink SMF property "uplinks/qsfp0_0": command failed (status exit status: 1); stdout="" stderr="svccfg: No such property uplinks/qsfp0_0.\n"
Connection to fe80::aa40:25ff:fe05:2702%london_sw0tp0 closed.
Without addresses and routes, preflight should just stop early and complain.
Contributor guide
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.
Research direction
Start with the preflight uplink entry point and reproduce the supplied configuration where switch 0 has empty addresses and routes. Trace the preflight steps to identify where host IP and routing setup begins; done means an incomplete network configuration stops early with a clear complaint instead of attempting host setup.
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
- 45/100