Documentation
¶
Overview ¶
Package decoder decodes sflow packets
Index ¶
Constants ¶
View Source
const ( BytesPerLength = 1 // length field is already in bytes (XDR opaque/strings) BytesPerUint32 = 4 // uint32 array elements MinBytesPerItem = 8 // structured items (samples, records, adapters, etc) )
Minimum byte sizes for validation (per sFlow v5 spec and XDR RFC 4506)
View Source
const (
// MaxDatagramSize matches sflowtool's SA_MAX_SFLOW_PKT_SIZ (exceeds UDP max payload of 65,507 bytes)
MaxDatagramSize = 65536
)
Variables ¶
View Source
var ( ErrInvalidCounterIfRecordSize = errors.New("counter if record size is invalid") ErrInvalidEthernetCountersRecordSize = errors.New("counter ethernet record size is invalid") ErrInvalidTokenringCountersRecordSize = errors.New("counter tokenring record size is invalid") ErrInvalidVgCountersRecordSize = errors.New("counter vg record size is invalid") ErrInvalidVlanCountersRecordSize = errors.New("counter vlan record size is invalid") ErrInvalidIEEE80211CountersRecordSize = errors.New("ieee80211 counters record size is invalid") ErrInvalidLAGPortStatsRecordSize = errors.New("lag port stats record size is invalid") ErrInvalidProcessorCountersRecordSize = errors.New("counter processor record size is invalid") ErrInvalidQueueLengthRecordSize = errors.New("queue length record size is invalid") ErrInvalidOpenFlowPortRecordSize = errors.New("openflow port record size is invalid") ErrInvalidOpenFlowPortNameRecordSize = errors.New("openflow port name record size is invalid") ErrOpenFlowPortNameTooLong = errors.New("openflow port name exceeds maximum length") ErrInvalidHostDescrRecordSize = errors.New("host descr record size is invalid") ErrHostNameTooLong = errors.New("hostname exceeds maximum length") ErrOSReleaseTooLong = errors.New("OS release exceeds maximum length") ErrInvalidHostAdaptersRecordSize = errors.New("host adapters record size is invalid") ErrInvalidHostParentRecordSize = errors.New("host parent record size is invalid") ErrInvalidHostCPURecordSize = errors.New("host cpu record size is invalid") ErrInvalidHostMemoryRecordSize = errors.New("host memory record size is invalid") ErrInvalidHostDiskIORecordSize = errors.New("host disk io record size is invalid") ErrInvalidHostNetIORecordSize = errors.New("host net io record size is invalid") ErrInvalidVirtNodeRecordSize = errors.New("virt node record size is invalid") ErrInvalidVirtCPURecordSize = errors.New("virt cpu record size is invalid") ErrInvalidVirtMemoryRecordSize = errors.New("virt memory record size is invalid") ErrInvalidVirtDiskIORecordSize = errors.New("virt disk io record size is invalid") ErrInvalidVirtNetIORecordSize = errors.New("virt net io record size is invalid") ErrInvalidJVMMachineNameRecordSize = errors.New("JVM machine name record size is invalid") ErrJVMVMNameTooLong = errors.New("JVM vm name exceeds maximum length") ErrJVMVMVendorTooLong = errors.New("JVM vm vendor exceeds maximum length") ErrJVMVMVersionTooLong = errors.New("JVM vm version exceeds maximum length") ErrInvalidJVMStatisticsRecordSize = errors.New("JVM statistics record size is invalid") ErrInvalidHTTPCountersRecordSize = errors.New("http counters record size is invalid") ErrInvalidAppOperationsRecordSize = errors.New("app operations record size is invalid") ErrApplicationTooLong = errors.New("application name exceeds maximum length") ErrInvalidAppResourcesRecordSize = errors.New("app resources record size is invalid") ErrInvalidMemcacheCountersRecordSize = errors.New("memcache counters record size is invalid") ErrInvalidAppWorkersRecordSize = errors.New("app workers record size is invalid") ErrInvalidEnergyRecordSize = errors.New("energy record size is invalid") ErrInvalidTemperatureRecordSize = errors.New("temperature record size is invalid") ErrInvalidHumidityRecordSize = errors.New("humidity record size is invalid") ErrInvalidFansRecordSize = errors.New("fans record size is invalid") ErrInvalidMIB2IPGroupRecordSize = errors.New("mib2 ip group record size is invalid") ErrInvalidMIB2ICMPGroupRecordSize = errors.New("mib2 icmp group record size is invalid") ErrInvalidMIB2TCPGroupRecordSize = errors.New("mib2 tcp group record size is invalid") ErrInvalidMIB2UDPGroupRecordSize = errors.New("mib2 udp group record size is invalid") ErrInvalidOVSDPStatsRecordSize = errors.New("ovs dp stats record size is invalid") )
View Source
var ( ErrUnknownSflowVersion = errors.New("unknown sflow version") ErrUnknownIPVersion = errors.New("unknown ip version") )
View Source
var ( ErrInvalidExtendedTCPInfoRecordSize = errors.New("extended tcp info record size is invalid") ErrInvalidFlowSampledHeaderRecordSize = errors.New("flow sampled header record size is invalid") ErrInvalidSampledEthernetRecordSize = errors.New("sampled ethernet record size is invalid") ErrInvalidSampledIPv4RecordSize = errors.New("sampled ipv4 record size is invalid") ErrInvalidSampledIPv6RecordSize = errors.New("sampled ipv6 record size is invalid") ErrInvalidExtendedSwitchRecordSize = errors.New("extended switch record size is invalid") ErrInvalidExtendedRouterRecordSize = errors.New("extended router record size is invalid") ErrInvalidExtendedGatewayRecordSize = errors.New("extended gateway record size is invalid") ErrInvalidExtendedUserRecordSize = errors.New("extended user record size is invalid") ErrInvalidExtendedNATRecordSize = errors.New("extended nat record size is invalid") ErrInvalidExtendedSocketIPv4RecordSize = errors.New("extended socket ipv4 record size is invalid") ErrInvalidExtendedSocketIPv6RecordSize = errors.New("extended socket ipv6 record size is invalid") ErrInvalidExtendedMPLSRecordSize = errors.New("extended mpls record size is invalid") ErrInvalidExtendedMPLSTunnelRecordSize = errors.New("extended mpls tunnel record size is invalid") ErrInvalidExtendedMPLSVCRecordSize = errors.New("extended mpls vc record size is invalid") ErrInvalidExtendedMPLSFTNRecordSize = errors.New("extended mpls ftn record size is invalid") ErrInvalidExtendedMPLSLDPFECRecordSize = errors.New("extended mpls ldp fec record size is invalid") ErrInvalidExtendedVLANTunnelRecordSize = errors.New("extended vlan tunnel record size is invalid") ErrInvalidExtendedEgressQueueRecordSize = errors.New("extended egress queue record size is invalid") ErrInvalidExtendedACLRecordSize = errors.New("extended acl record size is invalid") ErrInvalidExtendedFunctionRecordSize = errors.New("extended function record size is invalid") ErrInvalidExtendedLinuxReasonRecordSize = errors.New("extended linux reason record size is invalid") )
View Source
var ( ErrSampleMalformedOrIncomplete = errors.New("sample is malformed or incomplete") ErrRecordMalformedOrIncomplete = errors.New("record is malformed or incomplete") )
View Source
var ( ErrUnknownAddressIPVersion = errors.New("unknown address ip version") ErrSizeTooLarge = errors.New("decoded size is larger than remaining data") )
Functions ¶
This section is empty.
Types ¶
type DatagramDecoder ¶
type DatagramDecoder struct {
// contains filtered or unexported fields
}
func NewDatagramDecoder ¶
func NewDatagramDecoder(r io.Reader) DatagramDecoder
Source Files
¶
Click to show internal directories.
Click to hide internal directories.