Documentation
¶
Index ¶
- Constants
- func FirstLayerType(n *graph.Node) (gopacket.LayerType, layers.LinkType)
- func NewProbe(ctx probes.Context, bundle *probe.Bundle) (probes.FlowProbeHandler, error)
- type AFPacketHandle
- type AfpacketPacketProbe
- type PacketProbe
- type PcapPacketProbe
- type Probe
- type ProbesHandler
- func (p *ProbesHandler) CaptureTypes() []string
- func (p *ProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e probes.ProbeEventHandler) (probes.Probe, error)
- func (p *ProbesHandler) Start() error
- func (p *ProbesHandler) Stop()
- func (p *ProbesHandler) UnregisterProbe(n *graph.Node, e probes.ProbeEventHandler, probe probes.Probe) error
Constants ¶
const ( // AFPacket probe type AFPacket = "afpacket" // PCAP probe type PCAP = "pcap" )
Variables ¶
This section is empty.
Functions ¶
func FirstLayerType ¶
FirstLayerType returns the first layer of an interface
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) 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) 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 ¶
func (a *AfpacketPacketProbe) Stats() (*probes.CaptureStats, error)
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) 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 ¶
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`
type ProbesHandler ¶
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) UnregisterProbe ¶
func (p *ProbesHandler) UnregisterProbe(n *graph.Node, e probes.ProbeEventHandler, probe probes.Probe) error
UnregisterProbe unregisters gopacket probe