isis_scale_test - openconfig/featureprofiles GitHub Wiki
This test suite should ensure that the router will be able to handle below IS-IS scale:
- 3200 IS Node
- 3200 x /32 IPv4 prefix
- 6400 x /26 IPv4 prefix
- 6400 x /64 IPv6 prefix
- 66200 x ISIS link
Every test in this test suite should be able to test the router perfomance under different circumstances e.g static static (with no route flaps) dynamic state (with route flaps).. etc.
graph LR
Block1[ISIS Block1 20x20] <--> R1[ATE router R1]
Block3[ISIS Block3 20x20] <--> R1
Block5[ISIS Block5 12x12] <--> R1
Block7[ISIS Block7 12x12] <--> R1
Block9[ISIS Block9 16x16] <--> R1
Block11[ISIS Block11 16x16] <--> R1
R1 <--> |IS-IS |DUT[DUT]
DUT <--> | IS-IS | R2[ATE router R2]
R2 <--> Block2[ISIS Block2 20x20]
R2 <--> Block4[ISIS Block4 20x20]
R2 <--> Block6[ISIS Block6 12x12]
R2 <--> Block8[ISIS Block8 12x12]
R2 <--> Block10[ISIS Block10 16x16]
R2 <--> Block12[ISIS Block12 16x16]
| Device | Port1 IPv4 | Port1 IPv6 | Port2 IPv4 | Port2 IPv4 | ISIS AREA | ISIS ID |
|---|---|---|---|---|---|---|
| DUT | 192.168.0.5/30 | 2001:db8::1/126 | 192.168.0.9/30 | 2002:db8::1/126 | 49001 | 640000000002 |
| ATE R1 | 192.168.0.6/30 | 2001:db8::2/126 | N/A | N/A | 49001 | 640000000003 |
| ATE R2 | N/A | N/A | 192.168.0.10/30 | 2002:db8::2/126 | 49001 | 640000000004 |
All Simulated ISIS blocks on OTG will have a grid topology with the below specs
| Block Name | Dimension | Lo0 IPv4,IPv6 and ISIS sys ID first octet | Count of paralle links between 2 nodes | Link IPv4 range |
|---|---|---|---|---|
| Block1 | 20x20 | 20 | 2 | 21.0.0.0/8 |
| Block2 | 20x20 | 23 | 2 | 24.0.0.0/8 |
| Block3 | 20x20 | 26 | 2 | 27.0.0.0/8 |
| Block4 | 20x20 | 29 | 2 | 30.0.0.0/8 |
| Block5 | 12x12 | 32 | 17 | 33.0.0.0/8 |
| Block6 | 12x12 | 35 | 17 | 36.0.0.0/8 |
| Block7 | 12x12 | 38 | 17 | 39.0.0.0/8 |
| Block8 | 12x12 | 41 | 17 | 42.0.0.0/8 |
| Block9 | 16x16 | 44 | 17 | 45.0.0.0/8 |
| Block10 | 16x16 | 47 | 17 | 48.0.0.0/8 |
| Block11 | 16x16 | 50 | 17 | 51.0.0.0/8 |
| Block12 | 16x16 | 53 | 17 | 54.0.0.0/8 |
- Connect DUT port-1 and port-2 to OTG port-1 and port-2 respectively
- Configure OTG :
-
Create an agg interface "Agg1" with LACP
-
Create emulated router R1 with an ethernet interface
-
Connect the ethernet to the created Agg interface
-
Configure IPv4 and IPv6 on R1 ethernet
-
Configure ISIS on R1
- Set ISIS System ID
- Set ISIS area ID
- Disable "Hello Padding"
- Enable wide metrics
- Enable ISIS on the ethernet interface with Level 2 only and circuite type of point to point
- Enable ISIS 3 way handshaking
-
Repeat steps 1 to 5 for Agg2 and R2
-
Create IP Flows from Agg1 to the below ranges
- 24.0.0.0 - 24.0.0.100
- 30.0.0.0 - 30.0.0.100
- 36.0.0.0 - 36.0.0.100
- 42.0.0.0 - 42.0.0.100
- 48.0.0.0 - 48.0.0.100
- 54.0.0.0 - 54.0.0.100
-
Create IP Flows from Agg2 to the below ranges
- 21.0.0.0 - 24.0.0.100
- 27.0.0.0 - 30.0.0.100
- 33.0.0.0 - 36.0.0.100
- 39.0.0.0 - 42.0.0.100
- 45.0.0.0 - 48.0.0.100
- 51.0.0.0 - 51.0.0.100
-
Push configuration to OTG
-
- Start protocols on OTG
- Configure DUT:
- Configure the default network instance and push path to DUT
- Create an LAG interface set the interface IP address and LACP and push path to DUT
- Create a physical interface and attach it to the LAG .
- Repeat steps 1 to 3 for the second LAG .
- Configure ISIS for DUT : * Create ISIS instance under the default routing instance * Set ISIS net address (area ID + System ID) * Set ISIS level capability to level 2 only * Disable "Hello Padding" * Set "LSP Refresh Timer" and "LSP Lifetime Timer" to 65218 and 65535 respectively. * Set "SPF First Interval" and "SPF Hold Interval" to 200 and 2000 respectively. * Set metric style to wide * Enable IPv4-unicast and IPv6-unicast address families. * Enable ISIS on the Loopback and the 2 LAG interfaces. * Set Loopback to passive mode and the LAG interface circuit type to point to point. * Push the configuration to the DUT.
- Confirm that DUT has 2 aggregate ports are up.
- Confirm that DUT has 2 ISIS adjacencies up.
- Wait for 5 mins
- Collect the below metrics form the DUT :
- Count of LSPs
- Count of ISIS IPv4 routes
- Count of ISIS IPv6 routes
- Start traffic flows
- Wait for 30 seconds
- Stop traffic flows
- Collect the number of RX and TX traffic flows packets
- If any of the below conditions are not meet test should be declared as a "FAIL"
- Count of ISIS adjacencies in the "UP" state is less than 2
- Count of any of the below metrics was not equal to the below values : a. ISIS LSPs = 9150 b. ISIS IPv4 routes = 66200 c. ISIS IPv6 routes = 6400
- Number of TX packets is not equal to RX packets.
RT-2.17.2: IS-IS scale test with dynamic LSPs (no route churn but new LSPs with a higher sequance number)
graph LR
Block1[ISIS Block1 20x20] <--> R1[ATE router R1]
Block3[ISIS Block3 20x20] <--> R1
Block5[ISIS Block5 12x12] <--> R1
Block7[ISIS Block7 12x12] <--> R1
Block9[ISIS Block9 16x16] <--> R1
Block11[ISIS Block11 16x16] <--> R1
R1 <--> |IS-IS |DUT[DUT]
DUT <--> | IS-IS | R2[ATE router R2]
DUT <--> | IS-IS | R3[ATE router R3]
R2 <--> Block2[ISIS Block2 20x20]
R2 <--> Block4[ISIS Block4 20x20]
R2 <--> Block6[ISIS Block6 12x12]
R2 <--> Block8[ISIS Block8 12x12]
R2 <--> Block10[ISIS Block10 16x16]
R2 <--> Block12[ISIS Block12 16x16]
R3 <--> Dynamic1[ISIS Block12 12x12]
Device | Port1 IPv4 | Port1 IPv6 | Port2 IPv4 | Port2 IPv4 | Port3 IPv4 | Port3 IPv4| ISIS AREA | ISIS ID :------ | :-------------- | :------------- | :--------- | :-------- | :-------- | :--------: DUT | 192.168.0.13/30 | 2003:db8::1/126 | 192.168.0.17/30 | 2004:db8::1/126 |192.168.0.21/30 | 2005:db8::1/126 | 49001| 640000000002 ATE R1 | 192.168.0.6/30| 2001:db8::2/126 |N/A|N/A|N/A|N/A| 49001| 640000000003 ATE R2 | N/A|N/A| 192.168.0.10/30 | 2002:db8::2/126|N/A|N/A| 49001| 640000000004 ATE R3 | N/A|N/A| N/A|N/A|192.168.0.22/30 | 2005:db8::2/126| 49001| 640000000005
All Simulated ISIS blocks on OTG will have a grid topology with the below specs
| Block Name | Dimension | Lo0 IPv4,IPv6 and ISIS sys ID first octet | Count of paralle links between 2 nodes | Link IPv4 range |
|---|---|---|---|---|
| Block1 | 20x20 | 20 | 2 | 21.0.0.0/8 |
| Block2 | 20x20 | 23 | 2 | 24.0.0.0/8 |
| Block3 | 20x20 | 26 | 2 | 27.0.0.0/8 |
| Block4 | 20x20 | 29 | 2 | 30.0.0.0/8 |
| Block5 | 12x12 | 32 | 17 | 33.0.0.0/8 |
| Block6 | 12x12 | 35 | 17 | 36.0.0.0/8 |
| Block7 | 12x12 | 38 | 17 | 39.0.0.0/8 |
| Block8 | 12x12 | 41 | 17 | 42.0.0.0/8 |
| Block9 | 16x16 | 44 | 17 | 45.0.0.0/8 |
| Block10 | 16x16 | 47 | 17 | 48.0.0.0/8 |
| Block11 | 16x16 | 50 | 17 | 51.0.0.0/8 |
| Block12 | 16x16 | 53 | 17 | 54.0.0.0/8 |
| Dynamic1 | 12x12 | 56 | 4 | 57.0.0.0/8 |
- Connect DUT port-1 , port-2 to OTG port-1 and port-2 respectively
- Configure OTG :
-
Create an agg interface "Agg1" with LACP
-
Create emulated router R1 with an ethernet interface
-
Connect the ethernet to the created Agg interface
-
Create vlan 100 under Agg1 and configure IPv4 and IPv6 on R1 for this vlan
-
Configure ISIS on R1
- Set ISIS System ID
- Set ISIS area ID
- Disable "Hello Padding"
- Enable wide metrics
- Enable ISIS on the ethernet interface with Level 2 only and circuite type of point to point
- Enable ISIS 3 way handshaking
-
Repeat steps 1 to 5 for Agg2 and R2 , R3 (note that R2 and R3 will be connecred via vlan 101 and vlan 102 configured on Agg2 )
-
Create IP Flows from Agg1 to the below ranges
- 24.0.0.0 - 24.0.0.100
- 30.0.0.0 - 30.0.0.100
- 36.0.0.0 - 36.0.0.100
- 42.0.0.0 - 42.0.0.100
- 48.0.0.0 - 48.0.0.100
- 54.0.0.0 - 54.0.0.100
- 57.0.0.0 - 58.0.0.100
-
Create IP Flows from Agg2 to the below ranges
- 21.0.0.0 - 24.0.0.100
- 27.0.0.0 - 30.0.0.100
- 33.0.0.0 - 36.0.0.100
- 39.0.0.0 - 42.0.0.100
- 45.0.0.0 - 48.0.0.100
- 51.0.0.0 - 51.0.0.100
-
Push configuration to OTG
-
- Start protocols on OTG
- Configure DUT:
- Configure the default network instance and push path to DUT
- Create an LAG interface set the interface IP address and LACP and push path to DUT
- Create a physical interface and attach it to the LAG .
- Repeat steps 1 to 3 for the second LAG .
- Configure ISIS for DUT : * Create ISIS instance under the default routing instance * Set ISIS net address (area ID + System ID) * Set ISIS level capability to level 2 only * Disable "Hello Padding" * Set "LSP Refresh Timer" and "LSP Lifetime Timer" to 65218 and 65535 respectively. * Set "SPF First Interval" and "SPF Hold Interval" to 200 and 2000 respectively. * Set metric style to wide * Enable IPv4-unicast and IPv6-unicast address families. * Enable ISIS on the Loopback and the 2 LAG interfaces. * Set Loopback to passive mode and the LAG interface circuit type to point to point. * Push the configuration to the DUT.
- Confirm that DUT has 2 aggregate ports are up.
- Confirm that DUT has 3 ISIS adjacencies up.
- Wait for 5 mins
- Collect the below metrics form the DUT :
- Count of LSPs
- Count of ISIS IPv4 routes
- Count of ISIS IPv6 routes
- Start traffic flows
- Wait for 30 seconds
- Stop traffic flows
- Collect the number of RX and TX traffic flows packets
- If any of the below conditions are not meet test should be declared as a "FAIL"
- Count of ISIS adjacencies in the "UP" state is less than 2
- Count of any of the below metrics was not equal to the below values : a. ISIS LSPs = 9300 b. ISIS IPv4 routes = 68000 c. ISIS IPv6 routes = 6680
- Number of TX packets is not equal to RX packets
"openconfig-network-instance:network-instances": {
"network-instance": [
{
"config": {
"name": "DEFAULT"
},
"name": "DEFAULT",
"protocols": {
"protocol": [
{
"config": {
"identifier": "openconfig-policy-types:ISIS",
"name": "DEFAULT"
},
"identifier": "openconfig-policy-types:ISIS",
"isis": {
"global": {
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"enabled": true,
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"enabled": true,
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"hello-padding": "DISABLE",
"level-capability": "LEVEL_2",
"net": [
"49.0001.1920.0000.2001.00"
]
},
"mpls": {
"igp-ldp-sync": {
"config": {
"enabled": false
}
}
},
"timers": {
"config": {
"lsp-lifetime-interval": 65535,
"lsp-refresh-interval": 65218
},
"spf": {
"config": {
"spf-first-interval": "200",
"spf-hold-interval": "2000"
}
}
}
},
"interfaces": {
"interface": [
{
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"enabled": true,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"enabled": true,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"circuit-type": "POINT_TO_POINT",
"enabled": true,
"interface-id": "Bundle-Ether1"
},
"interface-id": "Bundle-Ether1",
"levels": {
"level": [
{
"config": {
"enabled": false,
"level-number": 1
},
"level-number": 1
},
{
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"enabled": true,
"level-number": 2
},
"level-number": 2,
"timers": {
"config": {
"hello-multiplier": 6
}
}
}
]
},
"mpls": {
"igp-ldp-sync": {
"config": {
"enabled": false
}
}
},
"timers": {
"config": {
"lsp-pacing-interval": "50"
}
}
},
{
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"enabled": true,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"enabled": true,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"circuit-type": "POINT_TO_POINT",
"enabled": true,
"interface-id": "Bundle-Ether2"
},
"interface-id": "Bundle-Ether2",
"levels": {
"level": [
{
"config": {
"enabled": false,
"level-number": 1
},
"level-number": 1
},
{
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"enabled": true,
"level-number": 2
},
"level-number": 2,
"timers": {
"config": {
"hello-multiplier": 6
}
}
}
]
},
"mpls": {
"igp-ldp-sync": {
"config": {
"enabled": false
}
}
},
"timers": {
"config": {
"lsp-pacing-interval": "50"
}
}
},
{
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"enabled": true,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"enabled": true,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"circuit-type": "POINT_TO_POINT",
"enabled": true,
"interface-id": "Loopback0"
},
"interface-id": "Loopback0",
"levels": {
"level": [
{
"config": {
"enabled": false,
"level-number": 1
},
"level-number": 1
},
{
"afi-safi": {
"af": [
{
"afi-name": "openconfig-isis-types:IPV4",
"config": {
"afi-name": "openconfig-isis-types:IPV4",
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
},
{
"afi-name": "openconfig-isis-types:IPV6",
"config": {
"afi-name": "openconfig-isis-types:IPV6",
"metric": 10,
"safi-name": "openconfig-isis-types:UNICAST"
},
"safi-name": "openconfig-isis-types:UNICAST"
}
]
},
"config": {
"enabled": true,
"level-number": 2
},
"level-number": 2,
"timers": {
"config": {
"hello-multiplier": 6
}
}
}
]
},
"mpls": {
"igp-ldp-sync": {
"config": {
"enabled": false
}
}
},
"timers": {
"config": {
"lsp-pacing-interval": "50"
}
}
}
]
},
"levels": {
"level": [
{
"config": {
"level-number": 2,
"metric-style": "WIDE_METRIC"
},
"level-number": 2
}
]
}
},
"name": "DEFAULT"
}
]
}
}
]
}
}paths:
## Config Parameter Coverage
/network-instances/network-instance/protocols/protocol/isis/global/config/net:
/network-instances/network-instance/protocols/protocol/isis/global/config/level-capability:
/network-instances/network-instance/protocols/protocol/isis/global/config/hello-padding:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/global/timers/spf/config/spf-hold-interval:
/network-instances/network-instance/protocols/protocol/isis/global/timers/spf/config/spf-first-interval:
/network-instances/network-instance/protocols/protocol/isis/global/timers/config/lsp-refresh-interval:
/network-instances/network-instance/protocols/protocol/isis/global/timers/config/lsp-lifetime-interval:
/network-instances/network-instance/protocols/protocol/isis/global/mpls/igp-ldp-sync/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/levels/level/config/level-number:
/network-instances/network-instance/protocols/protocol/isis/levels/level/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/levels/level/config/metric-style:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/interface-id:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/circuit-type:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/passive:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/config/level-number:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/config/passive:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/timers/config/hello-interval:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/timers/config/hello-multiplier:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/config/afi-name:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/config/safi-name:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/timers/config/lsp-pacing-interval:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/mpls/igp-ldp-sync/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/config/metric:
## Telemetry Parameter Coverage
/interfaces/interface/state/admin-status:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state:
/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/state/lsp-id:
/network-instances/network-instance/afts/aft-summaries/ipv4-unicast/protocols/protocol/state/counters/aft-entries:
/network-instances/network-instance/afts/aft-summaries/ipv6-unicast/protocols/protocol/state/counters/aft-entries:
/instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv:
rpcs:
gnmi:
gNMI.Subscribe:
gNMI.Set: