Enum netstack3_core::routes::NextHop
source · pub enum NextHop<A: IpAddress>where
A::Version: IpTypesIpExt,{
RemoteAsNeighbor,
Gateway(SpecifiedAddr<A>),
Broadcast(<A::Version as IpTypesIpExt>::BroadcastMarker),
}
Expand description
The next hop for a [Destination
].
Variants§
RemoteAsNeighbor
Indicates that the next-hop for a the packet is the remote since it is a neighboring node (on-link).
Gateway(SpecifiedAddr<A>)
Indicates that the next-hop is a gateway/router since the remote is not a neighboring node (off-link).
Broadcast(<A::Version as IpTypesIpExt>::BroadcastMarker)
Indicates that the packet should be broadcast rather than sent to a specific neighbor.
Trait Implementations§
source§impl<A: IpAddress, NewIp: IpTypesIpExt> GenericOverIp<NewIp> for NextHop<A>where
A::Version: IpTypesIpExt,
impl<A: IpAddress, NewIp: IpTypesIpExt> GenericOverIp<NewIp> for NextHop<A>where
A::Version: IpTypesIpExt,
source§impl<A: PartialEq + IpAddress> PartialEq for NextHop<A>
impl<A: PartialEq + IpAddress> PartialEq for NextHop<A>
impl<A: Copy + IpAddress> Copy for NextHop<A>
impl<A: Eq + IpAddress> Eq for NextHop<A>
impl<A: IpAddress> StructuralPartialEq for NextHop<A>where
A::Version: IpTypesIpExt,
Auto Trait Implementations§
impl<A> Freeze for NextHop<A>where
<A as IpAddress>::Version: IpExt + IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + Sized + EthernetIpExt + 'static,
A: Sealed + GenericOverIp<Ipv6, Type = Ipv6Addr, Type = Ipv4Addr, Type = A> + GenericOverIp<Ipv4> + GenericOverIp<<A as IpAddress>::Version> + ScopeableAddress + LinkLocalAddress + Send + Sync + Default + Debug + Display + Copy + Clone + Hash + Ord + PartialOrd + PartialEq + Eq + 'static + Freeze,
<<A as IpAddress>::Version as IpTypesIpExt>::BroadcastMarker: Freeze,
impl<A> RefUnwindSafe for NextHop<A>where
<A as IpAddress>::Version: IpExt + IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + Sized + EthernetIpExt + 'static,
A: Sealed + GenericOverIp<Ipv6, Type = Ipv6Addr, Type = Ipv4Addr, Type = A> + GenericOverIp<Ipv4> + GenericOverIp<<A as IpAddress>::Version> + ScopeableAddress + LinkLocalAddress + Send + Sync + Default + Debug + Display + Copy + Clone + Hash + Ord + PartialOrd + PartialEq + Eq + 'static + RefUnwindSafe,
<<A as IpAddress>::Version as IpTypesIpExt>::BroadcastMarker: RefUnwindSafe,
impl<A> Send for NextHop<A>where
<A as IpAddress>::Version: IpExt + IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + Sized + EthernetIpExt + 'static,
A: Sealed + GenericOverIp<Ipv6, Type = Ipv6Addr, Type = Ipv4Addr, Type = A> + GenericOverIp<Ipv4> + GenericOverIp<<A as IpAddress>::Version> + ScopeableAddress + LinkLocalAddress + Send + Sync + Default + Debug + Display + Copy + Clone + Hash + Ord + PartialOrd + PartialEq + Eq + 'static,
<<A as IpAddress>::Version as IpTypesIpExt>::BroadcastMarker: Send,
impl<A> Sync for NextHop<A>where
<A as IpAddress>::Version: IpExt + IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + Sized + EthernetIpExt + 'static,
A: Sealed + GenericOverIp<Ipv6, Type = Ipv6Addr, Type = Ipv4Addr, Type = A> + GenericOverIp<Ipv4> + GenericOverIp<<A as IpAddress>::Version> + ScopeableAddress + LinkLocalAddress + Send + Sync + Default + Debug + Display + Copy + Clone + Hash + Ord + PartialOrd + PartialEq + Eq + 'static,
<<A as IpAddress>::Version as IpTypesIpExt>::BroadcastMarker: Sync,
impl<A> Unpin for NextHop<A>where
<A as IpAddress>::Version: IpExt + IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + Sized + EthernetIpExt + 'static,
A: Sealed + GenericOverIp<Ipv6, Type = Ipv6Addr, Type = Ipv4Addr, Type = A> + GenericOverIp<Ipv4> + GenericOverIp<<A as IpAddress>::Version> + ScopeableAddress + LinkLocalAddress + Send + Sync + Default + Debug + Display + Copy + Clone + Hash + Ord + PartialOrd + PartialEq + Eq + 'static + Unpin,
<<A as IpAddress>::Version as IpTypesIpExt>::BroadcastMarker: Unpin,
impl<A> UnwindSafe for NextHop<A>where
<A as IpAddress>::Version: IpExt + IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + Sized + EthernetIpExt + 'static,
A: Sealed + GenericOverIp<Ipv6, Type = Ipv6Addr, Type = Ipv4Addr, Type = A> + GenericOverIp<Ipv4> + GenericOverIp<<A as IpAddress>::Version> + ScopeableAddress + LinkLocalAddress + Send + Sync + Default + Debug + Display + Copy + Clone + Hash + Ord + PartialOrd + PartialEq + Eq + 'static + UnwindSafe,
<<A as IpAddress>::Version as IpTypesIpExt>::BroadcastMarker: UnwindSafe,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
Id: HandleableTimer<CC, BC>,
source§fn handle_timer(&mut self, bindings_ctx: &mut BC, id: Id)
fn handle_timer(&mut self, bindings_ctx: &mut BC, id: Id)
Handle a timer firing.