sflow

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2020 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package sflow decodes sFlow packets

Index

Constants

View Source
const (
	// DataFlowSample defines packet flow sampling
	DataFlowSample = 1

	// DataCounterSample defines counter sampling
	DataCounterSample = 2
)
View Source
const (
	// SFGenericInterfaceCounters is Generic interface counters - see RFC 2233
	SFGenericInterfaceCounters = 1

	// SFEthernetInterfaceCounters is Ethernet interface counters - see RFC 2358
	SFEthernetInterfaceCounters = 2

	// SFTokenRingInterfaceCounters is Token ring counters - see RFC 1748
	SFTokenRingInterfaceCounters = 3

	// SF100BaseVGInterfaceCounters is 100 BaseVG interface counters - see RFC 2020
	SF100BaseVGInterfaceCounters = 4

	// SFVLANCounters is VLAN counters
	SFVLANCounters = 5

	// SFProcessorCounters is processor counters
	SFProcessorCounters = 1001
)
View Source
const (
	// SFDataRawHeader is sFlow Raw Packet Header number
	SFDataRawHeader = 1

	// SFDataExtSwitch is sFlow Extended Switch Data number
	SFDataExtSwitch = 1001

	// SFDataExtRouter is sFlow Extended Router Data number
	SFDataExtRouter = 1002
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Counter added in v0.6.5

type Counter interface{}

Counter represents sFlow counters

type CounterSample added in v0.6.5

type CounterSample struct {
	SequenceNo   uint32
	SourceIDType byte
	SourceIDIdx  uint32
	RecordsNo    uint32
	Records      map[string]Record
}

CounterSample represents the periodic sampling or polling of counters associated with a Data Source

type EthernetInterfaceCounters added in v0.6.5

type EthernetInterfaceCounters struct {
	AlignmentErrors           uint32
	FCSErrors                 uint32
	SingleCollisionFrames     uint32
	MultipleCollisionFrames   uint32
	SQETestErrors             uint32
	DeferredTransmissions     uint32
	LateCollisions            uint32
	ExcessiveCollisions       uint32
	InternalMACTransmitErrors uint32
	CarrierSenseErrors        uint32
	FrameTooLongs             uint32
	InternalMACReceiveErrors  uint32
	SymbolErrors              uint32
}

EthernetInterfaceCounters represents Ethernet Interface Counters RFC2358

type ExtRouterData added in v0.6.5

type ExtRouterData struct {
	NextHop net.IP
	SrcMask uint32
	DstMask uint32
}

ExtRouterData represents extended router data

type ExtSwitchData

type ExtSwitchData struct {
	SrcVlan     uint32 // The 802.1Q VLAN id of incoming frame
	SrcPriority uint32 // The 802.1p priority of incoming frame
	DstVlan     uint32 // The 802.1Q VLAN id of outgoing frame
	DstPriority uint32 // The 802.1p priority of outgoing frame
}

ExtSwitchData represents Extended Switch Data

type FlowSample

type FlowSample struct {
	SequenceNo   uint32 // Incremented with each flow sample
	SourceID     byte   // sfSourceID
	SamplingRate uint32 // sfPacketSamplingRate
	SamplePool   uint32 // Total number of packets that could have been sampled
	Drops        uint32 // Number of times a packet was dropped due to lack of resources
	Input        uint32 // SNMP ifIndex of input interface
	Output       uint32 // SNMP ifIndex of input interface
	RecordsNo    uint32 // Number of records to follow
	Records      map[string]Record
}

FlowSample represents single flow sample

type GenericInterfaceCounters added in v0.6.5

type GenericInterfaceCounters struct {
	Index               uint32
	Type                uint32
	Speed               uint64
	Direction           uint32
	Status              uint32
	InOctets            uint64
	InUnicastPackets    uint32
	InMulticastPackets  uint32
	InBroadcastPackets  uint32
	InDiscards          uint32
	InErrors            uint32
	InUnknownProtocols  uint32
	OutOctets           uint64
	OutUnicastPackets   uint32
	OutMulticastPackets uint32
	OutBroadcastPackets uint32
	OutDiscards         uint32
	OutErrors           uint32
	PromiscuousMode     uint32
}

GenericInterfaceCounters represents Generic Interface Counters RFC2233

type ProcessorCounters added in v0.6.5

type ProcessorCounters struct {
	CPU5s       uint32
	CPU1m       uint32
	CPU5m       uint32
	TotalMemory uint64
	FreeMemory  uint64
}

ProcessorCounters represents Processor Information

type Record added in v0.6.5

type Record interface{}

Record represents sFlow sample record record

type SFDatagram

type SFDatagram struct {
	Version    uint32 // Datagram version
	IPVersion  uint32 // Data gram sFlow version
	AgentSubID uint32 // Identifies a source of sFlow data
	SequenceNo uint32 // Sequence of sFlow Datagrams
	SysUpTime  uint32 // Current time (in milliseconds since device last booted
	SamplesNo  uint32 // Number of samples
	Samples    []Sample
	Counters   []Counter

	IPAddress net.IP // Agent IP address
	ColTime   int64  // Collected time
}

SFDatagram represents sFlow datagram

type SFDecoder

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

SFDecoder represents sFlow decoder

func NewSFDecoder

func NewSFDecoder(r io.ReadSeeker, f []uint32) SFDecoder

NewSFDecoder constructs new sflow decoder

func (*SFDecoder) SFDecode

func (d *SFDecoder) SFDecode() (*SFDatagram, error)

SFDecode decodes sFlow data

type SFSampledHeader

type SFSampledHeader struct {
	HeaderProtocol uint32 // (enum SFHeaderProtocol)
	FrameLength    uint32 // Original length of packet before sampling
	Stripped       uint32 // Header/trailer bytes stripped by sender
	HeaderLength   uint32 // Length of sampled header bytes to follow
	HeaderBytes    []byte // Header bytes
}

SFSampledHeader represents sFlow sample header

type Sample added in v0.6.5

type Sample interface{}

Sample represents sFlow sample flow

type SampledHeader

type SampledHeader struct {
	Protocol     uint32 // (enum SFLHeader_protocol)
	FrameLength  uint32 // Original length of packet before sampling
	Stripped     uint32 // Header/trailer bytes stripped by sender
	HeaderLength uint32 // Length of sampled header bytes to follow
	Header       []byte // Header bytes
}

SampledHeader represents sampled header

type TokenRingCounters added in v0.6.5

type TokenRingCounters struct {
	LineErrors         uint32
	BurstErrors        uint32
	ACErrors           uint32
	AbortTransErrors   uint32
	InternalErrors     uint32
	LostFrameErrors    uint32
	ReceiveCongestions uint32
	FrameCopiedErrors  uint32
	TokenErrors        uint32
	SoftErrors         uint32
	HardErrors         uint32
	SignalLoss         uint32
	TransmitBeacons    uint32
	Recoverys          uint32
	LobeWires          uint32
	Removes            uint32
	Singles            uint32
	FreqErrors         uint32
}

TokenRingCounters represents Token Ring Counters - see RFC 1748

type VGCounters added in v0.6.5

type VGCounters struct {
	InHighPriorityFrames    uint32
	InHighPriorityOctets    uint64
	InNormPriorityFrames    uint32
	InNormPriorityOctets    uint64
	InIPMErrors             uint32
	InOversizeFrameErrors   uint32
	InDataErrors            uint32
	InNullAddressedFrames   uint32
	OutHighPriorityFrames   uint32
	OutHighPriorityOctets   uint64
	TransitionIntoTrainings uint32
	HCInHighPriorityOctets  uint64
	HCInNormPriorityOctets  uint64
	HCOutHighPriorityOctets uint64
}

VGCounters represents 100 BaseVG interface counters - see RFC 2020

type VlanCounters added in v0.6.5

type VlanCounters struct {
	ID               uint32
	Octets           uint64
	UnicastPackets   uint32
	MulticastPackets uint32
	BroadcastPackets uint32
	Discards         uint32
}

VlanCounters represents VLAN Counters

Jump to

Keyboard shortcuts

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