Traceroute.Protocols.IPv6 (traceroute v0.2.5)

View Source

Implements decoding IPv6 Headers.

Summary

Functions

Parses an IPv6 packet and separates the header from the payload.

Functions

split_header(packet, source \\ nil)

Parses an IPv6 packet and separates the header from the payload.

When receiving from an ICMPv6 DGRAM socket, the kernel strips the IPv6 header and delivers only the ICMPv6 payload. In this case, the packet will NOT start with version 6, so we return a minimal header struct and treat the entire packet as payload.

When receiving a full IPv6 packet (e.g., from a raw socket), we parse the complete header.

Parameters

  • packet - The raw packet data
  • source - Optional source address map from socket's recvfrom result (e.g., %{addr: {ipv6_tuple}, ...})