Isis ip reachability removal#1500
Conversation
…ace-level address family with inheritance.
Address review feedback by replacing the boolean leaf with an enumeration (suppress-interface-ip-mode) supporting NONE, ALL, NON_PASSIVE, and NON_PASSIVE_POINT_TO_POINT. This provides greater flexibility and future extensibility.
…d boolean interface level options
There was a problem hiding this comment.
Code Review
This pull request implements IP reachability suppression for IS-IS across global, level, and interface contexts, including a new suppression mode enumeration. Review feedback focuses on aligning the interface-level suppression path with the PR description, clarifying inheritance terminology, and ensuring consistency by adding standard configuration leaves to the new level-specific AFI-SAFI lists.
| uses isis-afi-safi-config; | ||
| uses isis-metric-config; | ||
| uses rt-admin-config; | ||
| uses isis-reachability-interface-config; |
There was a problem hiding this comment.
The implementation adds the suppress leaf to isis-if-afi-safi-list, which corresponds to the path /isis/interfaces/interface/levels/level/afi-safi. However, the PR description and tree view (point 3) specify the path /isis/interfaces/interface/afi-safi. To align with the description and provide a global interface override, this leaf should also be added to isis-if-global-afi-safi-list.
| description | ||
| "Controls IP reachability (TLVs 135/235) advertisement for interfaces | ||
| enabled in this level. | ||
| If not specified, the value is inherited from the global level configuration."; |
There was a problem hiding this comment.
| uses isis-afi-safi-config; | ||
| uses isis-reachability-level-config; |
There was a problem hiding this comment.
The new afi-safi list at the level context is missing standard configuration leaves such as metric and enabled, which are present in other AFI-SAFI lists in this module. Adding these would ensure consistency and allow for level-specific overrides of these parameters.
uses isis-afi-safi-config;
uses isis-metric-config;
uses rt-admin-config;
uses isis-reachability-level-config;
| uses isis-afi-safi-config; | ||
| uses isis-reachability-level-config; |
There was a problem hiding this comment.
|
Hi, Your description had this comment: suppress TLVs 132/232 (which other vendors often suppress by default for P2P interfaces). Do all the other vendors that you listed above except Arista, i.e. Cisco, Juniper, Nokia all do this suppression by default? I.e., I'm wondering whether it makes semantic sense to control the suppression behaviour of both TLVs 135/235 and TLVs 132/232 in a single command (i.e., as per the enum). |
|
|
Ready for reviews. |
Thanks rgwilton for the comment. The primary goal of this PR is the suppression of IPv4/IPv6 IP-reachability TLVs. I agree that TLVs 135/236 and 132/232 should have separate leafs. |
Thanks @rszarecki for the feedback
|
Change Scope
Add Hierarchical IP Reachability Suppression to IS-IS.
In large-scale IP networks, advertising transit link IP addresses (TLVs 135/236 into the IGP (IS-IS) dramatically increases the routing table size without adding functional value, as only loopback interfaces (configured as passive interfaces) require global reachability for BGP next-hop resolution.
This PR introduces a highly flexible, hierarchical IP reachability suppression scheme within the OpenConfig IS-IS model supporting Global, Level, and Interface level contexts with clean inheritance rules:
suppress-interface-ipunder/isis/global/afi-safi/af/config/(Type:suppress-interface-ip-modewithdefault "NONE"), offering instance-wide default suppression control.suppress-interface-ipunder/isis/levels/level/afi-safi/af/config/to allow level-specific overrides, inheriting directly from the global configuration when left unconfigured.suppressleaf under/isis/interfaces/interface/afi-safi/af/config/allowing operators to explicitly suppress (true) or force advertisement (false) of a single interface's prefix, falling back to level/global policies if unconfigured.Platform Implementations
IP Reachability Suppression Support:
router isisto suppress TLVs 135/236.router isis, along with the suppressed keyword for per-interface overrides.protocols isisthat accepts passive loopback prefixes while rejecting active transit link direct routes.config>router>isiscontext.Tree View
1. Global Context (
/isis/global/afi-safi)module: openconfig-network-instance +--rw network-instances +--rw network-instance* [name] +--rw protocols +--rw protocol* [identifier name] +--rw isis +--rw global +--rw afi-safi +--rw af* [afi-name safi-name] +--rw afi-name -> ../config/afi-name +--rw safi-name -> ../config/safi-name +--rw config | +--rw afi-name? identityref | +--rw safi-name? identityref | +--rw metric? uint32 | +--rw enabled? boolean | +--rw max-ecmp-paths? uint8 + | +--rw suppress-interface-ip? oc-isis-types:suppress-interface-ip-mode +--ro state +--ro afi-name? identityref +--ro safi-name? identityref +--ro metric? uint32 +--ro enabled? boolean +--ro max-ecmp-paths? uint8 + +--ro suppress-interface-ip? oc-isis-types:suppress-interface-ip-mode2. Protocol Level Context (
/isis/levels/level)module: openconfig-network-instance +--rw network-instances +--rw network-instance* [name] +--rw protocols +--rw protocol* [identifier name] +--rw isis +--rw levels +--rw level* [level-number] + +--rw afi-safi + +--rw af* [afi-name safi-name] + +--rw afi-name -> ../config/afi-name + +--rw safi-name -> ../config/safi-name + +--rw config + | +--rw afi-name? identityref + | +--rw safi-name? identityref + | +--rw suppress-interface-ip? oc-isis-types:suppress-interface-ip-mode + +--ro state + +--ro afi-name? identityref + +--ro safi-name? identityref + +--ro suppress-interface-ip? oc-isis-types:suppress-interface-ip-mode3. Interface Context (
/isis/interfaces/interface/afi-safi)module: openconfig-network-instance +--rw network-instances +--rw network-instance* [name] +--rw protocols +--rw protocol* [identifier name] +--rw isis +--rw interfaces +--rw interface* [interface-id] +--rw afi-safi +--rw af* [afi-name safi-name] +--rw afi-name -> ../config/afi-name +--rw safi-name -> ../config/safi-name +--rw config | +--rw afi-name? identityref | +--rw safi-name? identityref | +--rw metric? uint32 | +--rw enabled? boolean + | +--rw suppress? boolean +--ro state +--ro afi-name? identityref +--ro safi-name? identityref +--ro metric? uint32 +--ro enabled? boolean + +--ro suppress? boolean4. Enumeration Definition Reference