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