# Functions
AddTCPOptionPadding adds the required number of TCPOptionNOP to quad align the option buffer.
Checksum calculates the checksum (as defined in RFC 1071) of the bytes in the given byte array.
ChecksumCombine combines the two uint16 to form their checksum.
ChecksumVV calculates the checksum (as defined in RFC 1071) of the bytes in the given VectorizedView.
ChecksumVVWithOffset calculates the checksum (as defined in RFC 1071) of the bytes in the given VectorizedView.
EncodeMSSOption encodes the MSS TCP option with the provided MSS values in the supplied buffer.
EncodeNOP adds an explicit NOP to the option list.
EncodeSACKBlocks encodes the provided SACK blocks as a TCP SACK option block in the provided slice.
EncodeSACKPermittedOption encodes a SACKPermitted option into the provided buffer.
EncodeTSOption encodes the provided tsVal and tsEcr values as a TCP timestamp option into the provided buffer.
EncodeWSOption encodes the WS TCP option with the WS value in the provided buffer.
ICMPv4Checksum calculates the ICMP checksum over the provided ICMP header, and payload.
ICMPv6Checksum calculates the ICMP checksum over the provided ICMPv6 header, IPv6 src/dst addresses and the payload.
IPVersion returns the version of IP used in the given packet.
IsV4MappedAddress determines if the provided address is an IPv4 mapped address by checking if its prefix is 0:0:0:0:0:ffff::/96.
IsV4MulticastAddress determines if the provided address is an IPv4 multicast address (range 224.0.0.0 to 239.255.255.255).
IsV6LinkLocalAddress determines if the provided address is an IPv6 link-local address (fe80::/10).
IsV6MulticastAddress determines if the provided address is an IPv6 multicast address (anything starting with FF).
IsV6UnicastAddress determines if the provided address is a valid IPv6 unicast (and specified) address.
IsValidUnicastEthernetAddress returns true if addr is a valid unicast ethernet address.
LinkLocalAddr computes the default IPv6 link-local address from a link-layer (MAC) address.
ParseSynOptions parses the options received in a SYN segment and returns the relevant ones.
ParseTCPOptions extracts and stores all known options in the provided byte slice in a TCPOptions structure.
PseudoHeaderChecksum calculates the pseudo-header checksum for the given destination protocol and network address.
SolicitedNodeAddr computes the solicited-node multicast address.
# Constants
ARPProtocolNumber is the ARP network protocol number.
Typical ARP opcodes defined in RFC 826.
Typical ARP opcodes defined in RFC 826.
ARPSize is the size of an IPv4-over-Ethernet ARP packet.
EthernetAddressSize is the size, in bytes, of an ethernet address.
EthernetMinimumSize is the minimum size of a valid ethernet frame.
EthernetProtocolAll is a catch-all for all protocols carried inside an ethernet frame.
EthernetProtocolPUP is the PARC Universial Packet protocol ethertype.
GUEMinimumSize is the minimum size of a valid GUE packet.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Values for ICMP code as defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
ICMPv4MinimumSize is the minimum size of a valid ICMP packet.
Typical values of ICMPv4Type defined in RFC 792.
ICMPv4PayloadOffset defines the start of ICMP payload.
Values for ICMP code as defined in RFC 792.
ICMPv4ProtocolNumber is the ICMP transport protocol number.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv4Type defined in RFC 792.
Typical values of ICMPv6Type defined in RFC 4443.
ICMPv6DstUnreachableMinimumSize is the minimum size of a valid ICMP destination unreachable packet.
ICMPv6EchoMinimumSize is the minimum size of a valid ICMP echo packet.
Typical values of ICMPv6Type defined in RFC 4443.
Typical values of ICMPv6Type defined in RFC 4443.
ICMPv6HeaderSize is the size of the ICMPv6 header.
ICMPv6MinimumSize is the minimum size of a valid ICMP packet.
Typical values of ICMPv6Type defined in RFC 4443.
ICMPv6NeighborAdvertMinimumSize is the minimum size of a neighbor advertisement packet.
ICMPv6NeighborAdvertSize is size of a neighbor advertisement including the NDP Target Link Layer option for an Ethernet address.
Typical values of ICMPv6Type defined in RFC 4443.
ICMPv6NeighborSolicitMinimumSize is the minimum size of a neighbor solicitation packet.
Typical values of ICMPv6Type defined in RFC 4443.
ICMPv6PacketTooBigMinimumSize is the minimum size of a valid ICMP packet-too-big packet.
Typical values of ICMPv6Type defined in RFC 4443.
ICMPv6PayloadOffset is the offset of the payload in an ICMP packet.
Values for ICMP code as defined in RFC 4443.
ICMPv6ProtocolNumber is the ICMP transport protocol number.
Typical values of ICMPv6Type defined in RFC 4443.
Typical values of ICMPv6Type defined in RFC 4443.
Typical values of ICMPv6Type defined in RFC 4443.
Typical values of ICMPv6Type defined in RFC 4443.
IPv4AddressSize is the size, in bytes, of an IPv4 address.
IPv4Any is the non-routable IPv4 "any" meta address.
IPv4Broadcast is the broadcast address of the IPv4 procotol.
Flags that may be set in an IPv4 packet.
Flags that may be set in an IPv4 packet.
IPv4MaximumHeaderSize is the maximum size of an IPv4 header.
IPv4MinimumProcessableDatagramSize is the minimum size of an IP packet that every IPv4 capable host must be able to process/reassemble.
IPv4MinimumSize is the minimum size of a valid IPv4 packet.
IPv4ProtocolNumber is IPv4's network protocol number.
IPv4TotalLenOffset is the offset of the total length field in the IPv4 header.
IPv4Version is the version of the ipv4 protocol.
IPv6AddressSize is the size, in bytes, of an IPv6 address.
IPv6AllNodesMulticastAddress is a link-local multicast group that all IPv6 nodes MUST join, as per RFC 4291, section 2.8.
IPv6Any is the non-routable IPv6 "any" meta address.
IPv6FragmentHeader header is the number used to specify that the next header is a fragment header, per RFC 2460.
IPv6FragmentHeaderSize is the size of the fragment header.
IPv6MinimumMTU is the minimum MTU required by IPv6, per RFC 2460, section 5.
IPv6MinimumSize is the minimum size of a valid IPv6 packet.
IPv6PayloadLenOffset is the offset of the PayloadLength field in IPv6 header.
IPv6ProtocolNumber is IPv6's network protocol number.
IPv6Version is the version of the ipv6 protocol.
MaxIPPacketSize is the maximum supported IP packet size, excluding jumbograms.
MaxWndScale is maximum allowed window scaling, as described in RFC 1323, section 2.3, page 11.
MinIPFragmentPayloadSize is the minimum number of payload bytes that the first fragment must carry when an IPv4 packet is fragmented.
NDPHopLimit is the expected IP hop limit value of 255 for received NDP packets, as per RFC 4861 sections 4.1 - 4.5, 6.1.1, 6.1.2, 7.1.1, 7.1.2 and 8.1.
NDPNAMinimumSize is the minimum size of a valid NDP Neighbor Advertisement message (body of an ICMPv6 packet).
NDPNSMinimumSize is the minimum size of a valid NDP Neighbor Solicitation message (body of an ICMPv6 packet).
NDPPrefixInformationType is the type of the Prefix Information option, as per RFC 4861 section 4.6.2.
NDPRAMinimumSize is the minimum size of a valid NDP Router Advertisement message (body of an ICMPv6 packet).
NDPTargetLinkLayerAddressOptionType is the type of the Target Link-Layer Address option, as per RFC 4861 section 4.6.1.
These constants are the offsets of the respective fields in the TCP header.
These constants are the offsets of the respective fields in the TCP header.
These constants are the offsets of the respective fields in the TCP header.
TCPDefaultMSS is the MSS value that should be used if an MSS option is not received from the peer.
These constants are the offsets of the respective fields in the TCP header.
Flags that may be set in a TCP segment.
Flags that may be set in a TCP segment.
Flags that may be set in a TCP segment.
Flags that may be set in a TCP segment.
These constants are the offsets of the respective fields in the TCP header.
Flags that may be set in a TCP segment.
Flags that may be set in a TCP segment.
TCPHeaderMaximumSize is the maximum header size of a TCP packet.
TCPMaximumMSS is the maximum acceptable value for MSS.
TCPMaxSACKBlocks is the maximum number of SACK blocks that can be encoded in a TCP option field.
TCPMinimumMSS is the minimum acceptable value for MSS.
TCPMinimumSize is the minimum size of a valid TCP packet.
Options that may be present in a TCP segment.
Options that may be present in a TCP segment.
Options that may be present in a TCP segment.
Options that may be present in a TCP segment.
Options that may be present in a TCP segment.
TCPOptionsMaximumSize is the maximum size of TCP options.
Options that may be present in a TCP segment.
Options that may be present in a TCP segment.
TCPProtocolNumber is TCP's transport protocol number.
These constants are the offsets of the respective fields in the TCP header.
These constants are the offsets of the respective fields in the TCP header.
These constants are the offsets of the respective fields in the TCP header.
These constants are the offsets of the respective fields in the TCP header.
UDPMaximumPacketSize is the largest possible UDP packet.
UDPMinimumSize is the minimum size of a valid UDP packet.
UDPProtocolNumber is UDP's transport protocol number.
# Variables
Potential errors when iterating over an NDPOptions.
Potential errors when iterating over an NDPOptions.
Potential errors when iterating over an NDPOptions.
Ethertypes holds the protocol numbers describing the payload of an ethernet frame.
IPv4EmptySubnet is the empty IPv4 subnet.
IPv6EmptySubnet is the empty IPv6 subnet.
IPv6LinkLocalPrefix is the prefix for IPv6 link-local addresses, as defined by RFC 4291 section 2.5.6.
NDPPrefixInformationInfiniteLifetime is a value that represents infinity for the Valid and Preferred Lifetime fields in a NDP Prefix Information option.
# Structs
EthernetFields contains the fields of an ethernet frame header.
GUEFields contains the fields of a GUE packet.
IPv4Fields contains the fields of an IPv4 packet.
IPv6Fields contains the fields of an IPv6 packet.
IPv6FragmentFields contains the fields of an IPv6 fragment.
NDPOptionIterator is an iterator of NDPOption.
SACKBlock represents a single contiguous SACK block.
TCPFields contains the fields of a TCP packet.
TCPOptions are used to parse and cache the TCP segment options for a non syn/syn-ack segment.
TCPSynOptions is used to return the parsed TCP Options in a syn segment.
UDPFields contains the fields of a UDP packet.
# Interfaces
NDPOption is the set of functions to be implemented by all NDP option types.
Network offers generic methods to query and/or update the fields of the header of a network protocol buffer.
Transport offers generic methods to query and/or update the fields of the header of a transport protocol buffer.
# Type aliases
ARP is an ARP packet stored in a byte array as described in RFC 826.
ARPOp is an ARP opcode.
Ethernet represents an ethernet frame header stored in a byte array.
GUE represents a Generic UDP Encapsulation header stored in a byte array, the fields are described in https://tools.ietf.org/html/draft-ietf-nvo3-gue-01.
ICMPv4 represents an ICMPv4 header stored in a byte array.
ICMPv4Type is the ICMP type field described in RFC 792.
ICMPv6 represents an ICMPv6 header stored in a byte array.
ICMPv6Type is the ICMP type field described in RFC 4443 and friends.
IPv4 represents an ipv4 header stored in a byte array.
IPv6 represents an ipv6 header stored in a byte array.
IPv6Fragment represents an ipv6 fragment header stored in a byte array.
NDPNeighborAdvert is an NDP Neighbor Advertisement message.
NDPNeighborSolicit is an NDP Neighbor Solicitation message.
NDPOptions is a buffer of NDP options as defined by RFC 4861 section 4.6.
NDPOptionsSerializer is a serializer for NDP options.
NDPPrefixInformation is the NDP Prefix Information option as defined by RFC 4861 section 4.6.2.
NDPRouterAdvert is an NDP Router Advertisement message.
NDPTargetLinkLayerAddressOption is the NDP Target Link Layer Option as defined by RFC 4861 section 4.6.1.
TCP represents a TCP header stored in a byte array.
UDP represents a UDP header stored in a byte array.