mpls_compliance - bstoll/featureprofiles GitHub Wiki
Ensure that the gRIBI server implements a base set of MPLS functionality without traffic validation.
- Configure ATE 
port-1connected to DUTport-1, and ATEport-2connected to DUTport-2. - ATE 
port-2is 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, withnumLabelsaddition labels:- Program a 
LabelEntrymatching outer label 100 pointing to a NHG containing a single NH. - Program a 
NextHopEntrywhich points to192.0.2.2pushing[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...numLabelsprogram:- an IPv4 entry for 
10.0.0.0/24with a next-hop of192.0.2.2pushing 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: idnetwork_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:idstatus