pub enum ManagerInput<'a> {
ClientDatagram {
src: SocketAddr,
payload: &'a [u8],
},
BackendDatagram {
flow: FlowId,
payload: &'a [u8],
},
Config(ConfigEvent),
BackendResolved {
flow: FlowId,
backend: BackendId,
addr: SocketAddr,
},
}Expand description
Inputs the shell feeds into the manager. Borrows the recv buffer; the core
copies into an owned Vec<u8> only on admission.
Variants§
ClientDatagram
A datagram from a client. Admitted into an existing/new flow or dropped.
Fields
§
src: SocketAddrReal (pre-NAT) client source address.
BackendDatagram
A datagram from a backend, tagged by the shell with the owning flow
(upstream_token -> FlowId). Drives the symmetric NAT return path.
Fields
Config(ConfigEvent)
A control-plane / health event (add/remove backend, LB algo, timeouts, per-cluster knobs, drain). Never allocates a flow.
BackendResolved
Reply to an earlier Output::SelectBackend: the shell resolved the
backend via the BackendMap and is committing it to the flow.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for ManagerInput<'a>
impl<'a> RefUnwindSafe for ManagerInput<'a>
impl<'a> Send for ManagerInput<'a>
impl<'a> Sync for ManagerInput<'a>
impl<'a> Unpin for ManagerInput<'a>
impl<'a> UnsafeUnpin for ManagerInput<'a>
impl<'a> UnwindSafe for ManagerInput<'a>
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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