Interfaces#
Description | The interfaces application enables the configuration and management of network interfaces across your infrastructure, supporting various interface types including single interfaces, LAGs, and loopback interfaces. |
Supported OS | SR Linux, SR OS |
Catalog | nokia-eda/catalog |
Source Code | coming soon |
The Interfaces application provides two resources - Interface and Breakout.
Interface#
TOPOLOGY → IInterface
The Interface resource declaratively defines abstracted network interfaces for the range of supported network operating systems and supports three primary interface types:
- Standard Interface: Individual physical interfaces
- LAG (Link Aggregation Group): Bundled interfaces operating as a single logical link
- Loopback: Virtual interfaces for management and routing purposes
Basic Configuration Fields#
In the basic scenario of configuring a simple interface the following basic configuration fields are typically set:
- Type: An interface type -
standard
,lag
orloopback
. - Members: A list of objects where each object is a reference to a node name and its associated physical interface name.
The interface name is provided in the normalized way, non alphanumerical characters are replaced with-
(dash). For example, original interface nameethernet-1/13
becomesethernet-1-13
. - Enabled State: Interfaces are enabled by default but can be explicitly disabled
- Description: Optional text description of the interface
- MTU: Maximum Transmission Unit (range: 1450-9500)
Add the metadata blob that includes the Interface resource Name, Namespace and Labels, and you get a valid EDA resource that you can apply, for example to your Try EDA cluster.
When applied, the resource presented below will create a simple physical network interface configuration on the supported network OS with the user-provided values and the resource defaults.
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: leaf1-ethernet-1-13
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: interface
description: "Customer facing interface"
enabled: true
mtu: 9000
members:
- node: leaf1
interface: ethernet-1-13
cat << 'EOF' | kubectl apply -f -
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: leaf1-ethernet-1-13
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: interface
description: "Customer facing interface"
enabled: true
mtu: 9000
members:
- node: leaf1
interface: ethernet-1-13
EOF
Interface Naming and Normalization#
The Interface application employs a standardized, or normalized, format for interface names within its configurations. This approach ensures consistency when defining interfaces across diverse network operating systems (NOS). The system subsequently translates these normalized names into the specific format required by each target OS.
A key aspect of EDA's interface modeling is the use of normalized interface names. Typically, an OS-native interface name like ethernet-1/13
is represented as ethernet-1-13
in EDA configurations by replacing non-alphanumeric characters (like /
) with a dash (-
). This normalized name is then used by the system to derive the OS-specific interface identifier.
The following subsections detail how these normalized EDA interface names are translated for various supported operating systems, based on the underlying logic.
SR Linux#
- Native interface name
ethernet-1/1
is normalized asethernet-1-1
. - Breakout interfaces like
ethernet-1/1/1
becomeethernet-1-1-1
. - Loopback interfaces such as
lo0
translate toloopback-0
. - LAG interfaces like
lag10
translate tolag-10
.
SR OS#
- Native port identifier
1/1/1
translates toethernet-1-a-1
name, where "a" is the first MDA on a 1st line card. - The system supports more complex mappings for different hardware configurations:
- Port
2/2/1
translates toethernet-2-b-1
(representing linecard 2, MDA "b"2, port 1). - Breakout (implicit MDA 1):
1/1/c1/1
translates toethernet-1-1-1
. - Breakout (explicit "a" for MDA 1):
1/1/c2/1
translates toethernet-1-a-2-1
(where MDA "a" maps to 1, and "2-1" defines the port asc2/1
). - XIOM MDA:
1/x1/1/1
translates toethernet-1-1-a-1
.
- Port
- Loopback interfaces like
lo0
becomeloopback-0
. - LAG interfaces retain names like
lag-10
.
Ethernet Configuration#
The Interface application provides extensive Ethernet-specific configurations through the ethernet
property, including:
- Speed: Interface speed (100G, 40G, 25G, 10G, 1G, etc.)
- Forward Error Correction (FEC): Various FEC modes (disabled, rs528, rs544, baser, rs108)
- Timers: Hold-up, hold-down, and reload delay timers
- Storm Control: Traffic rate limiting for broadcast, multicast, and unknown unicast
- L2CP Protocol Transparency: Configuration for tunneling various L2CP protocols
Storm Control Configuration#
Storm control helps protect the network from traffic storms by setting rate limits:
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: example-interface
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: interface
description: "Customer facing interface with storm control enabled"
enabled: true
mtu: 9000
ethernet:
stormControl:
enabled: true
units: kbps
broadcastRate: 1000000
multicastRate: 1000000
unknownUnicastRate: 1000000
members:
- node: leaf-1
interface: ethernet-1-1
cat << 'EOF' | kubectl apply -f -
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: example-interface
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: interface
description: "Customer facing interface with storm control enabled"
enabled: true
mtu: 9000
ethernet:
stormControl:
enabled: true
units: kbps
broadcastRate: 1000000
multicastRate: 1000000
unknownUnicastRate: 1000000
members:
- node: leaf-1
interface: ethernet-1-1
EOF
LAG Configuration#
Link Aggregation Groups (LAGs) provide link redundancy and increased bandwidth. The Interface application supports both regular/local LAGs (with static and LACP-based configurations) as well as ESI-based1 multihoming LAGs.
The following set of Interface objects is relevant for the LAG interface configuration:
- Minimum Links: Minimum required number of active links in a LAG to be operational
- LACP Settings: Mode, interval, system priority, and admin key
- Multi-homing: ESI configuration for multi-chassis operation
Example LAG Configuration#
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: leaf1-simple-lag
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: lag
description: "Customer facing lag"
enabled: true
mtu: 9000
lag:
type: lacp
minLinks: 2
lacp:
mode: active
interval: fast
systemPriority: 32768
members:
- node: leaf1
interface: ethernet-1-14
- node: leaf1
interface: ethernet-1-15
cat << 'EOF' | kubectl apply -f -
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: leaf1-simple-lag
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: lag
description: "Customer facing lag"
enabled: true
mtu: 9000
lag:
type: lacp
minLinks: 2
lacp:
mode: active
interval: fast
systemPriority: 32768
members:
- node: leaf1
interface: ethernet-1-14
- node: leaf1
interface: ethernet-1-15
EOF
Multi-homing Support#
The Interface application supports sophisticated multi-homing configurations for LAGs based on EVPN standard, enabling high availability and load balancing:
- Modes: all-active, single-active, or port-active
- ESI: Ethernet Segment Identifier configuration
- Active Node Preference: Preferred node selection for single-active scenarios
- Revertive Behavior: Controls failback behavior
Multi-homing Configuration Example#
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: leaf1-leaf2-simple-mh-lag
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: lag
description: "Customer facing multihoming lag"
enabled: true
mtu: 9000
lag:
type: lacp
minLinks: 2
multihoming:
mode: all-active
preferredActiveNode: leaf1
revertive: true
lacp:
mode: active
interval: fast
systemPriority: 32768
members:
- node: leaf1
interface: ethernet-1-20
- node: leaf2
interface: ethernet-1-20
cat << 'EOF' | kubectl apply -f -
apiVersion: interfaces.eda.nokia.com/v1alpha1
kind: Interface
metadata:
name: leaf1-leaf2-simple-mh-lag
namespace: eda
labels:
eda.nokia.com/role: edge
spec:
type: lag
description: "Customer facing multihoming lag"
enabled: true
mtu: 9000
lag:
type: lacp
minLinks: 2
multihoming:
mode: all-active
preferredActiveNode: leaf1
revertive: true
lacp:
mode: active
interval: fast
systemPriority: 32768
members:
- node: leaf1
interface: ethernet-1-20
- node: leaf2
interface: ethernet-1-20
EOF
Operational State#
The Interface application maintains detailed operational state information, including:
- Administrative and operational status
- Interface speed
- Last state change timestamp
- Member status and neighbor discovery
- LAG-specific operational details
You can verify the interface operational state using:
Breakout#
TOPOLOGY → BBreakout
The Breakout resource allows for the configuration of interface breakouts on specified Nodes. This resource specifies the Nodes, parent Interfaces, the number of breakout channels, and the speed of each channel.
Configuration Fields#
node
: A list of references to TopoNodes where the parent interfaces are to be broken out.interface
: A list of normalized parent interface/port names to be broken out.channels
: (Required) The number of breakout channels to create (integer, min: 1, max: 8).speed
: (Required) The speed of each breakout channel. Supported speeds are: 800G, 400G, 200G, 100G, 50G, 40G, 25G, 10G.nodeSelector
: An alternative way to specify the TopoNode(s) where the parent interfaces are to be broken out.
Example Breakout Configuration#
This example demonstrates how to configure a breakout port.