Documentation ¶
Index ¶
- func ClearTopology(conn *grpc.ClientConn) error
- func ConstructDevice(dd Device) *simapi.Device
- func ConstructHost(hd Host) *simapi.Host
- func ConstructLink(ld Link) *simapi.Link
- func GenerateNetcfg(topologyPath string, netcfgPath string, driver string, pipeconf string, ...) error
- func GenerateRobotTopology(topologyPath string, robotTopologyPath string) error
- func GenerateTopology(recipePath string, topologyPath string) error
- func LoadTopology(conn *grpc.ClientConn, topologyPath string) error
- func LoadTopologyFile(path string, topology *Topology) error
- type AccessFabric
- type Builder
- type Device
- type GridPosition
- type Host
- type Link
- type NIC
- type Netcfg
- type NetcfgDevice
- type NetcfgDeviceBasic
- type NetcfgDeviceReconciliation
- type NetcfgDeviceUnderlay
- type NetcfgHost
- type NetcfgHostBasic
- type NetcfgManagementAddresses
- type NetcfgPort
- type NetcfgPortInterfaces
- type PlainFabric
- type Port
- type Recipe
- type RobotDevice
- type RobotHost
- type RobotHostLink
- type RobotLink
- type RobotNode
- type RobotTopology
- type SuperSpineFabric
- type Topology
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClearTopology ¶
func ClearTopology(conn *grpc.ClientConn) error
ClearTopology removes all Devices, links and hosts from the simulator
func ConstructDevice ¶ added in v0.1.3
ConstructDevice creates a device from the specified device YAML descriptor
func ConstructHost ¶ added in v0.1.3
ConstructHost creates a host from the specified host YAML descriptor
func ConstructLink ¶ added in v0.1.3
ConstructLink creates a link from the specified link YAML descriptor
func GenerateNetcfg ¶
func GenerateNetcfg(topologyPath string, netcfgPath string, driver string, pipeconf string, tenants []int) error
GenerateNetcfg loads the specified topology YAML file and uses it to generate ONOS netcfg.json file
func GenerateRobotTopology ¶ added in v0.1.5
GenerateRobotTopology loads the specified topology YAML file and uses it to generate Robot topology YAML file
func GenerateTopology ¶
GenerateTopology loads the specified topology recipe YAML file and uses the recipe to generate a fully elaborated topology YAML file that can be loaded via LoadTopology
func LoadTopology ¶
func LoadTopology(conn *grpc.ClientConn, topologyPath string) error
LoadTopology loads the specified YAML file and creates the prescribed simulated topology entities using the fabric simulator API client.
func LoadTopologyFile ¶ added in v0.1.3
LoadTopologyFile loads the specified topology YAML file
Types ¶
type AccessFabric ¶
type AccessFabric struct { Spines int `mapstructure:"spines" yaml:"spines"` SpinePortCount int `mapstructure:"spine_port_count" yaml:"spine_port_count"` LeafPairs int `mapstructure:"leaf_pairs" yaml:"leaf_pairs"` LeafPortCount int `mapstructure:"leaf_port_count" yaml:"leaf_port_count"` SpineTrunk int `mapstructure:"spine_trunk" yaml:"spine_trunk"` PairTrunk int `mapstructure:"pair_trunk" yaml:"pair_trunk"` HostsPerPair int `mapstructure:"hosts_per_pair" yaml:"hosts_per_pair"` }
AccessFabric is a recipe for creating simulated access fabric with spines and paired leaves
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder hods state to assist generating various fabric topologies
func (*Builder) NextAgentPort ¶
NextAgentPort reserves the next available agent port and returns it
func (*Builder) NextDevicePortID ¶
NextDevicePortID reserves the next available port ID and returns it
type Device ¶
type Device struct { ID string `mapstructure:"id" yaml:"id"` ChassisID uint64 `mapstructure:"chassis_id" yaml:"chassis_id"` Type string `mapstructure:"type" yaml:"type"` AgentPort int32 `mapstructure:"agent_port" yaml:"agent_port"` Stopped bool `mapstructure:"stopped" yaml:"stopped"` Ports []Port `mapstructure:"ports" yaml:"ports"` Pos *GridPosition `mapstructure:"pos" yaml:"pos"` }
Device is a description of a simulated device
type GridPosition ¶ added in v0.1.1
GridPosition carries X/Y coordinates of a node
type Host ¶
type Host struct { ID string `mapstructure:"id" yaml:"id"` NICs []NIC `mapstructure:"nics" yaml:"nics"` Pos *GridPosition `mapstructure:"pos" yaml:"pos"` }
Host is a description of a simulated host
type Link ¶
type Link struct { SrcPortID string `mapstructure:"src" yaml:"src"` TgtPortID string `mapstructure:"tgt" yaml:"tgt"` Unidirectional bool `mapstructure:"unidirectional" yaml:"unidirectional"` }
Link is a description of a simulated link
type NIC ¶
type NIC struct { Mac string `mapstructure:"mac" yaml:"mac"` IPv4 string `mapstructure:"ip" yaml:"ip"` IPV6 string `mapstructure:"ipv6" yaml:"ipv6"` Port string `mapstructure:"port" yaml:"port"` }
NIC is a description of a simulated NIC
type Netcfg ¶
type Netcfg struct { Devices map[string]*NetcfgDevice `json:"devices"` Ports map[string]*NetcfgPort `json:"ports"` Hosts map[string]*NetcfgHost `json:"hosts"` }
Netcfg structure represents ONOS network configuration
type NetcfgDevice ¶
type NetcfgDevice struct { Basic *NetcfgDeviceBasic `json:"basic"` Underlay *NetcfgDeviceUnderlay `json:"underlay"` Reconciliation *NetcfgDeviceReconciliation `json:"reconciliation"` }
NetcfgDevice structure represents ONOS device config
type NetcfgDeviceBasic ¶
type NetcfgDeviceBasic struct { Name string `json:"name"` ManagementAddress string `json:"managementAddress"` AncillaryManagementAddresses *NetcfgManagementAddresses `json:"ancillaryManagementAddresses,omitempty"` Driver string `json:"driver"` Pipeconf string `json:"pipeconf"` LocType string `json:"locType"` GridX int `json:"gridX"` GridY int `json:"gridY"` }
NetcfgDeviceBasic structure represents ONOS basic device config
type NetcfgDeviceReconciliation ¶ added in v0.1.6
type NetcfgDeviceReconciliation struct {
RequiredApps []string `json:"requiredApps"`
}
NetcfgDeviceReconciliation holds reconciliation config
type NetcfgDeviceUnderlay ¶ added in v0.1.6
type NetcfgDeviceUnderlay struct { NodeSid int `json:"nodeSid"` Loopbacks []string `json:"loopbacks"` RouterMac string `json:"routerMac"` IsEdgeRouter bool `json:"isEdgeRouter"` }
NetcfgDeviceUnderlay holds underlay config
type NetcfgHost ¶ added in v0.1.1
type NetcfgHost struct {
Basic *NetcfgHostBasic `json:"basic"`
}
NetcfgHost structure represents ONOS host config
type NetcfgHostBasic ¶ added in v0.1.1
type NetcfgHostBasic struct { Name string `json:"name"` LocType string `json:"locType"` GridX int `json:"gridX"` GridY int `json:"gridY"` }
NetcfgHostBasic structure represents ONOS basic host config
type NetcfgManagementAddresses ¶ added in v0.1.6
type NetcfgManagementAddresses struct {
HostLocalAgent string `json:"host-local-agent"`
}
NetcfgManagementAddresses holds local agent addresses
type NetcfgPort ¶ added in v0.1.6
type NetcfgPort struct {
Interfaces []*NetcfgPortInterfaces `json:"interfaces"`
}
NetcfgPort structure holds port configuration
type NetcfgPortInterfaces ¶ added in v0.1.6
type NetcfgPortInterfaces struct { Name string `json:"name"` Ips []string `json:"ips"` VlanUntagged int `json:"vlan-untagged,omitempty"` VlanTagged []int `json:"vlan-tagged,omitempty"` Mac string `json:"mac"` }
NetcfgPortInterfaces represents a single port interface configuration
type PlainFabric ¶ added in v0.1.1
type PlainFabric struct { Spines int `mapstructure:"spines" yaml:"spines"` SpinePortCount int `mapstructure:"spine_port_count" yaml:"spine_port_count"` Leaves int `mapstructure:"leaves" yaml:"leaves"` LeafPortCount int `mapstructure:"leaf_port_count" yaml:"leaf_port_count"` SpineTrunk int `mapstructure:"spine_trunk" yaml:"spine_trunk"` HostsPerLeaf int `mapstructure:"hosts_per_leaf" yaml:"hosts_per_leaf"` }
PlainFabric is a recipe for creating simulated plain leaf-spine fabric
type Port ¶
type Port struct { Number uint32 `mapstructure:"number" yaml:"number"` SDNNumber uint32 `mapstructure:"sdn_number" yaml:"sdn_number"` Speed string `mapstructure:"speed" yaml:"speed"` }
Port is a description of a simulated port
type Recipe ¶
type Recipe struct { SuperSpineFabric *SuperSpineFabric `mapstructure:"superspine_fabric" yaml:"superspine_fabric"` AccessFabric *AccessFabric `mapstructure:"access_fabric" yaml:"access_fabric"` PlainFabric *PlainFabric `mapstructure:"plain_fabric" yaml:"plain_fabric"` }
Recipe is a container for holding one of the supported simulated topology recipes
type RobotDevice ¶ added in v0.1.5
type RobotDevice struct { ID string `mapstructure:"id" yaml:"id"` Links []*RobotLink `mapstructure:"links" yaml:"links"` }
RobotDevice is a description of an expected device
type RobotHost ¶ added in v0.1.5
type RobotHost struct { ID string `mapstructure:"id" yaml:"id"` MAC string `mapstructure:"mac" yaml:"mac"` IP string `mapstructure:"ip" yaml:"ip"` Gateway string `mapstructure:"gw" yaml:"gw"` VLAN string `mapstructure:"vlan" yaml:"vlan"` TenantID string `mapstructure:"tenantid" yaml:"tenantid"` Links []*RobotHostLink `mapstructure:"links" yaml:"links"` }
RobotHost is a description of an expected host
type RobotHostLink ¶ added in v0.1.5
type RobotHostLink struct { Device string `mapstructure:"device" yaml:"device"` Port string `mapstructure:"port" yaml:"port"` }
RobotHostLink is a description of an expected host link
type RobotLink ¶ added in v0.1.5
type RobotLink struct { Target string `mapstructure:"tgt" yaml:"tgt"` SourcePort string `mapstructure:"srcport" yaml:"srcport"` TargetPort string `mapstructure:"tgtport" yaml:"tgtport"` }
RobotLink is a description of an expected link
type RobotNode ¶ added in v0.1.5
type RobotNode struct {
IP string `mapstructure:"ip" yaml:"ip"`
}
RobotNode is a description of an expected ONOS controller node
type RobotTopology ¶ added in v0.1.5
type RobotTopology struct { Nodes []*RobotNode Devices []*RobotDevice Hosts []*RobotHost }
RobotTopology is a description of an expected network topology
type SuperSpineFabric ¶
type SuperSpineFabric struct { }
SuperSpineFabric is a recipe for creating simulated 4 rack fabric with superspines
type Topology ¶
type Topology struct { Devices []Device `mapstructure:"Devices" yaml:"Devices"` Links []Link `mapstructure:"links" yaml:"links"` Hosts []Host `mapstructure:"hosts" yaml:"hosts"` }
Topology is a description of a simulated network topology
func GenerateAccessFabric ¶
func GenerateAccessFabric(fabric *AccessFabric) *Topology
GenerateAccessFabric generates topology YAML from the specified access fabric recipe
func GeneratePlainFabric ¶ added in v0.1.1
func GeneratePlainFabric(fabric *PlainFabric) *Topology
GeneratePlainFabric generates topology YAML from the specified spine-leaf fabric recipe
func GenerateSuperSpineFabric ¶
func GenerateSuperSpineFabric(fabric *SuperSpineFabric) *Topology
GenerateSuperSpineFabric generates topology YAML from the specified super-spine fabric recipe