use netlink_packet_core::{NLM_F_DUMP, NLM_F_REQUEST};
use netlink_packet_route::{
rtnl::{LinkMessage, RtnlMessage},
NetlinkMessage,
};
fn main() {
let mut packet =
NetlinkMessage::from(RtnlMessage::GetLink(LinkMessage::default()));
packet.header.flags = NLM_F_DUMP | NLM_F_REQUEST;
packet.header.sequence_number = 1;
packet.finalize();
let mut buf = vec![0; packet.header.length as usize];
packet.serialize(&mut buf[..]);
let deserialized_packet = NetlinkMessage::<RtnlMessage>::deserialize(&buf)
.expect("Failed to deserialize message");
assert_eq!(deserialized_packet, packet);
println!("{packet:?}");
}