Documentation ¶
Overview ¶
Package layers provides decoding layers for many common protocols.
The layers package contains decode implementations for a number of different types of packet layers. Users of gopacket will almost always want to also use layers to actually decode packet data into useful pieces. To see the set of protocols that gopacket/layers is currently able to decode, look at the set of LayerTypes defined in the Variables sections. The layers package also defines endpoints for many of the common packet layers that have source/destination addresses associated with them, for example IPv4/6 (IPs) and TCP/UDP (ports). Finally, layers contains a number of useful enumerations (IPProtocol, EthernetType, LinkType, PPPType, etc...). Many of these implement the gopacket.Decoder interface, so they can be passed into gopacket as decoders.
Most common protocol layers are named using acronyms or other industry-common names (IPv4, TCP, PPP). Some of the less common ones have their names expanded (CiscoDiscoveryProtocol). For certain protocols, sub-parts of the protocol are split out into their own layers (SCTP, for example). This is done mostly in cases where portions of the protocol may fulfill the capabilities of interesting layers (SCTPData implements ApplicationLayer, while base SCTP implements TransportLayer), or possibly because splitting a protocol into a few layers makes decoding easier.
This package is meant to be used with its parent, http://code.google.com/p/gopacket.
Port Types ¶
Instead of using raw uint16 or uint8 values for ports, we use a different port type for every protocol, for example TCPPort and UDPPort. This allows us to override string behavior for each port, which we do by setting up port name maps (TCPPortNames, UDPPortNames, etc...). Well-known ports are annotated with their protocol names, and their String function displays these names:
p := TCPPort(80) fmt.Printf("Number: %d String: %v", p, p) // Prints: "Number: 80 String: 80(http)"
Modifying Decode Behavior ¶
layers links together decoding through its enumerations. For example, after decoding layer type Ethernet, it uses Ethernet.EthernetType as its next decoder. All enumerations that act as decoders, like EthernetType, can be modified by users depending on their preferences. For example, if you have a spiffy new IPv4 decoder that works way better than the one built into layers, you can do this:
var mySpiffyIPv4Decoder gopacket.Decoder = ... layers.EthernetTypeMetadata[EthernetTypeIPv4].DecodeWith = mySpiffyIPv4Decoder
This will make all future ethernet packets use your new decoder to decode IPv4 packets, instead of the built-in decoder used by gopacket.
Index ¶
- Constants
- Variables
- func NewIPEndpoint(a net.IP) gopacket.Endpoint
- func NewMACEndpoint(a net.HardwareAddr) gopacket.Endpoint
- func NewRUDPPortEndpoint(p RUDPPort) gopacket.Endpoint
- func NewSCTPPortEndpoint(p SCTPPort) gopacket.Endpoint
- func NewTCPPortEndpoint(p TCPPort) gopacket.Endpoint
- func NewUDPLitePortEndpoint(p UDPLitePort) gopacket.Endpoint
- func NewUDPPortEndpoint(p UDPPort) gopacket.Endpoint
- type ARP
- func (arp *ARP) CanDecode() gopacket.LayerClass
- func (arp *ARP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (arp *ARP) LayerType() gopacket.LayerType
- func (arp *ARP) NextLayerType() gopacket.LayerType
- func (arp *ARP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type BaseLayer
- type CDPAddressType
- type CDPCapabilities
- type CDPCapability
- type CDPEnergyWise
- type CDPEnergyWiseSubtype
- type CDPHello
- type CDPLocation
- type CDPPowerDialogue
- type CDPSparePairPoE
- type CDPTLVType
- type CDPVLANDialogue
- type CiscoDiscovery
- type CiscoDiscoveryInfo
- type CiscoDiscoveryValue
- type DNS
- type DNSClass
- type DNSMX
- type DNSOpCode
- type DNSQuestion
- type DNSResourceRecord
- type DNSResponseCode
- type DNSSOA
- type DNSSRV
- type DNSType
- type Dot11
- type Dot11AckPolicy
- type Dot11Algorithm
- type Dot11Ctrl
- type Dot11CtrlAck
- type Dot11CtrlBlockAck
- type Dot11CtrlBlockAckReq
- type Dot11CtrlCFEnd
- type Dot11CtrlCFEndAck
- type Dot11CtrlCTS
- type Dot11CtrlPowersavePoll
- type Dot11CtrlRTS
- type Dot11Data
- type Dot11DataCFAck
- type Dot11DataCFAckNoData
- type Dot11DataCFAckPoll
- type Dot11DataCFAckPollNoData
- type Dot11DataCFPoll
- type Dot11DataCFPollNoData
- type Dot11DataNull
- type Dot11DataQOS
- type Dot11DataQOSCFAckPollNoData
- type Dot11DataQOSCFPollNoData
- type Dot11DataQOSData
- type Dot11DataQOSDataCFAck
- type Dot11DataQOSDataCFAckPoll
- type Dot11DataQOSDataCFPoll
- type Dot11DataQOSNull
- type Dot11Flags
- func (d Dot11Flags) FromDS() bool
- func (d Dot11Flags) MD() bool
- func (d Dot11Flags) MF() bool
- func (d Dot11Flags) Order() bool
- func (d Dot11Flags) PowerManagement() bool
- func (d Dot11Flags) Retry() bool
- func (a Dot11Flags) String() string
- func (d Dot11Flags) ToDS() bool
- func (d Dot11Flags) WEP() bool
- type Dot11InformationElement
- func (m *Dot11InformationElement) CanDecode() gopacket.LayerClass
- func (m *Dot11InformationElement) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (m *Dot11InformationElement) LayerType() gopacket.LayerType
- func (m *Dot11InformationElement) NextLayerType() gopacket.LayerType
- func (d *Dot11InformationElement) String() string
- type Dot11InformationElementID
- type Dot11Mgmt
- type Dot11MgmtATIM
- type Dot11MgmtAction
- type Dot11MgmtActionNoAck
- type Dot11MgmtArubaWLAN
- type Dot11MgmtAssociationReq
- type Dot11MgmtAssociationResp
- func (m *Dot11MgmtAssociationResp) CanDecode() gopacket.LayerClass
- func (m *Dot11MgmtAssociationResp) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (m *Dot11MgmtAssociationResp) LayerType() gopacket.LayerType
- func (m *Dot11MgmtAssociationResp) NextLayerType() gopacket.LayerType
- type Dot11MgmtAuthentication
- type Dot11MgmtBeacon
- type Dot11MgmtDeauthentication
- type Dot11MgmtDisassociation
- type Dot11MgmtMeasurementPilot
- type Dot11MgmtProbeReq
- type Dot11MgmtProbeResp
- type Dot11MgmtReassociationReq
- func (m *Dot11MgmtReassociationReq) CanDecode() gopacket.LayerClass
- func (m *Dot11MgmtReassociationReq) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (m *Dot11MgmtReassociationReq) LayerType() gopacket.LayerType
- func (m *Dot11MgmtReassociationReq) NextLayerType() gopacket.LayerType
- type Dot11MgmtReassociationResp
- type Dot11Reason
- type Dot11Status
- type Dot11Type
- type Dot11WEP
- type Dot1Q
- func (d *Dot1Q) CanDecode() gopacket.LayerClass
- func (d *Dot1Q) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (d *Dot1Q) LayerType() gopacket.LayerType
- func (d *Dot1Q) NextLayerType() gopacket.LayerType
- func (d *Dot1Q) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type EAP
- func (e *EAP) CanDecode() gopacket.LayerClass
- func (e *EAP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (e *EAP) LayerType() gopacket.LayerType
- func (e *EAP) NextLayerType() gopacket.LayerType
- func (e *EAP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type EAPCode
- type EAPOL
- type EAPOLType
- type EAPType
- type EnumMetadata
- type EtherIP
- type Ethernet
- func (eth *Ethernet) CanDecode() gopacket.LayerClass
- func (eth *Ethernet) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (e *Ethernet) LayerType() gopacket.LayerType
- func (e *Ethernet) LinkFlow() gopacket.Flow
- func (eth *Ethernet) NextLayerType() gopacket.LayerType
- func (eth *Ethernet) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type EthernetCTP
- type EthernetCTPForwardData
- type EthernetCTPFunction
- type EthernetCTPReply
- type EthernetType
- type FDDI
- type FDDIFrameControl
- type GRE
- type GRERouting
- type IANAAddressFamily
- type ICMPv4
- func (i *ICMPv4) CanDecode() gopacket.LayerClass
- func (i *ICMPv4) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (i *ICMPv4) LayerType() gopacket.LayerType
- func (i *ICMPv4) NextLayerType() gopacket.LayerType
- func (i *ICMPv4) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type ICMPv4TypeCode
- type ICMPv6
- func (i *ICMPv6) CanDecode() gopacket.LayerClass
- func (i *ICMPv6) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (i *ICMPv6) LayerType() gopacket.LayerType
- func (i *ICMPv6) NextLayerType() gopacket.LayerType
- func (i *ICMPv6) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- func (i *ICMPv6) SetNetworkLayerForChecksum(l gopacket.NetworkLayer) error
- type ICMPv6TypeCode
- type IEEEOUI
- type IGMP
- type IGMPType
- type IPProtocol
- type IPSecAH
- type IPSecESP
- type IPv4
- func (i *IPv4) CanDecode() gopacket.LayerClass
- func (ip *IPv4) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (i *IPv4) LayerType() gopacket.LayerType
- func (i *IPv4) NetworkFlow() gopacket.Flow
- func (i *IPv4) NextLayerType() gopacket.LayerType
- func (ip *IPv4) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type IPv4Flag
- type IPv4Option
- type IPv6
- func (i *IPv6) CanDecode() gopacket.LayerClass
- func (ip6 *IPv6) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (i *IPv6) LayerType() gopacket.LayerType
- func (i *IPv6) NetworkFlow() gopacket.Flow
- func (i *IPv6) NextLayerType() gopacket.LayerType
- func (ip6 *IPv6) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- type IPv6Destination
- type IPv6DestinationOption
- type IPv6ExtensionSkipper
- type IPv6Fragment
- type IPv6HopByHop
- type IPv6HopByHopOption
- type IPv6Routing
- type LLC
- type LLDPApplicationType
- type LLDPCapabilities
- type LLDPChassisID
- type LLDPChassisIDSubType
- type LLDPCisco2Subtype
- type LLDPEVBCapabilities
- type LLDPEVBSettings
- type LLDPInfo8021
- type LLDPInfo8021Qbg
- type LLDPInfo8023
- type LLDPInfoCisco2
- type LLDPInfoMedia
- type LLDPInfoProfinet
- type LLDPInterfaceSubtype
- type LLDPLinkAggregation
- type LLDPLocation
- type LLDPLocationAddress
- type LLDPLocationAddressLine
- type LLDPLocationAddressType
- type LLDPLocationAddressWhat
- type LLDPLocationCoordinate
- type LLDPLocationECS
- type LLDPLocationFormat
- type LLDPMACPHYConfigStatus
- type LLDPMediaCapabilities
- type LLDPMediaClass
- type LLDPMediaSubtype
- type LLDPMgmtAddress
- type LLDPNetworkPolicy
- type LLDPOrgSpecificTLV
- type LLDPPNIODelay
- type LLDPPNIOMRPPortStatus
- type LLDPPNIOPTCPStatus
- type LLDPPNIOPortStatus
- type LLDPPortID
- type LLDPPortIDSubType
- type LLDPPowerPriority
- type LLDPPowerSource
- type LLDPPowerType
- type LLDPPowerViaMDI
- type LLDPPowerViaMDI8023
- type LLDPProfinetSubtype
- type LLDPSysCapabilities
- type LLDPTLVType
- type LinkLayerDiscovery
- type LinkLayerDiscoveryInfo
- func (l *LinkLayerDiscoveryInfo) Decode8021() (info LLDPInfo8021, err error)
- func (l *LinkLayerDiscoveryInfo) Decode8021Qbg() (info LLDPInfo8021Qbg, err error)
- func (l *LinkLayerDiscoveryInfo) Decode8023() (info LLDPInfo8023, err error)
- func (l *LinkLayerDiscoveryInfo) DecodeCisco2() (info LLDPInfoCisco2, err error)
- func (l *LinkLayerDiscoveryInfo) DecodeMedia() (info LLDPInfoMedia, err error)
- func (l *LinkLayerDiscoveryInfo) DecodeProfinet() (info LLDPInfoProfinet, err error)
- func (c *LinkLayerDiscoveryInfo) LayerType() gopacket.LayerType
- type LinkLayerDiscoveryValue
- type LinkType
- type LinuxSLL
- type LinuxSLLPacketType
- type Loopback
- type MPLS
- type NDPBackplaneType
- type NDPChassisType
- type NDPState
- type NortelDiscovery
- type PFDirection
- type PFLog
- type PPP
- type PPPType
- type PPPoE
- type PPPoECode
- type PortProtocolVLANID
- type ProtocolFamily
- type ProtocolGuessingDecoder
- type ProtocolIdentity
- type RUDP
- type RUDPHeaderEACK
- type RUDPHeaderSYN
- type RUDPPort
- type RadioTap
- type RadioTapChannelFlags
- func (r RadioTapChannelFlags) CCK() bool
- func (r RadioTapChannelFlags) Dynamic() bool
- func (r RadioTapChannelFlags) GFSK() bool
- func (r RadioTapChannelFlags) Ghz2() bool
- func (r RadioTapChannelFlags) Ghz5() bool
- func (r RadioTapChannelFlags) OFDM() bool
- func (r RadioTapChannelFlags) Passive() bool
- func (a RadioTapChannelFlags) String() string
- func (r RadioTapChannelFlags) Turbo() bool
- type RadioTapChannelFrequency
- type RadioTapFlags
- func (r RadioTapFlags) BadFCS() bool
- func (r RadioTapFlags) CFP() bool
- func (r RadioTapFlags) Datapad() bool
- func (r RadioTapFlags) FCS() bool
- func (r RadioTapFlags) Frag() bool
- func (r RadioTapFlags) ShortGI() bool
- func (r RadioTapFlags) ShortPreamble() bool
- func (a RadioTapFlags) String() string
- func (r RadioTapFlags) WEP() bool
- type RadioTapPresent
- func (r RadioTapPresent) Antenna() bool
- func (r RadioTapPresent) Channel() bool
- func (r RadioTapPresent) DBAntennaNoise() bool
- func (r RadioTapPresent) DBAntennaSignal() bool
- func (r RadioTapPresent) DBMAntennaNoise() bool
- func (r RadioTapPresent) DBMAntennaSignal() bool
- func (r RadioTapPresent) DBMTxPower() bool
- func (r RadioTapPresent) DBTxAttenuation() bool
- func (r RadioTapPresent) DataRetries() bool
- func (r RadioTapPresent) EXT() bool
- func (r RadioTapPresent) FHSS() bool
- func (r RadioTapPresent) Flags() bool
- func (r RadioTapPresent) LockQuality() bool
- func (r RadioTapPresent) Rate() bool
- func (r RadioTapPresent) RtsRetries() bool
- func (r RadioTapPresent) RxFlags() bool
- func (r RadioTapPresent) TSFT() bool
- func (r RadioTapPresent) TxAttenuation() bool
- func (r RadioTapPresent) TxFlags() bool
- type RadioTapRate
- type SCTP
- type SCTPChunk
- type SCTPChunkType
- type SCTPCookieEcho
- type SCTPData
- type SCTPEmptyLayer
- type SCTPError
- type SCTPErrorParameter
- type SCTPHeartbeat
- type SCTPHeartbeatParameter
- type SCTPInit
- type SCTPInitParameter
- type SCTPParameter
- type SCTPPort
- type SCTPSack
- type SCTPShutdown
- type SCTPShutdownAck
- type SCTPUnknownChunkType
- type SFlowASDestination
- type SFlowASPathType
- type SFlowBaseCounterRecord
- type SFlowBaseFlowRecord
- type SFlowCharSet
- type SFlowCounterDataFormat
- type SFlowCounterRecordType
- type SFlowCounterSample
- type SFlowDataFormat
- type SFlowDataSource
- type SFlowDatagram
- type SFlowEnterpriseID
- type SFlowEthernetCounters
- type SFlowExtendedGatewayFlowRecord
- type SFlowExtendedRouterFlowRecord
- type SFlowExtendedSwitchFlowRecord
- type SFlowExtendedURLRecord
- type SFlowExtendedUserFlow
- type SFlowFlowDataFormat
- type SFlowFlowRecordType
- type SFlowFlowSample
- type SFlowGenericInterfaceCounters
- type SFlowIPType
- type SFlowRawHeaderProtocol
- type SFlowRawPacketFlowRecord
- type SFlowRecord
- type SFlowSampleType
- type SFlowSourceFormat
- type SFlowSourceValue
- type SFlowURLDirection
- type SNAP
- type TCP
- func (t *TCP) CanDecode() gopacket.LayerClass
- func (tcp *TCP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (t *TCP) LayerType() gopacket.LayerType
- func (t *TCP) NextLayerType() gopacket.LayerType
- func (t *TCP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- func (i *TCP) SetNetworkLayerForChecksum(l gopacket.NetworkLayer) error
- func (t *TCP) TransportFlow() gopacket.Flow
- type TCPOption
- type TCPPort
- type UDP
- func (u *UDP) CanDecode() gopacket.LayerClass
- func (udp *UDP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (u *UDP) LayerType() gopacket.LayerType
- func (u *UDP) NextLayerType() gopacket.LayerType
- func (u *UDP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
- func (i *UDP) SetNetworkLayerForChecksum(l gopacket.NetworkLayer) error
- func (u *UDP) TransportFlow() gopacket.Flow
- type UDPLite
- type UDPLitePort
- type UDPPort
- type USB
- type USBBulk
- type USBControl
- type USBDirectionType
- type USBEventType
- type USBInterrupt
- type USBRequestBlockSetup
- type USBRequestBlockSetupRequest
- type USBTransportType
- type VLANName
- Bugs
Constants ¶
const ( ARPRequest = 1 ARPReply = 2 )
const ( CDPPoEFourWire byte = 0x01 CDPPoEPDArch byte = 0x02 CDPPoEPDRequest byte = 0x04 CDPPoEPSE byte = 0x08 )
const ( CDPProtocolTypeNLPID byte = 1 CDPProtocolType802_2 byte = 2 )
CDP Protocol Types
const ( EAPCodeRequest EAPCode = 1 EAPCodeResponse EAPCode = 2 EAPCodeSuccess EAPCode = 3 EAPCodeFailure EAPCode = 4 // EAPTypeNone means that this EAP layer has no Type or TypeData. // Success and Failure EAPs will have this set. EAPTypeNone EAPType = 0 EAPTypeIdentity EAPType = 1 EAPTypeNotification EAPType = 2 EAPTypeNACK EAPType = 3 EAPTypeOTP EAPType = 4 EAPTypeTokenCard EAPType = 5 )
const ( ICMPv4TypeEchoReply = 0 ICMPv4TypeDestinationUnreachable = 3 ICMPv4TypeSourceQuench = 4 ICMPv4TypeRedirect = 5 ICMPv4TypeEchoRequest = 8 ICMPv4TypeRouterAdvertisement = 9 ICMPv4TypeRouterSolicitation = 10 ICMPv4TypeTimeExceeded = 11 ICMPv4TypeParameterProblem = 12 ICMPv4TypeTimestampRequest = 13 ICMPv4TypeTimestampReply = 14 ICMPv4TypeInfoRequest = 15 ICMPv4TypeInfoReply = 16 ICMPv4TypeAddressMaskRequest = 17 ICMPv4TypeAddressMaskReply = 18 )
const ( ICMPv6TypeDestinationUnreachable = 1 ICMPv6TypePacketTooBig = 2 ICMPv6TypeTimeExceeded = 3 ICMPv6TypeParameterProblem = 4 ICMPv6TypeEchoRequest = 128 ICMPv6TypeEchoReply = 129 // The following are from RFC 4861 ICMPv6TypeRouterSolicitation = 133 ICMPv6TypeRouterAdvertisement = 134 ICMPv6TypeNeighborSolicitation = 135 ICMPv6TypeNeighborAdvertisement = 136 ICMPv6TypeRedirect = 137 )
const ( LLDPCapsOther uint16 = 1 << 0 LLDPCapsRepeater uint16 = 1 << 1 LLDPCapsBridge uint16 = 1 << 2 LLDPCapsWLANAP uint16 = 1 << 3 LLDPCapsRouter uint16 = 1 << 4 LLDPCapsPhone uint16 = 1 << 5 LLDPCapsDocSis uint16 = 1 << 6 LLDPCapsStationOnly uint16 = 1 << 7 LLDPCapsCVLAN uint16 = 1 << 8 LLDPCapsSVLAN uint16 = 1 << 9 LLDPCapsTmpr uint16 = 1 << 10 )
LLDPCapabilities Types
const ( LLDP8021SubtypePortVLANID uint8 = 1 LLDP8021SubtypeProtocolVLANID uint8 = 2 LLDP8021SubtypeVLANName uint8 = 3 LLDP8021SubtypeProtocolIdentity uint8 = 4 LLDP8021SubtypeVDIUsageDigest uint8 = 5 LLDP8021SubtypeManagementVID uint8 = 6 LLDP8021SubtypeLinkAggregation uint8 = 7 )
/ IEEE 802.1 TLV Subtypes
const ( LLDPProtocolVLANIDCapability byte = 1 << 1 LLDPProtocolVLANIDStatus byte = 1 << 2 )
VLAN Port Protocol ID options
const ( LLDPAggregationCapability byte = 1 << 0 LLDPAggregationStatus byte = 1 << 1 )
LACP options
const ( LLDP8023SubtypeMACPHY uint8 = 1 LLDP8023SubtypeMDIPower uint8 = 2 LLDP8023SubtypeLinkAggregation uint8 = 3 LLDP8023SubtypeMTU uint8 = 4 )
IEEE 802.3 TLV Subtypes
const ( LLDPMACPHYCapability byte = 1 << 0 LLDPMACPHYStatus byte = 1 << 1 )
MACPHY options
const ( LLDPMAUTypeUnknown uint16 = 0 LLDPMAUTypeAUI uint16 = 1 LLDPMAUType10Base5 uint16 = 2 LLDPMAUTypeFOIRL uint16 = 3 LLDPMAUType10Base2 uint16 = 4 LLDPMAUType10BaseT uint16 = 5 LLDPMAUType10BaseFP uint16 = 6 LLDPMAUType10BaseFB uint16 = 7 LLDPMAUType10BaseFL uint16 = 8 LLDPMAUType10BROAD36 uint16 = 9 LLDPMAUType10BaseT_HD uint16 = 10 LLDPMAUType10BaseT_FD uint16 = 11 LLDPMAUType10BaseFL_HD uint16 = 12 LLDPMAUType10BaseFL_FD uint16 = 13 LLDPMAUType100BaseT4 uint16 = 14 LLDPMAUType100BaseTX_HD uint16 = 15 LLDPMAUType100BaseTX_FD uint16 = 16 LLDPMAUType100BaseFX_HD uint16 = 17 LLDPMAUType100BaseFX_FD uint16 = 18 LLDPMAUType100BaseT2_HD uint16 = 19 LLDPMAUType100BaseT2_FD uint16 = 20 LLDPMAUType1000BaseX_HD uint16 = 21 LLDPMAUType1000BaseX_FD uint16 = 22 LLDPMAUType1000BaseLX_HD uint16 = 23 LLDPMAUType1000BaseLX_FD uint16 = 24 LLDPMAUType1000BaseSX_HD uint16 = 25 LLDPMAUType1000BaseSX_FD uint16 = 26 LLDPMAUType1000BaseCX_HD uint16 = 27 LLDPMAUType1000BaseCX_FD uint16 = 28 LLDPMAUType1000BaseT_HD uint16 = 29 LLDPMAUType1000BaseT_FD uint16 = 30 LLDPMAUType10GBaseX uint16 = 31 LLDPMAUType10GBaseLX4 uint16 = 32 LLDPMAUType10GBaseR uint16 = 33 LLDPMAUType10GBaseER uint16 = 34 LLDPMAUType10GBaseLR uint16 = 35 LLDPMAUType10GBaseSR uint16 = 36 LLDPMAUType10GBaseW uint16 = 37 LLDPMAUType10GBaseEW uint16 = 38 LLDPMAUType10GBaseLW uint16 = 39 LLDPMAUType10GBaseSW uint16 = 40 LLDPMAUType10GBaseCX4 uint16 = 41 LLDPMAUType2BaseTL uint16 = 42 LLDPMAUType10PASS_TS uint16 = 43 LLDPMAUType100BaseBX10D uint16 = 44 LLDPMAUType100BaseBX10U uint16 = 45 LLDPMAUType100BaseLX10 uint16 = 46 LLDPMAUType1000BaseBX10D uint16 = 47 LLDPMAUType1000BaseBX10U uint16 = 48 LLDPMAUType1000BaseLX10 uint16 = 49 LLDPMAUType1000BasePX10D uint16 = 50 LLDPMAUType1000BasePX10U uint16 = 51 LLDPMAUType1000BasePX20D uint16 = 52 LLDPMAUType1000BasePX20U uint16 = 53 LLDPMAUType10GBaseT uint16 = 54 LLDPMAUType10GBaseLRM uint16 = 55 LLDPMAUType1000BaseKX uint16 = 56 LLDPMAUType10GBaseKX4 uint16 = 57 LLDPMAUType10GBaseKR uint16 = 58 LLDPMAUType10_1GBasePRX_D1 uint16 = 59 LLDPMAUType10_1GBasePRX_D2 uint16 = 60 LLDPMAUType10_1GBasePRX_D3 uint16 = 61 LLDPMAUType10_1GBasePRX_U1 uint16 = 62 LLDPMAUType10_1GBasePRX_U2 uint16 = 63 LLDPMAUType10_1GBasePRX_U3 uint16 = 64 LLDPMAUType10GBasePR_D1 uint16 = 65 LLDPMAUType10GBasePR_D2 uint16 = 66 LLDPMAUType10GBasePR_D3 uint16 = 67 LLDPMAUType10GBasePR_U1 uint16 = 68 LLDPMAUType10GBasePR_U3 uint16 = 69 )
From IANA-MAU-MIB (introduced by RFC 4836) - dot3MauType
const ( LLDPMAUPMDOther uint16 = 1 << 15 LLDPMAUPMD10BaseT uint16 = 1 << 14 LLDPMAUPMD10BaseT_FD uint16 = 1 << 13 LLDPMAUPMD100BaseT4 uint16 = 1 << 12 LLDPMAUPMD100BaseTX uint16 = 1 << 11 LLDPMAUPMD100BaseTX_FD uint16 = 1 << 10 LLDPMAUPMD100BaseT2 uint16 = 1 << 9 LLDPMAUPMD100BaseT2_FD uint16 = 1 << 8 LLDPMAUPMDFDXPAUSE uint16 = 1 << 7 LLDPMAUPMDFDXAPAUSE uint16 = 1 << 6 LLDPMAUPMDFDXSPAUSE uint16 = 1 << 5 LLDPMAUPMDFDXBPAUSE uint16 = 1 << 4 LLDPMAUPMD1000BaseX uint16 = 1 << 3 LLDPMAUPMD1000BaseX_FD uint16 = 1 << 2 LLDPMAUPMD1000BaseT uint16 = 1 << 1 LLDPMAUPMD1000BaseT_FD uint16 = 1 << 0 )
From RFC 3636 - ifMauAutoNegCapAdvertisedBits
const ( LLDPMAUPMDOtherInv uint16 = 1 << 0 LLDPMAUPMD10BaseTInv uint16 = 1 << 1 LLDPMAUPMD10BaseT_FDInv uint16 = 1 << 2 LLDPMAUPMD100BaseT4Inv uint16 = 1 << 3 LLDPMAUPMD100BaseTXInv uint16 = 1 << 4 LLDPMAUPMD100BaseTX_FDInv uint16 = 1 << 5 LLDPMAUPMD100BaseT2Inv uint16 = 1 << 6 LLDPMAUPMD100BaseT2_FDInv uint16 = 1 << 7 LLDPMAUPMDFDXPAUSEInv uint16 = 1 << 8 LLDPMAUPMDFDXAPAUSEInv uint16 = 1 << 9 LLDPMAUPMDFDXSPAUSEInv uint16 = 1 << 10 LLDPMAUPMDFDXBPAUSEInv uint16 = 1 << 11 LLDPMAUPMD1000BaseXInv uint16 = 1 << 12 LLDPMAUPMD1000BaseX_FDInv uint16 = 1 << 13 LLDPMAUPMD1000BaseTInv uint16 = 1 << 14 LLDPMAUPMD1000BaseT_FDInv uint16 = 1 << 15 )
Inverted ifMauAutoNegCapAdvertisedBits if required (Some manufacturers misinterpreted the spec - see https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1455)
const ( LLDPMDIPowerPortClass byte = 1 << 0 LLDPMDIPowerCapability byte = 1 << 1 LLDPMDIPowerStatus byte = 1 << 2 LLDPMDIPowerPairsAbility byte = 1 << 3 )
MDI Power options
const ( LLDP8021QbgEVB uint8 = 0 LLDP8021QbgCDCP uint8 = 1 LLDP8021QbgVDP uint8 = 2 LLDP8021QbgEVB22 uint8 = 13 )
IEEE 802.1Qbg TLV Subtypes
const ( LLDPEVBCapsSTD uint16 = 1 << 7 LLDPEVBCapsRR uint16 = 1 << 6 LLDPEVBCapsRTE uint16 = 1 << 2 LLDPEVBCapsECP uint16 = 1 << 1 LLDPEVBCapsVDP uint16 = 1 << 0 )
LLDPEVBCapabilities Types
const ( LLDPMediaCapsLLDP uint16 = 1 << 0 LLDPMediaCapsNetwork uint16 = 1 << 1 LLDPMediaCapsLocation uint16 = 1 << 2 LLDPMediaCapsPowerPSE uint16 = 1 << 3 LLDPMediaCapsPowerPD uint16 = 1 << 4 LLDPMediaCapsInventory uint16 = 1 << 5 )
LLDPMediaCapabilities Types
const ( LLDPCiscoPSESupport uint8 = 1 << 0 LLDPCiscoPDSparePair uint8 = 1 << 2 LLDPCiscoPSESparePair uint8 = 1 << 3 )
const (
IPv6HopByHopOptionJumbogram = 0xC2 // RFC 2675
)
Variables ¶
var ( // We use two different endpoint types for IPv4 vs IPv6 addresses, so that // ordering with endpointA.LessThan(endpointB) sanely groups all IPv4 // addresses and all IPv6 addresses, such that IPv6 > IPv4 for all addresses. EndpointIPv4 = gopacket.RegisterEndpointType(1, gopacket.EndpointTypeMetadata{"IPv4", func(b []byte) string { return net.IP(b).String() }}) EndpointIPv6 = gopacket.RegisterEndpointType(2, gopacket.EndpointTypeMetadata{"IPv6", func(b []byte) string { return net.IP(b).String() }}) EndpointMAC = gopacket.RegisterEndpointType(3, gopacket.EndpointTypeMetadata{"MAC", func(b []byte) string { return net.HardwareAddr(b).String() }}) EndpointTCPPort = gopacket.RegisterEndpointType(4, gopacket.EndpointTypeMetadata{"TCP", func(b []byte) string { return strconv.Itoa(int(binary.BigEndian.Uint16(b))) }}) EndpointUDPPort = gopacket.RegisterEndpointType(5, gopacket.EndpointTypeMetadata{"UDP", func(b []byte) string { return strconv.Itoa(int(binary.BigEndian.Uint16(b))) }}) EndpointSCTPPort = gopacket.RegisterEndpointType(6, gopacket.EndpointTypeMetadata{"SCTP", func(b []byte) string { return strconv.Itoa(int(binary.BigEndian.Uint16(b))) }}) EndpointRUDPPort = gopacket.RegisterEndpointType(7, gopacket.EndpointTypeMetadata{"RUDP", func(b []byte) string { return strconv.Itoa(int(b[0])) }}) EndpointUDPLitePort = gopacket.RegisterEndpointType(8, gopacket.EndpointTypeMetadata{"UDPLite", func(b []byte) string { return strconv.Itoa(int(binary.BigEndian.Uint16(b))) }}) EndpointPPP = gopacket.RegisterEndpointType(9, gopacket.EndpointTypeMetadata{"PPP", func([]byte) string { return "point" }}) )
var ( // Each of the following arrays contains mappings of how to handle enum // values for various enum types in gopacket/layers. // // So, EthernetTypeMetadata[2] contains information on how to handle EthernetType // 2, including which name to give it and which decoder to use to decode // packet data of that type. These arrays are filled by default with all of the // protocols gopacket/layers knows how to handle, but users of the library can // add new decoders or override existing ones. For example, if you write a better // TCP decoder, you can override IPProtocolMetadata[IPProtocolTCP].DecodeWith // with your new decoder, and all gopacket/layers decoding will use your new // decoder whenever they encounter that IPProtocol. EthernetTypeMetadata [65536]EnumMetadata IPProtocolMetadata [265]EnumMetadata SCTPChunkTypeMetadata [265]EnumMetadata PPPTypeMetadata [65536]EnumMetadata PPPoECodeMetadata [256]EnumMetadata LinkTypeMetadata [256]EnumMetadata FDDIFrameControlMetadata [256]EnumMetadata EAPOLTypeMetadata [256]EnumMetadata ProtocolFamilyMetadata [256]EnumMetadata Dot11TypeMetadata [256]EnumMetadata USBTypeMetadata [256]EnumMetadata )
var ( LayerTypeARP = gopacket.RegisterLayerType(10, gopacket.LayerTypeMetadata{"ARP", gopacket.DecodeFunc(decodeARP)}) LayerTypeCiscoDiscovery = gopacket.RegisterLayerType(11, gopacket.LayerTypeMetadata{"CiscoDiscovery", gopacket.DecodeFunc(decodeCiscoDiscovery)}) LayerTypeEthernetCTP = gopacket.RegisterLayerType(12, gopacket.LayerTypeMetadata{"EthernetCTP", gopacket.DecodeFunc(decodeEthernetCTP)}) LayerTypeEthernetCTPForwardData = gopacket.RegisterLayerType(13, gopacket.LayerTypeMetadata{"EthernetCTPForwardData", nil}) LayerTypeEthernetCTPReply = gopacket.RegisterLayerType(14, gopacket.LayerTypeMetadata{"EthernetCTPReply", nil}) LayerTypeDot1Q = gopacket.RegisterLayerType(15, gopacket.LayerTypeMetadata{"Dot1Q", gopacket.DecodeFunc(decodeDot1Q)}) LayerTypeEtherIP = gopacket.RegisterLayerType(16, gopacket.LayerTypeMetadata{"EtherIP", gopacket.DecodeFunc(decodeEtherIP)}) LayerTypeEthernet = gopacket.RegisterLayerType(17, gopacket.LayerTypeMetadata{"Ethernet", gopacket.DecodeFunc(decodeEthernet)}) LayerTypeGRE = gopacket.RegisterLayerType(18, gopacket.LayerTypeMetadata{"GRE", gopacket.DecodeFunc(decodeGRE)}) LayerTypeICMPv4 = gopacket.RegisterLayerType(19, gopacket.LayerTypeMetadata{"ICMPv4", gopacket.DecodeFunc(decodeICMPv4)}) LayerTypeIPv4 = gopacket.RegisterLayerType(20, gopacket.LayerTypeMetadata{"IPv4", gopacket.DecodeFunc(decodeIPv4)}) LayerTypeIPv6 = gopacket.RegisterLayerType(21, gopacket.LayerTypeMetadata{"IPv6", gopacket.DecodeFunc(decodeIPv6)}) LayerTypeLLC = gopacket.RegisterLayerType(22, gopacket.LayerTypeMetadata{"LLC", gopacket.DecodeFunc(decodeLLC)}) LayerTypeSNAP = gopacket.RegisterLayerType(23, gopacket.LayerTypeMetadata{"SNAP", gopacket.DecodeFunc(decodeSNAP)}) LayerTypeMPLS = gopacket.RegisterLayerType(24, gopacket.LayerTypeMetadata{"MPLS", gopacket.DecodeFunc(decodeMPLS)}) LayerTypePPP = gopacket.RegisterLayerType(25, gopacket.LayerTypeMetadata{"PPP", gopacket.DecodeFunc(decodePPP)}) LayerTypePPPoE = gopacket.RegisterLayerType(26, gopacket.LayerTypeMetadata{"PPPoE", gopacket.DecodeFunc(decodePPPoE)}) LayerTypeRUDP = gopacket.RegisterLayerType(27, gopacket.LayerTypeMetadata{"RUDP", gopacket.DecodeFunc(decodeRUDP)}) LayerTypeSCTP = gopacket.RegisterLayerType(28, gopacket.LayerTypeMetadata{"SCTP", gopacket.DecodeFunc(decodeSCTP)}) LayerTypeSCTPUnknownChunkType = gopacket.RegisterLayerType(29, gopacket.LayerTypeMetadata{"SCTPUnknownChunkType", nil}) LayerTypeSCTPData = gopacket.RegisterLayerType(30, gopacket.LayerTypeMetadata{"SCTPData", nil}) LayerTypeSCTPInit = gopacket.RegisterLayerType(31, gopacket.LayerTypeMetadata{"SCTPInit", nil}) LayerTypeSCTPSack = gopacket.RegisterLayerType(32, gopacket.LayerTypeMetadata{"SCTPSack", nil}) LayerTypeSCTPHeartbeat = gopacket.RegisterLayerType(33, gopacket.LayerTypeMetadata{"SCTPHeartbeat", nil}) LayerTypeSCTPError = gopacket.RegisterLayerType(34, gopacket.LayerTypeMetadata{"SCTPError", nil}) LayerTypeSCTPShutdown = gopacket.RegisterLayerType(35, gopacket.LayerTypeMetadata{"SCTPShutdown", nil}) LayerTypeSCTPShutdownAck = gopacket.RegisterLayerType(36, gopacket.LayerTypeMetadata{"SCTPShutdownAck", nil}) LayerTypeSCTPCookieEcho = gopacket.RegisterLayerType(37, gopacket.LayerTypeMetadata{"SCTPCookieEcho", nil}) LayerTypeSCTPEmptyLayer = gopacket.RegisterLayerType(38, gopacket.LayerTypeMetadata{"SCTPEmptyLayer", nil}) LayerTypeSCTPInitAck = gopacket.RegisterLayerType(39, gopacket.LayerTypeMetadata{"SCTPInitAck", nil}) LayerTypeSCTPHeartbeatAck = gopacket.RegisterLayerType(40, gopacket.LayerTypeMetadata{"SCTPHeartbeatAck", nil}) LayerTypeSCTPAbort = gopacket.RegisterLayerType(41, gopacket.LayerTypeMetadata{"SCTPAbort", nil}) LayerTypeSCTPShutdownComplete = gopacket.RegisterLayerType(42, gopacket.LayerTypeMetadata{"SCTPShutdownComplete", nil}) LayerTypeSCTPCookieAck = gopacket.RegisterLayerType(43, gopacket.LayerTypeMetadata{"SCTPCookieAck", nil}) LayerTypeTCP = gopacket.RegisterLayerType(44, gopacket.LayerTypeMetadata{"TCP", gopacket.DecodeFunc(decodeTCP)}) LayerTypeUDP = gopacket.RegisterLayerType(45, gopacket.LayerTypeMetadata{"UDP", gopacket.DecodeFunc(decodeUDP)}) LayerTypeIPv6HopByHop = gopacket.RegisterLayerType(46, gopacket.LayerTypeMetadata{"IPv6HopByHop", gopacket.DecodeFunc(decodeIPv6HopByHop)}) LayerTypeIPv6Routing = gopacket.RegisterLayerType(47, gopacket.LayerTypeMetadata{"IPv6Routing", gopacket.DecodeFunc(decodeIPv6Routing)}) LayerTypeIPv6Fragment = gopacket.RegisterLayerType(48, gopacket.LayerTypeMetadata{"IPv6Fragment", gopacket.DecodeFunc(decodeIPv6Fragment)}) LayerTypeIPv6Destination = gopacket.RegisterLayerType(49, gopacket.LayerTypeMetadata{"IPv6Destination", gopacket.DecodeFunc(decodeIPv6Destination)}) LayerTypeIPSecAH = gopacket.RegisterLayerType(50, gopacket.LayerTypeMetadata{"IPSecAH", gopacket.DecodeFunc(decodeIPSecAH)}) LayerTypeIPSecESP = gopacket.RegisterLayerType(51, gopacket.LayerTypeMetadata{"IPSecESP", gopacket.DecodeFunc(decodeIPSecESP)}) LayerTypeUDPLite = gopacket.RegisterLayerType(52, gopacket.LayerTypeMetadata{"UDPLite", gopacket.DecodeFunc(decodeUDPLite)}) LayerTypeFDDI = gopacket.RegisterLayerType(53, gopacket.LayerTypeMetadata{"FDDI", gopacket.DecodeFunc(decodeFDDI)}) LayerTypeLoopback = gopacket.RegisterLayerType(54, gopacket.LayerTypeMetadata{"Loopback", gopacket.DecodeFunc(decodeLoopback)}) LayerTypeEAP = gopacket.RegisterLayerType(55, gopacket.LayerTypeMetadata{"EAP", gopacket.DecodeFunc(decodeEAP)}) LayerTypeEAPOL = gopacket.RegisterLayerType(56, gopacket.LayerTypeMetadata{"EAPOL", gopacket.DecodeFunc(decodeEAPOL)}) LayerTypeICMPv6 = gopacket.RegisterLayerType(57, gopacket.LayerTypeMetadata{"ICMPv6", gopacket.DecodeFunc(decodeICMPv6)}) LayerTypeLinkLayerDiscovery = gopacket.RegisterLayerType(58, gopacket.LayerTypeMetadata{"LinkLayerDiscovery", gopacket.DecodeFunc(decodeLinkLayerDiscovery)}) LayerTypeCiscoDiscoveryInfo = gopacket.RegisterLayerType(59, gopacket.LayerTypeMetadata{"CiscoDiscoveryInfo", gopacket.DecodeFunc(decodeCiscoDiscoveryInfo)}) LayerTypeLinkLayerDiscoveryInfo = gopacket.RegisterLayerType(60, gopacket.LayerTypeMetadata{"LinkLayerDiscoveryInfo", nil}) LayerTypeNortelDiscovery = gopacket.RegisterLayerType(61, gopacket.LayerTypeMetadata{"NortelDiscovery", gopacket.DecodeFunc(decodeNortelDiscovery)}) LayerTypeIGMP = gopacket.RegisterLayerType(62, gopacket.LayerTypeMetadata{"IGMP", gopacket.DecodeFunc(decodeIGMP)}) LayerTypePFLog = gopacket.RegisterLayerType(63, gopacket.LayerTypeMetadata{"PFLog", gopacket.DecodeFunc(decodePFLog)}) LayerTypeRadioTap = gopacket.RegisterLayerType(64, gopacket.LayerTypeMetadata{"RadioTap", gopacket.DecodeFunc(decodeRadioTap)}) LayerTypeDot11 = gopacket.RegisterLayerType(65, gopacket.LayerTypeMetadata{"Dot11", gopacket.DecodeFunc(decodeDot11)}) LayerTypeDot11Ctrl = gopacket.RegisterLayerType(66, gopacket.LayerTypeMetadata{"Dot11Ctrl", gopacket.DecodeFunc(decodeDot11Ctrl)}) LayerTypeDot11Data = gopacket.RegisterLayerType(67, gopacket.LayerTypeMetadata{"Dot11Data", gopacket.DecodeFunc(decodeDot11Data)}) LayerTypeDot11DataCFAck = gopacket.RegisterLayerType(68, gopacket.LayerTypeMetadata{"Dot11DataCFAck", gopacket.DecodeFunc(decodeDot11DataCFAck)}) LayerTypeDot11DataCFPoll = gopacket.RegisterLayerType(69, gopacket.LayerTypeMetadata{"Dot11DataCFPoll", gopacket.DecodeFunc(decodeDot11DataCFPoll)}) LayerTypeDot11DataCFAckPoll = gopacket.RegisterLayerType(70, gopacket.LayerTypeMetadata{"Dot11DataCFAckPoll", gopacket.DecodeFunc(decodeDot11DataCFAckPoll)}) LayerTypeDot11DataNull = gopacket.RegisterLayerType(71, gopacket.LayerTypeMetadata{"Dot11DataNull", gopacket.DecodeFunc(decodeDot11DataNull)}) LayerTypeDot11DataCFAckNoData = gopacket.RegisterLayerType(72, gopacket.LayerTypeMetadata{"Dot11DataCFAck", gopacket.DecodeFunc(decodeDot11DataCFAck)}) LayerTypeDot11DataCFPollNoData = gopacket.RegisterLayerType(73, gopacket.LayerTypeMetadata{"Dot11DataCFPoll", gopacket.DecodeFunc(decodeDot11DataCFPoll)}) LayerTypeDot11DataCFAckPollNoData = gopacket.RegisterLayerType(74, gopacket.LayerTypeMetadata{"Dot11DataCFAckPoll", gopacket.DecodeFunc(decodeDot11DataCFAckPoll)}) LayerTypeDot11DataQOSData = gopacket.RegisterLayerType(75, gopacket.LayerTypeMetadata{"Dot11DataQOSData", gopacket.DecodeFunc(decodeDot11DataQOSData)}) LayerTypeDot11DataQOSDataCFAck = gopacket.RegisterLayerType(76, gopacket.LayerTypeMetadata{"Dot11DataQOSDataCFAck", gopacket.DecodeFunc(decodeDot11DataQOSDataCFAck)}) LayerTypeDot11DataQOSDataCFPoll = gopacket.RegisterLayerType(77, gopacket.LayerTypeMetadata{"Dot11DataQOSDataCFPoll", gopacket.DecodeFunc(decodeDot11DataQOSDataCFPoll)}) LayerTypeDot11DataQOSDataCFAckPoll = gopacket.RegisterLayerType(78, gopacket.LayerTypeMetadata{"Dot11DataQOSDataCFAckPoll", gopacket.DecodeFunc(decodeDot11DataQOSDataCFAckPoll)}) LayerTypeDot11DataQOSNull = gopacket.RegisterLayerType(79, gopacket.LayerTypeMetadata{"Dot11DataQOSNull", gopacket.DecodeFunc(decodeDot11DataQOSNull)}) LayerTypeDot11DataQOSCFPollNoData = gopacket.RegisterLayerType(80, gopacket.LayerTypeMetadata{"Dot11DataQOSCFPoll", gopacket.DecodeFunc(decodeDot11DataQOSCFPollNoData)}) LayerTypeDot11DataQOSCFAckPollNoData = gopacket.RegisterLayerType(81, gopacket.LayerTypeMetadata{"Dot11DataQOSCFAckPoll", gopacket.DecodeFunc(decodeDot11DataQOSCFAckPollNoData)}) LayerTypeDot11InformationElement = gopacket.RegisterLayerType(82, gopacket.LayerTypeMetadata{"Dot11InformationElement", gopacket.DecodeFunc(decodeDot11InformationElement)}) LayerTypeDot11CtrlCTS = gopacket.RegisterLayerType(83, gopacket.LayerTypeMetadata{"Dot11CtrlCTS", gopacket.DecodeFunc(decodeDot11CtrlCTS)}) LayerTypeDot11CtrlRTS = gopacket.RegisterLayerType(84, gopacket.LayerTypeMetadata{"Dot11CtrlRTS", gopacket.DecodeFunc(decodeDot11CtrlRTS)}) LayerTypeDot11CtrlBlockAckReq = gopacket.RegisterLayerType(85, gopacket.LayerTypeMetadata{"Dot11CtrlBlockAckReq", gopacket.DecodeFunc(decodeDot11CtrlBlockAckReq)}) LayerTypeDot11CtrlBlockAck = gopacket.RegisterLayerType(86, gopacket.LayerTypeMetadata{"Dot11CtrlBlockAck", gopacket.DecodeFunc(decodeDot11CtrlBlockAck)}) LayerTypeDot11CtrlPowersavePoll = gopacket.RegisterLayerType(87, gopacket.LayerTypeMetadata{"Dot11CtrlPowersavePoll", gopacket.DecodeFunc(decodeDot11CtrlPowersavePoll)}) LayerTypeDot11CtrlAck = gopacket.RegisterLayerType(88, gopacket.LayerTypeMetadata{"Dot11CtrlAck", gopacket.DecodeFunc(decodeDot11CtrlAck)}) LayerTypeDot11CtrlCFEnd = gopacket.RegisterLayerType(89, gopacket.LayerTypeMetadata{"Dot11CtrlCFEnd", gopacket.DecodeFunc(decodeDot11CtrlCFEnd)}) LayerTypeDot11CtrlCFEndAck = gopacket.RegisterLayerType(90, gopacket.LayerTypeMetadata{"Dot11CtrlCFEndAck", gopacket.DecodeFunc(decodeDot11CtrlCFEndAck)}) LayerTypeDot11MgmtAssociationReq = gopacket.RegisterLayerType(91, gopacket.LayerTypeMetadata{"Dot11MgmtAssociationReq", gopacket.DecodeFunc(decodeDot11MgmtAssociationReq)}) LayerTypeDot11MgmtAssociationResp = gopacket.RegisterLayerType(92, gopacket.LayerTypeMetadata{"Dot11MgmtAssociationResp", gopacket.DecodeFunc(decodeDot11MgmtAssociationResp)}) LayerTypeDot11MgmtReassociationReq = gopacket.RegisterLayerType(93, gopacket.LayerTypeMetadata{"Dot11MgmtReassociationReq", gopacket.DecodeFunc(decodeDot11MgmtReassociationReq)}) LayerTypeDot11MgmtReassociationResp = gopacket.RegisterLayerType(94, gopacket.LayerTypeMetadata{"Dot11MgmtReassociationResp", gopacket.DecodeFunc(decodeDot11MgmtReassociationResp)}) LayerTypeDot11MgmtProbeReq = gopacket.RegisterLayerType(95, gopacket.LayerTypeMetadata{"Dot11MgmtProbeReq", gopacket.DecodeFunc(decodeDot11MgmtProbeReq)}) LayerTypeDot11MgmtProbeResp = gopacket.RegisterLayerType(96, gopacket.LayerTypeMetadata{"Dot11MgmtProbeResp", gopacket.DecodeFunc(decodeDot11MgmtProbeResp)}) LayerTypeDot11MgmtMeasurementPilot = gopacket.RegisterLayerType(97, gopacket.LayerTypeMetadata{"Dot11MgmtMeasurementPilot", gopacket.DecodeFunc(decodeDot11MgmtMeasurementPilot)}) LayerTypeDot11MgmtBeacon = gopacket.RegisterLayerType(98, gopacket.LayerTypeMetadata{"Dot11MgmtBeacon", gopacket.DecodeFunc(decodeDot11MgmtBeacon)}) LayerTypeDot11MgmtATIM = gopacket.RegisterLayerType(99, gopacket.LayerTypeMetadata{"Dot11MgmtATIM", gopacket.DecodeFunc(decodeDot11MgmtATIM)}) LayerTypeDot11MgmtDisassociation = gopacket.RegisterLayerType(100, gopacket.LayerTypeMetadata{"Dot11MgmtDisassociation", gopacket.DecodeFunc(decodeDot11MgmtDisassociation)}) LayerTypeDot11MgmtAuthentication = gopacket.RegisterLayerType(101, gopacket.LayerTypeMetadata{"Dot11MgmtAuthentication", gopacket.DecodeFunc(decodeDot11MgmtAuthentication)}) LayerTypeDot11MgmtDeauthentication = gopacket.RegisterLayerType(102, gopacket.LayerTypeMetadata{"Dot11MgmtDeauthentication", gopacket.DecodeFunc(decodeDot11MgmtDeauthentication)}) LayerTypeDot11MgmtAction = gopacket.RegisterLayerType(103, gopacket.LayerTypeMetadata{"Dot11MgmtAction", gopacket.DecodeFunc(decodeDot11MgmtAction)}) LayerTypeDot11MgmtActionNoAck = gopacket.RegisterLayerType(104, gopacket.LayerTypeMetadata{"Dot11MgmtActionNoAck", gopacket.DecodeFunc(decodeDot11MgmtActionNoAck)}) LayerTypeDot11MgmtArubaWLAN = gopacket.RegisterLayerType(105, gopacket.LayerTypeMetadata{"Dot11MgmtArubaWLAN", gopacket.DecodeFunc(decodeDot11MgmtArubaWLAN)}) LayerTypeDot11WEP = gopacket.RegisterLayerType(106, gopacket.LayerTypeMetadata{"Dot11WEP", gopacket.DecodeFunc(decodeDot11WEP)}) LayerTypeDNS = gopacket.RegisterLayerType(107, gopacket.LayerTypeMetadata{"DNS", gopacket.DecodeFunc(decodeDNS)}) LayerTypeUSB = gopacket.RegisterLayerType(108, gopacket.LayerTypeMetadata{"USB", gopacket.DecodeFunc(decodeUSB)}) LayerTypeUSBRequestBlockSetup = gopacket.RegisterLayerType(109, gopacket.LayerTypeMetadata{"USBRequestBlockSetup", gopacket.DecodeFunc(decodeUSBRequestBlockSetup)}) LayerTypeUSBControl = gopacket.RegisterLayerType(110, gopacket.LayerTypeMetadata{"USBControl", gopacket.DecodeFunc(decodeUSBControl)}) LayerTypeUSBInterrupt = gopacket.RegisterLayerType(111, gopacket.LayerTypeMetadata{"USBInterrupt", gopacket.DecodeFunc(decodeUSBInterrupt)}) LayerTypeUSBBulk = gopacket.RegisterLayerType(112, gopacket.LayerTypeMetadata{"USBBulk", gopacket.DecodeFunc(decodeUSBBulk)}) LayerTypeLinuxSLL = gopacket.RegisterLayerType(113, gopacket.LayerTypeMetadata{"Linux SLL", gopacket.DecodeFunc(decodeLinuxSLL)}) LayerTypeSFlow = gopacket.RegisterLayerType(114, gopacket.LayerTypeMetadata{"SFlow", gopacket.DecodeFunc(decodeSFlow)}) )
var ( // LayerClassIPNetwork contains TCP/IP network layer types. LayerClassIPNetwork = gopacket.NewLayerClass([]gopacket.LayerType{ LayerTypeIPv4, LayerTypeIPv6, }) // LayerClassIPTransport contains TCP/IP transport layer types. LayerClassIPTransport = gopacket.NewLayerClass([]gopacket.LayerType{ LayerTypeTCP, LayerTypeUDP, LayerTypeSCTP, }) // LayerClassIPControl contains TCP/IP control protocols. LayerClassIPControl = gopacket.NewLayerClass([]gopacket.LayerType{ LayerTypeICMPv4, LayerTypeICMPv6, }) // LayerClassSCTPChunk contains SCTP chunk types (not the top-level SCTP // layer). LayerClassSCTPChunk = gopacket.NewLayerClass([]gopacket.LayerType{ LayerTypeSCTPUnknownChunkType, LayerTypeSCTPData, LayerTypeSCTPInit, LayerTypeSCTPSack, LayerTypeSCTPHeartbeat, LayerTypeSCTPError, LayerTypeSCTPShutdown, LayerTypeSCTPShutdownAck, LayerTypeSCTPCookieEcho, LayerTypeSCTPEmptyLayer, LayerTypeSCTPInitAck, LayerTypeSCTPHeartbeatAck, LayerTypeSCTPAbort, LayerTypeSCTPShutdownComplete, LayerTypeSCTPCookieAck, }) // LayerClassIPv6Extension contains IPv6 extension headers. LayerClassIPv6Extension = gopacket.NewLayerClass([]gopacket.LayerType{ LayerTypeIPv6HopByHop, LayerTypeIPv6Routing, LayerTypeIPv6Fragment, LayerTypeIPv6Destination, }) LayerClassIPSec = gopacket.NewLayerClass([]gopacket.LayerType{ LayerTypeIPSecAH, LayerTypeIPSecESP, }) )
var EthernetBroadcast = net.HardwareAddr{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
EthernetBroadcast is the broadcast MAC address used by Ethernet.
var MPLSPayloadDecoder gopacket.Decoder = ProtocolGuessingDecoder{}
MPLSPayloadDecoder is the decoder used to data encapsulated by each MPLS layer. MPLS contains no type information, so we have to explicitly decide which decoder to use. This is initially set to ProtocolGuessingDecoder, our simple attempt at guessing protocols based on the first few bytes of data available to us. However, if you know that in your environment MPLS always encapsulates a specific protocol, you may reset this.
var PPPEndpoint = gopacket.NewEndpoint(EndpointPPP, nil)
PPPEndpoint is a singleton endpoint for PPP. Since there is no actual addressing for the two ends of a PPP connection, we use a singleton value named 'point' for each endpoint.
var PPPFlow = gopacket.NewFlow(EndpointPPP, nil, nil)
PPPFlow is a singleton flow for PPP. Since there is no actual addressing for the two ends of a PPP connection, we use a singleton value to represent the flow for all PPP connections.
var RUDPPortNames = map[RUDPPort]string{}
RUDPPortNames contains the string names for all RUDP ports.
var SCTPPortNames = sctpPortNames
SCTPPortNames contains the port names for all SCTP ports.
var TCPPortNames = tcpPortNames
TCPPortNames contains the port names for all TCP ports.
var UDPLitePortNames = map[UDPLitePort]string{}
UDPLitePortNames contains the string names for all UDPLite ports.
var UDPPortNames = udpPortNames
UDPPortNames contains the port names for all UDP ports.
Functions ¶
func NewIPEndpoint ¶
NewIPEndpoint creates a new IP (v4 or v6) endpoint from a net.IP address. It returns gopacket.InvalidEndpoint if the IP address is invalid.
func NewMACEndpoint ¶
func NewMACEndpoint(a net.HardwareAddr) gopacket.Endpoint
NewMACEndpoint returns a new MAC address endpoint.
func NewRUDPPortEndpoint ¶
NewRUDPPortEndpoint returns an endpoint based on a RUDP port.
func NewSCTPPortEndpoint ¶
NewSCTPPortEndpoint returns an endpoint based on a SCTP port.
func NewTCPPortEndpoint ¶
NewTCPPortEndpoint returns an endpoint based on a TCP port.
func NewUDPLitePortEndpoint ¶
func NewUDPLitePortEndpoint(p UDPLitePort) gopacket.Endpoint
NewUDPLitePortEndpoint returns an endpoint based on a UDPLite port.
func NewUDPPortEndpoint ¶
NewUDPPortEndpoint returns an endpoint based on a UDP port.
Types ¶
type ARP ¶
type ARP struct { BaseLayer AddrType LinkType Protocol EthernetType HwAddressSize uint8 ProtAddressSize uint8 Operation uint16 SourceHwAddress []byte SourceProtAddress []byte DstHwAddress []byte DstProtAddress []byte }
ARP is a ARP packet header.
func (*ARP) CanDecode ¶
func (arp *ARP) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*ARP) DecodeFromBytes ¶
func (arp *ARP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*ARP) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
func (*ARP) SerializeTo ¶ added in v1.0.1
func (arp *ARP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type BaseLayer ¶
type BaseLayer struct { // Contents is the set of bytes that make up this layer. IE: for an // Ethernet packet, this would be the set of bytes making up the // Ethernet frame. Contents []byte // Payload is the set of bytes contained by (but not part of) this // Layer. Again, to take Ethernet as an example, this would be the // set of bytes encapsulated by the Ethernet protocol. Payload []byte }
BaseLayer is a convenience struct which implements the LayerData and LayerPayload functions of the Layer interface.
func (*BaseLayer) LayerContents ¶
LayerContents returns the bytes of the packet layer.
func (*BaseLayer) LayerPayload ¶
LayerPayload returns the bytes contained within the packet layer.
type CDPAddressType ¶
type CDPAddressType uint64
const ( CDPAddressTypeCLNP CDPAddressType = 0x81 CDPAddressTypeIPV4 CDPAddressType = 0xcc CDPAddressTypeIPV6 CDPAddressType = 0xaaaa030000000800 CDPAddressTypeDECNET CDPAddressType = 0xaaaa030000006003 CDPAddressTypeAPPLETALK CDPAddressType = 0xaaaa03000000809b CDPAddressTypeIPX CDPAddressType = 0xaaaa030000008137 CDPAddressTypeVINES CDPAddressType = 0xaaaa0300000080c4 CDPAddressTypeXNS CDPAddressType = 0xaaaa030000000600 CDPAddressTypeAPOLLO CDPAddressType = 0xaaaa030000008019 )
CDP Address types.
func (CDPAddressType) String ¶
func (a CDPAddressType) String() (s string)
type CDPCapabilities ¶
type CDPCapabilities struct { L3Router bool TBBridge bool SPBridge bool L2Switch bool IsHost bool IGMPFilter bool L1Repeater bool IsPhone bool RemotelyManaged bool }
CDPCapabilities represents the capabilities of a device
type CDPCapability ¶
type CDPCapability uint32
const ( CDPCapMaskRouter CDPCapability = 0x0001 CDPCapMaskTBBridge CDPCapability = 0x0002 CDPCapMaskSPBridge CDPCapability = 0x0004 CDPCapMaskSwitch CDPCapability = 0x0008 CDPCapMaskHost CDPCapability = 0x0010 CDPCapMaskIGMPFilter CDPCapability = 0x0020 CDPCapMaskRepeater CDPCapability = 0x0040 CDPCapMaskPhone CDPCapability = 0x0080 CDPCapMaskRemote CDPCapability = 0x0100 )
type CDPEnergyWise ¶
type CDPEnergyWise struct { EncryptedData []byte Unknown1 uint32 SequenceNumber uint32 ModelNumber string Unknown2 uint16 HardwareID string SerialNum string Unknown3 []byte Role string Domain string Name string ReplyUnknown1 []byte ReplyPort []byte ReplyAddress []byte ReplyUnknown2 []byte ReplyUnknown3 []byte }
type CDPEnergyWiseSubtype ¶
type CDPEnergyWiseSubtype uint32
const ( CDPEnergyWiseRole CDPEnergyWiseSubtype = 0x00000007 CDPEnergyWiseDomain CDPEnergyWiseSubtype = 0x00000008 CDPEnergyWiseName CDPEnergyWiseSubtype = 0x00000009 CDPEnergyWiseReplyTo CDPEnergyWiseSubtype = 0x00000017 )
func (CDPEnergyWiseSubtype) String ¶
func (t CDPEnergyWiseSubtype) String() (s string)
type CDPHello ¶
type CDPHello struct { OUI []byte ProtocolID uint16 ClusterMaster net.IP Unknown1 net.IP Version byte SubVersion byte Status byte Unknown2 byte ClusterCommander net.HardwareAddr SwitchMAC net.HardwareAddr Unknown3 byte ManagementVLAN uint16 }
CDPHello is a Cisco Hello message (undocumented, hence the "Unknown" fields)
type CDPLocation ¶
type CDPPowerDialogue ¶
CDPPowerDialogue encapsulates a Power Query/Reply
type CDPSparePairPoE ¶
type CDPTLVType ¶
type CDPTLVType uint16
CDPTLVType is the type of each TLV value in a CiscoDiscovery packet.
const ( CDPTLVDevID CDPTLVType = 0x0001 CDPTLVAddress CDPTLVType = 0x0002 CDPTLVPortID CDPTLVType = 0x0003 CDPTLVCapabilities CDPTLVType = 0x0004 CDPTLVVersion CDPTLVType = 0x0005 CDPTLVPlatform CDPTLVType = 0x0006 CDPTLVIPPrefix CDPTLVType = 0x0007 CDPTLVHello CDPTLVType = 0x0008 CDPTLVVTPDomain CDPTLVType = 0x0009 CDPTLVNativeVLAN CDPTLVType = 0x000a CDPTLVFullDuplex CDPTLVType = 0x000b CDPTLVVLANReply CDPTLVType = 0x000e CDPTLVVLANQuery CDPTLVType = 0x000f CDPTLVPower CDPTLVType = 0x0010 CDPTLVMTU CDPTLVType = 0x0011 CDPTLVExtendedTrust CDPTLVType = 0x0012 CDPTLVUntrustedCOS CDPTLVType = 0x0013 CDPTLVSysName CDPTLVType = 0x0014 CDPTLVSysOID CDPTLVType = 0x0015 CDPTLVMgmtAddresses CDPTLVType = 0x0016 CDPTLVLocation CDPTLVType = 0x0017 CDPTLVExternalPortID CDPTLVType = 0x0018 CDPTLVPowerRequested CDPTLVType = 0x0019 CDPTLVPowerAvailable CDPTLVType = 0x001a CDPTLVPortUnidirectional CDPTLVType = 0x001b CDPTLVEnergyWise CDPTLVType = 0x001d CDPTLVSparePairPOE CDPTLVType = 0x001f )
func (CDPTLVType) String ¶
func (t CDPTLVType) String() (s string)
type CDPVLANDialogue ¶
CDPVLANDialogue encapsulates a VLAN Query/Reply
type CiscoDiscovery ¶
type CiscoDiscovery struct { BaseLayer Version byte TTL byte Checksum uint16 Values []CiscoDiscoveryValue }
CiscoDiscovery is a packet layer containing the Cisco Discovery Protocol. See http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm#31885
func (*CiscoDiscovery) LayerType ¶
func (c *CiscoDiscovery) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeCiscoDiscovery.
type CiscoDiscoveryInfo ¶
type CiscoDiscoveryInfo struct { BaseLayer CDPHello DeviceID string Addresses []net.IP PortID string Capabilities CDPCapabilities Version string Platform string IPPrefixes []net.IPNet VTPDomain string NativeVLAN uint16 FullDuplex bool VLANReply CDPVLANDialogue VLANQuery CDPVLANDialogue PowerConsumption uint16 MTU uint32 ExtendedTrust uint8 UntrustedCOS uint8 SysName string SysOID string MgmtAddresses []net.IP Location CDPLocation PowerRequest CDPPowerDialogue PowerAvailable CDPPowerDialogue SparePairPoe CDPSparePairPoE EnergyWise CDPEnergyWise Unknown []CiscoDiscoveryValue }
CiscoDiscoveryInfo represents the decoded details for a set of CiscoDiscoveryValues
func (*CiscoDiscoveryInfo) LayerType ¶
func (c *CiscoDiscoveryInfo) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeCiscoDiscoveryInfo.
type CiscoDiscoveryValue ¶
type CiscoDiscoveryValue struct { Type CDPTLVType Length uint16 Value []byte }
CiscoDiscoveryValue is a TLV value inside a CiscoDiscovery packet layer.
type DNS ¶ added in v1.1.7
type DNS struct { BaseLayer // Header fields ID uint16 QR bool OpCode DNSOpCode AA bool // Authoritative answer TC bool // Truncated RD bool // Recursion desired RA bool // Recursion available Z uint8 // Resrved for future use ResponseCode DNSResponseCode QDCount uint16 // Number of questions to expect ANCount uint16 // Number of answers to expect NSCount uint16 // Number of authorities to expect ARCount uint16 // Number of additional records to expect // Entries Questions []DNSQuestion Answers []DNSResourceRecord Authorities []DNSResourceRecord Additionals []DNSResourceRecord // contains filtered or unexported fields }
DNS contains data from a single Domain Name Service packet.
func (*DNS) CanDecode ¶ added in v1.1.7
func (d *DNS) CanDecode() gopacket.LayerClass
func (*DNS) DecodeFromBytes ¶ added in v1.1.7
func (d *DNS) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the slice into the DNS struct.
func (*DNS) NextLayerType ¶ added in v1.1.7
type DNSQuestion ¶ added in v1.1.7
type DNSResourceRecord ¶ added in v1.1.7
type DNSResourceRecord struct { // Header Name []byte Type DNSType Class DNSClass TTL uint32 // RData Raw Values DataLength uint16 Data []byte // RDATA Decoded Values IP net.IP NS, CNAME, PTR, TXT []byte SOA DNSSOA SRV DNSSRV MX DNSMX }
func (*DNSResourceRecord) String ¶ added in v1.1.7
func (rr *DNSResourceRecord) String() string
type DNSResponseCode ¶ added in v1.1.7
type DNSResponseCode uint8
const ( DNSResponseCodeFormErr DNSResponseCode = 1 // Format Error [RFC1035] DNSResponseCodeServFail DNSResponseCode = 2 // Server Failure [RFC1035] DNSResponseCodeNXDomain DNSResponseCode = 3 // Non-Existent Domain [RFC1035] DNSResponseCodeNotImp DNSResponseCode = 4 // Not Implemented [RFC1035] DNSResponseCodeRefused DNSResponseCode = 5 // Query Refused [RFC1035] DNSResponseCodeYXDomain DNSResponseCode = 6 // Name Exists when it should not [RFC2136] DNSResponseCodeYXRRSet DNSResponseCode = 7 // RR Set Exists when it should not [RFC2136] DNSResponseCodeNXRRSet DNSResponseCode = 8 // RR Set that should exist does not [RFC2136] DNSResponseCodeNotAuth DNSResponseCode = 9 // Server Not Authoritative for zone [RFC2136] DNSResponseCodeNotZone DNSResponseCode = 10 // Name not contained in zone [RFC2136] DNSResponseCodeBadVers DNSResponseCode = 16 // Bad OPT Version [RFC2671] DNSResponseCodeBadSig DNSResponseCode = 16 // TSIG Signature Failure [RFC2845] DNSResponseCodeBadKey DNSResponseCode = 17 // Key not recognized [RFC2845] DNSResponseCodeBadTime DNSResponseCode = 18 // Signature out of time window [RFC2845] DNSResponseCodeBadMode DNSResponseCode = 19 // Bad TKEY Mode [RFC2930] DNSResponseCodeBadName DNSResponseCode = 20 // Duplicate key name [RFC2930] DNSResponseCodeBadAlg DNSResponseCode = 21 // Algorithm not supported [RFC2930] DNSResponseCodeBadTruc DNSResponseCode = 22 // Bad Truncation [RFC4635] )
func (DNSResponseCode) String ¶ added in v1.1.7
func (drc DNSResponseCode) String() string
type DNSType ¶ added in v1.1.7
type DNSType uint16
const ( DNSTypeA DNSType = 1 // a host address DNSTypeNS DNSType = 2 // an authoritative name server DNSTypeMD DNSType = 3 // a mail destination (Obsolete - use MX) DNSTypeMF DNSType = 4 // a mail forwarder (Obsolete - use MX) DNSTypeCNAME DNSType = 5 // the canonical name for an alias DNSTypeSOA DNSType = 6 // marks the start of a zone of authority DNSTypeMB DNSType = 7 // a mailbox domain name (EXPERIMENTAL) DNSTypeMG DNSType = 8 // a mail group member (EXPERIMENTAL) DNSTypeMR DNSType = 9 // a mail rename domain name (EXPERIMENTAL) DNSTypeNULL DNSType = 10 // a null RR (EXPERIMENTAL) DNSTypeWKS DNSType = 11 // a well known service description DNSTypePTR DNSType = 12 // a domain name pointer DNSTypeHINFO DNSType = 13 // host information DNSTypeMINFO DNSType = 14 // mailbox or mail list information DNSTypeMX DNSType = 15 // mail exchange DNSTypeTXT DNSType = 16 // text strings DNSTypeAAAA DNSType = 28 // a IPv6 host address [RFC3596] DNSTypeSRV DNSType = 33 // server discovery [RFC2782] [RFC6195] )
type Dot11 ¶ added in v1.1.4
type Dot11 struct { BaseLayer Type Dot11Type Proto uint8 Flags Dot11Flags DurationID uint16 Address1 net.HardwareAddr Address2 net.HardwareAddr Address3 net.HardwareAddr Address4 net.HardwareAddr SequenceNumber uint16 FragmentNumber uint16 Checksum uint32 }
Dot11 provides an IEEE 802.11 base packet header. See http://standards.ieee.org/findstds/standard/802.11-2012.html for excrutiating detail.
func (*Dot11) CanDecode ¶ added in v1.1.4
func (m *Dot11) CanDecode() gopacket.LayerClass
func (*Dot11) ChecksumValid ¶ added in v1.1.4
func (*Dot11) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11) NextLayerType ¶ added in v1.1.4
type Dot11AckPolicy ¶ added in v1.1.4
type Dot11AckPolicy uint8
const ( Dot11AckPolicyNormal Dot11AckPolicy = 0 Dot11AckPolicyNone Dot11AckPolicy = 1 Dot11AckPolicyNoExplicit Dot11AckPolicy = 2 Dot11AckPolicyBlock Dot11AckPolicy = 3 )
func (Dot11AckPolicy) String ¶ added in v1.1.4
func (a Dot11AckPolicy) String() string
String provides a human readable string for Dot11AckPolicy. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the Dot11AckPolicy value, not its string.
type Dot11Algorithm ¶ added in v1.1.4
type Dot11Algorithm uint16
const ( Dot11AlgorithmOpen Dot11Algorithm = 0 )
func (Dot11Algorithm) String ¶ added in v1.1.4
func (a Dot11Algorithm) String() string
String provides a human readable string for Dot11Algorithm. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the Dot11Algorithm value, not its string.
type Dot11Ctrl ¶ added in v1.1.4
type Dot11Ctrl struct {
BaseLayer
}
Dot11Ctrl is a base for all IEEE 802.11 control layers.
func (*Dot11Ctrl) CanDecode ¶ added in v1.1.4
func (m *Dot11Ctrl) CanDecode() gopacket.LayerClass
func (*Dot11Ctrl) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11Ctrl) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11Ctrl) NextLayerType ¶ added in v1.1.4
type Dot11CtrlAck ¶ added in v1.1.4
type Dot11CtrlAck struct {
Dot11Ctrl
}
func (*Dot11CtrlAck) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlAck) CanDecode() gopacket.LayerClass
func (*Dot11CtrlAck) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlAck) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlAck) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlAck) LayerType() gopacket.LayerType
type Dot11CtrlBlockAck ¶ added in v1.1.4
type Dot11CtrlBlockAck struct {
Dot11Ctrl
}
func (*Dot11CtrlBlockAck) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlBlockAck) CanDecode() gopacket.LayerClass
func (*Dot11CtrlBlockAck) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlBlockAck) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlBlockAck) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlBlockAck) LayerType() gopacket.LayerType
type Dot11CtrlBlockAckReq ¶ added in v1.1.4
type Dot11CtrlBlockAckReq struct {
Dot11Ctrl
}
func (*Dot11CtrlBlockAckReq) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlBlockAckReq) CanDecode() gopacket.LayerClass
func (*Dot11CtrlBlockAckReq) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlBlockAckReq) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlBlockAckReq) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlBlockAckReq) LayerType() gopacket.LayerType
type Dot11CtrlCFEnd ¶ added in v1.1.4
type Dot11CtrlCFEnd struct {
Dot11Ctrl
}
func (*Dot11CtrlCFEnd) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlCFEnd) CanDecode() gopacket.LayerClass
func (*Dot11CtrlCFEnd) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlCFEnd) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlCFEnd) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlCFEnd) LayerType() gopacket.LayerType
type Dot11CtrlCFEndAck ¶ added in v1.1.4
type Dot11CtrlCFEndAck struct {
Dot11Ctrl
}
func (*Dot11CtrlCFEndAck) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlCFEndAck) CanDecode() gopacket.LayerClass
func (*Dot11CtrlCFEndAck) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlCFEndAck) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlCFEndAck) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlCFEndAck) LayerType() gopacket.LayerType
type Dot11CtrlCTS ¶ added in v1.1.4
type Dot11CtrlCTS struct {
Dot11Ctrl
}
func (*Dot11CtrlCTS) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlCTS) CanDecode() gopacket.LayerClass
func (*Dot11CtrlCTS) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlCTS) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlCTS) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlCTS) LayerType() gopacket.LayerType
type Dot11CtrlPowersavePoll ¶ added in v1.1.4
type Dot11CtrlPowersavePoll struct {
Dot11Ctrl
}
func (*Dot11CtrlPowersavePoll) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlPowersavePoll) CanDecode() gopacket.LayerClass
func (*Dot11CtrlPowersavePoll) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlPowersavePoll) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlPowersavePoll) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlPowersavePoll) LayerType() gopacket.LayerType
type Dot11CtrlRTS ¶ added in v1.1.4
type Dot11CtrlRTS struct {
Dot11Ctrl
}
func (*Dot11CtrlRTS) CanDecode ¶ added in v1.1.4
func (m *Dot11CtrlRTS) CanDecode() gopacket.LayerClass
func (*Dot11CtrlRTS) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11CtrlRTS) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11CtrlRTS) LayerType ¶ added in v1.1.4
func (m *Dot11CtrlRTS) LayerType() gopacket.LayerType
type Dot11Data ¶ added in v1.1.4
type Dot11Data struct {
BaseLayer
}
Dot11Data is a base for all IEEE 802.11 data layers.
func (*Dot11Data) CanDecode ¶ added in v1.1.4
func (m *Dot11Data) CanDecode() gopacket.LayerClass
func (*Dot11Data) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11Data) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11Data) NextLayerType ¶ added in v1.1.4
type Dot11DataCFAck ¶ added in v1.1.4
type Dot11DataCFAck struct {
Dot11Data
}
func (*Dot11DataCFAck) CanDecode ¶ added in v1.1.4
func (m *Dot11DataCFAck) CanDecode() gopacket.LayerClass
func (*Dot11DataCFAck) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataCFAck) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataCFAck) LayerType ¶ added in v1.1.4
func (m *Dot11DataCFAck) LayerType() gopacket.LayerType
type Dot11DataCFAckNoData ¶ added in v1.1.4
type Dot11DataCFAckNoData struct {
Dot11Data
}
func (*Dot11DataCFAckNoData) CanDecode ¶ added in v1.1.4
func (m *Dot11DataCFAckNoData) CanDecode() gopacket.LayerClass
func (*Dot11DataCFAckNoData) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataCFAckNoData) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataCFAckNoData) LayerType ¶ added in v1.1.4
func (m *Dot11DataCFAckNoData) LayerType() gopacket.LayerType
type Dot11DataCFAckPoll ¶ added in v1.1.4
type Dot11DataCFAckPoll struct {
Dot11Data
}
func (*Dot11DataCFAckPoll) CanDecode ¶ added in v1.1.4
func (m *Dot11DataCFAckPoll) CanDecode() gopacket.LayerClass
func (*Dot11DataCFAckPoll) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataCFAckPoll) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataCFAckPoll) LayerType ¶ added in v1.1.4
func (m *Dot11DataCFAckPoll) LayerType() gopacket.LayerType
type Dot11DataCFAckPollNoData ¶ added in v1.1.4
type Dot11DataCFAckPollNoData struct {
Dot11Data
}
func (*Dot11DataCFAckPollNoData) CanDecode ¶ added in v1.1.4
func (m *Dot11DataCFAckPollNoData) CanDecode() gopacket.LayerClass
func (*Dot11DataCFAckPollNoData) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataCFAckPollNoData) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataCFAckPollNoData) LayerType ¶ added in v1.1.4
func (m *Dot11DataCFAckPollNoData) LayerType() gopacket.LayerType
type Dot11DataCFPoll ¶ added in v1.1.4
type Dot11DataCFPoll struct {
Dot11Data
}
func (*Dot11DataCFPoll) CanDecode ¶ added in v1.1.4
func (m *Dot11DataCFPoll) CanDecode() gopacket.LayerClass
func (*Dot11DataCFPoll) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataCFPoll) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataCFPoll) LayerType ¶ added in v1.1.4
func (m *Dot11DataCFPoll) LayerType() gopacket.LayerType
type Dot11DataCFPollNoData ¶ added in v1.1.4
type Dot11DataCFPollNoData struct {
Dot11Data
}
func (*Dot11DataCFPollNoData) CanDecode ¶ added in v1.1.4
func (m *Dot11DataCFPollNoData) CanDecode() gopacket.LayerClass
func (*Dot11DataCFPollNoData) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataCFPollNoData) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataCFPollNoData) LayerType ¶ added in v1.1.4
func (m *Dot11DataCFPollNoData) LayerType() gopacket.LayerType
type Dot11DataNull ¶ added in v1.1.4
type Dot11DataNull struct {
Dot11Data
}
func (*Dot11DataNull) CanDecode ¶ added in v1.1.4
func (m *Dot11DataNull) CanDecode() gopacket.LayerClass
func (*Dot11DataNull) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataNull) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11DataNull) LayerType ¶ added in v1.1.4
func (m *Dot11DataNull) LayerType() gopacket.LayerType
type Dot11DataQOS ¶ added in v1.1.4
type Dot11DataQOS struct { Dot11Ctrl TID uint8 /* Traffic IDentifier */ EOSP bool /* End of service period */ AckPolicy Dot11AckPolicy TXOP uint8 }
func (*Dot11DataQOS) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11DataQOS) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
type Dot11DataQOSCFAckPollNoData ¶ added in v1.1.4
type Dot11DataQOSCFAckPollNoData struct {
Dot11DataQOS
}
func (*Dot11DataQOSCFAckPollNoData) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSCFAckPollNoData) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSCFAckPollNoData) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSCFAckPollNoData) LayerType() gopacket.LayerType
func (*Dot11DataQOSCFAckPollNoData) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSCFAckPollNoData) NextLayerType() gopacket.LayerType
type Dot11DataQOSCFPollNoData ¶ added in v1.1.4
type Dot11DataQOSCFPollNoData struct {
Dot11DataQOS
}
func (*Dot11DataQOSCFPollNoData) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSCFPollNoData) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSCFPollNoData) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSCFPollNoData) LayerType() gopacket.LayerType
func (*Dot11DataQOSCFPollNoData) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSCFPollNoData) NextLayerType() gopacket.LayerType
type Dot11DataQOSData ¶ added in v1.1.4
type Dot11DataQOSData struct {
Dot11DataQOS
}
func (*Dot11DataQOSData) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSData) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSData) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSData) LayerType() gopacket.LayerType
func (*Dot11DataQOSData) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSData) NextLayerType() gopacket.LayerType
type Dot11DataQOSDataCFAck ¶ added in v1.1.4
type Dot11DataQOSDataCFAck struct {
Dot11DataQOS
}
func (*Dot11DataQOSDataCFAck) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFAck) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSDataCFAck) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFAck) LayerType() gopacket.LayerType
func (*Dot11DataQOSDataCFAck) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFAck) NextLayerType() gopacket.LayerType
type Dot11DataQOSDataCFAckPoll ¶ added in v1.1.4
type Dot11DataQOSDataCFAckPoll struct {
Dot11DataQOS
}
func (*Dot11DataQOSDataCFAckPoll) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFAckPoll) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSDataCFAckPoll) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFAckPoll) LayerType() gopacket.LayerType
func (*Dot11DataQOSDataCFAckPoll) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFAckPoll) NextLayerType() gopacket.LayerType
type Dot11DataQOSDataCFPoll ¶ added in v1.1.4
type Dot11DataQOSDataCFPoll struct {
Dot11DataQOS
}
func (*Dot11DataQOSDataCFPoll) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFPoll) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSDataCFPoll) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFPoll) LayerType() gopacket.LayerType
func (*Dot11DataQOSDataCFPoll) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSDataCFPoll) NextLayerType() gopacket.LayerType
type Dot11DataQOSNull ¶ added in v1.1.4
type Dot11DataQOSNull struct {
Dot11DataQOS
}
func (*Dot11DataQOSNull) CanDecode ¶ added in v1.1.4
func (m *Dot11DataQOSNull) CanDecode() gopacket.LayerClass
func (*Dot11DataQOSNull) LayerType ¶ added in v1.1.4
func (m *Dot11DataQOSNull) LayerType() gopacket.LayerType
func (*Dot11DataQOSNull) NextLayerType ¶ added in v1.1.4
func (m *Dot11DataQOSNull) NextLayerType() gopacket.LayerType
type Dot11Flags ¶ added in v1.1.4
type Dot11Flags uint8
Dot11Flags contains the set of 8 flags in the IEEE 802.11 frame control header, all in one place.
const ( Dot11FlagsToDS Dot11Flags = 1 << iota Dot11FlagsFromDS Dot11FlagsMF Dot11FlagsRetry Dot11FlagsPowerManagement Dot11FlagsMD Dot11FlagsWEP Dot11FlagsOrder )
func (Dot11Flags) FromDS ¶ added in v1.1.4
func (d Dot11Flags) FromDS() bool
func (Dot11Flags) MD ¶ added in v1.1.4
func (d Dot11Flags) MD() bool
func (Dot11Flags) MF ¶ added in v1.1.4
func (d Dot11Flags) MF() bool
func (Dot11Flags) Order ¶ added in v1.1.4
func (d Dot11Flags) Order() bool
func (Dot11Flags) PowerManagement ¶ added in v1.1.4
func (d Dot11Flags) PowerManagement() bool
func (Dot11Flags) Retry ¶ added in v1.1.4
func (d Dot11Flags) Retry() bool
func (Dot11Flags) String ¶ added in v1.1.4
func (a Dot11Flags) String() string
String provides a human readable string for Dot11Flags. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the Dot11Flags value, not its string.
func (Dot11Flags) ToDS ¶ added in v1.1.4
func (d Dot11Flags) ToDS() bool
func (Dot11Flags) WEP ¶ added in v1.1.4
func (d Dot11Flags) WEP() bool
type Dot11InformationElement ¶ added in v1.1.4
type Dot11InformationElement struct { BaseLayer ID Dot11InformationElementID Length uint8 OUI []byte Info []byte }
func (*Dot11InformationElement) CanDecode ¶ added in v1.1.4
func (m *Dot11InformationElement) CanDecode() gopacket.LayerClass
func (*Dot11InformationElement) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11InformationElement) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11InformationElement) LayerType ¶ added in v1.1.4
func (m *Dot11InformationElement) LayerType() gopacket.LayerType
func (*Dot11InformationElement) NextLayerType ¶ added in v1.1.4
func (m *Dot11InformationElement) NextLayerType() gopacket.LayerType
func (*Dot11InformationElement) String ¶ added in v1.1.4
func (d *Dot11InformationElement) String() string
type Dot11InformationElementID ¶ added in v1.1.4
type Dot11InformationElementID uint8
const ( Dot11InformationElementIDSSID Dot11InformationElementID = 0 Dot11InformationElementIDRates Dot11InformationElementID = 1 Dot11InformationElementIDFHSet Dot11InformationElementID = 2 Dot11InformationElementIDDSSet Dot11InformationElementID = 3 Dot11InformationElementIDCFSet Dot11InformationElementID = 4 Dot11InformationElementIDTIM Dot11InformationElementID = 5 Dot11InformationElementIDIBSSSet Dot11InformationElementID = 6 Dot11InformationElementIDChallenge Dot11InformationElementID = 16 Dot11InformationElementIDERPInfo Dot11InformationElementID = 42 Dot11InformationElementIDQOSCapability Dot11InformationElementID = 46 Dot11InformationElementIDERPInfo2 Dot11InformationElementID = 47 Dot11InformationElementIDRSNInfo Dot11InformationElementID = 48 Dot11InformationElementIDESRates Dot11InformationElementID = 50 Dot11InformationElementIDVendor Dot11InformationElementID = 221 Dot11InformationElementIDReserved Dot11InformationElementID = 68 )
func (Dot11InformationElementID) String ¶ added in v1.1.4
func (a Dot11InformationElementID) String() string
String provides a human readable string for Dot11InformationElementID. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the Dot11InformationElementID value, not its string.
type Dot11Mgmt ¶ added in v1.1.4
type Dot11Mgmt struct {
BaseLayer
}
Dot11Mgmt is a base for all IEEE 802.11 management layers.
func (*Dot11Mgmt) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11Mgmt) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11Mgmt) NextLayerType ¶ added in v1.1.4
type Dot11MgmtATIM ¶ added in v1.1.4
type Dot11MgmtATIM struct {
Dot11Mgmt
}
func (*Dot11MgmtATIM) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtATIM) CanDecode() gopacket.LayerClass
func (*Dot11MgmtATIM) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtATIM) LayerType() gopacket.LayerType
type Dot11MgmtAction ¶ added in v1.1.4
type Dot11MgmtAction struct {
Dot11Mgmt
}
func (*Dot11MgmtAction) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtAction) CanDecode() gopacket.LayerClass
func (*Dot11MgmtAction) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtAction) LayerType() gopacket.LayerType
type Dot11MgmtActionNoAck ¶ added in v1.1.4
type Dot11MgmtActionNoAck struct {
Dot11Mgmt
}
func (*Dot11MgmtActionNoAck) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtActionNoAck) CanDecode() gopacket.LayerClass
func (*Dot11MgmtActionNoAck) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtActionNoAck) LayerType() gopacket.LayerType
type Dot11MgmtArubaWLAN ¶ added in v1.1.4
type Dot11MgmtArubaWLAN struct {
Dot11Mgmt
}
func (*Dot11MgmtArubaWLAN) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtArubaWLAN) CanDecode() gopacket.LayerClass
func (*Dot11MgmtArubaWLAN) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtArubaWLAN) LayerType() gopacket.LayerType
type Dot11MgmtAssociationReq ¶ added in v1.1.4
func (*Dot11MgmtAssociationReq) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtAssociationReq) CanDecode() gopacket.LayerClass
func (*Dot11MgmtAssociationReq) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtAssociationReq) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtAssociationReq) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtAssociationReq) LayerType() gopacket.LayerType
func (*Dot11MgmtAssociationReq) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtAssociationReq) NextLayerType() gopacket.LayerType
type Dot11MgmtAssociationResp ¶ added in v1.1.4
type Dot11MgmtAssociationResp struct { Dot11Mgmt CapabilityInfo uint16 Status Dot11Status AID uint16 }
func (*Dot11MgmtAssociationResp) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtAssociationResp) CanDecode() gopacket.LayerClass
func (*Dot11MgmtAssociationResp) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtAssociationResp) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtAssociationResp) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtAssociationResp) LayerType() gopacket.LayerType
func (*Dot11MgmtAssociationResp) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtAssociationResp) NextLayerType() gopacket.LayerType
type Dot11MgmtAuthentication ¶ added in v1.1.4
type Dot11MgmtAuthentication struct { Dot11Mgmt Algorithm Dot11Algorithm Sequence uint16 Status Dot11Status }
func (*Dot11MgmtAuthentication) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtAuthentication) CanDecode() gopacket.LayerClass
func (*Dot11MgmtAuthentication) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtAuthentication) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtAuthentication) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtAuthentication) LayerType() gopacket.LayerType
func (*Dot11MgmtAuthentication) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtAuthentication) NextLayerType() gopacket.LayerType
type Dot11MgmtBeacon ¶ added in v1.1.4
func (*Dot11MgmtBeacon) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtBeacon) CanDecode() gopacket.LayerClass
func (*Dot11MgmtBeacon) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtBeacon) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtBeacon) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtBeacon) LayerType() gopacket.LayerType
func (*Dot11MgmtBeacon) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtBeacon) NextLayerType() gopacket.LayerType
type Dot11MgmtDeauthentication ¶ added in v1.1.4
type Dot11MgmtDeauthentication struct { Dot11Mgmt Reason Dot11Reason }
func (*Dot11MgmtDeauthentication) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtDeauthentication) CanDecode() gopacket.LayerClass
func (*Dot11MgmtDeauthentication) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtDeauthentication) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtDeauthentication) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtDeauthentication) LayerType() gopacket.LayerType
type Dot11MgmtDisassociation ¶ added in v1.1.4
type Dot11MgmtDisassociation struct { Dot11Mgmt Reason Dot11Reason }
func (*Dot11MgmtDisassociation) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtDisassociation) CanDecode() gopacket.LayerClass
func (*Dot11MgmtDisassociation) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtDisassociation) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtDisassociation) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtDisassociation) LayerType() gopacket.LayerType
type Dot11MgmtMeasurementPilot ¶ added in v1.1.4
type Dot11MgmtMeasurementPilot struct {
Dot11Mgmt
}
func (*Dot11MgmtMeasurementPilot) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtMeasurementPilot) CanDecode() gopacket.LayerClass
func (*Dot11MgmtMeasurementPilot) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtMeasurementPilot) LayerType() gopacket.LayerType
type Dot11MgmtProbeReq ¶ added in v1.1.4
type Dot11MgmtProbeReq struct {
Dot11Mgmt
}
func (*Dot11MgmtProbeReq) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtProbeReq) CanDecode() gopacket.LayerClass
func (*Dot11MgmtProbeReq) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtProbeReq) LayerType() gopacket.LayerType
func (*Dot11MgmtProbeReq) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtProbeReq) NextLayerType() gopacket.LayerType
type Dot11MgmtProbeResp ¶ added in v1.1.4
type Dot11MgmtProbeResp struct {
Dot11Mgmt
}
func (*Dot11MgmtProbeResp) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtProbeResp) CanDecode() gopacket.LayerClass
func (*Dot11MgmtProbeResp) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtProbeResp) LayerType() gopacket.LayerType
func (*Dot11MgmtProbeResp) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtProbeResp) NextLayerType() gopacket.LayerType
type Dot11MgmtReassociationReq ¶ added in v1.1.4
type Dot11MgmtReassociationReq struct { Dot11Mgmt CapabilityInfo uint16 ListenInterval uint16 CurrentApAddress net.HardwareAddr }
func (*Dot11MgmtReassociationReq) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtReassociationReq) CanDecode() gopacket.LayerClass
func (*Dot11MgmtReassociationReq) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11MgmtReassociationReq) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11MgmtReassociationReq) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtReassociationReq) LayerType() gopacket.LayerType
func (*Dot11MgmtReassociationReq) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtReassociationReq) NextLayerType() gopacket.LayerType
type Dot11MgmtReassociationResp ¶ added in v1.1.4
type Dot11MgmtReassociationResp struct {
Dot11Mgmt
}
func (*Dot11MgmtReassociationResp) CanDecode ¶ added in v1.1.4
func (m *Dot11MgmtReassociationResp) CanDecode() gopacket.LayerClass
func (*Dot11MgmtReassociationResp) LayerType ¶ added in v1.1.4
func (m *Dot11MgmtReassociationResp) LayerType() gopacket.LayerType
func (*Dot11MgmtReassociationResp) NextLayerType ¶ added in v1.1.4
func (m *Dot11MgmtReassociationResp) NextLayerType() gopacket.LayerType
type Dot11Reason ¶ added in v1.1.4
type Dot11Reason uint16
const ( Dot11ReasonReserved Dot11Reason = 1 Dot11ReasonUnspecified Dot11Reason = 2 Dot11ReasonAuthExpired Dot11Reason = 3 Dot11ReasonDeauthStLeaving Dot11Reason = 4 Dot11ReasonInactivity Dot11Reason = 5 Dot11ReasonApFull Dot11Reason = 6 Dot11ReasonClass2FromNonAuth Dot11Reason = 7 Dot11ReasonClass3FromNonAss Dot11Reason = 8 Dot11ReasonDisasStLeaving Dot11Reason = 9 Dot11ReasonStNotAuth Dot11Reason = 10 )
func (Dot11Reason) String ¶ added in v1.1.4
func (a Dot11Reason) String() string
String provides a human readable string for Dot11Reason. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the Dot11Reason value, not its string.
type Dot11Status ¶ added in v1.1.4
type Dot11Status uint16
const ( Dot11StatusSuccess Dot11Status = 0 Dot11StatusFailure Dot11Status = 1 // Unspecified failure Dot11StatusCannotSupportAllCapabilities Dot11Status = 10 // Cannot support all requested capabilities in the Capability Information field Dot11StatusInabilityExistsAssociation Dot11Status = 11 // Reassociation denied due to inability to confirm that association exists Dot11StatusAssociationDenied Dot11Status = 12 // Association denied due to reason outside the scope of this standard Dot11StatusAlgorithmUnsupported Dot11Status = 13 // Responding station does not support the specified authentication algorithm Dot11StatusOufOfExpectedSequence Dot11Status = 14 // Received an Authentication frame with authentication transaction sequence number out of expected sequence Dot11StatusChallengeFailure Dot11Status = 15 // Authentication rejected because of challenge failure Dot11StatusTimeout Dot11Status = 16 // Authentication rejected due to timeout waiting for next frame in sequence Dot11StatusAPUnableToHandle Dot11Status = 17 // Association denied because AP is unable to handle additional associated stations Dot11StatusRateUnsupported Dot11Status = 18 // Association denied due to requesting station not supporting all of the data rates in the BSSBasicRateSet parameter )
func (Dot11Status) String ¶ added in v1.1.4
func (a Dot11Status) String() string
String provides a human readable string for Dot11Status. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the Dot11Status value, not its string.
type Dot11Type ¶ added in v1.1.4
type Dot11Type uint8
Dot11Type is a combination of IEEE 802.11 frame's Type and Subtype fields. By combining these two fields together into a single type, we're able to provide a String function that correctly displays the subtype given the top-level type.
If you just care about the top-level type, use the MainType function.
const ( Dot11TypeMgmt Dot11Type = 0x00 Dot11TypeCtrl Dot11Type = 0x01 Dot11TypeData Dot11Type = 0x02 Dot11TypeReserved Dot11Type = 0x03 // Management Dot11TypeMgmtAssociationReq Dot11Type = 0x00 Dot11TypeMgmtAssociationResp Dot11Type = 0x04 Dot11TypeMgmtReassociationReq Dot11Type = 0x08 Dot11TypeMgmtReassociationResp Dot11Type = 0x0c Dot11TypeMgmtProbeReq Dot11Type = 0x10 Dot11TypeMgmtProbeResp Dot11Type = 0x14 Dot11TypeMgmtMeasurementPilot Dot11Type = 0x18 Dot11TypeMgmtBeacon Dot11Type = 0x20 Dot11TypeMgmtATIM Dot11Type = 0x24 Dot11TypeMgmtDisassociation Dot11Type = 0x28 Dot11TypeMgmtAuthentication Dot11Type = 0x2c Dot11TypeMgmtDeauthentication Dot11Type = 0x30 Dot11TypeMgmtAction Dot11Type = 0x34 Dot11TypeMgmtActionNoAck Dot11Type = 0x38 // Control Dot11TypeCtrlWrapper Dot11Type = 0x1d Dot11TypeCtrlBlockAckReq Dot11Type = 0x21 Dot11TypeCtrlBlockAck Dot11Type = 0x25 Dot11TypeCtrlPowersavePoll Dot11Type = 0x29 Dot11TypeCtrlRTS Dot11Type = 0x2d Dot11TypeCtrlCTS Dot11Type = 0x31 Dot11TypeCtrlAck Dot11Type = 0x35 Dot11TypeCtrlCFEnd Dot11Type = 0x39 Dot11TypeCtrlCFEndAck Dot11Type = 0x3d // Data Dot11TypeDataCFAck Dot11Type = 0x06 Dot11TypeDataCFPoll Dot11Type = 0x0a Dot11TypeDataCFAckPoll Dot11Type = 0x0e Dot11TypeDataNull Dot11Type = 0x12 Dot11TypeDataCFAckNoData Dot11Type = 0x16 Dot11TypeDataCFPollNoData Dot11Type = 0x1a Dot11TypeDataCFAckPollNoData Dot11Type = 0x1e Dot11TypeDataQOSData Dot11Type = 0x22 Dot11TypeDataQOSDataCFAck Dot11Type = 0x26 Dot11TypeDataQOSDataCFPoll Dot11Type = 0x2a Dot11TypeDataQOSDataCFAckPoll Dot11Type = 0x2e Dot11TypeDataQOSNull Dot11Type = 0x32 Dot11TypeDataQOSCFPollNoData Dot11Type = 0x3a Dot11TypeDataQOSCFAckPollNoData Dot11Type = 0x3e )
func (Dot11Type) Decode ¶ added in v1.1.4
func (a Dot11Type) Decode(data []byte, p gopacket.PacketBuilder) error
type Dot11WEP ¶ added in v1.1.4
type Dot11WEP struct {
BaseLayer
}
Dot11WEP contains WEP encrpted IEEE 802.11 data.
func (*Dot11WEP) CanDecode ¶ added in v1.1.4
func (m *Dot11WEP) CanDecode() gopacket.LayerClass
func (*Dot11WEP) DecodeFromBytes ¶ added in v1.1.4
func (m *Dot11WEP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Dot11WEP) NextLayerType ¶ added in v1.1.4
type Dot1Q ¶
type Dot1Q struct { BaseLayer Priority uint8 DropEligible bool VLANIdentifier uint16 Type EthernetType }
Dot1Q is the packet layer for 802.1Q VLAN headers.
func (*Dot1Q) CanDecode ¶
func (d *Dot1Q) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*Dot1Q) DecodeFromBytes ¶
func (d *Dot1Q) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*Dot1Q) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
func (*Dot1Q) SerializeTo ¶
func (d *Dot1Q) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type EAP ¶
EAP defines an Extensible Authentication Protocol (rfc 3748) layer.
func (*EAP) CanDecode ¶
func (e *EAP) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*EAP) DecodeFromBytes ¶
func (e *EAP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*EAP) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
func (*EAP) SerializeTo ¶ added in v1.0.1
func (e *EAP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type EAPOL ¶
EAPOL defines an EAP over LAN (802.1x) layer.
func (*EAPOL) CanDecode ¶
func (e *EAPOL) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*EAPOL) DecodeFromBytes ¶
func (e *EAPOL) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*EAPOL) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
type EnumMetadata ¶
type EnumMetadata struct { // DecodeWith is the decoder to use to decode this protocol's data. DecodeWith gopacket.Decoder // Name is the name of the enumeration value. Name string // LayerType is the layer type implied by the given enum. LayerType gopacket.LayerType }
EnumMetadata keeps track of a set of metadata for each enumeration value for protocol enumerations.
type EtherIP ¶
EtherIP is the struct for storing RFC 3378 EtherIP packet headers.
func (*EtherIP) CanDecode ¶
func (e *EtherIP) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*EtherIP) DecodeFromBytes ¶
func (e *EtherIP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*EtherIP) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
type Ethernet ¶
type Ethernet struct { BaseLayer SrcMAC, DstMAC net.HardwareAddr EthernetType EthernetType // Length is only set if a length field exists within this header. Ethernet // headers follow two different standards, one that uses an EthernetType, the // other which defines a length the follows with a LLC header (802.3). If the // former is the case, we set EthernetType and Length stays 0. In the latter // case, we set Length and EthernetType = EthernetTypeLLC. Length uint16 }
Ethernet is the layer for Ethernet frame headers.
func (*Ethernet) CanDecode ¶
func (eth *Ethernet) CanDecode() gopacket.LayerClass
func (*Ethernet) DecodeFromBytes ¶
func (eth *Ethernet) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*Ethernet) NextLayerType ¶
func (*Ethernet) SerializeTo ¶
func (eth *Ethernet) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type EthernetCTP ¶
EthernetCTP implements the EthernetCTP protocol, see http://www.mit.edu/people/jhawk/ctp.html. We split EthernetCTP up into the top-level EthernetCTP layer, followed by zero or more EthernetCTPForwardData layers, followed by a final EthernetCTPReply layer.
func (*EthernetCTP) LayerType ¶
func (c *EthernetCTP) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeEthernetCTP.
type EthernetCTPForwardData ¶
type EthernetCTPForwardData struct { BaseLayer Function EthernetCTPFunction ForwardAddress []byte }
EthernetCTPForwardData is the ForwardData layer inside EthernetCTP. See EthernetCTP's docs for more details.
func (*EthernetCTPForwardData) ForwardEndpoint ¶
func (c *EthernetCTPForwardData) ForwardEndpoint() gopacket.Endpoint
ForwardEndpoint returns the EthernetCTPForwardData ForwardAddress as an endpoint.
func (*EthernetCTPForwardData) LayerType ¶
func (c *EthernetCTPForwardData) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeEthernetCTPForwardData.
type EthernetCTPFunction ¶
type EthernetCTPFunction uint16
EthernetCTPFunction is the function code used by the EthernetCTP protocol to identify each EthernetCTP layer.
const ( EthernetCTPFunctionReply EthernetCTPFunction = 1 EthernetCTPFunctionForwardData EthernetCTPFunction = 2 )
type EthernetCTPReply ¶
type EthernetCTPReply struct { BaseLayer Function EthernetCTPFunction ReceiptNumber uint16 Data []byte }
EthernetCTPReply is the Reply layer inside EthernetCTP. See EthernetCTP's docs for more details.
func (*EthernetCTPReply) LayerType ¶
func (c *EthernetCTPReply) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeEthernetCTPReply.
func (*EthernetCTPReply) Payload ¶
func (c *EthernetCTPReply) Payload() []byte
Payload returns the EthernetCTP reply's Data bytes.
type EthernetType ¶
type EthernetType uint16
EthernetType is an enumeration of ethernet type values, and acts as a decoder for any type it supports.
const ( // EthernetTypeLLC is not an actual ethernet type. It is instead a // placeholder we use in Ethernet frames that use the 802.3 standard of // srcmac|dstmac|length|LLC instead of srcmac|dstmac|ethertype. EthernetTypeLLC EthernetType = 0 EthernetTypeIPv4 EthernetType = 0x0800 EthernetTypeARP EthernetType = 0x0806 EthernetTypeIPv6 EthernetType = 0x86DD EthernetTypeCiscoDiscovery EthernetType = 0x2000 EthernetTypeNortelDiscovery EthernetType = 0x01a2 EthernetTypeDot1Q EthernetType = 0x8100 EthernetTypePPPoEDiscovery EthernetType = 0x8863 EthernetTypePPPoESession EthernetType = 0x8864 EthernetTypeMPLSUnicast EthernetType = 0x8847 EthernetTypeMPLSMulticast EthernetType = 0x8848 EthernetTypeEAPOL EthernetType = 0x888e EthernetTypeQinQ EthernetType = 0x88a8 EthernetTypeLinkLayerDiscovery EthernetType = 0x88cc EthernetTypeEthernetCTP EthernetType = 0x9000 )
func (EthernetType) Decode ¶
func (a EthernetType) Decode(data []byte, p gopacket.PacketBuilder) error
func (EthernetType) LayerType ¶
func (a EthernetType) LayerType() gopacket.LayerType
func (EthernetType) String ¶
func (a EthernetType) String() string
type FDDI ¶
type FDDI struct { BaseLayer FrameControl FDDIFrameControl Priority uint8 SrcMAC, DstMAC net.HardwareAddr }
FDDI contains the header for FDDI frames.
type FDDIFrameControl ¶
type FDDIFrameControl uint8
FDDIFrameControl is an enumeration of FDDI frame control bytes.
const (
FDDIFrameControlLLC FDDIFrameControl = 0x50
)
func (FDDIFrameControl) Decode ¶
func (a FDDIFrameControl) Decode(data []byte, p gopacket.PacketBuilder) error
func (FDDIFrameControl) String ¶
func (a FDDIFrameControl) String() string
type GRE ¶
type GRE struct { BaseLayer ChecksumPresent, RoutingPresent, KeyPresent, SeqPresent, StrictSourceRoute bool RecursionControl, Flags, Version uint8 Protocol EthernetType Checksum, Offset uint16 Key, Seq uint32 *GRERouting }
GRE is a Generic Routing Encapsulation header.
func (*GRE) CanDecode ¶
func (g *GRE) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*GRE) DecodeFromBytes ¶
func (g *GRE) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*GRE) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
type GRERouting ¶
type GRERouting struct { AddressFamily uint16 SREOffset, SRELength uint8 RoutingInformation []byte }
GRERouting is GRE routing information, present if the RoutingPresent flag is set.
type IANAAddressFamily ¶
type IANAAddressFamily byte
const ( IANAAddressFamilyReserved IANAAddressFamily = 0 IANAAddressFamilyIPV4 IANAAddressFamily = 1 IANAAddressFamilyIPV6 IANAAddressFamily = 2 IANAAddressFamilyNSAP IANAAddressFamily = 3 IANAAddressFamilyHDLC IANAAddressFamily = 4 IANAAddressFamilyBBN1822 IANAAddressFamily = 5 IANAAddressFamily802 IANAAddressFamily = 6 IANAAddressFamilyE163 IANAAddressFamily = 7 IANAAddressFamilyE164 IANAAddressFamily = 8 IANAAddressFamilyF69 IANAAddressFamily = 9 IANAAddressFamilyX121 IANAAddressFamily = 10 IANAAddressFamilyIPX IANAAddressFamily = 11 IANAAddressFamilyAtalk IANAAddressFamily = 12 IANAAddressFamilyDecnet IANAAddressFamily = 13 IANAAddressFamilyBanyan IANAAddressFamily = 14 IANAAddressFamilyE164NSAP IANAAddressFamily = 15 IANAAddressFamilyDNS IANAAddressFamily = 16 IANAAddressFamilyDistname IANAAddressFamily = 17 IANAAddressFamilyASNumber IANAAddressFamily = 18 IANAAddressFamilyXTPIPV4 IANAAddressFamily = 19 IANAAddressFamilyXTPIPV6 IANAAddressFamily = 20 IANAAddressFamilyXTP IANAAddressFamily = 21 IANAAddressFamilyFcWWPN IANAAddressFamily = 22 IANAAddressFamilyFcWWNN IANAAddressFamily = 23 IANAAddressFamilyGWID IANAAddressFamily = 24 IANAAddressFamilyL2VPN IANAAddressFamily = 25 )
LLDP Management Address Subtypes http://www.iana.org/assignments/address-family-numbers/address-family-numbers.xml
func (IANAAddressFamily) String ¶
func (t IANAAddressFamily) String() (s string)
type ICMPv4 ¶
type ICMPv4 struct { BaseLayer TypeCode ICMPv4TypeCode Checksum uint16 Id uint16 Seq uint16 }
ICMPv4 is the layer for IPv4 ICMP packet data.
func (*ICMPv4) CanDecode ¶
func (i *ICMPv4) CanDecode() gopacket.LayerClass
func (*ICMPv4) DecodeFromBytes ¶
func (i *ICMPv4) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*ICMPv4) NextLayerType ¶
func (*ICMPv4) SerializeTo ¶ added in v1.0.1
func (i *ICMPv4) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type ICMPv4TypeCode ¶
type ICMPv4TypeCode uint16
func (ICMPv4TypeCode) String ¶
func (a ICMPv4TypeCode) String() string
type ICMPv6 ¶
type ICMPv6 struct { BaseLayer TypeCode ICMPv6TypeCode Checksum uint16 TypeBytes []byte // contains filtered or unexported fields }
ICMPv6 is the layer for IPv6 ICMP packet data
func (*ICMPv6) CanDecode ¶
func (i *ICMPv6) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*ICMPv6) DecodeFromBytes ¶
func (i *ICMPv6) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*ICMPv6) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
func (*ICMPv6) SerializeTo ¶ added in v1.0.1
func (i *ICMPv6) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
func (*ICMPv6) SetNetworkLayerForChecksum ¶ added in v1.0.1
func (i *ICMPv6) SetNetworkLayerForChecksum(l gopacket.NetworkLayer) error
SetNetworkLayerForChecksum tells this layer which network layer is wrapping it. This is needed for computing the checksum when serializing, since TCP/IP transport layer checksums depends on fields in the IPv4 or IPv6 layer that contains it. The passed in layer must be an *IPv4 or *IPv6.
type ICMPv6TypeCode ¶
type ICMPv6TypeCode uint16
func (ICMPv6TypeCode) String ¶
func (a ICMPv6TypeCode) String() string
type IEEEOUI ¶
type IEEEOUI uint32
type IGMP ¶
type IGMP struct { BaseLayer Type IGMPType MaxResponseTime time.Duration Checksum uint16 GroupAddress net.IP // The following are used only by IGMPv3 SupressRouterProcessing bool RobustnessValue uint8 IntervalTime time.Duration SourceAddresses []net.IP }
IGMP is the packet structure for IGMP messages.
func (*IGMP) CanDecode ¶
func (i *IGMP) CanDecode() gopacket.LayerClass
CanDecode returns the set of layer types that this DecodingLayer can decode.
func (*IGMP) DecodeFromBytes ¶
func (i *IGMP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*IGMP) NextLayerType ¶
NextLayerType returns the layer type contained by this DecodingLayer.
type IPProtocol ¶
type IPProtocol uint8
IPProtocol is an enumeration of IP protocol values, and acts as a decoder for any type it supports.
const ( IPProtocolIPv6HopByHop IPProtocol = 0 IPProtocolICMPv4 IPProtocol = 1 IPProtocolIGMP IPProtocol = 2 IPProtocolTCP IPProtocol = 6 IPProtocolUDP IPProtocol = 17 IPProtocolRUDP IPProtocol = 27 IPProtocolIPv6 IPProtocol = 41 IPProtocolIPv6Routing IPProtocol = 43 IPProtocolIPv6Fragment IPProtocol = 44 IPProtocolGRE IPProtocol = 47 IPProtocolESP IPProtocol = 50 IPProtocolAH IPProtocol = 51 IPProtocolICMPv6 IPProtocol = 58 IPProtocolNoNextHeader IPProtocol = 59 IPProtocolIPv6Destination IPProtocol = 60 IPProtocolIPIP IPProtocol = 94 IPProtocolEtherIP IPProtocol = 97 IPProtocolSCTP IPProtocol = 132 IPProtocolUDPLite IPProtocol = 136 IPProtocolMPLSInIP IPProtocol = 137 )
func (IPProtocol) Decode ¶
func (a IPProtocol) Decode(data []byte, p gopacket.PacketBuilder) error
func (IPProtocol) LayerType ¶
func (a IPProtocol) LayerType() gopacket.LayerType
func (IPProtocol) String ¶
func (a IPProtocol) String() string
type IPSecAH ¶
type IPSecAH struct { Reserved uint16 SPI, Seq uint32 AuthenticationData []byte // contains filtered or unexported fields }
IPSecAH is the authentication header for IPv4/6 defined in http://tools.ietf.org/html/rfc2402
type IPSecESP ¶
type IPSecESP struct { BaseLayer SPI, Seq uint32 // Encrypted contains the encrypted set of bytes sent in an ESP Encrypted []byte }
IPSecESP is the encapsulating security payload defined in http://tools.ietf.org/html/rfc2406
type IPv4 ¶
type IPv4 struct { BaseLayer Version uint8 IHL uint8 TOS uint8 Length uint16 Id uint16 Flags IPv4Flag FragOffset uint16 TTL uint8 Protocol IPProtocol Checksum uint16 SrcIP net.IP DstIP net.IP Options []IPv4Option Padding []byte }
IPv4 is the header of an IP packet.
func (*IPv4) CanDecode ¶
func (i *IPv4) CanDecode() gopacket.LayerClass
func (*IPv4) DecodeFromBytes ¶
func (ip *IPv4) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the given bytes into this layer.
func (*IPv4) NetworkFlow ¶
func (*IPv4) NextLayerType ¶
func (*IPv4) SerializeTo ¶
func (ip *IPv4) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer.
type IPv4Flag ¶
type IPv4Flag uint8
const ( IPv4EvilBit IPv4Flag = 1 << 2 // http://tools.ietf.org/html/rfc3514 ;) IPv4DontFragment IPv4Flag = 1 << 1 IPv4MoreFragments IPv4Flag = 1 << 0 )
type IPv4Option ¶
func (IPv4Option) String ¶
func (i IPv4Option) String() string
type IPv6 ¶
type IPv6 struct { // http://www.networksorcery.com/enp/protocol/ipv6.htm BaseLayer Version uint8 TrafficClass uint8 FlowLabel uint32 Length uint16 NextHeader IPProtocol HopLimit uint8 SrcIP net.IP DstIP net.IP HopByHop *IPv6HopByHop // contains filtered or unexported fields }
IPv6 is the layer for the IPv6 header.
func (*IPv6) CanDecode ¶
func (i *IPv6) CanDecode() gopacket.LayerClass
func (*IPv6) DecodeFromBytes ¶
func (ip6 *IPv6) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*IPv6) NetworkFlow ¶
func (*IPv6) NextLayerType ¶
func (*IPv6) SerializeTo ¶
func (ip6 *IPv6) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type IPv6Destination ¶
type IPv6Destination struct { Options []IPv6DestinationOption // contains filtered or unexported fields }
IPv6Destination is the IPv6 destination options header.
func (*IPv6Destination) LayerType ¶
func (i *IPv6Destination) LayerType() gopacket.LayerType
LayerType returns LayerTypeIPv6Destination.
func (*IPv6Destination) SerializeTo ¶ added in v1.1.6
func (i *IPv6Destination) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type IPv6DestinationOption ¶
type IPv6DestinationOption ipv6HeaderTLVOption
IPv6DestinationOption is a TLV option present in an IPv6 destination options extension.
type IPv6ExtensionSkipper ¶
type IPv6ExtensionSkipper struct { NextHeader IPProtocol BaseLayer }
IPv6ExtensionSkipper is a DecodingLayer which decodes and ignores v6 extensions. You can use it with a DecodingLayerParser to handle IPv6 stacks which may or may not have extensions.
func (*IPv6ExtensionSkipper) CanDecode ¶
func (i *IPv6ExtensionSkipper) CanDecode() gopacket.LayerClass
func (*IPv6ExtensionSkipper) DecodeFromBytes ¶
func (i *IPv6ExtensionSkipper) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*IPv6ExtensionSkipper) NextLayerType ¶
func (i *IPv6ExtensionSkipper) NextLayerType() gopacket.LayerType
type IPv6Fragment ¶
type IPv6Fragment struct { BaseLayer NextHeader IPProtocol // Reserved1 is bits [8-16), from least to most significant, 0-indexed Reserved1 uint8 FragmentOffset uint16 // Reserved2 is bits [29-31), from least to most significant, 0-indexed Reserved2 uint8 MoreFragments bool Identification uint32 }
IPv6Fragment is the IPv6 fragment header, used for packet fragmentation/defragmentation.
func (*IPv6Fragment) LayerType ¶
func (i *IPv6Fragment) LayerType() gopacket.LayerType
LayerType returns LayerTypeIPv6Fragment.
type IPv6HopByHop ¶
type IPv6HopByHop struct { Options []IPv6HopByHopOption // contains filtered or unexported fields }
IPv6HopByHop is the IPv6 hop-by-hop extension.
func (*IPv6HopByHop) DecodeFromBytes ¶
func (i *IPv6HopByHop) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*IPv6HopByHop) LayerType ¶
func (i *IPv6HopByHop) LayerType() gopacket.LayerType
LayerType returns LayerTypeIPv6HopByHop.
type IPv6HopByHopOption ¶
type IPv6HopByHopOption ipv6HeaderTLVOption
IPv6HopByHopOption is a TLV option present in an IPv6 hop-by-hop extension.
type IPv6Routing ¶
type IPv6Routing struct { RoutingType uint8 SegmentsLeft uint8 // This segment is supposed to be zero according to RFC2460, the second set of // 4 bytes in the extension. Reserved []byte // SourceRoutingIPs is the set of IPv6 addresses requested for source routing, // set only if RoutingType == 0. SourceRoutingIPs []net.IP // contains filtered or unexported fields }
IPv6Routing is the IPv6 routing extension.
func (*IPv6Routing) LayerType ¶
func (i *IPv6Routing) LayerType() gopacket.LayerType
LayerType returns LayerTypeIPv6Routing.
type LLC ¶
type LLC struct { BaseLayer DSAP uint8 IG bool // true means group, false means individual SSAP uint8 CR bool // true means response, false means command Control uint16 }
LLC is the layer used for 802.2 Logical Link Control headers. See http://standards.ieee.org/getieee802/download/802.2-1998.pdf
type LLDPApplicationType ¶
type LLDPApplicationType uint8
const ( LLDPAppTypeReserved LLDPApplicationType = 0 LLDPAppTypeVoice LLDPApplicationType = 1 LLDPappTypeVoiceSignaling LLDPApplicationType = 2 LLDPappTypeGuestVoice LLDPApplicationType = 3 LLDPappTypeGuestVoiceSignaling LLDPApplicationType = 4 LLDPappTypeSoftphoneVoice LLDPApplicationType = 5 LLDPappTypeVideoConferencing LLDPApplicationType = 6 LLDPappTypeStreamingVideo LLDPApplicationType = 7 LLDPappTypeVideoSignaling LLDPApplicationType = 8 )
func (LLDPApplicationType) String ¶
func (t LLDPApplicationType) String() (s string)
type LLDPCapabilities ¶
type LLDPCapabilities struct { Other bool Repeater bool Bridge bool WLANAP bool Router bool Phone bool DocSis bool StationOnly bool CVLAN bool SVLAN bool TMPR bool }
LLDPCapabilities represents the capabilities of a device
type LLDPChassisID ¶
type LLDPChassisID struct { Subtype LLDPChassisIDSubType ID []byte }
type LLDPChassisIDSubType ¶
type LLDPChassisIDSubType byte
LLDPChassisIDSubType specifies the value type for a single LLDPChassisID.ID
const ( LLDPChassisIDSubTypeReserved LLDPChassisIDSubType = 0 LLDPChassisIDSubTypeChassisComp LLDPChassisIDSubType = 1 LLDPChassisIDSubtypeIfaceAlias LLDPChassisIDSubType = 2 LLDPChassisIDSubTypePortComp LLDPChassisIDSubType = 3 LLDPChassisIDSubTypeMACAddr LLDPChassisIDSubType = 4 LLDPChassisIDSubTypeNetworkAddr LLDPChassisIDSubType = 5 LLDPChassisIDSubtypeIfaceName LLDPChassisIDSubType = 6 LLDPChassisIDSubTypeLocal LLDPChassisIDSubType = 7 )
LLDP Chassis Types
func (LLDPChassisIDSubType) String ¶
func (t LLDPChassisIDSubType) String() (s string)
type LLDPCisco2Subtype ¶
type LLDPCisco2Subtype uint8
const (
LLDPCisco2PowerViaMDI LLDPCisco2Subtype = 1
)
Cisco2 TLV Subtypes
type LLDPEVBCapabilities ¶
type LLDPEVBCapabilities struct { StandardBridging bool ReflectiveRelay bool RetransmissionTimerExponent bool EdgeControlProtocol bool VSIDiscoveryProtocol bool }
LLDPEVBCapabilities represents the EVB capabilities of a device
type LLDPEVBSettings ¶
type LLDPEVBSettings struct { Supported LLDPEVBCapabilities Enabled LLDPEVBCapabilities SupportedVSIs uint16 ConfiguredVSIs uint16 RTEExponent uint8 }
type LLDPInfo8021 ¶
type LLDPInfo8021 struct { PVID uint16 PPVIDs []PortProtocolVLANID VLANNames []VLANName ProtocolIdentities []ProtocolIdentity VIDUsageDigest uint32 ManagementVID uint16 LinkAggregation LLDPLinkAggregation }
LLDPInfo8021 represents the information carried in 802.1 Org-specific TLVs
type LLDPInfo8021Qbg ¶
type LLDPInfo8021Qbg struct {
EVBSettings LLDPEVBSettings
}
LLDPInfo8021Qbg represents the information carried in 802.1Qbg Org-specific TLVs
type LLDPInfo8023 ¶
type LLDPInfo8023 struct { MACPHYConfigStatus LLDPMACPHYConfigStatus PowerViaMDI LLDPPowerViaMDI8023 LinkAggregation LLDPLinkAggregation MTU uint16 }
LLDPInfo8023 represents the information carried in 802.3 Org-specific TLVs
type LLDPInfoCisco2 ¶
type LLDPInfoCisco2 struct { PSEFourWirePoESupported bool PDRequestSparePairPoEOn bool PSESparePairPoEOn bool }
LLDPInfoCisco2 represents the information carried in Cisco Org-specific TLVs
type LLDPInfoMedia ¶
type LLDPInfoMedia struct { MediaCapabilities LLDPMediaCapabilities NetworkPolicy LLDPNetworkPolicy Location LLDPLocation PowerViaMDI LLDPPowerViaMDI HardwareRevision string FirmwareRevision string SoftwareRevision string SerialNumber string Manufacturer string Model string AssetID string }
LLDPInfoMedia represents the information carried in TR-41 Org-specific TLVs
type LLDPInfoProfinet ¶
type LLDPInfoProfinet struct { PNIODelay LLDPPNIODelay PNIOPortStatus LLDPPNIOPortStatus PNIOMRPPortStatus LLDPPNIOMRPPortStatus ChassisMAC []byte PNIOPTCPStatus LLDPPNIOPTCPStatus }
LLDPInfoProfinet represents the information carried in Profinet Org-specific TLVs
type LLDPInterfaceSubtype ¶
type LLDPInterfaceSubtype byte
const ( LLDPInterfaceSubtypeUnknown LLDPInterfaceSubtype = 1 LLDPInterfaceSubtypeifIndex LLDPInterfaceSubtype = 2 LLDPInterfaceSubtypeSysPort LLDPInterfaceSubtype = 3 )
LLDP Interface Subtypes
func (LLDPInterfaceSubtype) String ¶
func (t LLDPInterfaceSubtype) String() (s string)
type LLDPLinkAggregation ¶
IEEE 802 Link Aggregation parameters
type LLDPLocation ¶
type LLDPLocation struct { Format LLDPLocationFormat Coordinate LLDPLocationCoordinate Address LLDPLocationAddress ECS LLDPLocationECS }
LLDP represents a physical location. Only one of the embedded types will contain values, depending on Format.
type LLDPLocationAddress ¶
type LLDPLocationAddress struct { What LLDPLocationAddressWhat CountryCode string AddressLines []LLDPLocationAddressLine }
type LLDPLocationAddressLine ¶
type LLDPLocationAddressLine struct { Type LLDPLocationAddressType Value string }
type LLDPLocationAddressType ¶
type LLDPLocationAddressType uint8
const ( LLDPLocationAddressTypeLanguage LLDPLocationAddressType = 0 LLDPLocationAddressTypeNational LLDPLocationAddressType = 1 LLDPLocationAddressTypeCounty LLDPLocationAddressType = 2 LLDPLocationAddressTypeCity LLDPLocationAddressType = 3 LLDPLocationAddressTypeCityDivision LLDPLocationAddressType = 4 LLDPLocationAddressTypeNeighborhood LLDPLocationAddressType = 5 LLDPLocationAddressTypeStreet LLDPLocationAddressType = 6 LLDPLocationAddressTypeLeadingStreet LLDPLocationAddressType = 16 LLDPLocationAddressTypeTrailingStreet LLDPLocationAddressType = 17 LLDPLocationAddressTypeStreetSuffix LLDPLocationAddressType = 18 LLDPLocationAddressTypeHouseNum LLDPLocationAddressType = 19 LLDPLocationAddressTypeHouseSuffix LLDPLocationAddressType = 20 LLDPLocationAddressTypeLandmark LLDPLocationAddressType = 21 LLDPLocationAddressTypeAdditional LLDPLocationAddressType = 22 LLDPLocationAddressTypeName LLDPLocationAddressType = 23 LLDPLocationAddressTypePostal LLDPLocationAddressType = 24 LLDPLocationAddressTypeBuilding LLDPLocationAddressType = 25 LLDPLocationAddressTypeUnit LLDPLocationAddressType = 26 LLDPLocationAddressTypeFloor LLDPLocationAddressType = 27 LLDPLocationAddressTypeRoom LLDPLocationAddressType = 28 LLDPLocationAddressTypePlace LLDPLocationAddressType = 29 LLDPLocationAddressTypeScript LLDPLocationAddressType = 128 )
func (LLDPLocationAddressType) String ¶
func (t LLDPLocationAddressType) String() (s string)
type LLDPLocationAddressWhat ¶
type LLDPLocationAddressWhat uint8
const ( LLDPLocationAddressWhatDHCP LLDPLocationAddressWhat = 0 LLDPLocationAddressWhatNetwork LLDPLocationAddressWhat = 1 LLDPLocationAddressWhatClient LLDPLocationAddressWhat = 2 )
type LLDPLocationCoordinate ¶
type LLDPLocationECS ¶
type LLDPLocationECS struct {
ELIN string
}
type LLDPLocationFormat ¶
type LLDPLocationFormat uint8
const ( LLDPLocationFormatInvalid LLDPLocationFormat = 0 LLDPLocationFormatCoordinate LLDPLocationFormat = 1 LLDPLocationFormatAddress LLDPLocationFormat = 2 LLDPLocationFormatECS LLDPLocationFormat = 3 )
func (LLDPLocationFormat) String ¶
func (t LLDPLocationFormat) String() (s string)
type LLDPMACPHYConfigStatus ¶
type LLDPMediaCapabilities ¶
type LLDPMediaCapabilities struct { Capabilities bool NetworkPolicy bool Location bool PowerPSE bool PowerPD bool Inventory bool Class LLDPMediaClass }
LLDPMediaCapabilities represents the LLDP Media capabilities of a device
type LLDPMediaClass ¶
type LLDPMediaClass uint8
const ( LLDPMediaClassUndefined LLDPMediaClass = 0 LLDPMediaClassEndpointI LLDPMediaClass = 1 LLDPMediaClassEndpointII LLDPMediaClass = 2 LLDPMediaClassEndpointIII LLDPMediaClass = 3 LLDPMediaClassNetwork LLDPMediaClass = 4 )
Media Class Values
func (LLDPMediaClass) String ¶
func (t LLDPMediaClass) String() (s string)
type LLDPMediaSubtype ¶
type LLDPMediaSubtype uint8
const ( LLDPMediaTypeCapabilities LLDPMediaSubtype = 1 LLDPMediaTypeNetwork LLDPMediaSubtype = 2 LLDPMediaTypeLocation LLDPMediaSubtype = 3 LLDPMediaTypePower LLDPMediaSubtype = 4 LLDPMediaTypeHardware LLDPMediaSubtype = 5 LLDPMediaTypeFirmware LLDPMediaSubtype = 6 LLDPMediaTypeSoftware LLDPMediaSubtype = 7 LLDPMediaTypeSerial LLDPMediaSubtype = 8 LLDPMediaTypeManufacturer LLDPMediaSubtype = 9 LLDPMediaTypeModel LLDPMediaSubtype = 10 LLDPMediaTypeAssetID LLDPMediaSubtype = 11 )
Media TLV Subtypes
func (LLDPMediaSubtype) String ¶
func (t LLDPMediaSubtype) String() (s string)
type LLDPMgmtAddress ¶
type LLDPMgmtAddress struct { Subtype IANAAddressFamily Address []byte InterfaceSubtype LLDPInterfaceSubtype InterfaceNumber uint32 OID string }
type LLDPNetworkPolicy ¶
type LLDPOrgSpecificTLV ¶
LLDPOrgSpecificTLV is an Organisation-specific TLV
type LLDPPNIODelay ¶
type LLDPPNIOMRPPortStatus ¶
type LLDPPNIOPTCPStatus ¶
type LLDPPNIOPortStatus ¶
type LLDPPortID ¶
type LLDPPortID struct { Subtype LLDPPortIDSubType ID []byte }
type LLDPPortIDSubType ¶
type LLDPPortIDSubType byte
LLDPPortIDSubType specifies the value type for a single LLDPPortID.ID
const ( LLDPPortIDSubtypeReserved LLDPPortIDSubType = 0 LLDPPortIDSubtypeIfaceAlias LLDPPortIDSubType = 1 LLDPPortIDSubtypePortComp LLDPPortIDSubType = 2 LLDPPortIDSubtypeMACAddr LLDPPortIDSubType = 3 LLDPPortIDSubtypeNetworkAddr LLDPPortIDSubType = 4 LLDPPortIDSubtypeIfaceName LLDPPortIDSubType = 5 LLDPPortIDSubtypeAgentCircuitID LLDPPortIDSubType = 6 LLDPPortIDSubtypeLocal LLDPPortIDSubType = 7 )
LLDP PortID types
func (LLDPPortIDSubType) String ¶
func (t LLDPPortIDSubType) String() (s string)
type LLDPPowerPriority ¶
type LLDPPowerPriority byte
const ( LLDPPowerPriorityUnknown LLDPPowerPriority = 0 LLDPPowerPriorityMedium LLDPPowerPriority = 1 LLDPPowerPriorityHigh LLDPPowerPriority = 2 LLDPPowerPriorityLow LLDPPowerPriority = 3 )
func (LLDPPowerPriority) String ¶
func (t LLDPPowerPriority) String() (s string)
type LLDPPowerSource ¶
type LLDPPowerSource byte
func (LLDPPowerSource) String ¶
func (t LLDPPowerSource) String() (s string)
type LLDPPowerType ¶
type LLDPPowerType byte
func (LLDPPowerType) String ¶
func (t LLDPPowerType) String() (s string)
type LLDPPowerViaMDI ¶
type LLDPPowerViaMDI struct { Type LLDPPowerType Source LLDPPowerSource Priority LLDPPowerPriority Value uint16 }
type LLDPPowerViaMDI8023 ¶
type LLDPPowerViaMDI8023 struct { PortClassPSE bool // false = PD PSESupported bool PSEEnabled bool PSEPairsAbility bool PSEPowerPair uint8 PSEClass uint8 Type LLDPPowerType Source LLDPPowerSource Priority LLDPPowerPriority Requested uint16 // 1-510 Watts Allocated uint16 // 1-510 Watts }
type LLDPProfinetSubtype ¶
type LLDPProfinetSubtype uint8
Profinet Subtypes
const ( LLDPProfinetPNIODelay LLDPProfinetSubtype = 1 LLDPProfinetPNIOPortStatus LLDPProfinetSubtype = 2 LLDPProfinetPNIOMRPPortStatus LLDPProfinetSubtype = 4 LLDPProfinetPNIOChassisMAC LLDPProfinetSubtype = 5 LLDPProfinetPNIOPTCPStatus LLDPProfinetSubtype = 6 )
type LLDPSysCapabilities ¶
type LLDPSysCapabilities struct { SystemCap LLDPCapabilities EnabledCap LLDPCapabilities }
type LLDPTLVType ¶
type LLDPTLVType byte
LLDPTLVType is the type of each TLV value in a LinkLayerDiscovery packet.
const ( LLDPTLVEnd LLDPTLVType = 0 LLDPTLVChassisID LLDPTLVType = 1 LLDPTLVPortID LLDPTLVType = 2 LLDPTLVTTL LLDPTLVType = 3 LLDPTLVPortDescription LLDPTLVType = 4 LLDPTLVSysName LLDPTLVType = 5 LLDPTLVSysDescription LLDPTLVType = 6 LLDPTLVSysCapabilities LLDPTLVType = 7 LLDPTLVMgmtAddress LLDPTLVType = 8 LLDPTLVOrgSpecific LLDPTLVType = 127 )
func (LLDPTLVType) String ¶
func (t LLDPTLVType) String() (s string)
type LinkLayerDiscovery ¶
type LinkLayerDiscovery struct { BaseLayer ChassisID LLDPChassisID PortID LLDPPortID TTL uint16 Values []LinkLayerDiscoveryValue }
LinkLayerDiscovery is a packet layer containing the LinkLayer Discovery Protocol. See http:http://standards.ieee.org/getieee802/download/802.1AB-2009.pdf ChassisID, PortID and TTL are mandatory TLV's. Other values can be decoded with DecodeValues()
func (*LinkLayerDiscovery) LayerType ¶
func (c *LinkLayerDiscovery) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeLinkLayerDiscovery.
type LinkLayerDiscoveryInfo ¶
type LinkLayerDiscoveryInfo struct { BaseLayer PortDescription string SysName string SysDescription string SysCapabilities LLDPSysCapabilities MgmtAddress LLDPMgmtAddress OrgTLVs []LLDPOrgSpecificTLV // Private TLVs Unknown []LinkLayerDiscoveryValue // undecoded TLVs }
LinkLayerDiscoveryInfo represents the decoded details for a set of LinkLayerDiscoveryValues Organisation-specific TLV's can be decoded using the various Decode() methods
func (*LinkLayerDiscoveryInfo) Decode8021 ¶
func (l *LinkLayerDiscoveryInfo) Decode8021() (info LLDPInfo8021, err error)
func (*LinkLayerDiscoveryInfo) Decode8021Qbg ¶
func (l *LinkLayerDiscoveryInfo) Decode8021Qbg() (info LLDPInfo8021Qbg, err error)
func (*LinkLayerDiscoveryInfo) Decode8023 ¶
func (l *LinkLayerDiscoveryInfo) Decode8023() (info LLDPInfo8023, err error)
func (*LinkLayerDiscoveryInfo) DecodeCisco2 ¶
func (l *LinkLayerDiscoveryInfo) DecodeCisco2() (info LLDPInfoCisco2, err error)
func (*LinkLayerDiscoveryInfo) DecodeMedia ¶
func (l *LinkLayerDiscoveryInfo) DecodeMedia() (info LLDPInfoMedia, err error)
func (*LinkLayerDiscoveryInfo) DecodeProfinet ¶
func (l *LinkLayerDiscoveryInfo) DecodeProfinet() (info LLDPInfoProfinet, err error)
func (*LinkLayerDiscoveryInfo) LayerType ¶
func (c *LinkLayerDiscoveryInfo) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeLinkLayerDiscoveryInfo.
type LinkLayerDiscoveryValue ¶
type LinkLayerDiscoveryValue struct { Type LLDPTLVType Length uint16 Value []byte }
LinkLayerDiscoveryValue is a TLV value inside a LinkLayerDiscovery packet layer.
type LinkType ¶
type LinkType uint8
LinkType is an enumeration of link types, and acts as a decoder for any link type it supports.
const ( // According to pcap-linktype(7). LinkTypeNull LinkType = 0 LinkTypeEthernet LinkType = 1 LinkTypeTokenRing LinkType = 6 LinkTypeArcNet LinkType = 7 LinkTypeSLIP LinkType = 8 LinkTypePPP LinkType = 9 LinkTypeFDDI LinkType = 10 LinkTypeATM_RFC1483 LinkType = 100 LinkTypeRaw LinkType = 101 LinkTypePPP_HDLC LinkType = 50 LinkTypePPPEthernet LinkType = 51 LinkTypeC_HDLC LinkType = 104 LinkTypeIEEE802_11 LinkType = 105 LinkTypeFRelay LinkType = 107 LinkTypeLoop LinkType = 108 LinkTypeLinuxSLL LinkType = 113 LinkTypeLTalk LinkType = 104 LinkTypePFLog LinkType = 117 LinkTypePrismHeader LinkType = 119 LinkTypeIPOverFC LinkType = 122 LinkTypeSunATM LinkType = 123 LinkTypeIEEE80211Radio LinkType = 127 LinkTypeARCNetLinux LinkType = 129 LinkTypeLinuxIRDA LinkType = 144 LinkTypeLinuxLAPD LinkType = 177 LinkTypeLinuxUSB LinkType = 220 )
type LinuxSLL ¶ added in v1.1.9
type LinuxSLL struct { BaseLayer PacketType LinuxSLLPacketType AddrLen uint16 Addr net.HardwareAddr EthernetType EthernetType }
func (*LinuxSLL) CanDecode ¶ added in v1.1.9
func (sll *LinuxSLL) CanDecode() gopacket.LayerClass
func (*LinuxSLL) DecodeFromBytes ¶ added in v1.1.9
func (sll *LinuxSLL) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*LinuxSLL) NextLayerType ¶ added in v1.1.9
type LinuxSLLPacketType ¶ added in v1.1.9
type LinuxSLLPacketType uint16
const ( LinuxSLLPacketTypeHost LinuxSLLPacketType = 0 // To us LinuxSLLPacketTypeBroadcast LinuxSLLPacketType = 1 // To all LinuxSLLPacketTypeMulticast LinuxSLLPacketType = 2 // To group LinuxSLLPacketTypeOtherhost LinuxSLLPacketType = 3 // To someone else LinuxSLLPacketTypeOutgoing LinuxSLLPacketType = 4 // Outgoing of any type // These ones are invisible by user level LinuxSLLPacketTypeLoopback LinuxSLLPacketType = 5 // MC/BRD frame looped back LinuxSLLPacketTypeFastroute LinuxSLLPacketType = 6 // Fastrouted frame )
func (LinuxSLLPacketType) String ¶ added in v1.1.9
func (l LinuxSLLPacketType) String() string
type Loopback ¶
type Loopback struct { BaseLayer Family ProtocolFamily }
Loopback contains the header for loopback encapsulation. This header is used by both BSD and OpenBSD style loopback decoding (pcap's DLT_NULL and DLT_LOOP, respectively).
type MPLS ¶
MPLS is the MPLS packet header.
func (*MPLS) SerializeTo ¶ added in v1.0.1
func (m *MPLS) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type NDPBackplaneType ¶
type NDPBackplaneType uint8
const ( NDPBackplaneOther NDPBackplaneType = 1 NDPBackplaneEthernet NDPBackplaneType = 2 NDPBackplaneEthernetTokenring NDPBackplaneType = 3 NDPBackplaneEthernetFDDI NDPBackplaneType = 4 NDPBackplaneEthernetTokenringFDDI NDPBackplaneType = 5 NDPBackplaneEthernetTokenringRedundantPower NDPBackplaneType = 6 NDPBackplaneEthernetTokenringFDDIRedundantPower NDPBackplaneType = 7 NDPBackplaneTokenRing NDPBackplaneType = 8 NDPBackplaneEthernetTokenringFastEthernet NDPBackplaneType = 9 NDPBackplaneEthernetFastEthernet NDPBackplaneType = 10 NDPBackplaneEthernetTokenringFastEthernetRedundantPower NDPBackplaneType = 11 NDPBackplaneEthernetFastEthernetGigabitEthernet NDPBackplaneType = 12 )
Nortel Backplane Types
func (NDPBackplaneType) String ¶
func (t NDPBackplaneType) String() (s string)
type NDPChassisType ¶
type NDPChassisType uint8
const ( NDPChassisother NDPChassisType = 1 NDPChassis3000 NDPChassisType = 2 NDPChassis3030 NDPChassisType = 3 NDPChassis2310 NDPChassisType = 4 NDPChassis2810 NDPChassisType = 5 NDPChassis2912 NDPChassisType = 6 NDPChassis2914 NDPChassisType = 7 NDPChassis271x NDPChassisType = 8 NDPChassis2813 NDPChassisType = 9 NDPChassis2814 NDPChassisType = 10 NDPChassis2915 NDPChassisType = 11 NDPChassis5000 NDPChassisType = 12 NDPChassis2813SA NDPChassisType = 13 NDPChassis2814SA NDPChassisType = 14 NDPChassis810M NDPChassisType = 15 NDPChassisEthercell NDPChassisType = 16 NDPChassis5005 NDPChassisType = 17 NDPChassisAlcatelEWC NDPChassisType = 18 NDPChassis2715SA NDPChassisType = 20 NDPChassis2486 NDPChassisType = 21 NDPChassis28000series NDPChassisType = 22 NDPChassis23000series NDPChassisType = 23 NDPChassis5DN00xseries NDPChassisType = 24 NDPChassisBayStackEthernet NDPChassisType = 25 NDPChassis23100series NDPChassisType = 26 NDPChassis100BaseTHub NDPChassisType = 27 NDPChassis3000FastEthernet NDPChassisType = 28 NDPChassisOrionSwitch NDPChassisType = 29 NDPChassisDDS NDPChassisType = 31 NDPChassisCentillion6slot NDPChassisType = 32 NDPChassisCentillion12slot NDPChassisType = 33 NDPChassisCentillion1slot NDPChassisType = 34 NDPChassisBayStack301 NDPChassisType = 35 NDPChassisBayStackTokenRingHub NDPChassisType = 36 NDPChassisFVCMultimediaSwitch NDPChassisType = 37 NDPChassisSwitchNode NDPChassisType = 38 NDPChassisBayStack302Switch NDPChassisType = 39 NDPChassisBayStack350Switch NDPChassisType = 40 NDPChassisBayStack150EthernetHub NDPChassisType = 41 NDPChassisCentillion50NSwitch NDPChassisType = 42 NDPChassisCentillion50TSwitch NDPChassisType = 43 NDPChassisBayStack303304Switches NDPChassisType = 44 NDPChassisBayStack200EthernetHub NDPChassisType = 45 NDPChassisBayStack25010100EthernetHub NDPChassisType = 46 NDPChassisBayStack450101001000Switches NDPChassisType = 48 NDPChassisBayStack41010100Switches NDPChassisType = 49 NDPChassisPassport1200L3Switch NDPChassisType = 50 NDPChassisPassport1250L3Switch NDPChassisType = 51 NDPChassisPassport1100L3Switch NDPChassisType = 52 NDPChassisPassport1150L3Switch NDPChassisType = 53 NDPChassisPassport1050L3Switch NDPChassisType = 54 NDPChassisPassport1051L3Switch NDPChassisType = 55 NDPChassisPassport8610L3Switch NDPChassisType = 56 NDPChassisPassport8606L3Switch NDPChassisType = 57 NDPChassisPassport8010 NDPChassisType = 58 NDPChassisPassport8006 NDPChassisType = 59 NDPChassisBayStack670wirelessaccesspoint NDPChassisType = 60 NDPChassisPassport740 NDPChassisType = 61 NDPChassisPassport750 NDPChassisType = 62 NDPChassisPassport790 NDPChassisType = 63 NDPChassisBusinessPolicySwitch200010100Switches NDPChassisType = 64 NDPChassisPassport8110L2Switch NDPChassisType = 65 NDPChassisPassport8106L2Switch NDPChassisType = 66 NDPChassisBayStack3580GigSwitch NDPChassisType = 67 NDPChassisBayStack10PowerSupplyUnit NDPChassisType = 68 NDPChassisBayStack42010100Switch NDPChassisType = 69 NDPChassisOPTeraMetro1200EthernetServiceModule NDPChassisType = 70 NDPChassisOPTera8010co NDPChassisType = 71 NDPChassisOPTera8610coL3Switch NDPChassisType = 72 NDPChassisOPTera8110coL2Switch NDPChassisType = 73 NDPChassisOPTera8003 NDPChassisType = 74 NDPChassisOPTera8603L3Switch NDPChassisType = 75 NDPChassisOPTera8103L2Switch NDPChassisType = 76 NDPChassisBayStack380101001000Switch NDPChassisType = 77 NDPChassisEthernetSwitch47048T NDPChassisType = 78 NDPChassisOPTeraMetro1450EthernetServiceModule NDPChassisType = 79 NDPChassisOPTeraMetro1400EthernetServiceModule NDPChassisType = 80 NDPChassisAlteonSwitchFamily NDPChassisType = 81 NDPChassisEthernetSwitch46024TPWR NDPChassisType = 82 NDPChassisOPTeraMetro8010OPML2Switch NDPChassisType = 83 NDPChassisOPTeraMetro8010coOPML2Switch NDPChassisType = 84 NDPChassisOPTeraMetro8006OPML2Switch NDPChassisType = 85 NDPChassisOPTeraMetro8003OPML2Switch NDPChassisType = 86 NDPChassisAlteon180e NDPChassisType = 87 NDPChassisAlteonAD3 NDPChassisType = 88 NDPChassisAlteon184 NDPChassisType = 89 NDPChassisAlteonAD4 NDPChassisType = 90 NDPChassisPassport1424L3Switch NDPChassisType = 91 NDPChassisPassport1648L3Switch NDPChassisType = 92 NDPChassisPassport1612L3Switch NDPChassisType = 93 NDPChassisPassport1624L3Switch NDPChassisType = 94 NDPChassisBayStack38024FFiber1000Switch NDPChassisType = 95 NDPChassisEthernetRoutingSwitch551024T NDPChassisType = 96 NDPChassisEthernetRoutingSwitch551048T NDPChassisType = 97 NDPChassisEthernetSwitch47024T NDPChassisType = 98 NDPChassisNortelNetworksWirelessLANAccessPoint2220 NDPChassisType = 99 NDPChassisPassportRBS2402L3Switch NDPChassisType = 100 NDPChassisAlteonApplicationSwitch2424 NDPChassisType = 101 NDPChassisAlteonApplicationSwitch2224 NDPChassisType = 102 NDPChassisAlteonApplicationSwitch2208 NDPChassisType = 103 NDPChassisAlteonApplicationSwitch2216 NDPChassisType = 104 NDPChassisAlteonApplicationSwitch3408 NDPChassisType = 105 NDPChassisAlteonApplicationSwitch3416 NDPChassisType = 106 NDPChassisNortelNetworksWirelessLANSecuritySwitch2250 NDPChassisType = 107 NDPChassisEthernetSwitch42548T NDPChassisType = 108 NDPChassisEthernetSwitch42524T NDPChassisType = 109 NDPChassisNortelNetworksWirelessLANAccessPoint2221 NDPChassisType = 110 NDPChassisNortelMetroEthernetServiceUnit24TSPFswitch NDPChassisType = 111 NDPChassisNortelMetroEthernetServiceUnit24TLXDCswitch NDPChassisType = 112 NDPChassisPassport830010slotchassis NDPChassisType = 113 NDPChassisPassport83006slotchassis NDPChassisType = 114 NDPChassisEthernetRoutingSwitch552024TPWR NDPChassisType = 115 NDPChassisEthernetRoutingSwitch552048TPWR NDPChassisType = 116 NDPChassisNortelNetworksVPNGateway3050 NDPChassisType = 117 NDPChassisAlteonSSL31010100 NDPChassisType = 118 NDPChassisAlteonSSL31010100Fiber NDPChassisType = 119 NDPChassisAlteonSSL31010100FIPS NDPChassisType = 120 NDPChassisAlteonSSL410101001000 NDPChassisType = 121 NDPChassisAlteonSSL410101001000Fiber NDPChassisType = 122 NDPChassisAlteonApplicationSwitch2424SSL NDPChassisType = 123 NDPChassisEthernetSwitch32524T NDPChassisType = 124 NDPChassisEthernetSwitch32524G NDPChassisType = 125 NDPChassisNortelNetworksWirelessLANAccessPoint2225 NDPChassisType = 126 NDPChassisNortelNetworksWirelessLANSecuritySwitch2270 NDPChassisType = 127 NDPChassis24portEthernetSwitch47024TPWR NDPChassisType = 128 NDPChassis48portEthernetSwitch47048TPWR NDPChassisType = 129 NDPChassisEthernetRoutingSwitch553024TFD NDPChassisType = 130 NDPChassisEthernetSwitch351024T NDPChassisType = 131 NDPChassisNortelMetroEthernetServiceUnit12GACL3Switch NDPChassisType = 132 NDPChassisNortelMetroEthernetServiceUnit12GDCL3Switch NDPChassisType = 133 NDPChassisNortelSecureAccessSwitch NDPChassisType = 134 NDPChassisNortelNetworksVPNGateway3070 NDPChassisType = 135 NDPChassisOPTeraMetro3500 NDPChassisType = 136 NDPChassisSMBBES101024T NDPChassisType = 137 NDPChassisSMBBES101048T NDPChassisType = 138 NDPChassisSMBBES102024TPWR NDPChassisType = 139 NDPChassisSMBBES102048TPWR NDPChassisType = 140 NDPChassisSMBBES201024T NDPChassisType = 141 NDPChassisSMBBES201048T NDPChassisType = 142 NDPChassisSMBBES202024TPWR NDPChassisType = 143 NDPChassisSMBBES202048TPWR NDPChassisType = 144 NDPChassisSMBBES11024T NDPChassisType = 145 NDPChassisSMBBES11048T NDPChassisType = 146 NDPChassisSMBBES12024TPWR NDPChassisType = 147 NDPChassisSMBBES12048TPWR NDPChassisType = 148 NDPChassisSMBBES21024T NDPChassisType = 149 NDPChassisSMBBES21048T NDPChassisType = 150 NDPChassisSMBBES22024TPWR NDPChassisType = 151 NDPChassisSMBBES22048TPWR NDPChassisType = 152 NDPChassisOME6500 NDPChassisType = 153 NDPChassisEthernetRoutingSwitch4548GT NDPChassisType = 154 NDPChassisEthernetRoutingSwitch4548GTPWR NDPChassisType = 155 NDPChassisEthernetRoutingSwitch4550T NDPChassisType = 156 NDPChassisEthernetRoutingSwitch4550TPWR NDPChassisType = 157 NDPChassisEthernetRoutingSwitch4526FX NDPChassisType = 158 NDPChassisEthernetRoutingSwitch250026T NDPChassisType = 159 NDPChassisEthernetRoutingSwitch250026TPWR NDPChassisType = 160 NDPChassisEthernetRoutingSwitch250050T NDPChassisType = 161 NDPChassisEthernetRoutingSwitch250050TPWR NDPChassisType = 162 )
Nortel Chassis Types
func (NDPChassisType) String ¶
func (t NDPChassisType) String() (s string)
type NortelDiscovery ¶
type NortelDiscovery struct { BaseLayer IPAddress net.IP SegmentID []byte Chassis NDPChassisType Backplane NDPBackplaneType State NDPState NumLinks uint8 }
NortelDiscovery is a packet layer containing the Nortel Discovery Protocol.
func (*NortelDiscovery) LayerType ¶
func (c *NortelDiscovery) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeNortelDiscovery.
type PFDirection ¶ added in v1.1.9
type PFDirection uint8
const ( PFDirectionInOut PFDirection = 0 PFDirectionIn PFDirection = 1 PFDirectionOut PFDirection = 2 )
type PFLog ¶ added in v1.1.0
type PFLog struct { BaseLayer Length uint8 Family ProtocolFamily Action, Reason uint8 IFName, Ruleset []byte RuleNum, SubruleNum uint32 UID uint32 PID int32 RuleUID uint32 RulePID int32 Direction PFDirection }
PFLog provides the layer for 'pf' packet-filter logging, as described at http://www.freebsd.org/cgi/man.cgi?query=pflog&sektion=4
func (*PFLog) CanDecode ¶ added in v1.1.0
func (pf *PFLog) CanDecode() gopacket.LayerClass
func (*PFLog) DecodeFromBytes ¶ added in v1.1.0
func (pf *PFLog) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*PFLog) NextLayerType ¶ added in v1.1.0
type PPP ¶
PPP is the layer for PPP encapsulation headers.
func (*PPP) SerializeTo ¶ added in v1.0.1
func (p *PPP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type PPPType ¶
type PPPType uint16
PPPType is an enumeration of PPP type values, and acts as a decoder for any type it supports.
type PPPoE ¶
type PPPoE struct { BaseLayer Version uint8 Type uint8 Code PPPoECode SessionId uint16 Length uint16 }
PPPoE is the layer for PPPoE encapsulation headers.
func (*PPPoE) SerializeTo ¶ added in v1.0.1
func (p *PPPoE) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
type PPPoECode ¶
type PPPoECode uint8
PPPoECode is the PPPoE code enum, taken from http://tools.ietf.org/html/rfc2516
type PortProtocolVLANID ¶
type ProtocolFamily ¶
type ProtocolFamily uint8
ProtocolFamily is the set of values defined as PF_* in sys/socket.h
const ( ProtocolFamilyIPv4 ProtocolFamily = 2 // BSDs use different values for INET6... glory be. These values taken from // tcpdump 4.3.0. ProtocolFamilyIPv6BSD ProtocolFamily = 24 ProtocolFamilyIPv6FreeBSD ProtocolFamily = 28 ProtocolFamilyIPv6Darwin ProtocolFamily = 30 ProtocolFamilyIPv6Linux ProtocolFamily = 10 )
func (ProtocolFamily) Decode ¶
func (a ProtocolFamily) Decode(data []byte, p gopacket.PacketBuilder) error
func (ProtocolFamily) LayerType ¶ added in v1.1.0
func (a ProtocolFamily) LayerType() gopacket.LayerType
func (ProtocolFamily) String ¶
func (a ProtocolFamily) String() string
type ProtocolGuessingDecoder ¶
type ProtocolGuessingDecoder struct{}
ProtocolGuessingDecoder attempts to guess the protocol of the bytes it's given, then decode the packet accordingly. Its algorithm for guessing is:
If the packet starts with byte 0x45-0x4F: IPv4 If the packet starts with byte 0x60-0x6F: IPv6 Otherwise: Error
See draft-hsmit-isis-aal5mux-00.txt for more detail on this approach.
func (ProtocolGuessingDecoder) Decode ¶
func (ProtocolGuessingDecoder) Decode(data []byte, p gopacket.PacketBuilder) error
type ProtocolIdentity ¶
type ProtocolIdentity []byte
type RUDP ¶
type RUDP struct { BaseLayer SYN, ACK, EACK, RST, NUL bool Version uint8 HeaderLength uint8 SrcPort, DstPort RUDPPort DataLength uint16 Seq, Ack, Checksum uint32 VariableHeaderArea []byte // RUDPHeaderSyn contains SYN information for the RUDP packet, // if the SYN flag is set *RUDPHeaderSYN // RUDPHeaderEack contains EACK information for the RUDP packet, // if the EACK flag is set. *RUDPHeaderEACK }
func (*RUDP) TransportFlow ¶
type RUDPHeaderEACK ¶
type RUDPHeaderEACK struct {
SeqsReceivedOK []uint32
}
type RUDPHeaderSYN ¶
type RUDPHeaderSYN struct {
MaxOutstandingSegments, MaxSegmentSize, OptionFlags uint16
}
type RadioTap ¶ added in v1.1.4
type RadioTap struct { BaseLayer // Version 0. Only increases for drastic changes, introduction of compatible new fields does not count. Version uint8 // Length of the whole header in bytes, including it_version, it_pad, it_len, and data fields. Length uint16 // Present is a bitmap telling which fields are present. Set bit 31 (0x80000000) to extend the bitmap by another 32 bits. Additional extensions are made by setting bit 31. Present RadioTapPresent // TSFT: value in microseconds of the MAC's 64-bit 802.11 Time Synchronization Function timer when the first bit of the MPDU arrived at the MAC. For received frames, only. TSFT uint64 Flags RadioTapFlags // Rate Tx/Rx data rate Rate RadioTapRate // ChannelFrequency Tx/Rx frequency in MHz, followed by flags ChannelFrequency RadioTapChannelFrequency ChannelFlags RadioTapChannelFlags // FHSS For frequency-hopping radios, the hop set (first byte) and pattern (second byte). FHSS uint16 // DBMAntennaSignal RF signal power at the antenna, decibel difference from one milliwatt. DBMAntennaSignal int8 // DBMAntennaNoise RF noise power at the antenna, decibel difference from one milliwatt. DBMAntennaNoise int8 // LockQuality Quality of Barker code lock. Unitless. Monotonically nondecreasing with "better" lock strength. Called "Signal Quality" in datasheets. LockQuality uint16 // TxAttenuation Transmit power expressed as unitless distance from max power set at factory calibration. 0 is max power. Monotonically nondecreasing with lower power levels. TxAttenuation uint16 // DBTxAttenuation Transmit power expressed as decibel distance from max power set at factory calibration. 0 is max power. Monotonically nondecreasing with lower power levels. DBTxAttenuation uint16 // DBMTxPower Transmit power expressed as dBm (decibels from a 1 milliwatt reference). This is the absolute power level measured at the antenna port. DBMTxPower int8 // Antenna Unitless indication of the Rx/Tx antenna for this packet. The first antenna is antenna 0. Antenna uint8 // DBAntennaSignal RF signal power at the antenna, decibel difference from an arbitrary, fixed reference. DBAntennaSignal uint8 // DBAntennaNoise RF noise power at the antenna, decibel difference from an arbitrary, fixed reference point. DBAntennaNoise uint8 }
func (*RadioTap) CanDecode ¶ added in v1.1.4
func (m *RadioTap) CanDecode() gopacket.LayerClass
func (*RadioTap) DecodeFromBytes ¶ added in v1.1.4
func (m *RadioTap) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*RadioTap) NextLayerType ¶ added in v1.1.4
type RadioTapChannelFlags ¶ added in v1.1.4
type RadioTapChannelFlags uint16
const ( RadioTapChannelFlagsTurbo RadioTapChannelFlags = 0x0010 // Turbo channel RadioTapChannelFlagsCCK RadioTapChannelFlags = 0x0020 // CCK channel RadioTapChannelFlagsOFDM RadioTapChannelFlags = 0x0040 // OFDM channel RadioTapChannelFlagsGhz2 RadioTapChannelFlags = 0x0080 // 2 GHz spectrum channel. RadioTapChannelFlagsGhz5 RadioTapChannelFlags = 0x0100 // 5 GHz spectrum channel RadioTapChannelFlagsPassive RadioTapChannelFlags = 0x0200 // Only passive scan allowed RadioTapChannelFlagsDynamic RadioTapChannelFlags = 0x0400 // Dynamic CCK-OFDM channel RadioTapChannelFlagsGFSK RadioTapChannelFlags = 0x0800 // GFSK channel (FHSS PHY) )
func (RadioTapChannelFlags) CCK ¶ added in v1.1.4
func (r RadioTapChannelFlags) CCK() bool
func (RadioTapChannelFlags) Dynamic ¶ added in v1.1.4
func (r RadioTapChannelFlags) Dynamic() bool
func (RadioTapChannelFlags) GFSK ¶ added in v1.1.4
func (r RadioTapChannelFlags) GFSK() bool
func (RadioTapChannelFlags) Ghz2 ¶ added in v1.1.4
func (r RadioTapChannelFlags) Ghz2() bool
func (RadioTapChannelFlags) Ghz5 ¶ added in v1.1.4
func (r RadioTapChannelFlags) Ghz5() bool
func (RadioTapChannelFlags) OFDM ¶ added in v1.1.4
func (r RadioTapChannelFlags) OFDM() bool
func (RadioTapChannelFlags) Passive ¶ added in v1.1.4
func (r RadioTapChannelFlags) Passive() bool
func (RadioTapChannelFlags) String ¶ added in v1.1.4
func (a RadioTapChannelFlags) String() string
String provides a human readable string for RadioTapChannelFlags. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the RadioTapChannelFlags value, not its string.
func (RadioTapChannelFlags) Turbo ¶ added in v1.1.4
func (r RadioTapChannelFlags) Turbo() bool
type RadioTapChannelFrequency ¶ added in v1.1.4
type RadioTapChannelFrequency uint16
func (RadioTapChannelFrequency) String ¶ added in v1.1.4
func (a RadioTapChannelFrequency) String() string
type RadioTapFlags ¶ added in v1.1.4
type RadioTapFlags uint8
const ( RadioTapFlagsCFP RadioTapFlags = 1 << iota // sent/received during CFP RadioTapFlagsShortPreamble // sent/received * with short * preamble RadioTapFlagsWEP // sent/received * with WEP encryption RadioTapFlagsFrag // sent/received * with fragmentation RadioTapFlagsFCS // frame includes FCS RadioTapFlagsDatapad // frame has padding between * 802.11 header and payload * (to 32-bit boundary) RadioTapFlagsBadFCS // does not pass FCS check RadioTapFlagsShortGI // HT short GI )
func (RadioTapFlags) BadFCS ¶ added in v1.1.4
func (r RadioTapFlags) BadFCS() bool
func (RadioTapFlags) CFP ¶ added in v1.1.4
func (r RadioTapFlags) CFP() bool
func (RadioTapFlags) Datapad ¶ added in v1.1.4
func (r RadioTapFlags) Datapad() bool
func (RadioTapFlags) FCS ¶ added in v1.1.4
func (r RadioTapFlags) FCS() bool
func (RadioTapFlags) Frag ¶ added in v1.1.4
func (r RadioTapFlags) Frag() bool
func (RadioTapFlags) ShortGI ¶ added in v1.1.4
func (r RadioTapFlags) ShortGI() bool
func (RadioTapFlags) ShortPreamble ¶ added in v1.1.4
func (r RadioTapFlags) ShortPreamble() bool
func (RadioTapFlags) String ¶ added in v1.1.4
func (a RadioTapFlags) String() string
String provides a human readable string for RadioTapFlags. This string is possibly subject to change over time; if you're storing this persistently, you should probably store the RadioTapFlags value, not its string.
func (RadioTapFlags) WEP ¶ added in v1.1.4
func (r RadioTapFlags) WEP() bool
type RadioTapPresent ¶ added in v1.1.4
type RadioTapPresent uint32
const ( RadioTapPresentTSFT RadioTapPresent = 1 << iota RadioTapPresentFlags RadioTapPresentRate RadioTapPresentChannel RadioTapPresentFHSS RadioTapPresentDBMAntennaSignal RadioTapPresentDBMAntennaNoise RadioTapPresentLockQuality RadioTapPresentTxAttenuation RadioTapPresentDBTxAttenuation RadioTapPresentDBMTxPower RadioTapPresentAntenna RadioTapPresentDBAntennaSignal RadioTapPresentDBAntennaNoise RadioTapPresentRxFlags RadioTapPresentTxFlags RadioTapPresentRtsRetries RadioTapPresentDataRetries RadioTapPresentEXT RadioTapPresent = 1 << 31 )
func (RadioTapPresent) Antenna ¶ added in v1.1.4
func (r RadioTapPresent) Antenna() bool
func (RadioTapPresent) Channel ¶ added in v1.1.4
func (r RadioTapPresent) Channel() bool
func (RadioTapPresent) DBAntennaNoise ¶ added in v1.1.4
func (r RadioTapPresent) DBAntennaNoise() bool
func (RadioTapPresent) DBAntennaSignal ¶ added in v1.1.4
func (r RadioTapPresent) DBAntennaSignal() bool
func (RadioTapPresent) DBMAntennaNoise ¶ added in v1.1.4
func (r RadioTapPresent) DBMAntennaNoise() bool
func (RadioTapPresent) DBMAntennaSignal ¶ added in v1.1.4
func (r RadioTapPresent) DBMAntennaSignal() bool
func (RadioTapPresent) DBMTxPower ¶ added in v1.1.4
func (r RadioTapPresent) DBMTxPower() bool
func (RadioTapPresent) DBTxAttenuation ¶ added in v1.1.4
func (r RadioTapPresent) DBTxAttenuation() bool
func (RadioTapPresent) DataRetries ¶ added in v1.1.4
func (r RadioTapPresent) DataRetries() bool
func (RadioTapPresent) EXT ¶ added in v1.1.4
func (r RadioTapPresent) EXT() bool
func (RadioTapPresent) FHSS ¶ added in v1.1.4
func (r RadioTapPresent) FHSS() bool
func (RadioTapPresent) Flags ¶ added in v1.1.4
func (r RadioTapPresent) Flags() bool
func (RadioTapPresent) LockQuality ¶ added in v1.1.4
func (r RadioTapPresent) LockQuality() bool
func (RadioTapPresent) Rate ¶ added in v1.1.4
func (r RadioTapPresent) Rate() bool
func (RadioTapPresent) RtsRetries ¶ added in v1.1.4
func (r RadioTapPresent) RtsRetries() bool
func (RadioTapPresent) RxFlags ¶ added in v1.1.4
func (r RadioTapPresent) RxFlags() bool
func (RadioTapPresent) TSFT ¶ added in v1.1.4
func (r RadioTapPresent) TSFT() bool
func (RadioTapPresent) TxAttenuation ¶ added in v1.1.4
func (r RadioTapPresent) TxAttenuation() bool
func (RadioTapPresent) TxFlags ¶ added in v1.1.4
func (r RadioTapPresent) TxFlags() bool
type RadioTapRate ¶ added in v1.1.4
type RadioTapRate uint8
func (RadioTapRate) String ¶ added in v1.1.4
func (a RadioTapRate) String() string
type SCTP ¶
type SCTP struct { BaseLayer SrcPort, DstPort SCTPPort VerificationTag uint32 Checksum uint32 // contains filtered or unexported fields }
SCTP contains information on the top level of an SCTP packet.
func (SCTP) SerializeTo ¶ added in v1.1.6
func (s SCTP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
func (*SCTP) TransportFlow ¶
TransportFlow returns a flow based on the source and destination SCTP port.
type SCTPChunk ¶
type SCTPChunk struct { BaseLayer Type SCTPChunkType Flags uint8 Length uint16 // ActualLength is the total length of an SCTP chunk, including padding. // SCTP chunks start and end on 4-byte boundaries. So if a chunk has a length // of 18, it means that it has data up to and including byte 18, then padding // up to the next 4-byte boundary, 20. In this case, Length would be 18, and // ActualLength would be 20. ActualLength int }
SCTPChunk contains the common fields in all SCTP chunks.
type SCTPChunkType ¶
type SCTPChunkType uint8
SCTPChunkType is an enumeration of chunk types inside SCTP packets.
const ( SCTPChunkTypeData SCTPChunkType = 0 SCTPChunkTypeInit SCTPChunkType = 1 SCTPChunkTypeInitAck SCTPChunkType = 2 SCTPChunkTypeSack SCTPChunkType = 3 SCTPChunkTypeHeartbeat SCTPChunkType = 4 SCTPChunkTypeHeartbeatAck SCTPChunkType = 5 SCTPChunkTypeAbort SCTPChunkType = 6 SCTPChunkTypeShutdown SCTPChunkType = 7 SCTPChunkTypeShutdownAck SCTPChunkType = 8 SCTPChunkTypeError SCTPChunkType = 9 SCTPChunkTypeCookieEcho SCTPChunkType = 10 SCTPChunkTypeCookieAck SCTPChunkType = 11 SCTPChunkTypeShutdownComplete SCTPChunkType = 14 )
func (SCTPChunkType) Decode ¶
func (a SCTPChunkType) Decode(data []byte, p gopacket.PacketBuilder) error
func (SCTPChunkType) String ¶
func (a SCTPChunkType) String() string
type SCTPCookieEcho ¶
SCTPCookieEcho is the SCTP Cookie Echo layer.
func (*SCTPCookieEcho) LayerType ¶
func (sc *SCTPCookieEcho) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeSCTPCookieEcho.
func (SCTPCookieEcho) SerializeTo ¶ added in v1.1.6
func (sc SCTPCookieEcho) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPData ¶
type SCTPData struct { SCTPChunk Unordered, BeginFragment, EndFragment bool TSN uint32 StreamId uint16 StreamSequence uint16 PayloadProtocol uint32 PayloadData []byte }
SCTPData is the SCTP Data chunk layer.
func (SCTPData) SerializeTo ¶ added in v1.1.6
func (sc SCTPData) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPEmptyLayer ¶
type SCTPEmptyLayer struct {
SCTPChunk
}
This struct is used by all empty SCTP chunks (currently CookieAck and ShutdownComplete).
func (*SCTPEmptyLayer) LayerType ¶
func (sc *SCTPEmptyLayer) LayerType() gopacket.LayerType
LayerType returns either gopacket.LayerTypeSCTPShutdownComplete or LayerTypeSCTPCookieAck.
func (SCTPEmptyLayer) SerializeTo ¶ added in v1.1.6
func (sc SCTPEmptyLayer) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPError ¶
type SCTPError struct { SCTPChunk Parameters []SCTPErrorParameter }
SCTPError is the SCTP error layer, also used for SCTP aborts.
func (SCTPError) SerializeTo ¶ added in v1.1.6
func (sc SCTPError) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPErrorParameter ¶
type SCTPErrorParameter SCTPParameter
SCTPErrorParameter is the parameter type used by SCTP Abort and Error layers.
type SCTPHeartbeat ¶
type SCTPHeartbeat struct { SCTPChunk Parameters []SCTPHeartbeatParameter }
SCTPHeartbeat is the SCTP heartbeat layer, also used for heatbeat ack.
func (*SCTPHeartbeat) LayerType ¶
func (sc *SCTPHeartbeat) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeSCTPHeartbeat.
func (SCTPHeartbeat) SerializeTo ¶ added in v1.1.6
func (sc SCTPHeartbeat) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPHeartbeatParameter ¶
type SCTPHeartbeatParameter SCTPParameter
SCTPHeartbeatParameter is the parameter type used by SCTP heartbeat and heartbeat ack layers.
type SCTPInit ¶
type SCTPInit struct { SCTPChunk InitiateTag uint32 AdvertisedReceiverWindowCredit uint32 OutboundStreams, InboundStreams uint16 InitialTSN uint32 Parameters []SCTPInitParameter }
SCTPInit is used as the return value for both SCTPInit and SCTPInitAck messages.
func (*SCTPInit) LayerType ¶
LayerType returns either gopacket.LayerTypeSCTPInit or gopacket.LayerTypeSCTPInitAck.
func (SCTPInit) SerializeTo ¶ added in v1.1.6
func (sc SCTPInit) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPInitParameter ¶
type SCTPInitParameter SCTPParameter
SCTPInitParameter is a parameter for an SCTP Init or InitAck packet.
type SCTPParameter ¶
SCTPParameter is a TLV parameter inside a SCTPChunk.
func (SCTPParameter) Bytes ¶ added in v1.1.6
func (p SCTPParameter) Bytes() []byte
type SCTPSack ¶
type SCTPSack struct { SCTPChunk CumulativeTSNAck uint32 AdvertisedReceiverWindowCredit uint32 NumGapACKs, NumDuplicateTSNs uint16 GapACKs []uint16 DuplicateTSNs []uint32 }
SCTPSack is the SCTP Selective ACK chunk layer.
func (SCTPSack) SerializeTo ¶ added in v1.1.6
func (sc SCTPSack) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPShutdown ¶
SCTPShutdown is the SCTP shutdown layer.
func (*SCTPShutdown) LayerType ¶
func (sc *SCTPShutdown) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeSCTPShutdown.
func (SCTPShutdown) SerializeTo ¶ added in v1.1.6
func (sc SCTPShutdown) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPShutdownAck ¶
type SCTPShutdownAck struct {
SCTPChunk
}
SCTPShutdownAck is the SCTP shutdown layer.
func (*SCTPShutdownAck) LayerType ¶
func (sc *SCTPShutdownAck) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeSCTPShutdownAck.
func (SCTPShutdownAck) SerializeTo ¶ added in v1.1.6
func (sc SCTPShutdownAck) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SCTPUnknownChunkType ¶
type SCTPUnknownChunkType struct { SCTPChunk // contains filtered or unexported fields }
SCTPUnknownChunkType is the layer type returned when we don't recognize the chunk type. Since there's a length in a known location, we can skip over it even if we don't know what it is, and continue parsing the rest of the chunks. This chunk is stored as an ErrorLayer in the packet.
func (*SCTPUnknownChunkType) Error ¶
func (s *SCTPUnknownChunkType) Error() error
Error implements ErrorLayer.
func (*SCTPUnknownChunkType) LayerType ¶
func (s *SCTPUnknownChunkType) LayerType() gopacket.LayerType
LayerType returns gopacket.LayerTypeSCTPUnknownChunkType.
func (*SCTPUnknownChunkType) Payload ¶
func (s *SCTPUnknownChunkType) Payload() []byte
Payload returns all bytes in this header, including the decoded Type, Length, and Flags.
func (SCTPUnknownChunkType) SerializeTo ¶ added in v1.1.6
func (s SCTPUnknownChunkType) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo is for gopacket.SerializableLayer.
type SFlowASDestination ¶ added in v1.1.10
type SFlowASDestination struct { Type SFlowASPathType Count uint32 Members []uint32 }
func (SFlowASDestination) String ¶ added in v1.1.10
func (asd SFlowASDestination) String() string
type SFlowASPathType ¶ added in v1.1.10
type SFlowASPathType uint32
const ( SFlowASSet SFlowASPathType = 1 SFlowASSequence SFlowASPathType = 2 )
func (SFlowASPathType) String ¶ added in v1.1.10
func (apt SFlowASPathType) String() string
type SFlowBaseCounterRecord ¶ added in v1.1.10
type SFlowBaseCounterRecord struct { EnterpriseID SFlowEnterpriseID Format SFlowCounterRecordType FlowDataLength uint32 }
func (SFlowBaseCounterRecord) GetType ¶ added in v1.1.10
func (bcr SFlowBaseCounterRecord) GetType() SFlowCounterRecordType
type SFlowBaseFlowRecord ¶ added in v1.1.10
type SFlowBaseFlowRecord struct { EnterpriseID SFlowEnterpriseID Format SFlowFlowRecordType FlowDataLength uint32 }
SFlowBaseFlowRecord holds the fields common to all records of type SFlowFlowRecordType
func (SFlowBaseFlowRecord) GetType ¶ added in v1.1.10
func (bfr SFlowBaseFlowRecord) GetType() SFlowFlowRecordType
type SFlowCharSet ¶ added in v1.1.10
type SFlowCharSet uint32
const ( SFlowCSunknown SFlowCharSet = 2 SFlowCSASCII SFlowCharSet = 3 SFlowCSISOLatin1 SFlowCharSet = 4 SFlowCSISOLatin2 SFlowCharSet = 5 SFlowCSISOLatin3 SFlowCharSet = 6 SFlowCSISOLatin4 SFlowCharSet = 7 SFlowCSISOLatinCyrillic SFlowCharSet = 8 SFlowCSISOLatinArabic SFlowCharSet = 9 SFlowCSISOLatinGreek SFlowCharSet = 10 SFlowCSISOLatinHebrew SFlowCharSet = 11 SFlowCSISOLatin5 SFlowCharSet = 12 SFlowCSISOLatin6 SFlowCharSet = 13 SFlowCSISOTextComm SFlowCharSet = 14 SFlowCSHalfWidthKatakana SFlowCharSet = 15 SFlowCSJISEncoding SFlowCharSet = 16 SFlowCSShiftJIS SFlowCharSet = 17 SFlowCSEUCPkdFmtJapanese SFlowCharSet = 18 SFlowCSEUCFixWidJapanese SFlowCharSet = 19 SFlowCSISO4UnitedKingdom SFlowCharSet = 20 SFlowCSISO11SwedishForNames SFlowCharSet = 21 SFlowCSISO15Italian SFlowCharSet = 22 SFlowCSISO17Spanish SFlowCharSet = 23 SFlowCSISO21German SFlowCharSet = 24 SFlowCSISO60DanishNorwegian SFlowCharSet = 25 SFlowCSISO69French SFlowCharSet = 26 SFlowCSISO10646UTF1 SFlowCharSet = 27 SFlowCSISO646basic1983 SFlowCharSet = 28 SFlowCSINVARIANT SFlowCharSet = 29 SFlowCSISO2IntlRefVersion SFlowCharSet = 30 SFlowCSNATSSEFI SFlowCharSet = 31 SFlowCSNATSSEFIADD SFlowCharSet = 32 SFlowCSNATSDANO SFlowCharSet = 33 SFlowCSNATSDANOADD SFlowCharSet = 34 SFlowCSISO10Swedish SFlowCharSet = 35 SFlowCSKSC56011987 SFlowCharSet = 36 SFlowCSISO2022KR SFlowCharSet = 37 SFlowCSEUCKR SFlowCharSet = 38 SFlowCSISO2022JP SFlowCharSet = 39 SFlowCSISO2022JP2 SFlowCharSet = 40 SFlowCSISO13JISC6220jp SFlowCharSet = 41 SFlowCSISO14JISC6220ro SFlowCharSet = 42 SFlowCSISO16Portuguese SFlowCharSet = 43 SFlowCSISO18Greek7Old SFlowCharSet = 44 SFlowCSISO19LatinGreek SFlowCharSet = 45 SFlowCSISO25French SFlowCharSet = 46 SFlowCSISO27LatinGreek1 SFlowCharSet = 47 SFlowCSISO5427Cyrillic SFlowCharSet = 48 SFlowCSISO42JISC62261978 SFlowCharSet = 49 SFlowCSISO47BSViewdata SFlowCharSet = 50 SFlowCSISO49INIS SFlowCharSet = 51 SFlowCSISO50INIS8 SFlowCharSet = 52 SFlowCSISO51INISCyrillic SFlowCharSet = 53 SFlowCSISO54271981 SFlowCharSet = 54 SFlowCSISO5428Greek SFlowCharSet = 55 SFlowCSISO57GB1988 SFlowCharSet = 56 SFlowCSISO58GB231280 SFlowCharSet = 57 SFlowCSISO61Norwegian2 SFlowCharSet = 58 SFlowCSISO70VideotexSupp1 SFlowCharSet = 59 SFlowCSISO84Portuguese2 SFlowCharSet = 60 SFlowCSISO85Spanish2 SFlowCharSet = 61 SFlowCSISO86Hungarian SFlowCharSet = 62 SFlowCSISO87JISX0208 SFlowCharSet = 63 SFlowCSISO88Greek7 SFlowCharSet = 64 SFlowCSISO89ASMO449 SFlowCharSet = 65 SFlowCSISO90 SFlowCharSet = 66 SFlowCSISO91JISC62291984a SFlowCharSet = 67 SFlowCSISO92JISC62991984b SFlowCharSet = 68 SFlowCSISO93JIS62291984badd SFlowCharSet = 69 SFlowCSISO94JIS62291984hand SFlowCharSet = 70 SFlowCSISO95JIS62291984handadd SFlowCharSet = 71 SFlowCSISO96JISC62291984kana SFlowCharSet = 72 SFlowCSISO2033 SFlowCharSet = 73 SFlowCSISO99NAPLPS SFlowCharSet = 74 SFlowCSISO102T617bit SFlowCharSet = 75 SFlowCSISO103T618bit SFlowCharSet = 76 SFlowCSISO111ECMACyrillic SFlowCharSet = 77 SFlowCSa71 SFlowCharSet = 78 SFlowCSa72 SFlowCharSet = 79 SFlowCSISO123CSAZ24341985gr SFlowCharSet = 80 SFlowCSISO88596E SFlowCharSet = 81 SFlowCSISO88596I SFlowCharSet = 82 SFlowCSISO128T101G2 SFlowCharSet = 83 SFlowCSISO88598E SFlowCharSet = 84 SFlowCSISO88598I SFlowCharSet = 85 SFlowCSISO139CSN369103 SFlowCharSet = 86 SFlowCSISO141JUSIB1002 SFlowCharSet = 87 SFlowCSISO143IECP271 SFlowCharSet = 88 SFlowCSISO146Serbian SFlowCharSet = 89 SFlowCSISO147Macedonian SFlowCharSet = 90 SFlowCSISO150 SFlowCharSet = 91 SFlowCSISO151Cuba SFlowCharSet = 92 SFlowCSISO6937Add SFlowCharSet = 93 SFlowCSISO153GOST1976874 SFlowCharSet = 94 SFlowCSISO8859Supp SFlowCharSet = 95 SFlowCSISO10367Box SFlowCharSet = 96 SFlowCSISO158Lap SFlowCharSet = 97 SFlowCSISO159JISX02121990 SFlowCharSet = 98 SFlowCSISO646Danish SFlowCharSet = 99 SFlowCSUSDK SFlowCharSet = 100 SFlowCSDKUS SFlowCharSet = 101 SFlowCSKSC5636 SFlowCharSet = 102 SFlowCSUnicode11UTF7 SFlowCharSet = 103 SFlowCSISO2022CN SFlowCharSet = 104 SFlowCSISO2022CNEXT SFlowCharSet = 105 SFlowCSUTF8 SFlowCharSet = 106 SFlowCSISO885913 SFlowCharSet = 109 SFlowCSISO885914 SFlowCharSet = 110 SFlowCSISO885915 SFlowCharSet = 111 SFlowCSISO885916 SFlowCharSet = 112 SFlowCSGBK SFlowCharSet = 113 SFlowCSGB18030 SFlowCharSet = 114 SFlowCSOSDEBCDICDF0415 SFlowCharSet = 115 SFlowCSOSDEBCDICDF03IRV SFlowCharSet = 116 SFlowCSOSDEBCDICDF041 SFlowCharSet = 117 SFlowCSISO115481 SFlowCharSet = 118 SFlowCSKZ1048 SFlowCharSet = 119 SFlowCSUnicode SFlowCharSet = 1000 SFlowCSUCS4 SFlowCharSet = 1001 SFlowCSUnicodeASCII SFlowCharSet = 1002 SFlowCSUnicodeLatin1 SFlowCharSet = 1003 SFlowCSUnicodeJapanese SFlowCharSet = 1004 SFlowCSUnicodeIBM1261 SFlowCharSet = 1005 SFlowCSUnicodeIBM1268 SFlowCharSet = 1006 SFlowCSUnicodeIBM1276 SFlowCharSet = 1007 SFlowCSUnicodeIBM1264 SFlowCharSet = 1008 SFlowCSUnicodeIBM1265 SFlowCharSet = 1009 SFlowCSUnicode11 SFlowCharSet = 1010 SFlowCSSCSU SFlowCharSet = 1011 SFlowCSUTF7 SFlowCharSet = 1012 SFlowCSUTF16BE SFlowCharSet = 1013 SFlowCSUTF16LE SFlowCharSet = 1014 SFlowCSUTF16 SFlowCharSet = 1015 SFlowCSCESU8 SFlowCharSet = 1016 SFlowCSUTF32 SFlowCharSet = 1017 SFlowCSUTF32BE SFlowCharSet = 1018 SFlowCSUTF32LE SFlowCharSet = 1019 SFlowCSBOCU1 SFlowCharSet = 1020 SFlowCSWindows30Latin1 SFlowCharSet = 2000 SFlowCSWindows31Latin1 SFlowCharSet = 2001 SFlowCSWindows31Latin2 SFlowCharSet = 2002 SFlowCSWindows31Latin5 SFlowCharSet = 2003 SFlowCSHPRoman8 SFlowCharSet = 2004 SFlowCSAdobeStandardEncoding SFlowCharSet = 2005 SFlowCSVenturaUS SFlowCharSet = 2006 SFlowCSVenturaInternational SFlowCharSet = 2007 SFlowCSDECMCS SFlowCharSet = 2008 SFlowCSPC850Multilingual SFlowCharSet = 2009 SFlowCSPCp852 SFlowCharSet = 2010 SFlowCSPC8CodePage437 SFlowCharSet = 2011 SFlowCSPC8DanishNorwegian SFlowCharSet = 2012 SFlowCSPC862LatinHebrew SFlowCharSet = 2013 SFlowCSPC8Turkish SFlowCharSet = 2014 SFlowCSIBMSymbols SFlowCharSet = 2015 SFlowCSIBMThai SFlowCharSet = 2016 SFlowCSHPLegal SFlowCharSet = 2017 SFlowCSHPPiFont SFlowCharSet = 2018 SFlowCSHPMath8 SFlowCharSet = 2019 SFlowCSHPPSMath SFlowCharSet = 2020 SFlowCSHPDesktop SFlowCharSet = 2021 SFlowCSVenturaMath SFlowCharSet = 2022 SFlowCSMicrosoftPublishing SFlowCharSet = 2023 SFlowCSWindows31J SFlowCharSet = 2024 SFlowCSGB2312 SFlowCharSet = 2025 SFlowCSBig5 SFlowCharSet = 2026 SFlowCSMacintosh SFlowCharSet = 2027 SFlowCSIBM037 SFlowCharSet = 2028 SFlowCSIBM038 SFlowCharSet = 2029 SFlowCSIBM273 SFlowCharSet = 2030 SFlowCSIBM274 SFlowCharSet = 2031 SFlowCSIBM275 SFlowCharSet = 2032 SFlowCSIBM277 SFlowCharSet = 2033 SFlowCSIBM278 SFlowCharSet = 2034 SFlowCSIBM280 SFlowCharSet = 2035 SFlowCSIBM281 SFlowCharSet = 2036 SFlowCSIBM284 SFlowCharSet = 2037 SFlowCSIBM285 SFlowCharSet = 2038 SFlowCSIBM290 SFlowCharSet = 2039 SFlowCSIBM297 SFlowCharSet = 2040 SFlowCSIBM420 SFlowCharSet = 2041 SFlowCSIBM423 SFlowCharSet = 2042 SFlowCSIBM424 SFlowCharSet = 2043 SFlowCSIBM500 SFlowCharSet = 2044 SFlowCSIBM851 SFlowCharSet = 2045 SFlowCSIBM855 SFlowCharSet = 2046 SFlowCSIBM857 SFlowCharSet = 2047 SFlowCSIBM860 SFlowCharSet = 2048 SFlowCSIBM861 SFlowCharSet = 2049 SFlowCSIBM863 SFlowCharSet = 2050 SFlowCSIBM864 SFlowCharSet = 2051 SFlowCSIBM865 SFlowCharSet = 2052 SFlowCSIBM868 SFlowCharSet = 2053 SFlowCSIBM869 SFlowCharSet = 2054 SFlowCSIBM870 SFlowCharSet = 2055 SFlowCSIBM871 SFlowCharSet = 2056 SFlowCSIBM880 SFlowCharSet = 2057 SFlowCSIBM891 SFlowCharSet = 2058 SFlowCSIBM903 SFlowCharSet = 2059 SFlowCSIBBM904 SFlowCharSet = 2060 SFlowCSIBM905 SFlowCharSet = 2061 SFlowCSIBM918 SFlowCharSet = 2062 SFlowCSIBM1026 SFlowCharSet = 2063 SFlowCSIBMEBCDICATDE SFlowCharSet = 2064 SFlowCSEBCDICATDEA SFlowCharSet = 2065 SFlowCSEBCDICCAFR SFlowCharSet = 2066 SFlowCSEBCDICDKNO SFlowCharSet = 2067 SFlowCSEBCDICDKNOA SFlowCharSet = 2068 SFlowCSEBCDICFISE SFlowCharSet = 2069 SFlowCSEBCDICFISEA SFlowCharSet = 2070 SFlowCSEBCDICFR SFlowCharSet = 2071 SFlowCSEBCDICIT SFlowCharSet = 2072 SFlowCSEBCDICPT SFlowCharSet = 2073 SFlowCSEBCDICES SFlowCharSet = 2074 SFlowCSEBCDICESA SFlowCharSet = 2075 SFlowCSEBCDICESS SFlowCharSet = 2076 SFlowCSEBCDICUK SFlowCharSet = 2077 SFlowCSEBCDICUS SFlowCharSet = 2078 SFlowCSUnknown8BiT SFlowCharSet = 2079 SFlowCSMnemonic SFlowCharSet = 2080 SFlowCSMnem SFlowCharSet = 2081 SFlowCSVISCII SFlowCharSet = 2082 SFlowCSVIQR SFlowCharSet = 2083 SFlowCSKOI8R SFlowCharSet = 2084 SFlowCSHZGB2312 SFlowCharSet = 2085 SFlowCSIBM866 SFlowCharSet = 2086 SFlowCSPC775Baltic SFlowCharSet = 2087 SFlowCSKOI8U SFlowCharSet = 2088 SFlowCSIBM00858 SFlowCharSet = 2089 SFlowCSIBM00924 SFlowCharSet = 2090 SFlowCSIBM01140 SFlowCharSet = 2091 SFlowCSIBM01141 SFlowCharSet = 2092 SFlowCSIBM01142 SFlowCharSet = 2093 SFlowCSIBM01143 SFlowCharSet = 2094 SFlowCSIBM01144 SFlowCharSet = 2095 SFlowCSIBM01145 SFlowCharSet = 2096 SFlowCSIBM01146 SFlowCharSet = 2097 SFlowCSIBM01147 SFlowCharSet = 2098 SFlowCSIBM01148 SFlowCharSet = 2099 SFlowCSIBM01149 SFlowCharSet = 2100 SFlowCSBig5HKSCS SFlowCharSet = 2101 SFlowCSIBM1047 SFlowCharSet = 2102 SFlowCSPTCP154 SFlowCharSet = 2103 SFlowCSAmiga1251 SFlowCharSet = 2104 SFlowCSKOI7switched SFlowCharSet = 2105 SFlowCSBRF SFlowCharSet = 2106 SFlowCSTSCII SFlowCharSet = 2107 SFlowCSCP51932 SFlowCharSet = 2108 SFlowCSWindows874 SFlowCharSet = 2109 SFlowCSWindows1250 SFlowCharSet = 2250 SFlowCSWindows1251 SFlowCharSet = 2251 SFlowCSWindows1252 SFlowCharSet = 2252 SFlowCSWindows1253 SFlowCharSet = 2253 SFlowCSWindows1254 SFlowCharSet = 2254 SFlowCSWindows1255 SFlowCharSet = 2255 SFlowCSWindows1256 SFlowCharSet = 2256 SFlowCSWindows1257 SFlowCharSet = 2257 SFlowCSWindows1258 SFlowCharSet = 2258 SFlowCSTIS620 SFlowCharSet = 2259 SFlowCS50220 SFlowCharSet = 2260 SFlowCSreserved SFlowCharSet = 3000 )
type SFlowCounterDataFormat ¶ added in v1.1.10
type SFlowCounterDataFormat uint32
type SFlowCounterRecordType ¶ added in v1.1.10
type SFlowCounterRecordType uint32
const ( SFlowTypeGenericInterfaceCounters SFlowCounterRecordType = 1 SFlowTypeEthernetInterfaceCounters SFlowCounterRecordType = 2 SFlowTypeTokenRingInterfaceCounters SFlowCounterRecordType = 3 SFlowType100BaseVGInterfaceCounters SFlowCounterRecordType = 4 SFlowTypeVLANCounters SFlowCounterRecordType = 5 SFlowTypeProcessorCounters SFlowCounterRecordType = 1001 )
func (SFlowCounterRecordType) String ¶ added in v1.1.10
func (cr SFlowCounterRecordType) String() string
type SFlowCounterSample ¶ added in v1.1.10
type SFlowCounterSample struct { EnterpriseID SFlowEnterpriseID Format SFlowSampleType SampleLength uint32 SequenceNumber uint32 SourceIDClass SFlowSourceFormat SourceIDIndex SFlowSourceValue RecordCount uint32 Records []SFlowRecord }
Counter samples report information about various counter objects. Typically these are items like IfInOctets, or CPU / Memory stats, etc. SFlow will report these at regular intervals as configured on the agent. If one were sufficiently industrious, this could be used to replace the typical SNMP polling used for such things.
func (SFlowCounterSample) GetRecords ¶ added in v1.1.10
func (cs SFlowCounterSample) GetRecords() []SFlowRecord
GetRecords will return a slice of interface types representing records. A type switch can be used to get at the underlying SFlowCounterRecordType.
func (SFlowCounterSample) GetType ¶ added in v1.1.10
func (cs SFlowCounterSample) GetType() SFlowSampleType
GetType will report the type of sample. Only the compact form of counter samples is supported
type SFlowDataFormat ¶ added in v1.1.10
type SFlowDataFormat uint32
SFlowDataFormat encodes the EnterpriseID in the most significant 12 bits, and the SampleType in the least significant 20 bits.
type SFlowDataSource ¶ added in v1.1.10
type SFlowDataSource int32
SFlowDataSource encodes a 2-bit SFlowSourceFormat in its most significant 2 bits, and an SFlowSourceValue in its least significant 30 bits. These types and values define the meaning of the inteface information presented in the sample metadata.
type SFlowDatagram ¶ added in v1.1.10
type SFlowDatagram struct { BaseLayer DatagramVersion uint32 AgentAddress net.IP SubAgentID uint32 SequenceNumber uint32 AgentUptime uint32 SampleCount uint32 FlowSamples []SFlowFlowSample CounterSamples []SFlowCounterSample }
SFlowDatagram is the outermost container which holds some basic information about the reporting agent, and holds at least one sample record
func (*SFlowDatagram) CanDecode ¶ added in v1.1.10
func (d *SFlowDatagram) CanDecode() gopacket.LayerClass
func (*SFlowDatagram) DecodeFromBytes ¶ added in v1.1.10
func (s *SFlowDatagram) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*SFlowDatagram) LayerType ¶ added in v1.1.10
func (s *SFlowDatagram) LayerType() gopacket.LayerType
func (*SFlowDatagram) NextLayerType ¶ added in v1.1.10
func (d *SFlowDatagram) NextLayerType() gopacket.LayerType
func (*SFlowDatagram) Payload ¶ added in v1.1.10
func (d *SFlowDatagram) Payload() []byte
type SFlowEnterpriseID ¶ added in v1.1.10
type SFlowEnterpriseID uint32
SFlowEnterpriseID is used to differentiate between the official SFlow standard, and other, vendor-specific types of flow data. (Similiar to SNMP's enterprise MIB OIDs) Only the office SFlow Enterprise ID is decoded here.
const (
SFlowStandard SFlowEnterpriseID = 0
)
func (SFlowEnterpriseID) GetType ¶ added in v1.1.10
func (eid SFlowEnterpriseID) GetType() SFlowEnterpriseID
func (SFlowEnterpriseID) String ¶ added in v1.1.10
func (eid SFlowEnterpriseID) String() string
type SFlowEthernetCounters ¶ added in v1.1.10
type SFlowEthernetCounters struct { SFlowBaseCounterRecord 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 }
type SFlowExtendedGatewayFlowRecord ¶ added in v1.1.10
type SFlowExtendedGatewayFlowRecord struct { SFlowBaseFlowRecord NextHop net.IP AS uint32 SourceAS uint32 PeerAS uint32 ASPathCount uint32 ASPath []SFlowASDestination Communities []uint32 LocalPref uint32 }
type SFlowExtendedRouterFlowRecord ¶ added in v1.1.10
type SFlowExtendedRouterFlowRecord struct { SFlowBaseFlowRecord NextHop net.IP NextHopSourceMask uint32 NextHopDestinationMask uint32 }
SFlowExtendedRouterFlowRecord gives additional information about the layer 3 routing information used to forward the packet
type SFlowExtendedSwitchFlowRecord ¶ added in v1.1.10
type SFlowExtendedSwitchFlowRecord struct { SFlowBaseFlowRecord IncomingVLAN uint32 IncomingVLANPriority uint32 OutgoingVLAN uint32 OutgoingVLANPriority uint32 }
SFlowExtendedSwitchFlowRecord give additional information about the sampled packet if it's available. It's mainly useful for getting at the incoming and outgoing VLANs An agent may or may not provide this information.
type SFlowExtendedURLRecord ¶ added in v1.1.10
type SFlowExtendedURLRecord struct { SFlowBaseFlowRecord Direction SFlowURLDirection URL string Host string }
type SFlowExtendedUserFlow ¶ added in v1.1.10
type SFlowExtendedUserFlow struct { SFlowBaseFlowRecord SourceCharSet SFlowCharSet SourceUserID string DestinationCharSet SFlowCharSet DestinationUserID string }
type SFlowFlowDataFormat ¶ added in v1.1.10
type SFlowFlowDataFormat uint32
type SFlowFlowRecordType ¶ added in v1.1.10
type SFlowFlowRecordType uint32
SFlowFlowRecordType denotes what kind of Flow Record is represented. See RFC 3176
const ( SFlowTypeRawPacketFlow SFlowFlowRecordType = 1 SFlowTypeEthernetFrameFlow SFlowFlowRecordType = 2 SFlowTypeIpv4Flow SFlowFlowRecordType = 3 SFlowTypeIpv6Flow SFlowFlowRecordType = 4 SFlowTypeExtendedSwitchFlow SFlowFlowRecordType = 1001 SFlowTypeExtendedRouterFlow SFlowFlowRecordType = 1002 SFlowTypeExtendedGatewayFlow SFlowFlowRecordType = 1003 SFlowTypeExtendedUserFlow SFlowFlowRecordType = 1004 SFlowTypeExtendedUrlFlow SFlowFlowRecordType = 1005 SFlowTypeExtendedMlpsFlow SFlowFlowRecordType = 1006 SFlowTypeExtendedNatFlow SFlowFlowRecordType = 1007 SFlowTypeExtendedMlpsTunnelFlow SFlowFlowRecordType = 1008 SFlowTypeExtendedMlpsVcFlow SFlowFlowRecordType = 1009 SFlowTypeExtendedMlpsFecFlow SFlowFlowRecordType = 1010 SFlowTypeExtendedMlpsLvpFecFlow SFlowFlowRecordType = 1011 SFlowTypeExtendedVlanFlow SFlowFlowRecordType = 1012 )
func (SFlowFlowRecordType) String ¶ added in v1.1.10
func (rt SFlowFlowRecordType) String() string
type SFlowFlowSample ¶ added in v1.1.10
type SFlowFlowSample struct { EnterpriseID SFlowEnterpriseID Format SFlowSampleType SampleLength uint32 SequenceNumber uint32 SourceIDClass SFlowSourceFormat SourceIDIndex SFlowSourceValue SamplingRate uint32 SamplePool uint32 Dropped uint32 InputInterface uint32 OutputInterface uint32 RecordCount uint32 Records []SFlowRecord }
SFlowFlowSample represents a sampled packet and contains one or more records describing the packet
func (SFlowFlowSample) GetRecords ¶ added in v1.1.10
func (fs SFlowFlowSample) GetRecords() []SFlowRecord
func (SFlowFlowSample) GetType ¶ added in v1.1.10
func (fs SFlowFlowSample) GetType() SFlowSampleType
type SFlowGenericInterfaceCounters ¶ added in v1.1.10
type SFlowGenericInterfaceCounters struct { SFlowBaseCounterRecord IfIndex uint32 IfType uint32 IfSpeed uint64 IfDirection uint32 IfStatus uint32 IfInOctets uint64 IfInUcastPkts uint32 IfInMulticastPkts uint32 IfInBroadcastPkts uint32 IfInDiscards uint32 IfInErrors uint32 IfInUnknownProtos uint32 IfOutOctets uint64 IfOutUcastPkts uint32 IfOutMulticastPkts uint32 IfOutBroadcastPkts uint32 IfOutDiscards uint32 IfOutErrors uint32 IfPromiscuousMode uint32 }
type SFlowIPType ¶ added in v1.1.10
type SFlowIPType uint32
SFlowIPType determines what form the IP address being decoded will take. This is an XDR union type allowing for both IPv4 and IPv6
const ( SFlowIPv4 SFlowIPType = 1 SFlowIPv6 SFlowIPType = 2 )
func (SFlowIPType) Length ¶ added in v1.1.10
func (s SFlowIPType) Length() int
func (SFlowIPType) String ¶ added in v1.1.10
func (s SFlowIPType) String() string
type SFlowRawHeaderProtocol ¶ added in v1.1.10
type SFlowRawHeaderProtocol uint32
const ( SFlowProtoEthernet SFlowRawHeaderProtocol = 1 SFlowProtoISO88024 SFlowRawHeaderProtocol = 2 SFlowProtoISO88025 SFlowRawHeaderProtocol = 3 SFlowProtoFDDI SFlowRawHeaderProtocol = 4 SFlowProtoFrameRelay SFlowRawHeaderProtocol = 5 SFlowProtoX25 SFlowRawHeaderProtocol = 6 SFlowProtoPPP SFlowRawHeaderProtocol = 7 SFlowProtoSMDS SFlowRawHeaderProtocol = 8 SFlowProtoAAL5 SFlowRawHeaderProtocol = 9 SFlowProtoAAL5_IP SFlowRawHeaderProtocol = 10 /* e.g. Cisco AAL5 mux */ SFlowProtoIPv4 SFlowRawHeaderProtocol = 11 SFlowProtoIPv6 SFlowRawHeaderProtocol = 12 SFlowProtoMPLS SFlowRawHeaderProtocol = 13 SFlowProtoPOS SFlowRawHeaderProtocol = 14 /* RFC 1662, 2615 */ )
func (SFlowRawHeaderProtocol) String ¶ added in v1.1.10
func (sfhp SFlowRawHeaderProtocol) String() string
type SFlowRawPacketFlowRecord ¶ added in v1.1.10
type SFlowRawPacketFlowRecord struct { SFlowBaseFlowRecord HeaderProtocol SFlowRawHeaderProtocol FrameLength uint32 PayloadRemoved uint32 HeaderLength uint32 Header gopacket.Packet }
SFlowRawPacketFlowRecords hold information about a sampled packet grabbed as it transited the agent. This is perhaps the most useful and interesting record type, as it holds the headers of the sampled packet and can be used to build up a complete picture of the traffic patterns on a network.
The raw packet header is sent back into gopacket for decoding, and the resulting gopackt.Packet is stored in the Header member
type SFlowRecord ¶ added in v1.1.10
type SFlowRecord interface { }
SFlowRecord holds both flow sample records and counter sample records. A Record is the structure that actually holds the sampled data and / or counters.
type SFlowSampleType ¶ added in v1.1.10
type SFlowSampleType uint32
SFlowSampleType specifies the type of sample. Only flow samples and counter samples are supported
const ( SFlowTypeFlowSample SFlowSampleType = 1 SFlowTypeCounterSample SFlowSampleType = 2 SFlowTypeExpandedFlowSample SFlowSampleType = 3 SFlowTypeExpandedCounterSample SFlowSampleType = 4 )
func (SFlowSampleType) GetType ¶ added in v1.1.10
func (st SFlowSampleType) GetType() SFlowSampleType
func (SFlowSampleType) String ¶ added in v1.1.10
func (st SFlowSampleType) String() string
type SFlowSourceFormat ¶ added in v1.1.10
type SFlowSourceFormat uint32
const ( SFlowTypeSingleInterface SFlowSourceFormat = 0 SFlowTypePacketDiscarded SFlowSourceFormat = 1 SFlowTypeMultipleDestinations SFlowSourceFormat = 2 )
func (SFlowSourceFormat) String ¶ added in v1.1.10
func (sdf SFlowSourceFormat) String() string
type SFlowSourceValue ¶ added in v1.1.10
type SFlowSourceValue uint32
type SFlowURLDirection ¶ added in v1.1.10
type SFlowURLDirection uint32
const ( SFlowURLsrc SFlowURLDirection = 1 SFlowURLdst SFlowURLDirection = 2 )
func (SFlowURLDirection) String ¶ added in v1.1.10
func (urld SFlowURLDirection) String() string
type SNAP ¶
type SNAP struct { BaseLayer OrganizationalCode []byte Type EthernetType }
SNAP is used inside LLC. See http://standards.ieee.org/getieee802/download/802-2001.pdf. From http://en.wikipedia.org/wiki/Subnetwork_Access_Protocol:
"[T]he Subnetwork Access Protocol (SNAP) is a mechanism for multiplexing, on networks using IEEE 802.2 LLC, more protocols than can be distinguished by the 8-bit 802.2 Service Access Point (SAP) fields."
type TCP ¶
type TCP struct { BaseLayer SrcPort, DstPort TCPPort Seq uint32 Ack uint32 DataOffset uint8 FIN, SYN, RST, PSH, ACK, URG, ECE, CWR, NS bool Window uint16 Checksum uint16 Urgent uint16 Options []TCPOption Padding []byte // contains filtered or unexported fields }
TCP is the layer for TCP headers.
func (*TCP) CanDecode ¶
func (t *TCP) CanDecode() gopacket.LayerClass
func (*TCP) DecodeFromBytes ¶
func (tcp *TCP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*TCP) NextLayerType ¶
func (*TCP) SerializeTo ¶
func (t *TCP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
func (*TCP) SetNetworkLayerForChecksum ¶
func (i *TCP) SetNetworkLayerForChecksum(l gopacket.NetworkLayer) error
SetNetworkLayerForChecksum tells this layer which network layer is wrapping it. This is needed for computing the checksum when serializing, since TCP/IP transport layer checksums depends on fields in the IPv4 or IPv6 layer that contains it. The passed in layer must be an *IPv4 or *IPv6.
func (*TCP) TransportFlow ¶
type UDP ¶
type UDP struct { BaseLayer SrcPort, DstPort UDPPort Length uint16 Checksum uint16 // contains filtered or unexported fields }
UDP is the layer for UDP headers.
func (*UDP) CanDecode ¶
func (u *UDP) CanDecode() gopacket.LayerClass
func (*UDP) DecodeFromBytes ¶
func (udp *UDP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*UDP) NextLayerType ¶
NextLayerType use the destination port to select the right next decoder. It tries first to decode via the destination port, then the source port.
func (*UDP) SerializeTo ¶
func (u *UDP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer. See the docs for gopacket.SerializableLayer for more info.
func (*UDP) SetNetworkLayerForChecksum ¶
func (i *UDP) SetNetworkLayerForChecksum(l gopacket.NetworkLayer) error
SetNetworkLayerForChecksum tells this layer which network layer is wrapping it. This is needed for computing the checksum when serializing, since TCP/IP transport layer checksums depends on fields in the IPv4 or IPv6 layer that contains it. The passed in layer must be an *IPv4 or *IPv6.
func (*UDP) TransportFlow ¶
type UDPLite ¶
type UDPLite struct { BaseLayer SrcPort, DstPort UDPLitePort ChecksumCoverage uint16 Checksum uint16 // contains filtered or unexported fields }
UDPLite is the layer for UDP-Lite headers (rfc 3828).
func (*UDPLite) TransportFlow ¶
type UDPLitePort ¶
type UDPLitePort uint16
UDPLitePort is a port in a UDPLite layer.
func (UDPLitePort) String ¶
func (a UDPLitePort) String() string
String returns the port as "number(name)" if there's a well-known port name, or just "number" if there isn't. Well-known names are stored in UDPLitePortNames.
type UDPPort ¶
type UDPPort uint16
UDPPort is a port in a UDP layer.
type USB ¶ added in v1.1.9
type USB struct { BaseLayer ID uint64 EventType USBEventType TransferType USBTransportType Direction USBDirectionType EndpointNumber uint8 DeviceAddress uint8 BusID uint16 TimestampSec int64 TimestampUsec int32 Setup bool Data bool Status int32 UrbLength uint32 UrbDataLength uint32 UrbInterval uint32 UrbStartFrame uint32 UrbCopyOfTransferFlags uint32 IsoNumDesc uint32 }
The reference at http://www.beyondlogic.org/usbnutshell/usb1.shtml contains more information about the protocol.
func (*USB) DecodeFromBytes ¶ added in v1.1.9
func (m *USB) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*USB) NextLayerType ¶ added in v1.1.9
type USBBulk ¶ added in v1.1.9
type USBBulk struct {
BaseLayer
}
func (*USBBulk) DecodeFromBytes ¶ added in v1.1.9
func (m *USBBulk) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*USBBulk) NextLayerType ¶ added in v1.1.9
type USBControl ¶ added in v1.1.9
type USBControl struct {
BaseLayer
}
func (*USBControl) DecodeFromBytes ¶ added in v1.1.9
func (m *USBControl) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*USBControl) LayerType ¶ added in v1.1.9
func (u *USBControl) LayerType() gopacket.LayerType
func (*USBControl) NextLayerType ¶ added in v1.1.9
func (m *USBControl) NextLayerType() gopacket.LayerType
type USBDirectionType ¶ added in v1.1.9
type USBDirectionType uint8
const ( USBDirectionTypeUnknown USBDirectionType = iota USBDirectionTypeIn USBDirectionTypeOut )
func (USBDirectionType) String ¶ added in v1.1.9
func (a USBDirectionType) String() string
type USBEventType ¶ added in v1.1.9
type USBEventType uint8
const ( USBEventTypeSubmit USBEventType = 'S' USBEventTypeComplete USBEventType = 'C' USBEventTypeError USBEventType = 'E' )
func (USBEventType) String ¶ added in v1.1.9
func (a USBEventType) String() string
type USBInterrupt ¶ added in v1.1.9
type USBInterrupt struct {
BaseLayer
}
func (*USBInterrupt) DecodeFromBytes ¶ added in v1.1.9
func (m *USBInterrupt) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*USBInterrupt) LayerType ¶ added in v1.1.9
func (u *USBInterrupt) LayerType() gopacket.LayerType
func (*USBInterrupt) NextLayerType ¶ added in v1.1.9
func (m *USBInterrupt) NextLayerType() gopacket.LayerType
type USBRequestBlockSetup ¶ added in v1.1.9
type USBRequestBlockSetup struct { BaseLayer RequestType uint8 Request USBRequestBlockSetupRequest Value uint16 Index uint16 Length uint16 }
func (*USBRequestBlockSetup) DecodeFromBytes ¶ added in v1.1.9
func (m *USBRequestBlockSetup) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
func (*USBRequestBlockSetup) LayerType ¶ added in v1.1.9
func (u *USBRequestBlockSetup) LayerType() gopacket.LayerType
func (*USBRequestBlockSetup) NextLayerType ¶ added in v1.1.9
func (m *USBRequestBlockSetup) NextLayerType() gopacket.LayerType
type USBRequestBlockSetupRequest ¶ added in v1.1.9
type USBRequestBlockSetupRequest uint8
const ( USBRequestBlockSetupRequestGetStatus USBRequestBlockSetupRequest = 0x00 USBRequestBlockSetupRequestClearFeature USBRequestBlockSetupRequest = 0x01 USBRequestBlockSetupRequestSetFeature USBRequestBlockSetupRequest = 0x03 USBRequestBlockSetupRequestSetAddress USBRequestBlockSetupRequest = 0x05 USBRequestBlockSetupRequestGetDescriptor USBRequestBlockSetupRequest = 0x06 USBRequestBlockSetupRequestSetDescriptor USBRequestBlockSetupRequest = 0x07 USBRequestBlockSetupRequestGetConfiguration USBRequestBlockSetupRequest = 0x08 USBRequestBlockSetupRequestSetConfiguration USBRequestBlockSetupRequest = 0x09 USBRequestBlockSetupRequestSetIdle USBRequestBlockSetupRequest = 0x0a )
func (USBRequestBlockSetupRequest) String ¶ added in v1.1.9
func (a USBRequestBlockSetupRequest) String() string
type USBTransportType ¶ added in v1.1.9
type USBTransportType uint8
const ( USBTransportTypeTransferIn USBTransportType = 0x80 // Indicates send or receive USBTransportTypeIsochronous USBTransportType = 0x00 // Isochronous transfers occur continuously and periodically. They typically contain time sensitive information, such as an audio or video stream. USBTransportTypeInterrupt USBTransportType = 0x01 // Interrupt transfers are typically non-periodic, small device "initiated" communication requiring bounded latency, such as pointing devices or keyboards. USBTransportTypeControl USBTransportType = 0x02 // Control transfers are typically used for command and status operations. USBTransportTypeBulk USBTransportType = 0x03 // Bulk transfers can be used for large bursty data, using all remaining available bandwidth, no guarantees on bandwidth or latency, such as file transfers. )
func (USBTransportType) LayerType ¶ added in v1.1.9
func (a USBTransportType) LayerType() gopacket.LayerType
func (USBTransportType) String ¶ added in v1.1.9
func (a USBTransportType) String() string
Notes ¶
Bugs ¶
When decoding SNAP, we treat the SNAP type as an Ethernet type. This may not actually be an ethernet type in all cases, depending on the organizational code. Right now, we don't check.
Source Files ¶
- arp.go
- base.go
- cdp.go
- ctp.go
- dns.go
- doc.go
- dot11.go
- dot1q.go
- eap.go
- eapol.go
- endpoints.go
- enums.go
- etherip.go
- ethernet.go
- fddi.go
- gre.go
- iana_ports.go
- icmp4.go
- icmp6.go
- igmp.go
- ip4.go
- ip6.go
- ipsec.go
- layertypes.go
- linux_sll.go
- llc.go
- lldp.go
- loopback.go
- mpls.go
- ndp.go
- pflog.go
- ports.go
- ppp.go
- pppoe.go
- radiotap.go
- rudp.go
- sctp.go
- sflow.go
- tcp.go
- tcpip.go
- udp.go
- udplite.go
- usb.go