diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-ospfv2-global.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-ospfv2-global.yang | 509 |
1 files changed, 509 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-global.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-global.yang new file mode 100644 index 0000000..6e82c9a --- /dev/null +++ b/src/plugins/yang/openconfig/openconfig-ospfv2-global.yang @@ -0,0 +1,509 @@ +submodule openconfig-ospfv2-global { + + belongs-to openconfig-ospfv2 { + prefix "oc-ospfv2"; + } + + import ietf-yang-types { prefix "yang"; } + import openconfig-extensions { prefix "oc-ext"; } + import openconfig-routing-policy { prefix "oc-rpol"; } + import openconfig-ospf-types { prefix "oc-ospft"; } + + // Include common submodule + include openconfig-ospfv2-common; + + // meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This submodule provides OSPFv2 configuration and operational + state parameters that are global to a particular OSPF instance"; + + oc-ext:openconfig-version "0.1.2"; + + revision "2018-06-05" { + description + "Bug fixes in when statements in lsdb"; + reference "0.1.2"; + } + + revision "2017-08-24" { + description + "Minor formatting fixes."; + reference "0.1.1"; + } + + revision "2017-02-28"{ + description + "Initial public release of OSPFv2"; + reference "0.1.0"; + } + + revision "2016-06-24" { + description + "Initial revision"; + reference "0.0.1"; + } + + grouping ospfv2-global-config { + description + "Global configuration for OSPFv2"; + + leaf router-id { + type yang:dotted-quad; + description + "A 32-bit number represented as a dotted quad assigned to + each router running the OSPFv2 protocol. This number should + be unique within the autonomous system"; + reference "rfc2828"; + } + + leaf summary-route-cost-mode { + type enumeration { + enum RFC1583_COMPATIBLE { + description + "Specify that summary routes should assume the cost of + the lowest-cost more-specific route as per the behaviour + specified in RFC1583"; + } + enum RFC2328_COMPATIBLE { + description + "Specify that summary routes should assume the cost of the + highest-cost more-specific route as per the revised + behaviour specified in RFC2328"; + } + } + default "RFC2328_COMPATIBLE"; + description + "Specify how costs for the summary routes should be specified + as per the behaviour in the original OSPF specification + RFC1583, or alternatively whether the revised behaviour + described in RFC2328 should be utilised"; + } + + leaf igp-shortcuts { + type boolean; + description + "When this leaf is set to true, OSPFv2 will route traffic to + a remote system via any LSP to the system that is marked as + shortcut eligible."; + } + + leaf log-adjacency-changes { + type boolean; + description + "When this leaf is set to true, a log message will be + generated when the state of an OSPFv2 neighbour changes."; + } + + leaf hide-transit-only-networks { + type boolean; + description + "When this leaf is set to true, do not advertise prefixes + into OSPFv2 that correspond to transit interfaces, as per + the behaviour discussed in RFC6860."; + reference + "RFC6860 - Hiding Transit-Only Networks in OSPF"; + } + } + + grouping ospfv2-global-spf-timers-config { + description + "Configuration parameters relating to global SPF timer + parameters for OSPFv2"; + + leaf initial-delay { + // rjs TODO: IS-IS model has this as decimal64 - should it be + // that or uint32 msec? + type uint32; + units msec; + description + "The value of this leaf specifies the time between a change + in topology being detected and the first run of the SPF + algorithm."; + } + + leaf maximum-delay { + // rjs TODO: same question as above + type uint32; + units msec; + description + "The value of this leaf specifies the maximum delay between + a topology change being detected and the SPF algorithm + running. This value is used for implementations that support + increasing the wait time between SPF runs."; + } + + // rjs TODO: some questions here around what we should specify: + // JUNOS has rapid-runs and holddown + // Cisco has maximum time between runs, and then a doubling of + // the wait interval up to that maximum. + // ALU has first-wait, second-wait, max-wait + } + + grouping ospfv2-global-lsa-generation-timers-config { + description + "Configuration parameters relating to global LSA generation + parameters for OSPFv2"; + + leaf initial-delay { + type uint32; + units msec; + description + "The value of this leaf specifies the time between the first + time an LSA is generated and advertised and the subsequent + generation of that LSA."; + } + + leaf maximum-delay { + type uint32; + units msec; + description + "The value of this leaf specifies the maximum time between the + generation of an LSA and the subsequent re-generation of that + LSA. This value is used in implementations that support + increasing delay between generation of an LSA"; + } + } + + grouping ospfv2-global-spf-timers-state { + description + "Operational state parameters relating to OSPFv2 global + timers"; + + uses ospfv2-common-timers; + } + + grouping ospfv2-global-lsa-generation-timers-state { + description + "Operational state parameters relating to OSPFv2 global + timers"; + + uses ospfv2-common-timers; + } + + grouping ospfv2-global-graceful-restart-config { + description + "Configuration parameters relating to graceful restart for + OSPFv2"; + + leaf enabled { + type boolean; + description + "When the value of this leaf is set to true, graceful restart + is enabled on the local system. In this case, the system will + use Grace-LSAs to signal that it is restarting to its + neighbors."; + } + + leaf helper-only { + type boolean; + description + "Operate graceful-restart only in helper mode. When this leaf + is set to true, the local system does not use Grace-LSAs to + indicate that it is restarting, but will accept Grace-LSAs + from remote systems, and suppress withdrawl of adjacencies + of the system for the grace period specified"; + } + } + + grouping ospfv2-global-mpls-config { + description + "Configuration parameters for OSPFv2 options which + relate to MPLS"; + + leaf traffic-engineering-extensions { + type boolean; + description + "When this leaf is set to true, use traffic engineering + extensions for OSPF to advertise TE parameters via type 10 + Opaque LSAs"; + } + } + + grouping ospfv2-global-inter-areapp-config { + description + "Configuration parameters for OSPFv2 policies which propagate + prefixes between areas"; + + leaf src-area { + type leafref { + // we are at ospf/global/inter-area-propagation-policies/... + // inter-area-propagation-policy/config/src-area + path "../../../../../areas/area/identifier"; + } + description + "The area from which prefixes are to be exported."; + } + + leaf dst-area { + type leafref { + // we are at ospf/global/inter-area-propagation-policies/... + // inter-area-propagation-policy/config/src-area + path "../../../../../areas/area/identifier"; + } + description + "The destination area to which prefixes are to be imported"; + } + + uses oc-rpol:apply-policy-import-config; + } + + grouping ospfv2-global-max-metric-config { + description + "Configuration paramters relating to setting the OSPFv2 + maximum metric."; + + leaf set { + type boolean; + description + "When this leaf is set to true, all non-stub interfaces of + the local system are advertised with the maximum metric, + such that the router does not act as a transit system, + (similarly to the IS-IS overload functionality)."; + reference + "RFC3137 - OSPF Stub Router Advertisement"; + } + + leaf timeout { + type uint64; + units "seconds"; + description + "The delay, in seconds, after which the advertisement of + entities with the maximum metric should be cleared, and + the system reverts to the default, or configured, metrics."; + } + + leaf-list include { + type identityref { + base "oc-ospft:MAX_METRIC_INCLUDE"; + } + description + "By default, the maximum metric is advertised for all + non-stub interfaces of a device. When identities are + specified within this leaf-list, additional entities + are also advertised with the maximum metric according + to the values within the list."; + } + + leaf-list trigger { + type identityref { + base "oc-ospft:MAX_METRIC_TRIGGER"; + } + description + "By default, the maximum metric is only advertised + when the max-metric/set leaf is specified as true. + In the case that identities are specified within this + list, they provide additional triggers (e.g., system + boot) that may cause the max-metric to be set. In this + case, the system should still honour the timeout specified + by the max-metric/timeout leaf, and clear the max-metric + advertisements after the expiration of this timer."; + } + } + + grouping ospfv2-global-structural { + description + "Top level structural grouping for OSPFv2 global parameters"; + + container global { + description + "Configuration and operational state parameters for settings + that are global to the OSPFv2 instance"; + + container config { + description + "Global configuration parameters for OSPFv2"; + uses ospfv2-global-config; + } + + container state { + config false; + description + "Operational state parameters for OSPFv2"; + uses ospfv2-global-config; + } + + container timers { + description + "Configuration and operational state parameters for OSPFv2 + timers"; + + container spf { + description + "Configuration and operational state parameters relating + to timers governing the operation of SPF runs"; + + container config { + description + "Configuration parameters relating to global OSPFv2 + SPF timers"; + uses ospfv2-global-spf-timers-config; + } + + container state { + config false; + description + "Operational state parameters relating to the global + OSPFv2 SPF timers"; + uses ospfv2-global-spf-timers-config; + uses ospfv2-global-spf-timers-state; + } + } + + container max-metric { + description + "Configuration and operational state parameters relating + to setting the OSPFv2 maximum metric."; + + container config { + description + "Configuration parameters relating to setting the OSPFv2 + maximum metric for a set of advertised entities."; + uses ospfv2-global-max-metric-config; + } + + container state { + config false; + description + "Operational state parameters relating to setting the + OSPFv2 maximum metric for a set of advertised entities."; + uses ospfv2-global-max-metric-config; + } + } + + container lsa-generation { + description + "Configuration and operational state parameters relating + to timers governing the generation of LSAs by the local + system"; + + container config { + description + "Configuration parameters relating to the generation of + LSAs by the local system"; + uses ospfv2-global-lsa-generation-timers-config; + } + + container state { + config false; + description + "Operational state parameters relating to the generation + of LSAs by the local system"; + uses ospfv2-global-lsa-generation-timers-config; + uses ospfv2-global-lsa-generation-timers-state; + } + } + } + + container graceful-restart { + description + "Configuration and operational state parameters for OSPFv2 + graceful restart"; + + container config { + description + "Configuration parameters relating to OSPFv2 graceful + restart"; + uses ospfv2-global-graceful-restart-config; + } + + container state { + config false; + description + "Operational state parameters relating to OSPFv2 graceful + restart"; + uses ospfv2-global-graceful-restart-config; + } + } + + container mpls { + description + "OSPFv2 parameters relating to MPLS"; + + container config { + description + "Configuration parameters relating to MPLS for OSPFv2"; + uses ospfv2-global-mpls-config; + } + + container state { + config false; + description + "Operational state parameters relating to MPLS for + OSPFv2"; + uses ospfv2-global-mpls-config; + } + + container igp-ldp-sync { + description + "OSPFv2 parameters relating to LDP/IGP synchronization"; + + container config { + description + "Configuration parameters relating to LDP/IG + synchronization."; + uses ospfv2-common-mpls-igp-ldp-sync-config; + } + + container state { + config false; + description + "Operational state variables relating to LDP/IGP + synchronization"; + uses ospfv2-common-mpls-igp-ldp-sync-config; + } + } + } + + container inter-area-propagation-policies { + description + "Policies defining how inter-area propagation should be performed + by the OSPF instance"; + + list inter-area-propagation-policy { + key "src-area dst-area"; + description + "A list of connections between pairs of areas - routes are + propagated from the source (src) area to the destination (dst) + area according to the policy specified"; + + leaf src-area { + type leafref { + path "../config/src-area"; + } + description + "Reference to the source area"; + } + + leaf dst-area { + type leafref { + path "../config/dst-area"; + } + description + "Reference to the destination area"; + } + + container config { + description + "Configuration parameters relating to the inter-area + propagation policy"; + uses ospfv2-global-inter-areapp-config; + } + + container state { + config false; + description + "Operational state parameters relating to the inter-area + propagation policy"; + uses ospfv2-global-inter-areapp-config; + } + } + } + } + } +}
\ No newline at end of file |