Skip to main content

NotSegmentableTransportSerializer

Trait NotSegmentableTransportSerializer 

Source
pub trait NotSegmentableTransportSerializer { }
Expand description

A marker for transport serializers that never carry a payload that can be segmented in software (GSO).

Implementing this trait is an acknowledgement that packets built from the serializer can’t be segmented and so must never be sent with GSO metadata attached. It is a prerequisite for DynamicTransportSerializer, whose dyn-compatible API does not expose segmentation, so GSO is unsupported behind DynTransportSerializer. Serializers that can be segmented (e.g. TCP) must not implement it.

TODO(https://fxbug.dev/578576724): Support GSO behind DynTransportSerializer so segmentable serializers (TCP, and UDP once it supports GSO) can be dispatched dynamically; then remove this marker.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<I: IpExt, Inner, M: IcmpMessage<I>> NotSegmentableTransportSerializer for Nested<Inner, IcmpPacketBuilder<I, M>>

Source§

impl<I> NotSegmentableTransportSerializer for InnerSerializer<IgmpMembershipReportV3Builder<I>, EmptyBuf>

Source§

impl<M: MessageType<EmptyBuf>> NotSegmentableTransportSerializer for InnerSerializer<IgmpPacketBuilder<EmptyBuf, M>, EmptyBuf>

Implementors§