pub enum InboundVerdict {
Accept(Vec<u8>),
Malformed,
LegacyBlocked,
PolicyViolation(String),
CryptoError(String),
}Expand description
Result of a classify_inbound decision.
The enum variants cleanly separate the possible reasons, so the
caller (dcps runtime) can pass a suitable LogLevel per reason to the
zerodds_security::logging::LoggingPlugin.
The interface context (NetInterface) is passed along by the caller
and reappears in [InboundVerdict::iface] —
so log events are attributable per interface.
Variants§
Accept(Vec<u8>)
The packet is admissible — bytes is the decoded RTPS datagram
passed on to the SPDP/SEDP/user dispatch.
Malformed
The packet is too short for an RTPS header (< 20 bytes). This is
really a transport bug or a fuzz probe. Severity
should be Error.
LegacyBlocked
The packet came from an unauth peer on a domain that
requires authentication (allow_unauthenticated_participants = false). Severity should be Error.
PolicyViolation(String)
Policy violation: the domain requires protection but the packet
is plain (or vice versa). Severity should be Warning
— possibly a tampering attempt.
CryptoError(String)
Cryptographic error on unwrap (tag mismatch, wrong
key, replay attack, etc.). Severity Warning.
Implementations§
Trait Implementations§
Source§impl Clone for InboundVerdict
impl Clone for InboundVerdict
Source§fn clone(&self) -> InboundVerdict
fn clone(&self) -> InboundVerdict
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InboundVerdict
impl Debug for InboundVerdict
impl Eq for InboundVerdict
Source§impl PartialEq for InboundVerdict
impl PartialEq for InboundVerdict
Source§fn eq(&self, other: &InboundVerdict) -> bool
fn eq(&self, other: &InboundVerdict) -> bool
self and other values to be equal, and is used by ==.