forwarder

package
v0.0.0-...-abce8fb Latest Latest
Warning

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

Go to latest
Published: May 21, 2019 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const ConfSeparator = "|"
View Source
const DefaultLayers = "44,45"
View Source
const DefaultMaxPacketSize = 65536
View Source
const DefaultStatsIntervalMilliseconds = 10 * 1000

Variables

This section is empty.

Functions

This section is empty.

Types

type Forwarder

type Forwarder struct {
	// contains filtered or unexported fields
}

func NewForwarder

func NewForwarder(opts *Opts) *Forwarder

func (*Forwarder) Queue

func (forwarder *Forwarder) Queue(payload Payload)

func (*Forwarder) Run

func (forwarder *Forwarder) Run() *ForwarderInstance

func (*Forwarder) Start

func (forwarder *Forwarder) Start()

func (*Forwarder) Stats

func (forwarder *Forwarder) Stats() Stats

type ForwarderInstance

type ForwarderInstance struct {
	// contains filtered or unexported fields
}

func (*ForwarderInstance) Conn

func (instance *ForwarderInstance) Conn() *net.TCPConn

type Opts

type Opts struct {
	Device                    string
	BpfFilter                 string
	Output                    string
	MaxPacketSize             int32
	QueueSize                 int
	NumForwarders             int
	StatsPrinter              bool
	StatsHealthCheck          bool // true will verify that it keeps sending and os.Exit(1) if nothing send for certain period
	StatsIntervalMilliseconds int
	MaxRetries                int
	Verbose                   bool
	PrefixHeader              bool
	// contains filtered or unexported fields
}

func NewOpts

func NewOpts() *Opts

func (*Opts) AutoDiscover

func (opts *Opts) AutoDiscover()

func (*Opts) ParseLayers

func (opts *Opts) ParseLayers(layerStr string)

func (*Opts) ParseOutput

func (opts *Opts) ParseOutput() error

func (*Opts) Print

func (opts *Opts) Print()

func (*Opts) Validate

func (opts *Opts) Validate()

type Payload

type Payload struct {
	// contains filtered or unexported fields
}

func NewPayload

func NewPayload(payload []byte) Payload

func (Payload) Bytes

func (payload Payload) Bytes() []byte

func (*Payload) SetHeader

func (payload *Payload) SetHeader(header PayloadHeader)

type PayloadHeader

type PayloadHeader struct {
	PayloadSize uint32 // 4 bytes : number of bytes of the actual payload (excludes the fixed length payload fields below)
	Src         []byte // 16 bytes
	SrcPort     uint32 // 4 bytes
	Dst         []byte // 16 bytes
	DstPort     uint32 // 4 bytes
}

func NewPayloadHeader

func NewPayloadHeader(payloadSize int, src net.IP, srcPort int, dst net.IP, dstPort int) PayloadHeader

func PayloadHeaderFromBytes

func PayloadHeaderFromBytes(b []byte) PayloadHeader

func PayloadHeaderFromPacket

func PayloadHeaderFromPacket(payloadLen int, packet gopacket.Packet) PayloadHeader

func (PayloadHeader) Bytes

func (header PayloadHeader) Bytes() []byte

func (PayloadHeader) DstIP

func (header PayloadHeader) DstIP() net.IP

func (PayloadHeader) SrcIP

func (header PayloadHeader) SrcIP() net.IP

type RawListener

type RawListener struct {
	// contains filtered or unexported fields
}

func NewRawListener

func NewRawListener(opts *Opts) *RawListener

func (*RawListener) Forwarder

func (listener *RawListener) Forwarder() *Forwarder

func (*RawListener) Listen

func (listener *RawListener) Listen() error

func (*RawListener) SetForwarder

func (listener *RawListener) SetForwarder(forwarder *Forwarder)

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(opts *Opts) *Server

func (*Server) Forwarder

func (server *Server) Forwarder() *Forwarder

func (*Server) Start

func (server *Server) Start() error

func (*Server) Stats

func (server *Server) Stats() Stats

type Stats

type Stats struct {
	BytesForwarded       uint64
	PacketsForwarded     uint64
	PacketAttemptsFailed uint64
	PacketsFailed        uint64
}

Jump to

Keyboard shortcuts

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