ftth-rtnl 0.3.4

RTnetlink components for `ftth` suite of Rust FTTH CPE software.
Documentation
use ftth_rtnl::RtnlClient;

fn main() -> std::io::Result<()> {
    let client = RtnlClient::new();
    let link_client = client.link();
    let addr_client = client.address();
    let ifs = link_client.interface_list()?;
    for interface in ifs {
        println!("Interface: {} ({})", &interface.if_name, interface.if_id);
        let if_id = interface.if_id;
        let mac = link_client.mac_addr_get(if_id)?;
        if let Some(mac) = mac {
            println!("  MAC address: {}", mac);
        } else {
            println!("  No MAC address");
        }
        let v4addrs = addr_client.ipv4_addrs_get(Some(if_id))?;
        println!("  IPv4 addresses:");
        for addr in v4addrs {
            println!("    {}", addr);
        }
        let v6addrs = addr_client.ipv6_addrs_get(Some(if_id))?;
        println!("  IPv6 addresses:");
        for addr in v6addrs {
            println!("    {}", addr);
        }
        println!("");
    }
    Ok(())
}