Trait MaybeTransportPacket

Source
pub trait MaybeTransportPacket {
    // Required method
    fn transport_packet_data(&self) -> Option<TransportPacketData>;
}
Expand description

A payload of an IP packet that may be a valid transport layer packet.

This trait exists to allow bubbling up the trait bound that a serializer type implement MaybeTransportPacket from the IP socket layer to upper layers, where it can be implemented separately on each concrete packet type depending on whether it supports packet header inspection.

Required Methods§

Source

fn transport_packet_data(&self) -> Option<TransportPacketData>

Optionally returns a type that provides access to this transport-layer packet.

Implementations on Foreign Types§

Source§

impl MaybeTransportPacket for Infallible

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for IcmpDestUnreachable

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for IcmpEchoReply

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for IcmpEchoRequest

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for IcmpTimeExceeded

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Icmpv4ParameterProblem

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Icmpv4Redirect

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Icmpv4TimestampReply

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Icmpv4TimestampRequest

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Icmpv6PacketTooBig

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Icmpv6ParameterProblem

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for MulticastListenerDone

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for MulticastListenerQuery

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for MulticastListenerQueryV2

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for MulticastListenerReport

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for MulticastListenerReportV2

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for NeighborAdvertisement

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for NeighborSolicitation

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for Redirect

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for RouterAdvertisement

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl MaybeTransportPacket for RouterSolicitation

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<'a, A: IpAddress, Inner: PayloadLen, I> MaybeTransportPacket for Nested<Inner, TcpSegmentBuilderWithOptions<A, OptionSequenceBuilder<TcpOption<'a>, I>>>
where I: Iterator + Clone, I::Item: Borrow<TcpOption<'a>>,

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<A: IpAddress, Inner> MaybeTransportPacket for Nested<Inner, UdpPacketBuilder<A>>

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<B: SplitByteSlice> MaybeTransportPacket for Ipv4Packet<B>

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<B: SplitByteSlice> MaybeTransportPacket for Ipv6Packet<B>

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<I> MaybeTransportPacket for EitherSerializer<EmptyBuf, InnerSerializer<RecordSequenceBuilder<NdpOptionBuilder<'_>, I>, EmptyBuf>>

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

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

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

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

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

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

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<T> MaybeTransportPacket for &T

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Source§

impl<T> MaybeTransportPacket for &mut T

Source§

fn transport_packet_data(&self) -> Option<TransportPacketData>

Implementors§

Source§

impl<I: IpExt, B: BufferMut> MaybeTransportPacket for ForwardedPacket<I, B>

Source§

impl<I: IpExt, B: ParseBuffer> MaybeTransportPacket for RawIpBody<I, B>