netlink_packet_route/rtnl/neighbour/
buffer.rs1use netlink_packet_utils::DecodeError;
4
5use netlink_packet_utils::nla::{NlaBuffer, NlasIterator};
6
7pub const NEIGHBOUR_HEADER_LEN: usize = 12;
8buffer!(NeighbourMessageBuffer(NEIGHBOUR_HEADER_LEN) {
9 family: (u8, 0),
10 ifindex: (u32, 4..8),
11 state: (u16, 8..10),
12 flags: (u8, 10),
13 ntype: (u8, 11),
14 payload:(slice, NEIGHBOUR_HEADER_LEN..),
15});
16
17impl<'a, T: AsRef<[u8]> + ?Sized> NeighbourMessageBuffer<&'a T> {
18 pub fn nlas(
19 &self,
20 ) -> impl Iterator<Item = Result<NlaBuffer<&'a [u8]>, DecodeError>> {
21 NlasIterator::new(self.payload())
22 }
23}