pub struct NeighborInfo {Show 17 fields
pub mac_address: Option<MacAddress>,
pub short_address: Option<u16>,
pub age: Option<i64>,
pub is_child: Option<bool>,
pub link_frame_count: Option<u32>,
pub mgmt_frame_count: Option<u32>,
pub last_rssi_in: Option<i32>,
pub avg_rssi_in: Option<i8>,
pub lqi_in: Option<u8>,
pub thread_mode: Option<u8>,
pub frame_error_rate: Option<u16>,
pub ipv6_error_rate: Option<u16>,
pub child_is_csl_synced: Option<bool>,
pub child_is_state_restoring: Option<bool>,
pub net_data_version: Option<u8>,
pub queued_messages: Option<u16>,
pub thread_mle_version: Option<u8>,
/* private fields */
}
Expand description
Neighbor Table Entry
All fields are optional except for mac_address
.
See also:
- https://openthread.io/reference/struct/ot-neighbor-info
- https://openthread.io/reference/struct/ot-child-info
- https://github.com/openthread/wpantund/blob/8db2a71c9597e08949dfc38d8c10f830e3de565c/third_party/openthread/src/ncp/spinel.h#L2356-L2373
Fields§
§mac_address: Option<MacAddress>
The MAC address of the neighbor.
Note that this is the only field guaranteed to be present.
short_address: Option<u16>
802.15.4 short address of neighbor.
On Thread networks, this is also the RLOC16.
age: Option<i64>
The age of this entry in the neighbor table.
Describes when this neighbor was last seen. Resolution is roughly +/- 1sec.
is_child: Option<bool>
True if this neighbor is considered a child and is thus entirely dependent on this device for routing.
If absent, assumed to be false.
link_frame_count: Option<u32>
The number of link (non-management) frames received from this neighbor.
mgmt_frame_count: Option<u32>
The number of management (MLE, etc) frames received from this neighbor.
last_rssi_in: Option<i32>
RSSI of the most recent packet received from the neighbor.
avg_rssi_in: Option<i8>
Average/typical RSSI of packets received from the neighbor.
lqi_in: Option<u8>
LQI of the most recent packet received from the neighbor.
Value is between 1 and 255, with 1 being the worst possible link quality (any worse and it would not have been decoded) and 255 being perfect reception. All values in between are a roughly linear (but not well defined) extrapolation between these two extremes.
Zero values must not be encoded, but if encountered should be interpreted as if the LQI field were absent.
In 802.15.4 networks, LQI is typically determined by the number of “chip errors” when decoding the packets.
thread_mode: Option<u8>
Thread Mode TLV. Only present on Thread networks.
Defined by section 4.5.2 of the Thread 1.1.1 specification (“Mode TLV”).
frame_error_rate: Option<u16>
Frame error rate.
0xffff
indicates 100%, 0x0000
indicates 0%.
ipv6_error_rate: Option<u16>
IPv6 message error rate.
0xffff
indicates 100%, 0x0000
indicates 0%.
child_is_csl_synced: Option<bool>
True if the child is CSL synced.
CSL is Coordinated Sampled Listening, a mechanism for sleepy devices to perform indirect TX.
child_is_state_restoring: Option<bool>
True if the child is restoring state.
net_data_version: Option<u8>
Version of NetData that the neighbor has.
queued_messages: Option<u16>
Number of messages queued for the neighbor.
thread_mle_version: Option<u8>
MLE version for the neighbor.
Trait Implementations§
Source§impl Clone for NeighborInfo
impl Clone for NeighborInfo
Source§fn clone(&self) -> NeighborInfo
fn clone(&self) -> NeighborInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for NeighborInfo
impl Debug for NeighborInfo
Source§impl<D: ResourceDialect> Decode<NeighborInfo, D> for NeighborInfo
impl<D: ResourceDialect> Decode<NeighborInfo, D> for NeighborInfo
Source§impl Default for NeighborInfo
impl Default for NeighborInfo
Source§fn default() -> NeighborInfo
fn default() -> NeighborInfo
Source§impl<D: ResourceDialect> Encode<NeighborInfo, D> for &NeighborInfo
impl<D: ResourceDialect> Encode<NeighborInfo, D> for &NeighborInfo
Source§impl PartialEq for NeighborInfo
impl PartialEq for NeighborInfo
Source§impl TypeMarker for NeighborInfo
impl TypeMarker for NeighborInfo
Source§type Owned = NeighborInfo
type Owned = NeighborInfo
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.Source§impl ValueTypeMarker for NeighborInfo
impl ValueTypeMarker for NeighborInfo
Source§type Borrowed<'a> = &'a NeighborInfo
type Borrowed<'a> = &'a NeighborInfo
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Persistable for NeighborInfo
impl StructuralPartialEq for NeighborInfo
Auto Trait Implementations§
impl Freeze for NeighborInfo
impl RefUnwindSafe for NeighborInfo
impl Send for NeighborInfo
impl Sync for NeighborInfo
impl Unpin for NeighborInfo
impl UnwindSafe for NeighborInfo
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)