trace

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2023 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidMethod      = errors.New("invalid method")
	ErrTracerouteExecuted = errors.New("traceroute already executed")
	ErrHopLimitTimeout    = errors.New("hop timeout")
)

Functions

func GenerateQuicPayloadWithRandomIds

func GenerateQuicPayloadWithRandomIds() []byte

Types

type Config

type Config struct {
	TraceMethod      Method
	SrcAddr          string
	BeginHop         int
	MaxHops          int
	NumMeasurements  int
	ParallelRequests int
	Timeout          time.Duration
	DestIP           net.IP
	DestPort         int
	Quic             bool
	PacketSize       int
	PacketInterval   time.Duration
	TTLInterval      time.Duration
}

type Hop

type Hop struct {
	Address  net.Addr
	Hostname string
	TTL      int
	RTT      time.Duration
	Error    error
	RetType  icmp.Type
}

type ICMPTracer

type ICMPTracer struct {
	Config
	// contains filtered or unexported fields
}

func (*ICMPTracer) Execute

func (t *ICMPTracer) Execute() (*Result, error)

func (*ICMPTracer) GetConfig

func (t *ICMPTracer) GetConfig() *Config

func (*ICMPTracer) SetConfig

func (t *ICMPTracer) SetConfig(c Config)

type ICMPTracerv6

type ICMPTracerv6 struct {
	Config
	// contains filtered or unexported fields
}

func (*ICMPTracerv6) Execute

func (t *ICMPTracerv6) Execute() (*Result, error)

func (*ICMPTracerv6) GetConfig

func (t *ICMPTracerv6) GetConfig() *Config

func (*ICMPTracerv6) SetConfig

func (t *ICMPTracerv6) SetConfig(c Config)

type Method

type Method string
const (
	ICMPTrace Method = "icmp"
	UDPTrace  Method = "udp"
	TCPTrace  Method = "tcp"
)

type PacketListener

type PacketListener struct {
	Conn     net.PacketConn
	Messages chan ReceivedMessage
	// contains filtered or unexported fields
}

func NewPacketListener

func NewPacketListener(conn net.PacketConn, ctx context.Context) *PacketListener

func (*PacketListener) Start

func (l *PacketListener) Start()

type ReceivedMessage

type ReceivedMessage struct {
	N    *int
	Peer net.Addr
	Msg  []byte
	Err  error
}

type Result

type Result struct {
	Hops [][]Hop
	// contains filtered or unexported fields
}

type TCPTracer

type TCPTracer struct {
	Config

	SrcIP net.IP
	// contains filtered or unexported fields
}

func (*TCPTracer) Execute

func (t *TCPTracer) Execute() (*Result, error)

func (*TCPTracer) GetConfig

func (t *TCPTracer) GetConfig() *Config

func (*TCPTracer) SetConfig

func (t *TCPTracer) SetConfig(c Config)

type TCPTracerv6

type TCPTracerv6 struct {
	Config

	SrcIP net.IP
	// contains filtered or unexported fields
}

func (*TCPTracerv6) Execute

func (t *TCPTracerv6) Execute() (*Result, error)

func (*TCPTracerv6) GetConfig

func (t *TCPTracerv6) GetConfig() *Config

func (*TCPTracerv6) SetConfig

func (t *TCPTracerv6) SetConfig(c Config)

type TraceInstance

type TraceInstance struct {
	Tracer
	ErrorStr string
}

func NewTracer

func NewTracer(config Config) (*TraceInstance, error)

func (*TraceInstance) CheckConfig

func (t *TraceInstance) CheckConfig() (err error)

func (*TraceInstance) Traceroute

func (t *TraceInstance) Traceroute() (*Result, error)

type Tracer

type Tracer interface {
	Execute() (*Result, error)
	GetConfig() *Config
	SetConfig(Config)
}

type UDPTracer

type UDPTracer struct {
	Config
	// contains filtered or unexported fields
}

func (*UDPTracer) Execute

func (t *UDPTracer) Execute() (*Result, error)

func (*UDPTracer) GetConfig

func (t *UDPTracer) GetConfig() *Config

func (*UDPTracer) SetConfig

func (t *UDPTracer) SetConfig(c Config)

type UDPTracerv6

type UDPTracerv6 struct {
	Config
	// contains filtered or unexported fields
}

func (*UDPTracerv6) Execute

func (t *UDPTracerv6) Execute() (*Result, error)

func (*UDPTracerv6) GetConfig

func (t *UDPTracerv6) GetConfig() *Config

func (*UDPTracerv6) SetConfig

func (t *UDPTracerv6) SetConfig(c Config)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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