Elements of a topology file
The fabric topology described in a JSON configuration file can include the following elements, some of which are optional while others are mandatory:
- identifying information for the topology itself
- a set of nodes
- a set of links
- a set of device profiles
- a set of interface profiles
- LAG descriptions (for WBX only; this is not supported for an SR Linux topology)
The following tables describe each of these elements in detail.
Field Name | Default Value | Mandatory/Optional | Description of use/requirement |
name | Mandatory | The file must include a name for the topology. | |
description | Optional | Optionally, you can include a description for the topology. |
Field Names | Default Value | Mandatory/Optional | Description of use/requirement |
deviceProfile | Mandatory | You must include a reference to a device profile which must also be specified as part of the topology template. If the device profile does not exist within the template file, the import fails. | |
systemName | Mandatory | You must include the system name of the node. Upon import for a particular fabric, the fabric intent prefix is prepended to this name. Only one entry with the same system name is allowed per template. | |
deviceVendor | Mandatory | You must specify the following attributes for the node's device
vendor:
The system validates that the specified software is supported by the version in the software catalogue for the chassis type of the device profile. |
|
lags | Optional |
You may include a list of LAGs that already exist on the device. This value is only allowed if the node is considered unmanaged, meaning that the Fabric Services System itself is not managing the node configuration. For example, this vaue is supported for WBX nodes, but not for SRLinux nodes. For more information about LAG data, see the table LAGs. |
|
pod | Optional | You can include a label to identify a group of nodes. | |
rack | Optional | You may include a label to identify a grouping of nodes which reside in the same physical rack. | |
role | Mandatory |
You must include a role for the node. Several roles are available to identify a node's position within the fabric hierarchy:
|
Field Names | Default Value | Mandatory/Optional | Description of use/requirement |
name | Mandatory | You must include a text string that is the name for a LAG. | |
Local name | Mandatory |
You must include the name of the LAG as specified on the device
itself; for example, lag1
Note: A node must
not include more than one LAG with the same local
name. |
|
Multi Homed | True | Mandatory | You must indicate whether the LAG is multi-homed. |
ports | Mandatory | You must include a list of ports that constitute this particular LAG. | |
Note: LAG information is supported only for
unmanaged topologies, such as those consisting of 210 WBX nodes. For
managed topologies, such as those consisting of SR Linux nodes,
configure LAGs conventionally as you would for a non-imported
topology.
|
Field Name | Default Value | Mandatory/Optional | Description of use/requirement |
name | Mandatory | You must include a name for the device profile. | |
description | Optional | You may include a description for the device profile | |
chassis type | Mandatory | You must include one of the following chassis types:
|
|
edge links | Optional |
You may include a list of edge links. Only interfaces which are valid according to the inventory for the chassis type are accepted. If a configured interface is not valid, the device profile is not accepted and an error results when generating the fabric configuration. An edge link interface should not be allowed to overlap with an interface configured in a Link object. Overlapping entries are rejected and an error results when generating the fabric configuration. An edge link should only be specified once for a device profile. Duplicate entries are rejected and an error results when generating the fabric configuration. . |
|
loopbacks | Optional | You may include set of loopback interfaces for use. | |
interfaceGroups | Optional | Interface groups are used to group a set of interfaces within a device and apply an interface profile to the list of interfaces within the group. |
Field Names | Default Value | Mandatory/Optional | Description of use/requirement |
type | Mandatory | Defines the type of interface. Only "ISL" is currently supported. | |
interfaces | Mandatory |
A list of interfaces belonging to the group. Interfaces cannot belong to multiple interface groups. |
|
interfaceProfile | Mandatory | A reference to an interface profile. If this is specified the profile must also be present within the topology definition. If the interface_profile is not specified then all interface parameters for the list of interfaces must use their default values (such as speed). Interface profiles can be referenced by multiple interface groups. |
Field Names | Default Value | Mandatory/Optional | Description of use/requirement |
name | Mandatory | This is the name of the interface profile | |
breakout | Optional |
Breakout is a nested object which, if it contains any configuration, will dictate that the interface should use breakouts. The nested breakout object is defined separately. |
Field Names | Default Value | Mandatory/Optional | Description of use/requirement |
numChannel | Mandatory | The number of channels for the interface breakout. Values are validated per interface. | |
channelSpeed | Mandatory |
The speed of each channel. Values are validated per interface. |
Field Name | Default Value | Mandatory/Optional | Description of use/requirement |
localNode | Mandatory | You must include the local node name. This must be a valid and existing node name in the topology template. | |
localPort | Mandatory | You must identify the interface on the local node that is attached to
the remote port on the remote node. This interface cannot belong to more
than one link and cannot be an edge link. If the native interface has been broken out with a configuration in interfaceGroups, identify the broken-out port numbers. |
|
remoteNode | Mandatory | You must include the remote node name. This must be a valid and
existing node name in the topology template. If the native interface has been broken out with a configuration in interfaceGroups, identify the broken-out port numbers. |
|
remotePort | Mandatory | You must identify the interface on the remote node which is attached to the local port on the local node. This interface cannot belong to more than one link and cannot be an edge link. | |
isActive | Optional | You may indicate with a value of true or false whether the links should be active. If false, an IP address is allocated to the link but the Administrative status is not set to Up. | |
speed | Optional | You may indicate a speed for the link. | |
role | Mandatory |
You must indicate the relationship between the nodes in this link. Any link that does not fall into one of the existing roles can be assigned a generic ISL role. Supported roles are:
|
Topology validation
When you import a topology into the Fabric Services System, the system performs several validation checks on the data in the selected topology.For node-level data, the system verifies that:
- If there are duplicate system names, only the first instance is accepted.
- Every node has a valid device profile name that is defined in the device profile section.
- For each chassis type, the software image version is equal to or greater than the version supported in the system's software catalog.
For link data, the system verifies that:
- a valid node name is provided for the local node
- a valid port is provided for the local port
- a valid node name is provided for the remote node
- a valid port is provided for the remote port
- all ports for the local and remote nodes are unique
- the port is valid based on the catalog for the device type.
- each port used for edge links and ISLs is unique
- each LAG name is locally unique.
- no LAG data is provided for an imported topology intended for SR Linux nodes.
- The number of channels for the interface breakout is supported by the interface.
- The speed of each channel is supported by the interface.