get the stack topology (inter-switch links) and all interfaces
All checks were successful
Run Check Script / check (pull_request) Successful in 1m13s

This commit is contained in:
Ian Letourneau
2025-10-08 17:05:25 -04:00
parent 073cccde2f
commit 1265cebfa7
9 changed files with 463 additions and 81 deletions

View File

@@ -7,8 +7,9 @@ use harmony_types::switch::PortLocation;
async fn main() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
let ip = IpAddr::V4(Ipv4Addr::new(10, 0, 0, 250)); // old brocade @ ianlet
// let ip = IpAddr::V4(Ipv4Addr::new(10, 0, 0, 250)); // old brocade @ ianlet
// let ip = IpAddr::V4(Ipv4Addr::new(192, 168, 55, 101)); // brocade @ sto1
let ip = IpAddr::V4(Ipv4Addr::new(192, 168, 4, 11)); // brocade @ st
let switch_addresses = vec![ip];
let brocade = brocade::init(
@@ -24,28 +25,34 @@ async fn main() {
.await
.expect("Brocade client failed to connect");
let version = brocade.version().await.unwrap();
println!("Version: {version:?}");
let entries = brocade.get_stack_topology().await.unwrap();
println!("Stack topology: {entries:#?}");
println!("--------------");
let mac_adddresses = brocade.show_mac_address_table().await.unwrap();
println!("VLAN\tMAC\t\t\tPORT");
for mac in mac_adddresses {
println!("{}\t{}\t{}", mac.vlan, mac.mac_address, mac.port);
}
let entries = brocade.get_interfaces().await.unwrap();
println!("Interfaces: {entries:#?}");
println!("--------------");
let channel_name = "HARMONY_LAG";
brocade.clear_port_channel(channel_name).await.unwrap();
println!("--------------");
let channel_id = brocade.find_available_channel_id().await.unwrap();
println!("--------------");
let channel_name = "HARMONY_LAG";
let ports = [PortLocation(1, 1, 3), PortLocation(1, 1, 4)];
brocade
.create_port_channel(channel_id, channel_name, &ports)
.await
.unwrap();
// let version = brocade.version().await.unwrap();
// println!("Version: {version:?}");
//
// println!("--------------");
// let mac_adddresses = brocade.show_mac_address_table().await.unwrap();
// println!("VLAN\tMAC\t\t\tPORT");
// for mac in mac_adddresses {
// println!("{}\t{}\t{}", mac.vlan, mac.mac_address, mac.port);
// }
//
// println!("--------------");
// let channel_name = "HARMONY_LAG";
// brocade.clear_port_channel(channel_name).await.unwrap();
//
// println!("--------------");
// let channel_id = brocade.find_available_channel_id().await.unwrap();
//
// println!("--------------");
// let channel_name = "HARMONY_LAG";
// let ports = [PortLocation(1, 1, 3), PortLocation(1, 1, 4)];
// brocade
// .create_port_channel(channel_id, channel_name, &ports)
// .await
// .unwrap();
}