#[derive(Debug)]
#[derive(Serialize)]
pub enum InternetProtocolVersion6IncomingNetworkPacketDropReason<ICMPV6INPDR: IncomingNetworkPacketProcessingDropReason, TCPINPDR: IncomingNetworkPacketProcessingDropReason, UDPINPDR: IncomingNetworkPacketProcessingDropReason>
{
PacketIsTooShort,
HeaderIsNot6
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
FlowLabelIsNonZero
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
HopByHopOptionsIsNotFirstExtensionHeader
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
HopByHopOptionsUnderflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
HopByHopOptionsHeaderExtensionLengthOverflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
TypeLengthValueOptionTypeUnderflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
TypeLengthValueOptionLengthUnderflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
TypeLengthValueOptionDataUnderflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
TypeLengthValueOptionDiscardPacket
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
option_type: u8,
},
TypeLengthValueOptionShouldNotBeUsedOnTheInternet
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
option_type: u8,
},
RoutingExtensionHeaderRepeated
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
RoutingExtensionHeaderUnderflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
RoutingExtensionHeaderHasSegmentsLeft
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
routing_type: u8,
segments_left: u8,
},
RoutingExtensionHeaderRoutingTypeIsDeprecatedExperimentalOrReserved
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
routing_type: u8,
segments_left: u8,
},
FragmentExtensionHeaderRepeated
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
FragmentExtensionHeaderUnderflow
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
FragmentExtensionHeaderFirstReservedFieldNonZero
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
reserved: u8,
},
FragmentExtensionHeaderSecondReservedFieldNonZero
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
reserved: u8,
},
FragmentExtensionHeaderOnlyOneFragmentOrLastFragmentIsFirst
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
PacketFragmentNotAMultipleOfEight
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
PacketFragmentWouldMakeReassembledPacketWouldTooLarge
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
PacketFragmentTooSmall
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
EncapulatingSecurityPayloadExtensionHeaderUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
AuthenticationHeaderExtensionHeaderUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
NoNextHeaderIsUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
MoreThanTwoDestinationOptionsExtensionHeaders
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
MobilityExtensionHeaderUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
HostIdentityProtocolExtensionHeaderUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
Shim6ProtocolExtensionHeaderUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
ExperimentationExtensionHeaderUnsupported
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
UnrecognisedExtensionHeaderOrLayer4Protocol
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
next_header: u8,
},
SourceAndDestinationAddressAreTheSame
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
SourceAddressNotValidUnicast
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
SourceAddressDenied
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
DestinationAddressDocumentation
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
DestinationAddressLoopback
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
DestinationAddressInterfaceLocal
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
UnicastDestinationIsNotUs
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
MulticastAddressIsNotMulticast
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
MulticastAddressIsNotValidMulticast
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
parsing_error: InternetProtocolVersion6MulticastAddressParseError,
},
MulticastAddressMismatchesEthernetAddress
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
EthernetBroadcastShouldNotOccur
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
MulticastAddressDenied
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
DestinationWasLoopbackOrDocumentationAddress
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
TransmissionControlProtocolPacketsShouldOnlyBeUnicast
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
UserDatagramProtocolPacketsMustHaveACheckSumSet
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
InternetControlMessageProtocolVersion6PacketsShouldNotBeFragmented
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
},
ProblematicInternetControlMessageProtocolVersion6Packet
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
reason: ICMPV6INPDR,
},
ProblematicTransmissionControlProtocolPacket
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
reason: TCPINPDR,
},
ProblematicUserDatagramProtocolPacket
{
#[serde(serialize_with = "InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null")]
header: NonNull<InternetProtocolVersion6PacketHeader>,
reason: UDPINPDR,
},
}
impl<ICMPV6INPDR: IncomingNetworkPacketProcessingDropReason, TCPINPDR: IncomingNetworkPacketProcessingDropReason, UDPINPDR: IncomingNetworkPacketProcessingDropReason> IncomingNetworkPacketProcessingDropReason for InternetProtocolVersion6IncomingNetworkPacketDropReason<ICMPV6INPDR, TCPINPDR, UDPINPDR>
{
}
#[allow(non_snake_case)]
#[inline(always)]
fn InternetProtocolVersion6IncomingNetworkPacketDropReason_serialize_non_null<S: Serializer>(to_serialize: &NonNull<InternetProtocolVersion6PacketHeader>, serializer: S) -> Result<S::Ok, S::Error>
{
unsafe { to_serialize.as_ref().serialize(serializer) }
}