Documentation
¶
Index ¶
- Constants
- type BufferedPacket
- type DKey
- type DataplaneContext
- type DecapKeys
- type DecapStatistics
- type DecapTable
- type EIDEntry
- type EIDMap
- type EidStatsEntry
- type EtrRunStatus
- type EtrTable
- type ITRConfiguration
- type ITRGlobalData
- type ITRLocalData
- type Interface
- type InterfaceMap
- type Key
- type LispStatistics
- type MapCacheEntry
- type MapCacheKey
- type MapCacheTable
- type PktStat
- type PuntEntry
- type RestartEntry
- type Rloc
- type RlocStatsEntry
- type UplinkAddress
- type Uplinks
Constants ¶
View Source
const ( MAP_CACHE_FAMILY_IPV4 = 1 MAP_CACHE_FAMILY_IPV6 = 2 MAP_CACHE_FAMILY_UNKNOWN = 3 // max header len is ip6 hdr len (40) + // udp (8) + lisp (8) - eth hdr (14) + crypto iv len (16 for CBC and 12 for GCM) //MAXHEADERLEN = 58 // max header len with CBC MAXHEADERLEN = 54 ETHHEADERLEN = 14 UDPHEADERLEN = 8 ICVLEN = 20 IVLEN = 16 IP4HEADERLEN = 20 IP6HEADERLEN = 40 LISPHEADERLEN = 8 GCMIVLENGTH = 12 IPVERSION4 = 4 IPVERSION6 = 6 IP4DESTADDROFFSET = 16 IP4TOTALLENOFFSET = 2 IP6DESTADDROFFSET = 24 IP6PAYLOADLENOFFSET = 4 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BufferedPacket ¶
type DataplaneContext ¶
type DataplaneContext struct {
PubLispInfoStatus *pubsub.Publication
PubLispMetrics *pubsub.Publication
SubLispConfig *pubsub.Subscription
SubDeviceNetworkStatus *pubsub.Subscription
SubGlobalConfig *pubsub.Subscription
Legacy bool
}
type DecapStatistics ¶
type DecapStatistics struct {
Type string `json:"type"`
NoDecryptKey PktStat `json:"no-decrypt-key"`
OuterHeaderError PktStat `json:"outer-header-error"`
BadInnerVersion PktStat `json:"bad-inner-version"`
GoodPackets PktStat `json:"good-packets"`
ICVError PktStat `json:"ICV-error"`
LispHeaderError PktStat `json:"lisp-header-error"`
ChecksumError PktStat `json:"checksum-error"`
}
type DecapTable ¶
type EidStatsEntry ¶
type EidStatsEntry struct {
InstanceId string `json:"instance-id"`
EidPrefix string `json:"eid-prefix"`
Rlocs []RlocStatsEntry `json:"rlocs"`
}
type EtrRunStatus ¶
type EtrRunStatus struct {
// Name of the interface to capture packets from
IfName string
// Kill message channel
KillChannel chan bool
// ETR Natted packet capture ring
Handle *afpacket.TPacket
// Raw socket FDs used by ETR packet capture thread
// for injecting decapsulated packets
Fd4 int // IPv4 raw socket FD
Fd6 int // IPv6 raw socket FD
}
type EtrTable ¶
type EtrTable struct {
// Destination ephemeral port
EphPort int
EtrTable map[string]*EtrRunStatus
}
type ITRConfiguration ¶
type ITRGlobalData ¶
type ITRLocalData ¶
type ITRLocalData struct {
// crypto initialization vector data (IV)
IvHigh uint32
IvLow uint64
// Raw sockets for sending out LISP encapsulted packets
Fd4 int
Fd6 int
// ITR crypto source port to be used when sending crypto packets out
ItrCryptoPort uint
// Decode headers
Eth layers.Ethernet
Ip4 layers.IPv4
Ip6 layers.IPv6
Udp layers.UDP
Tcp layers.TCP
LayerParser *gopacket.DecodingLayerParser
DecodedLayers []gopacket.LayerType
}
type InterfaceMap ¶
type LispStatistics ¶
type LispStatistics struct {
Type string `json:"type"`
Entries []EidStatsEntry `json:"entries"`
}
type MapCacheEntry ¶
type MapCacheKey ¶
type MapCacheTable ¶
type MapCacheTable struct {
LockMe sync.RWMutex
MapCache map[MapCacheKey]*MapCacheEntry
}
type RestartEntry ¶
type RestartEntry struct {
Type string `json:"type"`
}
type Rloc ¶
type Rloc struct {
Rloc net.IP
Port uint16
Priority uint32
Weight uint32
Family uint32
KeyCount uint32
Keys []Key
// Destination socket addresses.
// Used for sending packets out.
IPv4SockAddr syscall.SockaddrInet4
IPv6SockAddr syscall.SockaddrInet6
// Weight range
WrLow uint32
WrHigh uint32
// Packet statistics
Packets *uint64
Bytes *uint64
LastPktTime *int64
}
type RlocStatsEntry ¶
type Uplinks ¶
type Uplinks struct {
sync.RWMutex
UpLinks *UplinkAddress
}
Click to show internal directories.
Click to hide internal directories.