Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e9c46b6
Consolidate DDMv2 wire types into a single file
ahl Jun 1, 2026
c92552a
moved types
ahl Jun 1, 2026
293cc32
ddm-protocol crate to organize protocal types
ahl Jun 2, 2026
bc4f2f7
missed type migration
ahl Jun 2, 2026
d5f9228
buildomat: bump target to lab-3.0-gimlet (#766)
taspelund Jun 2, 2026
c970d6f
nits
ahl Jun 2, 2026
4398b8f
good progress
ahl Jun 1, 2026
a9539b2
remove Prefix type alias
ahl Jun 1, 2026
269b766
fix up API
ahl Jun 2, 2026
a89e36d
get the rest of the world to compile
ahl Jun 2, 2026
71e5bb7
self-review
ahl Jun 2, 2026
bc376d2
rustfmt
ahl Jun 2, 2026
2434f16
fix test
ahl Jun 2, 2026
156e8c1
fixes
ahl Jun 2, 2026
e177e11
fixup
ahl Jun 2, 2026
ccbdbf6
review feedback re: constants
ahl Jun 3, 2026
41b9a76
fix duplicate valid_for_rib impls
ahl Jun 3, 2026
781e7d6
restore mgd validation tests
ahl Jun 3, 2026
b472338
restore proptests
ahl Jun 3, 2026
6bd9205
unneeded dev-dep
ahl Jun 4, 2026
763c3b8
restore deleted comments
ahl Jun 4, 2026
898241f
Merge branch 'refs/heads/main' into die-prefix-die
ahl Jun 4, 2026
cd5cefc
fix doc test
ahl Jun 4, 2026
a2ce9e3
add fix for #767
ahl Jun 4, 2026
69c32bf
claude dropped a bunch of comments in the migration
ahl Jun 4, 2026
2216ead
nits
ahl Jun 4, 2026
051ebc7
self-review; revert spurious changes
ahl Jun 4, 2026
7496c6e
Merge main into die-prefix-die
ahl Jun 4, 2026
337d5db
fixes
ahl Jun 4, 2026
4a16006
fix mismerge
ahl Jun 4, 2026
e3637da
review feedback from john
ahl Jun 5, 2026
285ac69
add some traits for omicron
ahl Jun 5, 2026
034f7cb
tighten up conversions
ahl Jun 6, 2026
657e915
Merge branch 'main' into die-prefix-die
ahl Jun 6, 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
6 changes: 6 additions & 0 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 @@ -128,7 +128,7 @@ chrono = { version = "0.4.44", features = ["serde"] }
oxide-tokio-rt = "0.1.5"
oximeter = { git = "https://github.com/oxidecomputer/omicron", branch = "main"}
oximeter-producer = { git = "https://github.com/oxidecomputer/omicron", branch = "main"}
oxnet = { version = "0.1.5", default-features = false, features = ["schemars", "serde"] }
oxnet = { version = "0.1.6", default-features = false, features = ["schemars", "serde"] }
omicron-common = { git = "https://github.com/oxidecomputer/omicron", branch = "main"}
gateway-client = { git = "https://github.com/oxidecomputer/omicron", branch = "main" }
uuid = { version = "1.21", features = ["serde", "v4"] }
Expand Down
2 changes: 1 addition & 1 deletion bgp/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ impl From<Neighbor> for PeerConfig {
Self {
name,
group,
host,
host: *host,
hold_time,
idle_hold_time,
delay_open,
Expand Down
18 changes: 9 additions & 9 deletions bgp/src/fanout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use crate::session::{
AdminEvent, FsmEvent, PeerId, RouteUpdate, RouteUpdate4, RouteUpdate6,
};
use crate::{COMPONENT_BGP, MOD_NEIGHBOR};
use mg_api_types::rdb::prefix::{Prefix4, Prefix6};
use oxnet::{Ipv4Net, Ipv6Net};
use rdb::types::{Ipv4Marker, Ipv6Marker};
use slog::Logger;
use std::collections::BTreeMap;
Expand All @@ -23,8 +23,8 @@ pub type Fanout6<Cnx> = Fanout<Cnx, Ipv6Marker>;
/// Fanout for distributing routes to peers for a specific address family.
///
/// The type parameter `Af` ensures compile-time safety:
/// - Fanout4 (Fanout<_, Ipv4Marker>) only accepts Prefix4
/// - Fanout6 (Fanout<_, Ipv6Marker>) only accepts Prefix6
/// - Fanout4 (Fanout<_, Ipv4Marker>) only accepts Ipv4Net
/// - Fanout6 (Fanout<_, Ipv6Marker>) only accepts Ipv6Net
pub struct Fanout<Cnx: BgpConnection, Af> {
/// Indexed by peer identifier (IP address or interface name)
egress: BTreeMap<PeerId, Egress<Cnx>>,
Expand All @@ -50,7 +50,7 @@ pub struct Egress<Cnx: BgpConnection> {
// IPv4-specific implementation
impl<Cnx: BgpConnection> Fanout<Cnx, Ipv4Marker> {
/// Announce and/or withdraw IPv4 routes to all peers.
pub fn send_all(&self, nlri: Vec<Prefix4>, withdrawn: Vec<Prefix4>) {
pub fn send_all(&self, nlri: Vec<Ipv4Net>, withdrawn: Vec<Ipv4Net>) {
for egress in self.egress.values() {
if !nlri.is_empty() {
let announce =
Expand All @@ -69,8 +69,8 @@ impl<Cnx: BgpConnection> Fanout<Cnx, Ipv4Marker> {
pub fn send_except(
&self,
origin: &PeerId,
nlri: Vec<Prefix4>,
withdrawn: Vec<Prefix4>,
nlri: Vec<Ipv4Net>,
withdrawn: Vec<Ipv4Net>,
) {
for (peer_id, egress) in &self.egress {
if peer_id == origin {
Expand All @@ -93,7 +93,7 @@ impl<Cnx: BgpConnection> Fanout<Cnx, Ipv4Marker> {
// IPv6-specific implementation
impl<Cnx: BgpConnection> Fanout<Cnx, Ipv6Marker> {
/// Announce and/or withdraw IPv6 routes to all peers.
pub fn send_all(&self, nlri: Vec<Prefix6>, withdrawn: Vec<Prefix6>) {
pub fn send_all(&self, nlri: Vec<Ipv6Net>, withdrawn: Vec<Ipv6Net>) {
for egress in self.egress.values() {
if !nlri.is_empty() {
let announce =
Expand All @@ -112,8 +112,8 @@ impl<Cnx: BgpConnection> Fanout<Cnx, Ipv6Marker> {
pub fn send_except(
&self,
origin: &PeerId,
nlri: Vec<Prefix6>,
withdrawn: Vec<Prefix6>,
nlri: Vec<Ipv6Net>,
withdrawn: Vec<Ipv6Net>,
) {
for (peer_id, egress) in &self.egress {
if peer_id == origin {
Expand Down
Loading