gopacket

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2021 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AFPacket probe type
	AFPacket = "afpacket"
	// PCAP probe type
	PCAP = "pcap"
)

Variables

This section is empty.

Functions

func FirstLayerType

func FirstLayerType(n *graph.Node) (gopacket.LayerType, layers.LinkType)

FirstLayerType returns the first layer of an interface

func NewProbe

func NewProbe(ctx probes.Context, bundle *probe.Bundle) (probes.FlowProbeHandler, error)

NewProbe returns a new GoPacket probe

Types

type AFPacketHandle

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

AFPacketHandle describes a AF network kernel packets

func NewAFPacketHandle

func NewAFPacketHandle(ifName string, snaplen int32) (*AFPacketHandle, error)

NewAFPacketHandle creates a new network AF packet probe

func (*AFPacketHandle) Close

func (h *AFPacketHandle) Close()

Close the AF packet handle

func (*AFPacketHandle) ReadPacketData

func (h *AFPacketHandle) ReadPacketData() ([]byte, gopacket.CaptureInfo, error)

ReadPacketData reads one packet

func (*AFPacketHandle) TPacket

func (h *AFPacketHandle) TPacket() *afpacket.TPacket

TPacket returns the afpacket TPacket instance

type AfpacketPacketProbe

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

AfpacketPacketProbe describes an afpacket based packet probe

func NewAfpacketPacketProbe

func NewAfpacketPacketProbe(ifName string, headerSize int, layerType gopacket.LayerType, linkType layers.LinkType) (*AfpacketPacketProbe, error)

NewAfpacketPacketProbe returns a new afpacket capture probe

func (*AfpacketPacketProbe) Close

func (a *AfpacketPacketProbe) Close()

Close the probe

func (*AfpacketPacketProbe) PacketSource

func (a *AfpacketPacketProbe) PacketSource() *gopacket.PacketSource

PacketSource returns the Gopacket packet source for the probe

func (*AfpacketPacketProbe) SetBPFFilter

func (a *AfpacketPacketProbe) SetBPFFilter(filter string) error

SetBPFFilter applies a BPF filter to the probe

func (*AfpacketPacketProbe) Stats

Stats returns statistics about captured packets

type PacketProbe

type PacketProbe interface {
	Stats() (*probes.CaptureStats, error)
	SetBPFFilter(bpf string) error
	PacketSource() *gopacket.PacketSource
	Close()
}

PacketProbe describes a probe responsible for capturing packets

type PcapPacketProbe

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

PcapPacketProbe describes a libpcap based packet probe

func NewPcapPacketProbe

func NewPcapPacketProbe(ifName string, headerSize int) (*PcapPacketProbe, error)

NewPcapPacketProbe returns a new libpcap capture probe

func (*PcapPacketProbe) Close

func (p *PcapPacketProbe) Close()

Close the probe

func (*PcapPacketProbe) PacketSource

func (p *PcapPacketProbe) PacketSource() *gopacket.PacketSource

PacketSource returns the Gopacket packet source for the probe

func (*PcapPacketProbe) SetBPFFilter

func (p *PcapPacketProbe) SetBPFFilter(bpf string) error

SetBPFFilter applies a BPF filter to the probe

func (*PcapPacketProbe) Stats

func (p *PcapPacketProbe) Stats() (*probes.CaptureStats, error)

Stats returns statistics about captured packets

type Probe

type Probe struct {
	Ctx probes.Context
	// contains filtered or unexported fields
}

Probe describes a new probe that store packets from gopacket pcap library in a flowtable

func NewCapture

func NewCapture(ctx probes.Context, n *graph.Node, captureType, bpfFilter string, headerSize uint32) (*Probe, error)

NewCapture returns a new Gopacket flow probe. It can use either `pcap` or `afpacket`

func (*Probe) Run

func (p *Probe) Run(packetCallback func(gopacket.Packet), statsCallback func(flow.Stats), e probes.ProbeEventHandler) error

Run starts capturing packet, calling the passed callback for every packet and notifying the flow probe handler when the capture has started

func (*Probe) Stop

func (p *Probe) Stop()

Stop capturing packets

type ProbesHandler

type ProbesHandler struct {
	Ctx probes.Context
	// contains filtered or unexported fields
}

ProbesHandler describes a flow probe handle in the graph

func (*ProbesHandler) CaptureTypes

func (p *ProbesHandler) CaptureTypes() []string

CaptureTypes supported

func (*ProbesHandler) RegisterProbe

func (p *ProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e probes.ProbeEventHandler) (probes.Probe, error)

RegisterProbe registers a gopacket probe

func (*ProbesHandler) Start

func (p *ProbesHandler) Start() error

Start probe

func (*ProbesHandler) Stop

func (p *ProbesHandler) Stop()

Stop probe

func (*ProbesHandler) UnregisterProbe

func (p *ProbesHandler) UnregisterProbe(n *graph.Node, e probes.ProbeEventHandler, probe probes.Probe) error

UnregisterProbe unregisters gopacket probe

Jump to

Keyboard shortcuts

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