isis_suppress_interface_reachability_test - openconfig/featureprofiles GitHub Wiki
This test validates that the DUT can suppress the advertisement of IP reachability (TLV 135 for IPv4 and TLV 236 for IPv6) within IS-IS LSPs.
The test validates:
- Suppression mode at global address-family level (
NONE,ALL,NON_PASSIVE,NON_PASSIVE_POINT_TO_POINT). - Verification that suppression configuration and telemetry state match.
- Verification via ATE that advertised LSPs correctly include or omit the expected prefix reachability TLVs.
- Ensuring IS-IS adjacencies remain fully established across all valid interfaces during suppression changes.
flowchart LR
subgraph ATE
ATE-Port1["ATE Port 1\n(192.0.2.2/30\n2001:db8::2/126)"]
ATE-Port2["ATE Port 2\n(198.51.100.2/30\n2001:db8:1::2/126)"]
end
subgraph DUT
DUT-Port1["DUT Port 1\n(192.0.2.1/30\n2001:db8::1/126)"]
DUT-Port2["DUT Port 2\n(198.51.100.1/30\n2001:db8:1::1/126)"]
DUT-Loopback0["DUT Loopback0\n(203.0.113.1/32\n2001:db8:2::1/128)\n[Passive]"]
end
ATE-Port1 <-->|P2P IS-IS Adjacency| DUT-Port1
ATE-Port2 <-->|LAN/Broadcast IS-IS Adjacency| DUT-Port2
-
DUT:
- Network Entity Title (NET):
49.0001.1920.0000.2001.00 - Port 1:
192.0.2.1/30,2001:db8::1/126(Point-to-Point, non-passive) - Port 2:
198.51.100.1/30,2001:db8:1::1/126(Broadcast/LAN, non-passive) - Loopback0:
203.0.113.1/32,2001:db8:2::1/128(Passive)
- Network Entity Title (NET):
-
ATE:
- Port 1:
192.0.2.2/30,2001:db8::2/126, NET49.0001.1920.0000.2002.00 - Port 2:
198.51.100.2/30,2001:db8:1::2/126, NET49.0001.1920.0000.2003.00
- Port 1:
-
IS-IS Parameters:
- Level Capability: Level 2
- Metric Style: Wide
- Address Families: IPv4 Unicast (
IPV4), IPv6 Unicast (IPV6)
- Configure DUT and ATE interfaces as defined in the topology.
- Enable IS-IS Level 2 globally on the DUT with NET
49.0001.1920.0000.2001.00, wide metric, and address familiesIPV4andIPV6. - Verify via telemetry that global NET is correctly configured and active in state (
/network-instances/network-instance/protocols/protocol/isis/global/state/net). - Establish IS-IS Level 2 adjacencies on Port 1 and Port 2.
- Verify via telemetry that adjacencies on Port 1 and Port 2 reach
UPstate.
-
Goal: Validate that in default mode (
NONE), the DUT advertises IP reachability TLVs for all active and passive interfaces. -
Procedure:
- Configure global
suppress-interface-reachabilitytoNONEfor IPv4 and IPv6 address families on the DUT. - Verify via telemetry that global
suppress-interface-reachabilityisNONEfor IPv4 and IPv6. - Inspect DUT's advertised LSPs on ATE:
- Verify Extended IPv4 Reachability (TLV 135) and IPv6 Reachability (TLV 236) are present for Port 1, Port 2, and Loopback0.
- Verify IS-IS adjacencies on Port 1 and Port 2 remain in
UPstate.
- Configure global
-
Goal: Validate that when suppression mode is set to
ALL, the DUT omits prefix reachability TLVs for all interfaces while maintaining IS-IS adjacencies. -
Procedure:
- Configure global
suppress-interface-reachabilitytoALLfor IPv4 and IPv6 on the DUT. - Verify via telemetry that global
suppress-interface-reachabilityisALLfor IPv4 and IPv6. - Inspect DUT's advertised LSPs received on ATE:
- Verify TLV 135 (IPv4) and TLV 236 (IPv6) are omitted for Port 1, Port 2, and Loopback0.
- Verify IS-IS adjacencies on Port 1 and Port 2 remain continuously
UP.
- Configure global
-
Goal: Validate that setting suppression mode to
NON_PASSIVEsuppresses active transit interfaces while continuing to advertise passive interfaces. -
Procedure:
- Configure global
suppress-interface-reachabilitytoNON_PASSIVEfor IPv4 and IPv6 on the DUT. - Verify via telemetry that global
suppress-interface-reachabilityisNON_PASSIVEfor IPv4 and IPv6. - Inspect DUT's advertised LSPs received on ATE:
- Verify TLV 135 (IPv4) and TLV 236 (IPv6) are present only for passive interface Loopback0.
- Verify TLV 135 and TLV 236 are omitted for non-passive Port 1 and Port 2.
- Verify IS-IS adjacencies on Port 1 and Port 2 remain in
UPstate.
- Configure global
RT-2.19.4 - Suppress Non-Passive Point-to-Point Interfaces Reachability (Mode NON_PASSIVE_POINT_TO_POINT)
-
Goal: Validate that setting suppression mode to
NON_PASSIVE_POINT_TO_POINTsuppresses only point-to-point active interfaces while preserving reachability for broadcast and passive interfaces. -
Procedure:
- Configure global
suppress-interface-reachabilitytoNON_PASSIVE_POINT_TO_POINTfor IPv4 and IPv6 on the DUT. - Verify via telemetry that global
suppress-interface-reachabilityisNON_PASSIVE_POINT_TO_POINTfor IPv4 and IPv6. - Inspect DUT's advertised LSPs received on ATE:
- Verify TLV 135 (IPv4) and TLV 236 (IPv6) are present for Loopback0 and Port 2 (Broadcast).
- Verify TLV 135 and TLV 236 are omitted for Port 1 (Point-to-Point).
- Verify IS-IS adjacencies on Port 1 and Port 2 remain in
UPstate. - Register a cleanup action (e.g., using
t.Cleanup()) to restore the DUT configuration to default (suppress-interface-reachability: NONE) to leave the testbed in a clean state.
- Configure global
{
"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,
"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": {
"net": [
"49.0001.1920.0000.2001.00"
]
}
}
}
}
]
}
}
]
}
}The below yaml defines the OC paths intended to be covered by this test.
paths:
## Config paths
/network-instances/network-instance/protocols/protocol/isis/global/config/net:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/afi-name:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/safi-name:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/enabled:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/suppress-interface-reachability:
/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/passive:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/circuit-type:
## State paths
/network-instances/network-instance/protocols/protocol/isis/global/state/net:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state/afi-name:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state/safi-name:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state/enabled:
/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state/suppress-interface-reachability:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state/interface-id:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state/enabled:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state/passive:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state/circuit-type:
/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state/adjacency-state:
rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe: