Documentation ¶
Index ¶
- Constants
- Variables
- func GoPacketFirstLayerType(n *graph.Node) (gopacket.LayerType, layers.LinkType)
- func NewFlowProbeBundle(tb *probe.Bundle, g *graph.Graph, fta *flow.TableAllocator, ...) *probe.Bundle
- type AFPacketHandle
- type AfpacketPacketProbe
- type DPDKProbesHandler
- type EBPFProbesHandler
- type FlowProbe
- type FlowProbeEventHandler
- type FlowProbeTableAllocator
- type GoPacketProbe
- type GoPacketProbesHandler
- type OvsMirrorProbesHandler
- func (o *OvsMirrorProbesHandler) OnConnected(monitor *ovsdb.OvsMonitor)
- func (o *OvsMirrorProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error
- func (o *OvsMirrorProbesHandler) RegisterProbeOnPort(n *graph.Node, portUUID string, capture *types.Capture) error
- func (o *OvsMirrorProbesHandler) Start()
- func (o *OvsMirrorProbesHandler) Stop()
- func (o *OvsMirrorProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error
- type OvsSFlowProbe
- type OvsSFlowProbesHandler
- func (o *OvsSFlowProbesHandler) RegisterProbe(n *graph.Node, capture *types.Capture, e FlowProbeEventHandler) error
- func (o *OvsSFlowProbesHandler) RegisterProbeOnBridge(bridgeUUID string, tid string, capture *types.Capture, n *graph.Node) error
- func (o *OvsSFlowProbesHandler) Start()
- func (o *OvsSFlowProbesHandler) Stop()
- func (o *OvsSFlowProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error
- func (o *OvsSFlowProbesHandler) UnregisterSFlowProbeFromBridge(bridgeUUID string) error
- type PacketProbe
- type PcapPacketProbe
- type PcapSocketProbe
- type PcapSocketProbeHandler
- type SFlowProbesHandler
Constants ¶
const ( // AFPacket probe type AFPacket = "afpacket" // PCAP probe type PCAP = "pcap" )
Variables ¶
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
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
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) 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) 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
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
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) 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
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
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) UnregisterProbe ¶ added in v0.12.0
func (d *SFlowProbesHandler) UnregisterProbe(n *graph.Node, e FlowProbeEventHandler) error
UnregisterProbe unregisters a probe from the graph