Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
41 changes: 33 additions & 8 deletions Cargo.lock

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

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,7 @@ digest = "0.10.7"
dns-server = { path = "dns-server" }
dns-server-api = { path = "dns-server-api" }
dns-service-client = { path = "clients/dns-service-client" }
dpd-client = { git = "https://github.com/oxidecomputer/dendrite", rev = "04a52a3240a26c58f03e1cf40353d67ff69d76b6" }
dpd-client = { git = "https://github.com/oxidecomputer/dendrite", rev = "247502812015b409d33240b836d5bf242817453d" }
dropshot = { version = "0.17.1", features = [ "usdt-probes" ] }
dropshot-api-manager = "0.8.0"
dropshot-api-manager-types = "0.8.0"
Expand Down
12 changes: 6 additions & 6 deletions package-manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -765,8 +765,8 @@ only_for_targets.image = "standard"
# the other `source.*` keys.
source.type = "prebuilt"
source.repo = "dendrite"
source.commit = "04a52a3240a26c58f03e1cf40353d67ff69d76b6"
source.sha256 = "427937bc676d374bdbc76796da37ff1de1c21bcf593fa3317db23e86b4f29c68"
source.commit = "247502812015b409d33240b836d5bf242817453d"
source.sha256 = "e878b070c1a3ae26decaa9194d4d785c125f72864c95c14b020770da14fb0b1b"
output.type = "zone"
output.intermediate_only = true

Expand All @@ -792,8 +792,8 @@ only_for_targets.image = "standard"
# the other `source.*` keys.
source.type = "prebuilt"
source.repo = "dendrite"
source.commit = "04a52a3240a26c58f03e1cf40353d67ff69d76b6"
source.sha256 = "7b51f10349486f57c431c6fb5f18e7597dba6def1c929227b7bee4f52703cbf6"
source.commit = "247502812015b409d33240b836d5bf242817453d"
source.sha256 = "3f383cfbfd4c0af2f4e56eca7bc6376412617f8b78de3d3465718adb0dd668a7"
output.type = "zone"
output.intermediate_only = true

Expand All @@ -812,8 +812,8 @@ only_for_targets.image = "standard"
# the other `source.*` keys.
source.type = "prebuilt"
source.repo = "dendrite"
source.commit = "04a52a3240a26c58f03e1cf40353d67ff69d76b6"
source.sha256 = "eb2ee25b5a9c8bb28f17a8d8aaaa0a7bffaf00ee0cadd876baf5c8c85572ca68"
source.commit = "247502812015b409d33240b836d5bf242817453d"
source.sha256 = "df1d007e4f90f260a343e7231e6bff2ce61f9d1e73e17765365b8c9f95b2a3d0"
output.type = "zone"
output.intermediate_only = true

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,15 @@ impl From<&'_ DiffablePortSettings> for DpdPortSettings {
pre2: t.pre2,
});

// TODO-multirack Whether we allow DDM traffic is based today only on
// whether the link is on a front QSFP port. We set it to false for
// them all now, but inter-rack links will need to support it when we
// implement multirack DDM routing.
//
// TODO-robustness: We should really be using the stronger types for
// ports in Dendrite, e.g., `PortId::Rear`, instead of strings.
let allow_ddm_traffic = port.port_id.starts_with("rear");
Comment thread
bnaecker marked this conversation as resolved.

// TODO breakouts?
let mut links = HashMap::with_capacity(1);
let link_id = DpdLinkId(0);
Expand All @@ -530,6 +539,7 @@ impl From<&'_ DiffablePortSettings> for DpdPortSettings {
lane: Some(link_id),
speed,
tx_eq,
allow_ddm_traffic,
},
},
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ fn dpd_port_settings(
fec: Option<DpdPortFec>,
autoneg: bool,
addrs: Vec<IpAddr>,
allow_ddm_traffic: bool,
) -> DpdPortSettings {
let mut links = HashMap::new();
let link_id = DpdLinkId(0);
Expand All @@ -83,6 +84,7 @@ fn dpd_port_settings(
lane: Some(link_id),
speed,
tx_eq: None,
allow_ddm_traffic,
},
},
);
Expand Down Expand Up @@ -127,6 +129,7 @@ fn plan_all_unchanged() {
Some(DpdPortFec::Rs),
true,
vec![addr],
false, // This is an uplink
),
)]);

Expand Down Expand Up @@ -218,6 +221,7 @@ fn plan_clear_all() {
Some(DpdPortFec::Rs),
true,
vec!["10.0.0.1".parse().unwrap()],
false,
),
),
(
Expand All @@ -227,6 +231,7 @@ fn plan_clear_all() {
None,
false,
vec!["10.0.0.2".parse().unwrap()],
false,
),
),
]);
Expand Down Expand Up @@ -300,15 +305,28 @@ fn plan_mix() {
Some(DpdPortFec::Rs),
true,
vec![ip0],
false,
),
),
(
qsfp1.clone(),
dpd_port_settings(DpdPortSpeed::Speed25G, None, false, vec![ip1]),
dpd_port_settings(
DpdPortSpeed::Speed25G,
None,
false,
vec![ip1],
false,
),
),
(
qsfp2.clone(),
dpd_port_settings(DpdPortSpeed::Speed10G, None, false, vec![ip2]),
dpd_port_settings(
DpdPortSpeed::Speed10G,
None,
false,
vec![ip2],
false,
),
),
]);

Expand Down Expand Up @@ -410,6 +428,7 @@ fn plan_link_local_addrs_ignored_from_dpd() {
None,
true,
vec![addr, link_local],
false,
),
)]);

Expand Down Expand Up @@ -456,6 +475,7 @@ fn plan_rejects_multi_link_dpd_port() {
lane: Some(link0),
speed: DpdPortSpeed::Speed100G,
tx_eq: None,
allow_ddm_traffic: false,
};
links.insert(
link0.to_string(),
Expand Down
6 changes: 3 additions & 3 deletions tools/dendrite_stub_checksums
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
CIDL_SHA256_ILLUMOS="427937bc676d374bdbc76796da37ff1de1c21bcf593fa3317db23e86b4f29c68"
CIDL_SHA256_LINUX_DPD="d6cfabb2a4a22302880348b9b733d7a8cd5caec2596a41495dfd83482354f107"
CIDL_SHA256_LINUX_SWADM="4ac47695b1ccef3ac615b9f4d816bc4aa6c3d223f93f38df322982d28017f69e"
CIDL_SHA256_ILLUMOS="e878b070c1a3ae26decaa9194d4d785c125f72864c95c14b020770da14fb0b1b"
CIDL_SHA256_LINUX_DPD="8b50e7c021f9a601be3122e1301dd1117d90ba9e0b3218878155557d075b421b"
CIDL_SHA256_LINUX_SWADM="47ce113499d03d8766b071ebfd64211a3ee19e7526a02ff4dcc8c41a4be4b7ec"
2 changes: 1 addition & 1 deletion tools/dendrite_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
COMMIT="04a52a3240a26c58f03e1cf40353d67ff69d76b6"
COMMIT="247502812015b409d33240b836d5bf242817453d"
7 changes: 7 additions & 0 deletions wicketd/src/preflight_check/uplink.rs
Original file line number Diff line number Diff line change
Expand Up @@ -854,6 +854,12 @@ fn build_port_settings(
.map(|a| a.address.ip_squashing_addrconf_to_unspecified())
.collect();

// We always enable DDM on the backplane, so this only applies to the front
// IO ports which are _not_ uplinks. This entire code path is only used for
// the preflight uplink checks, so we can confidently say we don't want to
// allow DDM.
let allow_ddm_traffic = false;

port_settings.links.insert(
link_id.to_string(),
LinkSettings {
Expand All @@ -865,6 +871,7 @@ fn build_port_settings(
speed,
lane: Some(LinkId(0)),
tx_eq: None,
allow_ddm_traffic,
},
},
);
Expand Down
Loading