netlink_packet_route/rtnl/neighbour/
buffer.rs

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