topology

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2019 License: Apache-2.0 Imports: 9 Imported by: 58

Documentation

Index

Constants

View Source
const (
	OwnershipLink = "ownership"
	Layer2Link    = "layer2"
)

ErrNetworkPathNotFound

Variables

View Source
var ErrInvalidSchema = errors.New("Invalid schema")

ErrInvalidSchema is return when a JSON schema is invalid

View Source
var (
	// ErrNoPathToHost is called when no host could be found as the parent of a node
	ErrNoPathToHost = func(name string) error { return fmt.Errorf("Failed to determine network namespace path for %s", name) }
)

Functions

func AddLayer2Link(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, metadata graph.Metadata) (*graph.Edge, error)

AddLayer2Link links the parent and the child node

func AddLink(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, relationType string, metadata graph.Metadata) (*graph.Edge, error)

AddLink minks the parent and the child node with the specified relation type and metadata

func AddOwnershipLink(g *graph.Graph, parent *graph.Node, child *graph.Node, metadata graph.Metadata) (*graph.Edge, error)

AddOwnershipLink Link between the parent and the child node, the child can have only one parent, previous will be overwritten

func GetOwnershipLink(g *graph.Graph, parent *graph.Node, child *graph.Node) *graph.Edge

GetOwnershipLink get ownership Link between the parent and the child node or nil

func HaveLayer2Link(g *graph.Graph, node1 *graph.Node, node2 *graph.Node) bool

HaveLayer2Link returns true if parent and child have the same layer 2

func HaveLink(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, relationType string) bool

HaveLink returns true if parent and child are linked

func HaveOwnershipLink(g *graph.Graph, parent *graph.Node, child *graph.Node) bool

HaveOwnershipLink returns true if parent and child have an ownership link

func InterfaceMetricMetadataDecoder added in v0.21.0

func InterfaceMetricMetadataDecoder(raw json.RawMessage) (common.Getter, error)

InterfaceMetricMetadataDecoder implements a json message raw decoder

func IsInterfaceUp added in v0.21.0

func IsInterfaceUp(node *graph.Node) bool

IsInterfaceUp returns whether an interface has the flag UP set

func IsOwnershipLinked added in v0.13.0

func IsOwnershipLinked(g *graph.Graph, node *graph.Node) bool

IsOwnershipLinked checks whether the node has an OwnershipLink

func Layer2Metadata added in v0.11.0

func Layer2Metadata() graph.Metadata

Layer2Metadata returns metadata for a layer2 link

func NamespaceFromNode added in v0.12.0

func NamespaceFromNode(g *graph.Graph, n *graph.Node) (string, string, error)

NamespaceFromNode returns the namespace name and the path of a node in the graph

func NewNetNSContextByNode added in v0.8.0

func NewNetNSContextByNode(g *graph.Graph, n *graph.Node) (*common.NetNSContext, error)

NewNetNSContextByNode creates a new network namespace context based on the node

func OwnershipMetadata added in v0.11.0

func OwnershipMetadata() graph.Metadata

OwnershipMetadata returns metadata for an ownership link

Types

type HostNodeTIDMap added in v0.9.0

type HostNodeTIDMap map[string][]string

HostNodeTIDMap a map that store the value node TID and the key node host

func BuildHostNodeTIDMap added in v0.9.0

func BuildHostNodeTIDMap(nodes []*graph.Node) HostNodeTIDMap

BuildHostNodeTIDMap creates a new node and host (key) map

type InterfaceMetric added in v0.16.0

type InterfaceMetric struct {
	Collisions        int64 `json:"Collisions,omitempty"`
	Multicast         int64 `json:"Multicast,omitempty"`
	RxBytes           int64 `json:"RxBytes,omitempty"`
	RxCompressed      int64 `json:"RxCompressed,omitempty"`
	RxCrcErrors       int64 `json:"RxCrcErrors,omitempty"`
	RxDropped         int64 `json:"RxDropped,omitempty"`
	RxErrors          int64 `json:"RxErrors,omitempty"`
	RxFifoErrors      int64 `json:"RxFifoErrors,omitempty"`
	RxFrameErrors     int64 `json:"RxFrameErrors,omitempty"`
	RxLengthErrors    int64 `json:"RxLengthErrors,omitempty"`
	RxMissedErrors    int64 `json:"RxMissedErrors,omitempty"`
	RxOverErrors      int64 `json:"RxOverErrors,omitempty"`
	RxPackets         int64 `json:"RxPackets,omitempty"`
	TxAbortedErrors   int64 `json:"TxAbortedErrors,omitempty"`
	TxBytes           int64 `json:"TxBytes,omitempty"`
	TxCarrierErrors   int64 `json:"TxCarrierErrors,omitempty"`
	TxCompressed      int64 `json:"TxCompressed,omitempty"`
	TxDropped         int64 `json:"TxDropped,omitempty"`
	TxErrors          int64 `json:"TxErrors,omitempty"`
	TxFifoErrors      int64 `json:"TxFifoErrors,omitempty"`
	TxHeartbeatErrors int64 `json:"TxHeartbeatErrors,omitempty"`
	TxPackets         int64 `json:"TxPackets,omitempty"`
	TxWindowErrors    int64 `json:"TxWindowErrors,omitempty"`
	Start             int64 `json:"Start,omitempty"`
	Last              int64 `json:"Last,omitempty"`
}

InterfaceMetric the interface packets counters easyjson:json

func (*InterfaceMetric) Add added in v0.16.0

Add sum two metrics and return a new Metrics object

func (*InterfaceMetric) GetField added in v0.21.0

func (im *InterfaceMetric) GetField(key string) (interface{}, error)

GetField implements Getter interface

func (*InterfaceMetric) GetFieldInt64 added in v0.16.0

func (im *InterfaceMetric) GetFieldInt64(field string) (int64, error)

GetFieldInt64 implements Getter and Metrics interfaces

func (*InterfaceMetric) GetFieldKeys added in v0.21.0

func (im *InterfaceMetric) GetFieldKeys() []string

GetFieldKeys implements Getter and Metrics interfaces

func (*InterfaceMetric) GetFieldString added in v0.21.0

func (im *InterfaceMetric) GetFieldString(key string) (string, error)

GetFieldString implements Getter interface

func (*InterfaceMetric) GetLast added in v0.16.0

func (im *InterfaceMetric) GetLast() int64

GetLast returns last time

func (*InterfaceMetric) GetStart added in v0.16.0

func (im *InterfaceMetric) GetStart() int64

GetStart returns start time

func (*InterfaceMetric) IsZero added in v0.16.0

func (im *InterfaceMetric) IsZero() bool

IsZero returns true if all the values are equal to zero

func (*InterfaceMetric) SetLast added in v0.16.0

func (im *InterfaceMetric) SetLast(last int64)

SetLast set last tome

func (*InterfaceMetric) SetStart added in v0.16.0

func (im *InterfaceMetric) SetStart(start int64)

SetStart set start time

func (*InterfaceMetric) Split added in v0.17.0

func (im *InterfaceMetric) Split(cut int64) (common.Metric, common.Metric)

Split splits a metric into two parts

func (*InterfaceMetric) Sub added in v0.16.0

Sub subtracts two metrics and return a new metrics object

type SchemaValidator added in v0.20.0

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

SchemaValidator validates graph nodes and edges using a JSON schema

func NewSchemaValidator added in v0.20.0

func NewSchemaValidator() (*SchemaValidator, error)

NewSchemaValidator returns a new JSON schema validator for graph nodes and edges. based on JSON schema bundled with go-bindata

func (*SchemaValidator) ValidateEdge added in v0.20.0

func (v *SchemaValidator) ValidateEdge(edge *graph.Edge) error

ValidateEdge valides a graph edge

func (*SchemaValidator) ValidateNode added in v0.20.0

func (v *SchemaValidator) ValidateNode(node *graph.Node) error

ValidateNode valides a graph node

type TIDMapper added in v0.6.0

type TIDMapper struct {
	graph.DefaultGraphListener
	Graph *graph.Graph
	// contains filtered or unexported fields
}

TIDMapper describes the hostID nodes stored in a graph the mapper will broadcast node event to the registered listeners

func NewTIDMapper added in v0.6.0

func NewTIDMapper(g *graph.Graph) *TIDMapper

NewTIDMapper creates a new node mapper in the graph g

func (*TIDMapper) OnEdgeAdded added in v0.6.0

func (t *TIDMapper) OnEdgeAdded(e *graph.Edge)

OnEdgeAdded event

func (*TIDMapper) OnEdgeDeleted added in v0.11.0

func (t *TIDMapper) OnEdgeDeleted(e *graph.Edge)

OnEdgeDeleted event

func (*TIDMapper) OnEdgeUpdated added in v0.6.0

func (t *TIDMapper) OnEdgeUpdated(e *graph.Edge)

OnEdgeUpdated event

func (*TIDMapper) OnNodeAdded added in v0.6.0

func (t *TIDMapper) OnNodeAdded(n *graph.Node)

OnNodeAdded evetn

func (*TIDMapper) OnNodeUpdated added in v0.6.0

func (t *TIDMapper) OnNodeUpdated(n *graph.Node)

OnNodeUpdated event

func (*TIDMapper) Start added in v0.6.0

func (t *TIDMapper) Start()

Start the mapper

func (*TIDMapper) Stop added in v0.6.0

func (t *TIDMapper) Stop()

Stop the mapper

Directories

Path Synopsis
probes
k8s
lxd
vpp

Jump to

Keyboard shortcuts

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