netlink_packet_route/rtnl/neighbour/
buffer.rs

1// SPDX-License-Identifier: MIT
2
3use 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}