Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7c765d7
[dpd, mcast] Tighten multicast group and source validation
zeeshanlakhani Jul 18, 2026
aeb2d6c
[dpd-api] correct external multicast group scope docs
zeeshanlakhani Sep 2, 2026
aa4087d
[dpd,dpd-api,dpd-types] make external multicast constraints self-enfo…
zeeshanlakhani Sep 23, 2026
56d829c
[merge] merge forward
zeeshanlakhani Oct 13, 2026
10de8c3
[post-merge] fix prepare_expected_pkt calls after merge
zeeshanlakhani Oct 13, 2026
9e9e56f
[merge] merge fwd
zeeshanlakhani Oct 17, 2026
6366b61
[types, err] typed embedded rendezvous-point errors
zeeshanlakhani Oct 19, 2026
482dd98
[merge] merge fwd
zeeshanlakhani Oct 20, 2026
a9cfbbd
[merge, resolve] merge fwd, resolve conflicts within typed structure
zeeshanlakhani Oct 20, 2026
12c4df6
[merge] merge fwd
zeeshanlakhani Oct 21, 2026
2c0bba8
[merge] merge fwd
zeeshanlakhani Oct 22, 2026
df9fd6b
[merge] merge fwd
zeeshanlakhani Oct 29, 2026
fd3666f
[types, mcast, vni] export shared validation for maghemite + omicron
zeeshanlakhani Oct 28, 2026
20d6060
[merge] merge fwd
zeeshanlakhani Oct 30, 2026
ab39e99
[merge] merge fwd
zeeshanlakhani Oct 30, 2026
c1c1a28
[types, proptest] export Arbitrary impls + mcast group strategies via…
zeeshanlakhani Oct 30, 2026
6708a26
[dpd-client, types] Eq/Hash on MulticastGroupMember + replace Multica…
zeeshanlakhani Nov 2, 2026
cacd496
[review] address non-rollback review items
zeeshanlakhani Nov 3, 2026
29c683a
[review, mcast] rollback/repair refactor + set/clear table ops
zeeshanlakhani Nov 3, 2026
490d50c
[mcast, group, tag] tag mismatch handling
zeeshanlakhani Nov 5, 2026
230ed8e
[merge] merge fwd
zeeshanlakhani Nov 5, 2026
22216a6
[merge] merge fwd
zeeshanlakhani Nov 6, 2026
eb3a6f2
[mcast] store underlay members in canonical order
zeeshanlakhani Nov 5, 2026
6a5425b
[types, mcast] neutral ReservedUnderlaySubnet language for mgd's re-e…
zeeshanlakhani Nov 5, 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
36 changes: 36 additions & 0 deletions .github/buildomat/jobs/test-proptest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash
#:
#: name = "test-proptest"
#: variety = "basic"
#: target = "helios-3.0"
#: rust_toolchain = true
#: output_rules = [
#: "/work/proptest-regressions/**/*",
#: ]
#:

set -o errexit
set -o pipefail
set -o xtrace

source .github/buildomat/common.sh

NEXTEST_VERSION='0.9.97'
nextest_tmp="$(mktemp -d)"
trap 'rm -rf "${nextest_tmp}"' EXIT
nextest_tar="${nextest_tmp}/nextest.tar.gz"
curl -sSfL --retry 10 -o "${nextest_tar}" \
"https://get.nexte.st/${NEXTEST_VERSION}/illumos"
mkdir -p "${CARGO_HOME:-${HOME}/.cargo}/bin"
tar -xzf "${nextest_tar}" -C "${CARGO_HOME:-${HOME}/.cargo}/bin"

status=0
pushd dpd-types/versions
PROPTEST_CASES=1000000 cargo nextest run --lib proptests || status=$?
if [[ -d proptest-regressions ]]; then
mkdir -p /work/proptest-regressions/dpd-types-versions
cp -r proptest-regressions/. /work/proptest-regressions/dpd-types-versions/
fi
popd
Comment thread
cfzimmerman marked this conversation as resolved.
Resolved

exit "${status}"
129 changes: 112 additions & 17 deletions Cargo.lock

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

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ kstat-rs = "0.2.4"
lazy_static = "1.5"
libc = "0.2"
mockall = "0.14.0"
nonempty = "0.12.0"
omicron-zone-package = "0.12"
openssl = "0.10"
oxide-tokio-rt = "0.1.2"
Expand All @@ -92,6 +93,7 @@ predicates = "3.1.4"
pretty_assertions = "1.4"
progenitor = "0.15.1"
progenitor-extras = "0.3.0"
proptest = "1.10"
rand = "0.9"
regex = "1.12"
regress = "0.11"
Expand All @@ -112,6 +114,7 @@ slog-term = "2.9"
socket2 = { version = "0.6", features = ["all"] }
strum = { version = "0.28", features = [ "derive" ] }
tabwriter = { version = "1", features = ["ansi_formatting"] }
test-strategy = "0.4"
thiserror = "2.0"
tokio = "1.37"
toml = "1.0"
Expand Down
10 changes: 7 additions & 3 deletions aal/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,11 @@ pub enum AsicError {
Synthetic(String),
/// A general indication that a caller is trying to create something that
/// already exists.
#[error("Already exists")]
Exists,
#[error("Already exists: {}", .0)]
Exists(String),
/// A general indication that a caller is trying to modify something that
/// is not present.
#[error("Missing")]
#[error("Missing: {}", .0)]
Missing(String),
}

Expand All @@ -126,6 +126,10 @@ pub trait AsicMulticastOps {
/// For a given multicast group, return the number of ports assigned to it.
fn mc_port_count(&self, group_id: u16) -> AsicResult<usize>;

/// For a given multicast group, return the ASIC identifiers of the ports
/// assigned to it.
fn mc_port_list(&self, group_id: u16) -> AsicResult<Vec<AsicId>>;

/// Add a port to a multicast group. The port is identified using its ASIC
/// identifier.
fn mc_port_add(
Expand Down
Loading
Loading