pub enum Reach {
Ok,
NoRouteOutbound {
dest: String,
needed: Route,
},
NoHairpin {
dest: String,
port: u16,
},
Refused {
dest: String,
port: u16,
},
Dropped {
dest: String,
port: u16,
},
}Expand description
The answer to “can THIS box reach THAT address, from where it is standing”.
Variants§
Ok
NoRouteOutbound
The packet had nowhere to go. The destination is off this guest’s own
prefix and it never installed the route that would have taken it there.
Inbound to this same guest still works — see inbound_reaches.
NoHairpin
Locally-generated traffic does not traverse prerouting. This box
DNATs that port on that address for everyone else, and not for itself.
Refused
Nothing is listening.
Dropped
Behaviour 62: the firewall dropped it. Silence until the caller’s own timeout — NOT a refusal. MEASURED 2026-09-20: the twin’s :2222 was refused from one host (admitted, nothing listening) and timed out from the other (dropped), and the timeout read as “slow”.
Implementations§
Trait Implementations§
impl Eq for Reach
impl StructuralPartialEq for Reach
Auto Trait Implementations§
impl Freeze for Reach
impl RefUnwindSafe for Reach
impl Send for Reach
impl Sync for Reach
impl Unpin for Reach
impl UnsafeUnpin for Reach
impl UnwindSafe for Reach
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