mpls_compliance - bstoll/featureprofiles GitHub Wiki
Ensure that the gRIBI server implements a base set of MPLS functionality without traffic validation.
- Configure ATE
port-1
connected to DUTport-1
, and ATEport-2
connected to DUTport-2
. - ATE
port-2
is configured to have an assigned address of192.0.2.2
, and the interface to the DUT is enabled. - For label stack depths beginning at
baseLabel
, withnumLabels
addition labels:- Program a
LabelEntry
matching outer label 100 pointing to a NHG containing a single NH. - Program a
NextHopEntry
which points to192.0.2.2
pushing[baseLabel, ..., baseLabel+numLabels]
onto the MPLS label stack.
- Program a
- Validate that gRIBI transactions are successfully processed by the server.
- Configure DUT with a destination interface connected to an ATE. The ATE is
configured to have an assigned address of
192.0.2.2
, and the interface to the DUT is enabled. - For label stack depths from
N=1...numLabels
program:- an IPv4 entry for
10.0.0.0/24
with a next-hop of192.0.2.2
pushing N additional labels onto the packet.
- an IPv4 entry for
- Validate that gRIBI transactions are successfully processed by the server.
- Configure DUT with a destination interface connected to an ATE. The ATE is configured to have assigned address 192.0.2.2.
- Program DUT with a label forwarding entry matching label 100 and specifying to pop the top label.
- Validate that gRIBI transactions are successfully processed by the server.
- Configure DUT with destination interface connected to an ATE. The ATE is
configured to have assigned address
192.0.2.2
. - Program DUT with a label forwarding entry matching label 100 and specifying to
pop:
- Label
100
- Label stack
[100, 42]
- Label stack
[100, 42, 43, 44, 45]
- Label
- Configure DUT with destination interface connected to an ATE. The ATE is
configured to have assigned address
192.0.2.2
. - Program DUT with a label forwarding entry matching label 100 and label 200,
pointing to a next-hop that is programmed to pop the top label, and:
- push label 100 - resulting in a swap for incoming label 100, and a push of 100 for incoming label 200.
- push stack
[100, 200, 300, 400]
- push stack
[100, 200, 300, 400, 500, 600]
- gRIBI:
Modify()
-
ModifyRequest
-
AFTOperation
: id
network_instance
-
op
:ADD
-
ipv4
: *prefix
-
mpls
: *next_hop_group
-
next_hop_group
*id
*next_hop
-
next_hop
*id
*ip_address
*pushed_label_stack
*pop_top_label
*popped_label_stack
-
-
ModifyResponse
: -
AFTResult
:id
status