pub struct CoordsRequired {
pub dest_addr: NodeAddr,
pub reporter: NodeAddr,
}Expand description
Link-layer error signal indicating router cache miss.
Generated by a transit router when it cannot forward a SessionDatagram due to missing cached coordinates for the destination. Carried inside a new SessionDatagram addressed back to the original source (src_addr=reporter, dest_addr=original_source). Plaintext — not end-to-end encrypted, since the transit router has no session with the source.
§Wire Format
| Offset | Field | Size | Description |
|---|---|---|---|
| 0 | msg_type | 1 byte | 0x20 |
| 1 | flags | 1 byte | Reserved |
| 2 | dest_addr | 16 bytes | The node_addr we couldn’t route to |
| 18 | reporter | 16 bytes | NodeAddr of reporting router |
Payload: 34 bytes
Fields§
§dest_addr: NodeAddrDestination that couldn’t be routed.
reporter: NodeAddrRouter reporting the miss.
Implementations§
Source§impl CoordsRequired
impl CoordsRequired
Trait Implementations§
Source§impl Clone for CoordsRequired
impl Clone for CoordsRequired
Source§fn clone(&self) -> CoordsRequired
fn clone(&self) -> CoordsRequired
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CoordsRequired
impl RefUnwindSafe for CoordsRequired
impl Send for CoordsRequired
impl Sync for CoordsRequired
impl Unpin for CoordsRequired
impl UnsafeUnpin for CoordsRequired
impl UnwindSafe for CoordsRequired
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more