Skip to content
Open
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d2cfd20
Add libtopo dependency to sled-hardware
smklein Sep 10, 2026
91ff18c
Rename disk "slot" to "pcie_slot" in sled-hardware and Nexus types
smklein Sep 11, 2026
2417ea5
Report each disk's chassis location from the hardware topology
smklein Sep 11, 2026
1f8a88b
Carry disk chassis location through the sled-agent API into inventory
smklein Sep 11, 2026
603073f
Add /usr/lib/fm/amd64 to the illumos runpath for libtopo
smklein Sep 11, 2026
c51a8fa
Give the example inventory disks chassis locations
smklein Sep 11, 2026
62b18e0
Show only the chassis location on the inventory disk line
smklein Sep 11, 2026
e35b60a
Tidy the topo lookup after review
smklein Sep 11, 2026
7ba9b63
Give the planning system builder's disks chassis locations
smklein Sep 11, 2026
a226091
Disk location follow-ups: reconcile late labels, merge topo reads, lo…
smklein Sep 14, 2026
f69fbb6
merge
smklein Sep 16, 2026
7807fec
Use libtopo 0.2.0's hc constants and typed property getter
smklein Sep 16, 2026
901fb2a
Set libtopo's runpath through omicron-rpaths, not .cargo/config.toml
smklein Sep 16, 2026
37dec5e
Read disk locations from topo on every hardware poll
smklein Sep 16, 2026
8eb6538
Rename sled-hardware disk_location.rs to nvme_instance.rs
smklein Sep 16, 2026
831a0ef
Set libtopo's runpath for crates that reach it only via dev-dependencies
smklein Sep 16, 2026
7564f16
Set libtopo's runpath in .cargo/config.toml, not omicron-rpaths
smklein Sep 17, 2026
ce390cc
Give synthetic disks chassis locations that match real hardware
smklein Sep 17, 2026
5219def
Disk location review follow-ups
smklein Sep 17, 2026
15ee23c
Disk location review follow-ups, third round
smklein Sep 17, 2026
8dbe94d
merge
smklein Sep 18, 2026
b253d2e
merge
smklein Oct 8, 2026
ed8b4f3
merge
smklein Oct 16, 2026
d45b283
merge
smklein Oct 20, 2026
6cecf2f
merge
smklein Oct 23, 2026
a1ae16d
merge
smklein Oct 28, 2026
8923b45
merge
smklein Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .cargo/xtask.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,16 @@ binary_allow_list = [
"sled-agent",
"sled-agent-sim",
]

# libtopo is the illumos hardware topology library, used by sled-hardware to
# find each disk's chassis location. Like libnvme, it is only needed by
# programs that inspect a sled's hardware from the global zone.
[libraries."libtopo.so.1"]
binary_allow_list = [
"installinator",
"omicron-dev",
"omicron-package",
"services-ledger-check-migrate",
"sled-agent",
"sled-agent-sim",
]
56 changes: 52 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 5 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -534,8 +534,8 @@ filetime = "0.2.26"
flate2 = "1.1.2"
float-ord = "0.3.2"
flume = "0.11.1"
fmd-adm = { git = "https://github.com/oxidecomputer/fmd-adm", rev = "846361bf0a698a8c7efefd97b2828b9aa74858c4" }
fmd-adm-sys = { git = "https://github.com/oxidecomputer/fmd-adm", rev = "846361bf0a698a8c7efefd97b2828b9aa74858c4" }
fmd-adm = { git = "https://github.com/oxidecomputer/fmd-adm", rev = "5b57d8dd36f96778d0c067ec9647ddde9b58ace7" }
fmd-adm-sys = { git = "https://github.com/oxidecomputer/fmd-adm", rev = "5b57d8dd36f96778d0c067ec9647ddde9b58ace7" }
foreign-types = "0.3.2"
fs-err = "3.1.1"
futures = "0.3.31"
Expand Down Expand Up @@ -590,7 +590,7 @@ hyper-util = "0.1.16"
hyper-rustls = "0.27.7"
hyper-staticfile = "0.10.1"
iddqd = { version = "0.4.2", features = ["daft", "serde", "schemars08"] }
illumos-nvpair = "0.3.0"
illumos-nvpair = "0.4.0"
illumos-nvpair-sys = "0.2.0"
illumos-utils = { path = "illumos-utils" }
iana-time-zone = "0.1.63"
Expand Down Expand Up @@ -620,6 +620,8 @@ libc = "0.2.174"
linkme = "0.3"
libipcc = { git = "https://github.com/oxidecomputer/ipcc-rs", rev = "524eb8f125003dff50b9703900c6b323f00f9e1b" }
libnvme = { git = "https://github.com/oxidecomputer/libnvme", rev = "dd5bb221d327a1bc9287961718c3c10d6bd37da0" }
libtopo = "0.2.0"
libtopo-sys = "0.1.1"
linear-map = "1.2.0"
live-tests-macros = { path = "live-tests/macros" }
lldpd_client = { git = "https://github.com/oxidecomputer/lldp", rev = "54b266174d4de9628bca9c97b0db176e16f12154", package = "lldpd-client" }
Expand Down
2 changes: 2 additions & 0 deletions dev-tools/omdb/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ uuid.workspace = true
[target.'cfg(target_os = "illumos")'.dependencies]
# See omicron-rpaths for more about the "fmd-adm-sys" dependency.
fmd-adm-sys.workspace = true
# See omicron-rpaths for more about the "libtopo-sys" dependency.
libtopo-sys.workspace = true

[dev-dependencies]
camino-tempfile.workspace = true
Expand Down
7 changes: 5 additions & 2 deletions dev-tools/omdb/src/bin/omdb/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7581,7 +7581,9 @@ async fn cmd_db_inventory_physical_disks(
struct DiskRow {
inv_collection_id: Uuid,
sled_id: Uuid,
slot: i64,
pcie_slot: i64,
#[tabled(display_with = "display_option_blank")]
location: Option<String>,
vendor: String,
model: String,
serial: String,
Expand Down Expand Up @@ -7634,7 +7636,8 @@ async fn cmd_db_inventory_physical_disks(
DiskRow {
inv_collection_id: disk.inv_collection_id.into_untyped_uuid(),
sled_id: disk.sled_id.into_untyped_uuid(),
slot: disk.slot,
pcie_slot: disk.pcie_slot,
location: disk.location.clone(),
vendor: disk.vendor,
model: disk.model.clone(),
serial: disk.serial.clone(),
Expand Down
2 changes: 2 additions & 0 deletions dev-tools/omicron-dev/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ toml.workspace = true
[target.'cfg(target_os = "illumos")'.dependencies]
# See omicron-rpaths for more about the "fmd-adm-sys" dependency.
fmd-adm-sys.workspace = true
# See omicron-rpaths for more about the "libtopo-sys" dependency.
libtopo-sys.workspace = true

[dev-dependencies]
expectorate.workspace = true
Expand Down
7 changes: 7 additions & 0 deletions dev-tools/rack-init-config/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ license = "MPL-2.0"
[lints]
workspace = true

[build-dependencies]
omicron-rpaths.workspace = true

[dependencies]
bootstrap-agent-lockstep-types.workspace = true
iddqd.workspace = true
Expand All @@ -18,6 +21,10 @@ sled-agent-types.workspace = true
sled-hardware-types.workspace = true
toml.workspace = true

[target.'cfg(target_os = "illumos")'.dependencies]
# See omicron-rpaths for more about the "libtopo-sys" dependency.
libtopo-sys.workspace = true

[dev-dependencies]
camino-tempfile.workspace = true
sled-agent-rack-setup.workspace = true
10 changes: 10 additions & 0 deletions dev-tools/rack-init-config/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

// See omicron-rpaths for documentation.
// NOTE: This file MUST be kept in sync with the other build.rs files in this
// repository.
fn main() {
omicron_rpaths::configure_default_omicron_rpaths();
}
Loading
Loading