probes

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2019 License: Apache-2.0 Imports: 28 Imported by: 17

Documentation

Index

Constants

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

Variables

View Source
var ErrProbeNotCompiled = fmt.Errorf("probe is not compiled within skydive")

ErrProbeNotCompiled is thrown when a flow probe was not compiled within the binary

Functions

func GoPacketFirstLayerType added in v0.21.0

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

GoPacketFirstLayerType returns the first layer of an interface

func NewFlowProbeBundle added in v0.12.0

func NewFlowProbeBundle(tb *probe.Bundle, g *graph.Graph, fta *flow.TableAllocator, fcpool *analyzer.FlowClientPool) *probe.Bundle

NewFlowProbeBundle returns a new bundle of flow probes

Types

type AFPacketHandle added in v0.6.0

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

AFPacketHandle describes a AF network kernel packets

func NewAFPacketHandle added in v0.6.0

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

NewAFPacketHandle creates a new network AF packet probe

func (*AFPacketHandle) Close added in v0.6.0

func (h *AFPacketHandle) Close()

Close the AF packet handle

func (*AFPacketHandle) ReadPacketData added in v0.6.0

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

ReadPacketData reads one packet

func (*AFPacketHandle) TPacket added in v0.21.0

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

TPacket returns the afpacket TPacket instance

type AfpacketPacketProbe added in v0.21.0

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

AfpacketPacketProbe describes an afpacket based packet probe

func NewAfpacketPacketProbe added in v0.21.0

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

NewAfpacketPacketProbe returns a new afpacket capture probe

func (*AfpacketPacketProbe) Close added in v0.21.0

func (a *AfpacketPacketProbe) Close()

Close the probe

func (*AfpacketPacketProbe) PacketSource added in v0.21.0

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

PacketSource returns the Gopacket packet source for the probe

func (*AfpacketPacketProbe) SetBPFFilter added in v0.21.0

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

SetBPFFilter applies a BPF filter to the probe

func (*AfpacketPacketProbe) Stats added in v0.21.0

func (a *AfpacketPacketProbe) Stats() (graph.Metadata, error)

Stats returns statistics about captured packets

type DPDKProbesHandler added in v0.14.0

type DPDKProbesHandler struct {
}

DPDKProbesHandler describes a flow probe handle in the graph

func NewDPDKProbesHandler added in v0.14.0

func NewDPDKProbesHandler(g *graph.Graph, fpta *FlowProbeTableAllocator) (*DPDKProbesHandler, error)

NewDPDKProbesHandler creates a new gopacket probe in the graph

func (*DPDKProbesHandler) RegisterProbe added in v0.14.0

func (p *DPDKProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a gopacket probe

func (*DPDKProbesHandler) Start added in v0.14.0

func (p *DPDKProbesHandler) Start()

Start probe

func (*DPDKProbesHandler) Stop added in v0.14.0

func (p *DPDKProbesHandler) Stop()

Stop probe

func (*DPDKProbesHandler) UnregisterProbe added in v0.14.0

func (p *DPDKProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe unregisters gopacket probe

type EBPFProbesHandler added in v0.15.0

type EBPFProbesHandler struct {
}

EBPFProbesHandler describes a flow probe handle in the graph

func NewEBPFProbesHandler added in v0.15.0

func NewEBPFProbesHandler(g *graph.Graph, fpta *FlowProbeTableAllocator) (*EBPFProbesHandler, error)

NewEBPFProbesHandler creates a new gopacket probe in the graph

func (*EBPFProbesHandler) RegisterProbe added in v0.15.0

func (p *EBPFProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a gopacket probe

func (*EBPFProbesHandler) Start added in v0.15.0

func (p *EBPFProbesHandler) Start()

Start probe

func (*EBPFProbesHandler) Stop added in v0.15.0

func (p *EBPFProbesHandler) Stop()

Stop probe

func (*EBPFProbesHandler) UnregisterProbe added in v0.15.0

func (p *EBPFProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe unregisters gopacket probe

type FlowProbe added in v0.3.0

type FlowProbe interface {
	probe.Probe // inheritance of the probe.Probe interface Start/Stop functions
	RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error
	UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error
}

FlowProbe defines flow probe mechanism

type FlowProbeEventHandler added in v0.13.0

type FlowProbeEventHandler interface {
	OnStarted()
	OnStopped()
	OnError(err error)
}

FlowProbeEventHandler used by probes to notify capture state

type FlowProbeTableAllocator added in v0.14.0

type FlowProbeTableAllocator struct {
	*flow.TableAllocator
	// contains filtered or unexported fields
}

FlowProbeTableAllocator allocates table and set the table update callback

func (*FlowProbeTableAllocator) Alloc added in v0.14.0

func (a *FlowProbeTableAllocator) Alloc(nodeTID string, opts flow.TableOpts) *flow.Table

Alloc override the default implementation provide a default update function

type GoPacketProbe added in v0.6.0

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

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

func NewGoPacketProbe added in v0.21.0

func NewGoPacketProbe(g *graph.Graph, n *graph.Node, captureType string, bpf string, headerSize uint32) (*GoPacketProbe, error)

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

func (*GoPacketProbe) Run added in v0.21.0

func (p *GoPacketProbe) Run(packetCallback func(gopacket.Packet), e FlowProbeEventHandler) error

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

func (*GoPacketProbe) Stop added in v0.21.0

func (p *GoPacketProbe) Stop()

Stop capturing packets

type GoPacketProbesHandler added in v0.6.0

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

GoPacketProbesHandler describes a flow probe handle in the graph

func NewGoPacketProbesHandler added in v0.6.0

func NewGoPacketProbesHandler(g *graph.Graph, fpta *FlowProbeTableAllocator) (*GoPacketProbesHandler, error)

NewGoPacketProbesHandler creates a new gopacket probe in the graph

func (*GoPacketProbesHandler) RegisterProbe added in v0.6.0

func (p *GoPacketProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a gopacket probe

func (*GoPacketProbesHandler) Start added in v0.6.0

func (p *GoPacketProbesHandler) Start()

Start probe

func (*GoPacketProbesHandler) Stop added in v0.6.0

func (p *GoPacketProbesHandler) Stop()

Stop probe

func (*GoPacketProbesHandler) UnregisterProbe added in v0.6.0

func (p *GoPacketProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe unregisters gopacket probe

type OvsMirrorProbesHandler added in v0.16.0

type OvsMirrorProbesHandler struct {
	ovsdb.DefaultOvsMonitorHandler

	Graph *graph.Graph
	// contains filtered or unexported fields
}

OvsMirrorProbesHandler describes a flow probe in running in the graph

func NewOvsMirrorProbesHandler added in v0.16.0

func NewOvsMirrorProbesHandler(g *graph.Graph, tb, fb *probe.Bundle) (*OvsMirrorProbesHandler, error)

NewOvsMirrorProbesHandler creates a new OVS Mirror probes

func (*OvsMirrorProbesHandler) OnConnected added in v0.21.0

func (o *OvsMirrorProbesHandler) OnConnected(monitor *ovsdb.OvsMonitor)

OnConnected ovsdb event

func (*OvsMirrorProbesHandler) RegisterProbe added in v0.16.0

func (o *OvsMirrorProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a probe on a graph node

func (*OvsMirrorProbesHandler) RegisterProbeOnPort added in v0.16.0

func (o *OvsMirrorProbesHandler) RegisterProbeOnPort(n *graph.Node, portUUID string, capture *types.Capture) error

RegisterProbeOnPort registers a new probe on the OVS bridge

func (*OvsMirrorProbesHandler) Start added in v0.16.0

func (o *OvsMirrorProbesHandler) Start()

Start the probe

func (*OvsMirrorProbesHandler) Stop added in v0.16.0

func (o *OvsMirrorProbesHandler) Stop()

Stop the probe

func (*OvsMirrorProbesHandler) UnregisterProbe added in v0.16.0

func (o *OvsMirrorProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe at the graph node

type OvsSFlowProbe added in v0.2.0

type OvsSFlowProbe struct {
	ID         string
	Interface  string
	Target     string
	HeaderSize uint32
	Sampling   uint32
	Polling    uint32
	// contains filtered or unexported fields
}

OvsSFlowProbe describes a SFlow probe from OVS switch

type OvsSFlowProbesHandler added in v0.2.0

type OvsSFlowProbesHandler struct {
	Graph *graph.Graph
	Node  *graph.Node
	// contains filtered or unexported fields
}

OvsSFlowProbesHandler describes a flow probe in running in the graph

func NewOvsSFlowProbesHandler added in v0.2.0

func NewOvsSFlowProbesHandler(g *graph.Graph, fpta *FlowProbeTableAllocator, tb *probe.Bundle) (*OvsSFlowProbesHandler, error)

NewOvsSFlowProbesHandler creates a new OVS SFlow porbes

func (*OvsSFlowProbesHandler) RegisterProbe added in v0.3.0

func (o *OvsSFlowProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a probe on a graph node

func (*OvsSFlowProbesHandler) RegisterProbeOnBridge added in v0.3.0

func (o *OvsSFlowProbesHandler) RegisterProbeOnBridge(bridgeUUID string, tid string, capture *types.Capture, n *graph.Node) error

RegisterProbeOnBridge registers a new probe on the OVS bridge

func (*OvsSFlowProbesHandler) Start added in v0.2.0

func (o *OvsSFlowProbesHandler) Start()

Start the probe

func (*OvsSFlowProbesHandler) Stop added in v0.2.0

func (o *OvsSFlowProbesHandler) Stop()

Stop the probe

func (*OvsSFlowProbesHandler) UnregisterProbe added in v0.3.0

func (o *OvsSFlowProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe at the graph node

func (*OvsSFlowProbesHandler) UnregisterSFlowProbeFromBridge added in v0.3.0

func (o *OvsSFlowProbesHandler) UnregisterSFlowProbeFromBridge(bridgeUUID string) error

UnregisterSFlowProbeFromBridge unregisters a flow probe from the bridge selected by UUID

type PacketProbe added in v0.21.0

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

PacketProbe describes a probe responsible for capturing packets

type PcapPacketProbe added in v0.21.0

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

PcapPacketProbe describes a libpcap based packet probe

func NewPcapPacketProbe added in v0.21.0

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

NewPcapPacketProbe returns a new libpcap capture probe

func (*PcapPacketProbe) Close added in v0.21.0

func (p *PcapPacketProbe) Close()

Close the probe

func (*PcapPacketProbe) PacketSource added in v0.21.0

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

PacketSource returns the Gopacket packet source for the probe

func (*PcapPacketProbe) SetBPFFilter added in v0.21.0

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

SetBPFFilter applies a BPF filter to the probe

func (*PcapPacketProbe) Stats added in v0.21.0

func (p *PcapPacketProbe) Stats() (graph.Metadata, error)

Stats returns statistics about captured packets

type PcapSocketProbe added in v0.10.0

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

PcapSocketProbe describes a TCP packet listener that inject packets in a flowtable

type PcapSocketProbeHandler added in v0.10.0

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

PcapSocketProbeHandler describes a Pcap socket probe in the graph

func NewPcapSocketProbeHandler added in v0.10.0

func NewPcapSocketProbeHandler(g *graph.Graph, fpta *FlowProbeTableAllocator) (*PcapSocketProbeHandler, error)

NewPcapSocketProbeHandler creates a new pcap socket probe

func (*PcapSocketProbeHandler) RegisterProbe added in v0.10.0

func (p *PcapSocketProbeHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a new probe in the graph

func (*PcapSocketProbeHandler) Start added in v0.10.0

func (p *PcapSocketProbeHandler) Start()

Start the probe

func (*PcapSocketProbeHandler) Stop added in v0.10.0

func (p *PcapSocketProbeHandler) Stop()

Stop the probe

func (*PcapSocketProbeHandler) UnregisterProbe added in v0.10.0

func (p *PcapSocketProbeHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe a probe

type SFlowProbesHandler added in v0.12.0

type SFlowProbesHandler struct {
	Graph *graph.Graph
	// contains filtered or unexported fields
}

SFlowProbesHandler describes a SFlow probe in the graph

func NewSFlowProbesHandler added in v0.12.0

func NewSFlowProbesHandler(g *graph.Graph, fpta *FlowProbeTableAllocator) (*SFlowProbesHandler, error)

NewSFlowProbesHandler creates a new SFlow probe in the graph

func (*SFlowProbesHandler) RegisterProbe added in v0.12.0

func (d *SFlowProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error

RegisterProbe registers a probe in the graph

func (*SFlowProbesHandler) Start added in v0.12.0

func (d *SFlowProbesHandler) Start()

Start a probe

func (*SFlowProbesHandler) Stop added in v0.12.0

func (d *SFlowProbesHandler) Stop()

Stop a probe

func (*SFlowProbesHandler) UnregisterProbe added in v0.12.0

func (d *SFlowProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error

UnregisterProbe unregisters a probe from the graph

Jump to

Keyboard shortcuts

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