pub trait MarksBindingsContext {
// Required methods
fn marks_to_keep_on_egress() -> &'static [MarkDomain];
fn marks_to_set_on_ingress() -> &'static [MarkDomain];
// Provided method
fn update_ingress_marks(
packet_marks: MarkStorage<Mark>,
socket_marks: &MarkStorage<Mark>,
) -> MarkStorage<Mark> { ... }
}Expand description
Defines how socket marks should be handled by the IP layer.
Required Methods§
Sourcefn marks_to_keep_on_egress() -> &'static [MarkDomain]
fn marks_to_keep_on_egress() -> &'static [MarkDomain]
Mark domains for marks that should be kept when an egress packet is passed from the IP layer to the device. For egress packets that are delivered locally through the loopback interface, these marks are passed to the ingress path and can be observed by ingress filter hooks.
Sourcefn marks_to_set_on_ingress() -> &'static [MarkDomain]
fn marks_to_set_on_ingress() -> &'static [MarkDomain]
Mark domains for marks that should be copied to ingress packets. If
early demux results in a socket then these marks are copied from the
socket to the packet and can be observed in LOCAL_INGRESS filter
hook.
Provided Methods§
Sourcefn update_ingress_marks(
packet_marks: MarkStorage<Mark>,
socket_marks: &MarkStorage<Mark>,
) -> MarkStorage<Mark>
fn update_ingress_marks( packet_marks: MarkStorage<Mark>, socket_marks: &MarkStorage<Mark>, ) -> MarkStorage<Mark>
Returns a copy of packet_marks with the mark domains in
Self::marks_to_set_on_ingress overridden from socket_marks.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".