Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions artifacts/openapi.html

Large diffs are not rendered by default.

591 changes: 583 additions & 8 deletions artifacts/openapi.yaml

Large diffs are not rendered by default.

422 changes: 416 additions & 6 deletions artifacts/otg.proto

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion control/protocol.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ components:
state:
description: |-
Sets the Control State of one or more Simulated Links to UP or DOWN.
The state change is applied bidirectionally a link between IS-IS Routers A and B is affected
The state change is applied bidirectionally - a link between IS-IS Routers A and B is affected
in both directions simultaneously.
Setting Control State to DOWN transitions the selected Simulated Links to a disconnected state.
Both the Simulated/Emulated Router hosting the link and the neighboring router at the far end
Expand Down
87 changes: 87 additions & 0 deletions device/ospfv2/adjacencysegmentid.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
components:
schemas:
Ospfv2Interface.AdjacencySid:
description: |-
Optional container for the OSPFv2 Adjacency SID sub-TLV.
The Adjacency SID sub-TLV is carried inside the OSPFv2 Extended Link TLV of the
Extended Link Opaque LSA and describes a segment associated with a specific adjacency
(typically a point-to-point link).
Reference: https://datatracker.ietf.org/doc/html/rfc8665#name-adjacency-sid-sub-tlv.
type: object
properties:
choice:
description: |-
Choice of whether the Adjacency SID carries absolute values (local labels) or relative
indices. This choice sets the V-Flag (Value/Index) and the L-Flag (Local/Global) of the
Adjacency SID sub-TLV as follows:
- sid_values: V-Flag and L-Flag are set (both 1). Each Adj-SID carries a 3-octet local
label value with local significance, typically from the SRLB. Please refer to
device.ospfv2.segment_routing.srlb_ranges.
- sid_indices: V-Flag and L-Flag are unset (both 0). Each Adj-SID carries a 4-octet
index that is an offset into the SRGB.
A user needs to configure at least one entry of SID value or SID index.
type: string
default: sid_values
x-field-uid: 1
x-enum:
sid_values:
x-field-uid: 1
sid_indices:
x-field-uid: 2
sid_values:
description: >-
The corresponding Adjacency SID as one or more absolute local label values for the
link. Used when the choice is sid_values.
type: array
items:
type: integer
format: uint32
default: 16
minimum: 16
maximum: 1048575
x-field-uid: 2
sid_indices:
description: >-
One or more Adjacency SID indices, relative to the SRGB. Used when the choice is
sid_indices.
type: array
items:
type: integer
format: uint32
default: 0
minimum: 0
maximum: 4294967295
x-field-uid: 3
b_flag:
description: |-
B-Flag: Backup Flag.
If set, the Adjacency SID is eligible for protection, for example using
Fast Reroute (FRR) / Loop-Free Alternate (LFA).
type: boolean
default: false
x-field-uid: 4
g_flag:
description: |-
G-Flag: Group Flag.
When set, the G-Flag indicates that the Adj-SID refers to a group of adjacencies and
therefore MAY be assigned to other adjacencies as well.
type: boolean
default: false
x-field-uid: 5
p_flag:
description: |-
P-Flag: Persistent Flag.
When set, the P-Flag indicates that the Adj-SID is persistently allocated, i.e. the
Adj-SID value remains consistent across router restart and/or interface flap.
type: boolean
default: false
x-field-uid: 6
weight:
description: |-
The value represents the weight of the Adj-SID for the purpose of load balancing.
type: integer
format: uint32
default: 0
minimum: 0
maximum: 255
x-field-uid: 7
21 changes: 19 additions & 2 deletions device/ospfv2/interface/interface.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,16 @@ components:
x-field-uid: 1
ipv4_name:
description: >-
The globally unique name of the IPv4 interface connected to the DUT.
The globally unique name of the IPv4 interface on which OSPFv2 is running.
The underlying Ethernet of this IPv4 interface may be an emulated interface
(Ethernet connection of type port_name / lag_name, i.e. connected to a port and the DUT)
or a simulated interface (Ethernet connection of type simulated_link). When the
underlying Ethernet uses a simulated_link, this OSPFv2 interface belongs to a simulated
router inside a simulated topology behind the emulated router, connected either by a
primary link (internal to the simulated topology) or a secondary link (to a device
behind a different simulated topology). This is how OSPFv2 simulated topologies are
built - a simulated router is an ordinary Device running ospfv2 whose Ethernets use
simulated_link connections.
type: string
x-constraint:
- '/components/schemas/Device.Ipv4/properties/name'
Expand Down Expand Up @@ -63,7 +72,15 @@ components:
maximum: 16777215
default: 0
x-field-uid: 9

adjacency_sids:
description: >-
List of OSPFv2 Adjacency SID sub-TLVs advertised in the Extended Link Opaque LSA
for this interface (RFC 8665). Typically used on point-to-point links.
type: array
items:
$ref: '../adjacencysegmentid.yaml#/components/schemas/Ospfv2Interface.AdjacencySid'
x-field-uid: 10

Ospfv2Interface.Area:
description: |-
Container for OSPF Area ID identifies the routing area to which the host belongs..
Expand Down
91 changes: 91 additions & 0 deletions device/ospfv2/prefixsegmentid.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
components:
schemas:
Ospfv2SR.PrefixSid:
description: |-
This contains the properties of an OSPFv2 Prefix-SID sub-TLV and its attributes.
The Prefix-SID sub-TLV is carried inside the OSPFv2 Extended Prefix TLV of the
Extended Prefix Opaque LSA and is associated with a specific IPv4 prefix.
Reference: https://datatracker.ietf.org/doc/html/rfc8665#name-prefix-sid-sub-tlv.
type: object
properties:
choice:
description: |-
Choice of whether the Prefix-SID carries absolute values (local labels) or relative
indices into the SRGB. This choice sets the V-Flag (Value/Index) and the L-Flag
(Local/Global) of the Prefix-SID sub-TLV as follows:
- sid_indices: V-Flag and L-Flag are unset (both 0). Each Prefix-SID carries a 4-octet
index that is an offset into the SRGB advertised by the router. Please refer to
device.ospfv2.segment_routing.srgb_ranges.
- sid_values: V-Flag and L-Flag are set (both 1). Each Prefix-SID carries a 3-octet
local label value with local significance.
A user needs to configure at least one entry of SID value or SID index. If no entry is
configured, an implementation may advertise an appropriate default SID value/index
based on the choice, e.g. the first value from the SRGB range.
type: string
default: sid_indices
x-field-uid: 1
x-enum:
sid_values:
x-field-uid: 1
sid_indices:
x-field-uid: 2
sid_values:
description: >-
SID/Label as one or more absolute local label values associated with the IGP Prefix
segment attached to the specific IPv4 prefix. Used when the choice is sid_values.
type: array
items:
type: integer
format: uint32
default: 16
minimum: 16
maximum: 1048575
x-field-uid: 2
sid_indices:
description: >-
One or more SID/Label indices associated with the IGP Prefix segment attached to the
specific IPv4 prefix. Each index is an offset into the SRGB. Used when the choice is
sid_indices.
type: array
items:
type: integer
format: uint32
default: 0
minimum: 0
maximum: 4294967295
x-field-uid: 3
np_flag:
description: |-
NP-Flag: No-PHP (No Penultimate Hop-Popping) Flag.
If set, then the penultimate hop MUST NOT pop the Prefix-SID before delivering the
packet to the node that advertised the Prefix-SID.
type: boolean
default: true
x-field-uid: 4
m_flag:
description: |-
M-Flag: Mapping Server Flag.
If set, then the SID was advertised by an SR Mapping Server. When set, the NP-Flag and
the E-Flag MUST be ignored on reception.
type: boolean
default: false
x-field-uid: 5
e_flag:
description: |-
E-Flag: Explicit-Null Flag.
If set, any upstream neighbor of the Prefix-SID originator MUST replace the Prefix-SID
with the Explicit-NULL label before forwarding the packet.
type: boolean
default: false
x-field-uid: 6
algorithm:
description: |-
The Segment Routing Algorithm the Prefix-SID is associated with. The value matches an
algorithm advertised in the SR-Algorithm TLV, e.g. 0 for SPF or 1 for Strict SPF.
Reference: https://datatracker.ietf.org/doc/html/rfc8665#name-sr-algorithm-tlv.
type: integer
format: uint32
default: 0
minimum: 0
maximum: 255
x-field-uid: 7
5 changes: 5 additions & 0 deletions device/ospfv2/router.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ components:
items:
$ref: './routerange/v4routerange.yaml#/components/schemas/Ospfv2.V4RouteRange'
x-field-uid: 11
segment_routing:
description: >-
Optional Segment Routing (SR) configuration for this OSPFv2 router.
$ref: './segmentrouting.yaml#/components/schemas/Ospfv2.SegmentRouting'
x-field-uid: 12

Ospfv2.RouterId:
description: >-
Expand Down
17 changes: 15 additions & 2 deletions device/ospfv2/routerange/v4routerange.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
components:
schemas:
Ospfv2.V4RouteRange:
description: >-
Emulated OSPFv2 IPv4 routes.
description: |-
A group of OSPFv2 IPv4 routes advertised by this OSPFv2 router.
The router may be an emulated router (connected to the DUT via a port) or a simulated
router inside a simulated topology (its Ethernet uses a simulated_link connection). The
route_origin choice selects the OSPFv2 LSA/route type (intra_area, inter_area,
external_type_1, external_type_2, nssa_external), and prefix_sids attaches the Segment
Routing Prefix-SID(s) for these routes.
type: object
properties:
name:
Expand All @@ -29,6 +34,14 @@ components:
The type of the OSPFv2 routes.
$ref: '#/components/schemas/Ospfv2V4RR.RouteOrigin'
x-field-uid: 4
prefix_sids:
description: >-
A list of OSPFv2 Prefix-SID sub-TLVs advertised in the Extended Prefix Opaque LSA for
this group of IPv4 route addresses (RFC 8665).
type: array
items:
$ref: '../prefixsegmentid.yaml#/components/schemas/Ospfv2SR.PrefixSid'
x-field-uid: 5
required: [name]

Ospfv2V4RR.RouteOrigin:
Expand Down
Loading