This commit is contained in:
@ -23,11 +23,11 @@ use std::net::Ipv6Addr;
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use eyre::Result;
|
use eyre::{bail, Result};
|
||||||
use ip_network_table_deps_treebitmap::IpLookupTable;
|
use ip_network_table_deps_treebitmap::IpLookupTable;
|
||||||
use tonic::transport::Endpoint;
|
use tonic::transport::Endpoint;
|
||||||
use tonic::transport::Uri;
|
use tonic::transport::Uri;
|
||||||
use tracing::{trace, warn};
|
use tracing::trace;
|
||||||
|
|
||||||
use bgp_packet::constants::AddressFamilyIdentifier;
|
use bgp_packet::constants::AddressFamilyIdentifier;
|
||||||
use bgp_packet::nlri::NLRI;
|
use bgp_packet::nlri::NLRI;
|
||||||
@ -99,13 +99,13 @@ pub async fn run_connector_v4<S: SouthboundInterface>(
|
|||||||
let nh_bytes: [u8; 4] = vec_to_array(best.nexthop.clone())?;
|
let nh_bytes: [u8; 4] = vec_to_array(best.nexthop.clone())?;
|
||||||
let nh_addr: Ipv4Addr = Ipv4Addr::from(nh_bytes);
|
let nh_addr: Ipv4Addr = Ipv4Addr::from(nh_bytes);
|
||||||
if let Err(e) = fib_state.route_add(&nlri, IpAddr::V4(nh_addr)).await {
|
if let Err(e) = fib_state.route_add(&nlri, IpAddr::V4(nh_addr)).await {
|
||||||
warn!("Failed to add route into kernel: {}: {}", nlri, e);
|
bail!("Failed to add route into kernel: {}: {}", nlri, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// No more paths, delete
|
// No more paths, delete
|
||||||
if let Err(e) = fib_state.route_del(nlri).await {
|
if let Err(e) = fib_state.route_del(nlri).await {
|
||||||
warn!("Failed to delete route from kernel: {}", e);
|
bail!("Failed to delete route from kernel: {}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -166,13 +166,13 @@ pub async fn run_connector_v6<S: SouthboundInterface>(
|
|||||||
let nh_bytes: [u8; 16] = vec_to_array(best.nexthop.clone())?;
|
let nh_bytes: [u8; 16] = vec_to_array(best.nexthop.clone())?;
|
||||||
let nh_addr: Ipv6Addr = Ipv6Addr::from(nh_bytes);
|
let nh_addr: Ipv6Addr = Ipv6Addr::from(nh_bytes);
|
||||||
if let Err(e) = fib_state.route_add(&nlri, IpAddr::V6(nh_addr)).await {
|
if let Err(e) = fib_state.route_add(&nlri, IpAddr::V6(nh_addr)).await {
|
||||||
warn!("Failed to add route into kernel: {}: {}", nlri, e);
|
bail!("Failed to add route into kernel: {}: {}", nlri, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// No more paths, delete
|
// No more paths, delete
|
||||||
if let Err(e) = fib_state.route_del(nlri).await {
|
if let Err(e) = fib_state.route_del(nlri).await {
|
||||||
warn!("Failed to delete route from kernel: {}", e);
|
bail!("Failed to delete route from kernel: {}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user