ipv4

package
v0.0.0-...-6781d13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 7, 2016 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Version   = 4  // protocol version
	HeaderLen = 20 // header length without extension headers

)

Variables

This section is empty.

Functions

This section is empty.

Types

type Header struct {
	Version  int         // protocol version
	Len      int         // header length
	TOS      int         // type-of-service
	TotalLen int         // packet total length
	ID       int         // identification
	Flags    HeaderFlags // flags
	FragOff  int         // fragment offset
	TTL      int         // time-to-live
	Protocol int         // next protocol
	Checksum int         // checksum
	Src      net.IP      // source address
	Dst      net.IP      // destination address
	Options  []byte      // options, extension headers

	Payload []byte
}

A Header represents an IPv4 header.

func New

func New() *Header

func Parse

func Parse(b []byte) (*Header, error)

ParseHeader parses b as an IPv4 header.

func (*Header) Marshal

func (h *Header) Marshal() ([]byte, error)

Marshal returns the binary encoding of the IPv4 header h.

func (*Header) String

func (h *Header) String() string

func (*Header) Unmarshal

func (h *Header) Unmarshal(b []byte) error

func (*Header) WithDestination

func (h *Header) WithDestination(v net.IP) *Header

func (*Header) WithID

func (h *Header) WithID(id int) *Header

func (*Header) WithSource

func (h *Header) WithSource(v net.IP) *Header

type HeaderFlags

type HeaderFlags int
const (
	MoreFragments HeaderFlags = 1 << iota // more fragments flag
	DontFragment                          // don't fragment flag
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL