Documentation
¶
Index ¶
- Constants
- func MTU(pathMTU int) int
- type Handler
- func (h *Handler) AddVirtualNetwork(vni uint, remoteAddr *tcpip.FullAddress, addrs []netip.Prefix) error
- func (h *Handler) AllStats() []VirtualNetworkStats
- func (h *Handler) PhyToVirt(phyFrame, virtFrame []byte) int
- func (h *Handler) RemoveVirtualNetwork(vni uint) error
- func (h *Handler) StatsForVNI(vni uint) (VirtualNetworkStats, bool)
- func (h *Handler) UpdateVirtualNetworkKeys(vni uint, epoch uint32, rxKey, txKey [16]byte, expiresAt time.Time) error
- func (h *Handler) VirtToPhy(virtFrame, phyFrame []byte) (int, bool)
- type VirtualNetworkStats
Constants ¶
const HeaderSize = 32
The size of the GENEVE header with icx options.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func NewHandler(localAddr *tcpip.FullAddress, virtMAC tcpip.LinkAddress, sourcePortHashing, layer3 bool) (*Handler, error)
func (*Handler) AddVirtualNetwork ¶
func (h *Handler) AddVirtualNetwork(vni uint, remoteAddr *tcpip.FullAddress, addrs []netip.Prefix) error
AddVirtualNetwork adds a new network with the given VNI and remote address.
func (*Handler) AllStats ¶ added in v0.6.0
func (h *Handler) AllStats() []VirtualNetworkStats
AllStats returns snapshots for all currently registered virtual networks.
func (*Handler) PhyToVirt ¶
PhyToVirt converts a physical frame to a virtual frame typically by performing decapsulation. Returns the length of the resulting virtual frame.
func (*Handler) RemoveVirtualNetwork ¶
RemoveVirtualNetwork removes a network by its VNI.
func (*Handler) StatsForVNI ¶ added in v0.6.0
func (h *Handler) StatsForVNI(vni uint) (VirtualNetworkStats, bool)
StatsForVNI returns a snapshot for a single virtual network.
func (*Handler) UpdateVirtualNetworkKeys ¶ added in v0.5.0
func (h *Handler) UpdateVirtualNetworkKeys(vni uint, epoch uint32, rxKey, txKey [16]byte, expiresAt time.Time) error
UpdateVirtualNetworkKeys sets/rotates the encryption keys for a virtual network. This must be called atleast once every 24 hours or after `replay.RekeyAfterMessages` messages.
type VirtualNetworkStats ¶ added in v0.6.0
type VirtualNetworkStats struct {
// VNI is the virtual network identifier.
VNI uint
// KeyEpoch is the current key epoch.
KeyEpoch uint32
// KeyRotations is the number of key rotations that have occurred.
KeyRotations uint32
// RXPackets is the number of received packets.
RXPackets uint64
// RXBytes is the number of bytes received.
RXBytes uint64
// RXDropsNoKey is the number of received packets dropped due to a missing key.
RXDropsNoKey uint64
// RXDropsExpiredKey is the number of received packets dropped due to an expired key.
RXDropsExpiredKey uint64
// RXReplayDrops is the number of received packets dropped due to a potential replay attack.
RXReplayDrops uint64
// RXDecryptErrors is the number of received packets that failed decryption.
RXDecryptErrors uint64
// RXInvalidSrc is the number of received packets with an invalid source address.
RXInvalidSrc uint64
// TXPackets is the number of transmitted packets.
TXPackets uint64
// TXBytes is the number of bytes transmitted.
TXBytes uint64
// TXErrors is the number of transmission errors.
TXErrors uint64
// LastRX is the timestamp of the last received packet.
LastRX time.Time
// LastTX is the timestamp of the last transmitted packet.
LastTX time.Time
}
VirtualNetwork is a statistics snapshot for a virtual network.
