telemetrymodel

package
v0.0.0-...-2d08fe4 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LinuxInterface

type LinuxInterface struct {
	Key      string
	Value    *linux_interfaces.Interface
	Metadata linux_ifaceidx.LinuxIfMetadata
}

LinuxInterface holds un-marshalled Linux Interface data.

type LinuxInterfaces

type LinuxInterfaces []LinuxInterface

LinuxInterfaces is a list of host (Linux) interfaces.

type Node

type Node struct {
	*NodeInfo

	// node status
	NodeLiveness  *status.AgentStatus
	NodeTelemetry map[string]NodeTelemetry

	// node configuration
	NodeInterfaces    NodeInterfaceMap
	NodeBridgeDomains NodeBridgeDomains
	NodeL2Fibs        NodeL2FibTable
	NodeIPArp         NodeIPArpTable
	NodeStaticRoutes  NodeStaticRoutes
	NodeIPam          *restapi.NodeIPAMInfo
	LinuxInterfaces   LinuxInterfaces

	// pods
	PodMap map[string]*Pod
}

Node is a struct to hold all relevant information of a kubernetes node. It is populated with various information such as the interfaces and L2Fibs as well as the name and IP Addresses.

type NodeBridgeDomain

type NodeBridgeDomain struct {
	Key      string
	Value    VppBridgeDomain
	Metadata idxvpp.OnlyIndex
}

NodeBridgeDomain holds un-marshalled VPP bridge domain data.

type NodeBridgeDomains

type NodeBridgeDomains []NodeBridgeDomain

NodeBridgeDomains is a list of VPP bridge domains.

type NodeIPArpEntry

type NodeIPArpEntry struct {
	Key   string
	Value VppARP
}

NodeIPArpEntry holds un-marshalled VPP ARP entry data.

type NodeIPArpTable

type NodeIPArpTable []NodeIPArpEntry

NodeIPArpTable is a list of VPP ARP entries.

type NodeIPRoute

type NodeIPRoute struct {
	Key   string
	Value VppL3Route
}

NodeIPRoute holds un-marshalled VPP L3 route data.

func (NodeIPRoute) DeepCopy

func (r NodeIPRoute) DeepCopy() (out NodeIPRoute)

DeepCopy returns a full clone of NodeIPRoute.

type NodeInfo

type NodeInfo struct {
	ID        uint32
	IPAddr    string
	ManIPAddr string // correlated with Kubernetes node model in ContivTelemetryCache.corelateMgmtIP()
	Name      string
}

NodeInfo is struct to hold some basic information of a kubernetes node.

type NodeInterface

type NodeInterface struct {
	Key      string
	Value    *vpp_interfaces.Interface
	Metadata ifaceidx.IfaceMetadata
}

NodeInterface holds un-marshalled VPP Interface data.

type NodeInterfaceMap

type NodeInterfaceMap map[uint32]NodeInterface

NodeInterfaceMap is a map of VPP interfaces.

func (NodeInterfaceMap) GetByName

func (m NodeInterfaceMap) GetByName(name string) (iface NodeInterface, exists bool)

GetByName retrieves interface by the logical name.

type NodeInterfaces

type NodeInterfaces []NodeInterface

NodeInterfaces is a list of node (VPP) interfaces.

type NodeL2FibEntry

type NodeL2FibEntry struct {
	Key   string
	Value VppL2FIB
}

NodeL2FibEntry holds un-marshalled VPP L2 FIB entry data.

type NodeL2FibTable

type NodeL2FibTable []NodeL2FibEntry

NodeL2FibTable is a list of VPP L2 FIB entries.

type NodeStaticRoutes

type NodeStaticRoutes []NodeIPRoute

NodeStaticRoutes is a list of VPP L3 routes.

type NodeTelemetries

type NodeTelemetries map[string]NodeTelemetry

NodeTelemetries defines a map of NodeTelemetry

type NodeTelemetry

type NodeTelemetry struct {
	Command string   `json:"command"`
	Output  []Output `json:"output"`
}

NodeTelemetry holds the unmarshalled node telemetry JSON data

type Output

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

Output holds the unmarshalled node telemetry output

type OutputEntry

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

OutputEntry holds the unmarshalled node output telemetry data

type Pod

type Pod struct {
	// Name of the pod unique within the namespace.
	// Cannot be updated.
	Name string `json:"name,omitempty"`
	// Namespace the pod is inserted into.
	// An empty namespace is equivalent to the "default" namespace, but "default"
	// is the canonical representation.
	// Cannot be updated.
	Namespace string `json:"namespace,omitempty"`
	// A list of labels attached to this pod.
	// +optional
	Label []*PodLabel `json:"label,omitempty"`
	// IP address allocated to the pod. Routable at least within the cluster.
	// Empty if not yet allocated.
	// +optional
	IPAddress string `json:"ip_address,omitempty"`
	// IP address of the host to which the pod is assigned.
	// Empty if not yet scheduled.
	// +optional
	HostIPAddress string `json:"host_ip_address,omitempty"`
	// Name of the interface on VPP through which the pod is connected
	// to VPP. Will be empty for host-network pods.
	VppIfName string `json:"vpp_if_name,omitempty"`
	// Internal name of the interface on VPP through which the pod is connected
	// to VPP. Will be empty for host-network pods.
	VppIfInternalName string `json:"vpp_if_internal_name,omitempty"`
	// IP address of the interface on VPP through which the pod is
	// connected to VPP. Will be empty for host-network pods.
	VppIfIPAddr string `json:"vpp_if_ip_addr,omitempty"`
	// Software IfIndex of the interface on VPP through which the pod is
	// connected to VPP. Will be empty for host-network pods.
	VppSwIfIdx uint32 `json:"vpp_sw_if_idx,omitempty"`
}

Pod contains pod parameter data

type PodLabel

type PodLabel struct {
	Key   string `json:"key,omitempty"`
	Value string `json:"value,omitempty"`
}

PodLabel contains key/value pair info

type Reports

type Reports map[string][]string

Reports is the per node array of report lines generated from validate()

func (Reports) DeepCopy

func (r Reports) DeepCopy() (out Reports)

DeepCopy returns a deep copy of Reports.

type VppARP

type VppARP struct {
	*vpp_l3.ARPEntry
}

VppARP extends VPP ARP entry proto model with JSON un-marshaller from jsonpb.

func (*VppARP) UnmarshalJSON

func (v *VppARP) UnmarshalJSON(data []byte) error

UnmarshalJSON uses un-marshaller from jsonpb.

type VppBridgeDomain

type VppBridgeDomain struct {
	*vpp_l2.BridgeDomain
}

VppBridgeDomain extends VPP BD proto model with JSON un-marshaller from jsonpb.

func (*VppBridgeDomain) UnmarshalJSON

func (v *VppBridgeDomain) UnmarshalJSON(data []byte) error

UnmarshalJSON uses un-marshaller from jsonpb.

type VppL2FIB

type VppL2FIB struct {
	*vpp_l2.FIBEntry
}

VppL2FIB extends VPP L2 FIB entry proto model with JSON un-marshaller from jsonpb.

func (*VppL2FIB) UnmarshalJSON

func (v *VppL2FIB) UnmarshalJSON(data []byte) error

UnmarshalJSON uses un-marshaller from jsonpb.

type VppL3Route

type VppL3Route struct {
	*vpp_l3.Route
}

VppL3Route extends VPP L3 route proto model with JSON un-marshaller from jsonpb.

func (*VppL3Route) UnmarshalJSON

func (v *VppL3Route) UnmarshalJSON(data []byte) error

UnmarshalJSON uses un-marshaller from jsonpb.

Jump to

Keyboard shortcuts

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