diff --git a/src/confd/yang/infix-dhcp-client@2023-05-22.yang b/src/confd/yang/infix-dhcp-client@2023-05-22.yang index 84fe73e8..a70c2199 100644 --- a/src/confd/yang/infix-dhcp-client@2023-05-22.yang +++ b/src/confd/yang/infix-dhcp-client@2023-05-22.yang @@ -28,58 +28,58 @@ module infix-dhcp-client { type union { type string; type enumeration { - enum subnet { - value 1; - description "Subnet (IP address and netmask)"; - } - enum router { - value 3; - description "Default route(s)"; - } - enum dns { - value 6; - description "DNS server"; - } - enum hostname { - value 12; - description "Hostname"; - } - enum domain { - value 15; - description "Domain name"; - } - enum broadcast { - value 28; - description "Broadcast address"; - } - enum ntpsrv { - value 42; - description "NTP server"; - } - enum address { - value 50; - description "Requested (previously cached) address"; - } - enum clientid { - value 61; - description "Client ID (default MAC, and option 12)"; - } - enum fqdn { - value 81; - description "Request DNS update of client FQDN argument"; - } - enum search { - value 119; - description "Domain search list"; - } - enum staticroutes { - value 121; - description "Classless static routes"; - } - enum msstaticroutes { - value 249; - description "Microsoft classless static routes"; - } + enum subnet { + value 1; + description "Subnet (IP address and netmask)"; + } + enum router { + value 3; + description "Default route(s)"; + } + enum dns { + value 6; + description "DNS server"; + } + enum hostname { + value 12; + description "Hostname"; + } + enum domain { + value 15; + description "Domain name"; + } + enum broadcast { + value 28; + description "Broadcast address"; + } + enum ntpsrv { + value 42; + description "NTP server"; + } + enum address { + value 50; + description "Requested (previously cached) address"; + } + enum clientid { + value 61; + description "Client ID (default MAC, and option 12)"; + } + enum fqdn { + value 81; + description "Request DNS update of client FQDN argument"; + } + enum search { + value 119; + description "Domain search list"; + } + enum staticroutes { + value 121; + description "Classless static routes"; + } + enum msstaticroutes { + value 249; + description "Microsoft classless static routes"; + } } } description "Supported DHCP client request options"; @@ -111,8 +111,8 @@ module infix-dhcp-client { description "Enable DHCP client for this interface."; } leaf client-id { - type string; - description "Optional Client ID, option 61, default: MAC address."; + type string; + description "Optional Client ID, option 61, default: MAC address."; } leaf arping { type boolean; @@ -120,32 +120,32 @@ module infix-dhcp-client { description "ARP for lease to check for IP address collisions (slow)."; } list option { - key "name"; - description - "List of DHCP options to request (and accept). The default is an - empty list, meaning all supported options. To restrict the - client to only get IP address and default route, set this to: - 'subnet router'"; - leaf name { - type dhcp-options; - description "DHCP option to request from, or inform server of."; - } - leaf value { - type string; - description "Optional value, only used for non-flag request options. - Example: option:hostname, value:xyzzy - option:clientid, value:01:02:03:04:05:06:07:08:09:0a - option:0x51, value:xyzzy.example.com"; - } + key "name"; + description + "List of DHCP options to request (and accept). The default is an + empty list, meaning all supported options. To restrict the + client to only get IP address and default route, set this to: + 'subnet router'"; + leaf name { + type dhcp-options; + description "DHCP option to request from, or inform server of."; + } + leaf value { + type string; + description "Optional value, only used for non-flag request options. + Example: option:hostname, value:xyzzy + option:clientid, value:01:02:03:04:05:06:07:08:09:0a + option:0x51, value:xyzzy.example.com"; + } } leaf route-preference { - type route-preference; - default 100; - description - "The metric any route is installed with, both option 33 and 121. - The default (100) is based on a plain Ethernet interface, the - interface type determines this, e.g. a WiFi interface would be - metric 500."; + type route-preference; + default 100; + description + "The metric any route is installed with, both option 33 and 121. + The default (100) is based on a plain Ethernet interface, the + interface type determines this, e.g. a WiFi interface would be + metric 500."; } } } diff --git a/src/confd/yang/infix-if-bridge@2023-12-02.yang b/src/confd/yang/infix-if-bridge@2023-12-02.yang index 7d8e35ee..bc419a9c 100644 --- a/src/confd/yang/infix-if-bridge@2023-12-02.yang +++ b/src/confd/yang/infix-if-bridge@2023-12-02.yang @@ -51,25 +51,25 @@ submodule infix-if-bridge { typedef ieee-reserved-groups { type union { type uint8 { - range "0..15"; + range "0..15"; } type enumeration { - enum stp { - value 0; - description "Spanning Tree (STP/RSPT/MSTP)."; - } - enum lacp { - value 2; - description "802.3 Slow Protocols, e.g., LACP."; - } - enum dot1x { - value 3; - description "802.1X Port-Based Network Access Control."; - } - enum lldp { - value 14; - description "802.1AB Link Layer Discovery Protocol (LLDP)."; - } + enum stp { + value 0; + description "Spanning Tree (STP/RSPT/MSTP)."; + } + enum lacp { + value 2; + description "802.3 Slow Protocols, e.g., LACP."; + } + enum dot1x { + value 3; + description "802.1X Port-Based Network Access Control."; + } + enum lldp { + value 14; + description "802.1AB Link Layer Discovery Protocol (LLDP)."; + } } } description @@ -92,20 +92,20 @@ submodule infix-if-bridge { description "IEEE 802.1Q style bridge."; leaf-list ieee-group-forward { - type ieee-reserved-groups; - description - "List of IEEE link-local protocols to forward, e.g., STP, LLDP"; + type ieee-reserved-groups; + description + "List of IEEE link-local protocols to forward, e.g., STP, LLDP"; } container vlans { if-feature "vlan-filtering"; description "A VLAN filtering bridge has at least one VLAN."; - leaf proto { - type dot1q-types:dot1q-tag-type; - default dot1q-types:c-vlan; - description "Standard (1Q/c-vlan) or provider (1ad/s-vlan) bridge."; - } + leaf proto { + type dot1q-types:dot1q-tag-type; + default dot1q-types:c-vlan; + description "Standard (1Q/c-vlan) or provider (1ad/s-vlan) bridge."; + } list vlan { key "vid"; @@ -123,9 +123,9 @@ submodule infix-if-bridge { leaf-list tagged { type if:interface-ref; - must "not(../untagged[contains(., current())])" { - error-message "Cannot be an untagged port at the same time."; - } + must "not(../untagged[contains(., current())])" { + error-message "Cannot be an untagged port at the same time."; + } description "The set of ports in the tagged set for VLAN."; } } @@ -147,7 +147,7 @@ submodule infix-if-bridge { description "Extension of the IETF Interfaces model (RFC7223)."; container bridge-port { - description "Bridge association and port specific setttngs."; + description "Bridge association and port specific setttngs."; leaf bridge { type if:interface-ref; @@ -159,14 +159,14 @@ submodule infix-if-bridge { } leaf pvid { - if-feature "vlan-filtering"; + if-feature "vlan-filtering"; type dot1q-types:vlanid; default "1"; description "The primary VID assigned to this bridge port."; } leaf default-priority { - if-feature "vlan-filtering"; + if-feature "vlan-filtering"; type dot1q-types:priority-type; default "0"; description "The default priority assigned to this bridge port."; diff --git a/src/confd/yang/infix-if-veth@2023-06-05.yang b/src/confd/yang/infix-if-veth@2023-06-05.yang index 3666a058..bd29d434 100644 --- a/src/confd/yang/infix-if-veth@2023-06-05.yang +++ b/src/confd/yang/infix-if-veth@2023-06-05.yang @@ -26,7 +26,7 @@ submodule infix-if-veth { augment "/if:interfaces/if:interface" { when "derived-from-or-self(if:type, 'infixift:veth')" { - description "Only shown for if:type infixift:veth (ianaift:ilan)"; + description "Only shown for if:type infixift:veth (ianaift:ilan)"; } description "Augments the interface model with virtual Ethernet pairs."; diff --git a/src/confd/yang/infix-if-vlan@2023-10-25.yang b/src/confd/yang/infix-if-vlan@2023-10-25.yang index b8993c4d..ad1092ec 100644 --- a/src/confd/yang/infix-if-vlan@2023-10-25.yang +++ b/src/confd/yang/infix-if-vlan@2023-10-25.yang @@ -30,19 +30,19 @@ submodule infix-if-vlan { container vlan { description "Configure 802.1q/802.1ad VLANs"; leaf tag-type { - type dot1q-types:dot1q-tag-type; - default dot1q-types:c-vlan; - description "VLAN type"; + type dot1q-types:dot1q-tag-type; + default dot1q-types:c-vlan; + description "VLAN type"; } leaf id { - type dot1q-types:vlanid; - mandatory true; - description "VLAN Id"; + type dot1q-types:vlanid; + mandatory true; + description "VLAN Id"; } leaf lower-layer-if { - type if:interface-ref; - mandatory true; - description "Base interface for VLAN"; + type if:interface-ref; + mandatory true; + description "Base interface for VLAN"; } } } diff --git a/src/confd/yang/infix-interfaces@2023-09-19.yang b/src/confd/yang/infix-interfaces@2023-09-19.yang index 1fe5496e..7489d7b8 100644 --- a/src/confd/yang/infix-interfaces@2023-09-19.yang +++ b/src/confd/yang/infix-interfaces@2023-09-19.yang @@ -47,7 +47,7 @@ module infix-interfaces { deviation "/if:interfaces/if:interface/if:type" { deviate replace { type identityref { - base infixift:infix-interface-type; + base infixift:infix-interface-type; } } } diff --git a/src/confd/yang/infix-ip@2023-09-14.yang b/src/confd/yang/infix-ip@2023-09-14.yang index 2cbd816b..9730b92b 100644 --- a/src/confd/yang/infix-ip@2023-09-14.yang +++ b/src/confd/yang/infix-ip@2023-09-14.yang @@ -37,15 +37,15 @@ module infix-ip { augment "/if:interfaces/if:interface/ip:ipv4" { container autoconf { description - "Parameters to control the autoconfiguration of IPv4 address."; + "Parameters to control the autoconfiguration of IPv4 address."; leaf enabled { - type boolean; - default false; - description - "Use a ZeroConf/IPv4LL agent to retrieve an 169.254/16 address."; - reference - "RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses"; + type boolean; + default false; + description + "Use a ZeroConf/IPv4LL agent to retrieve an 169.254/16 address."; + reference + "RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses"; } } } @@ -53,7 +53,7 @@ module infix-ip { deviation "/if:interfaces/if:interface/ip:ipv4/ip:address/ip:subnet/ip:netmask" { deviate not-supported; } - + deviation "/if:interfaces/if:interface/ip:ipv4/ip:neighbor" { deviate not-supported; } diff --git a/src/confd/yang/infix-routing@2024-01-09.yang b/src/confd/yang/infix-routing@2024-01-09.yang index 8373bd32..843c9223 100644 --- a/src/confd/yang/infix-routing@2024-01-09.yang +++ b/src/confd/yang/infix-routing@2024-01-09.yang @@ -1,426 +1,422 @@ module infix-routing { - yang-version 1.1; - namespace "urn:infix:routing:ns:yang:1.0"; - prefix infix-r; - import ietf-routing { - prefix ietf-r; - } + yang-version 1.1; + namespace "urn:infix:routing:ns:yang:1.0"; + prefix infix-r; + import ietf-routing { + prefix ietf-r; + } - import ietf-ipv4-unicast-routing { - prefix v4ur; - } + import ietf-ipv4-unicast-routing { + prefix v4ur; + } - import ietf-ipv6-unicast-routing { - prefix v6ur; - } - import ietf-ospf { - prefix ospf; - } + import ietf-ipv6-unicast-routing { + prefix v6ur; + } + import ietf-ospf { + prefix ospf; + } - import ietf-interfaces { - prefix if; - } + import ietf-interfaces { + prefix if; + } - import ietf-routing-types { - prefix rt-types; - } - revision 2024-01-09 { - description "Add operational, area, bfd support - and other minor features"; - reference "internal"; - } - revision 2023-11-23 { - description "Limit to one instance per control plane protocol, - and change to infix (iproute2) specific source protocol names - for routes"; - reference "internal"; - } - revision 2023-10-27 { - description "Initial revision."; - reference "internal"; - } - /* General routing */ - deviation "/ietf-r:routing/ietf-r:interfaces" { - description "Initial limitation"; - deviate not-supported; - } + import ietf-routing-types { + prefix rt-types; + } + revision 2024-01-09 { + description "Add operational, area, bfd support + and other minor features"; + reference "internal"; + } + revision 2023-11-23 { + description "Limit to one instance per control plane protocol, + and change to infix (iproute2) specific source protocol names + for routes"; + reference "internal"; + } + revision 2023-10-27 { + description "Initial revision."; + reference "internal"; + } + /* General routing */ + deviation "/ietf-r:routing/ietf-r:interfaces" { + description "Initial limitation"; + deviate not-supported; + } - deviation "/ietf-r:routing/ietf-r:router-id" { - description "Set in OSPF"; - deviate not-supported; - } - deviation "/ietf-r:routing-state" { - description "Obsolete"; - deviate not-supported; - } + deviation "/ietf-r:routing/ietf-r:router-id" { + description "Set in OSPF"; + deviate not-supported; + } + deviation "/ietf-r:routing-state" { + description "Obsolete"; + deviate not-supported; + } - typedef infix-control-plane-name { - type enumeration { - enum default { - description "Only support one instance per routing type"; - } + typedef infix-control-plane-name { + type enumeration { + enum default { + description "Only support one instance per routing type"; } } + } - identity infix-source-protocol { - description "Infix naming of source protocols"; - } - identity kernel { - description "Kernel added route"; - base infix-source-protocol; - } - identity static { - description "Static added route"; - base infix-source-protocol; - } - identity ospf { - description "OSPF added route"; - base infix-source-protocol; - } - identity dhcp { - description "DHCP added route"; - base infix-source-protocol; - } - identity zeroconf { - description "ZeroConf added route"; - base infix-source-protocol; - } - identity ra { - description "RA IPv6 route"; - base infix-source-protocol; - } + identity infix-source-protocol { + description "Infix naming of source protocols"; + } + identity kernel { + description "Kernel added route"; + base infix-source-protocol; + } + identity static { + description "Static added route"; + base infix-source-protocol; + } + identity ospf { + description "OSPF added route"; + base infix-source-protocol; + } + identity dhcp { + description "DHCP added route"; + base infix-source-protocol; + } + identity zeroconf { + description "ZeroConf added route"; + base infix-source-protocol; + } + identity ra { + description "RA IPv6 route"; + base infix-source-protocol; + } - typedef infix-distribute-protocol { - type enumeration { - enum ospf { - description "Redistribute Ospf"; - } - enum static { - description "Redistribute Static routes"; - } - enum connected { - description "Redistribute Connected routes"; - } + typedef infix-distribute-protocol { + type enumeration { + enum ospf { + description "Redistribute Ospf"; + } + enum static { + description "Redistribute Static routes"; + } + enum connected { + description "Redistribute Connected routes"; } } + } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:name" { - description "Limitation: Only one routing instance per protocol."; - deviate replace { - type infix-control-plane-name; + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:name" { + description "Limitation: Only one routing instance per protocol."; + deviate replace { + type infix-control-plane-name; + } + } + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ietf-r:source-protocol" { + description "Use type names from iproute2"; + deviate replace { + type identityref { + base infix-source-protocol; } } - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ietf-r:source-protocol" { - description "Use type names from iproute2"; - deviate replace { - type identityref { - base infix-source-protocol; - } + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:description" { + deviate not-supported; + } + + /* Static routes */ + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:static-routes/v4ur:ipv4/v4ur:route/v4ur:next-hop/v4ur:next-hop-options/v4ur:next-hop-list" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:static-routes/v6ur:ipv6/v6ur:route/v6ur:next-hop/v6ur:next-hop-options/v6ur:next-hop-list" { + deviate not-supported; + } + /* show routes */ + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:default-rib" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:active-route" { + deviate not-supported; + } + + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ospf:metric" { + deviate not-supported; + } + + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ospf:tag" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ospf:route-type" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ietf-r:active" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ietf-r:last-updated" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:description" { + deviate not-supported; + } + + /* OSPF */ + typedef infix-ospf-interface-type { + type enumeration { + enum broadcast { + description + "Specifies an OSPF broadcast multi-access network."; + } + enum point-to-point { + description + "Specifies an OSPF point-to-point network."; } } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:description" { - deviate not-supported; - } + } - /* Static routes */ - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:static-routes/v4ur:ipv4/v4ur:route/v4ur:next-hop/v4ur:next-hop-options/v4ur:next-hop-list" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:static-routes/v6ur:ipv6/v6ur:route/v6ur:next-hop/v6ur:next-hop-options/v6ur:next-hop-list" { - deviate not-supported; - } - /* show routes */ - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:default-rib" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:active-route" { - deviate not-supported; - } - - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ospf:metric" { - deviate not-supported; - } - - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ospf:tag" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ospf:route-type" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ietf-r:active" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:routes/ietf-r:route/ietf-r:last-updated" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:ribs/ietf-r:rib/ietf-r:description" { - deviate not-supported; - } - - - /* OSPF */ - typedef infix-ospf-interface-type { - type enumeration { - enum broadcast { - description - "Specifies an OSPF broadcast multi-access network."; + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:type" { + deviate add { + must "derived-from-or-self(., 'ospf:ospfv2') or "+ + "derived-from-or-self(., 'ietf-r:static')" { + description "Only OSPFv2 and Static routes are supported in Infix."; } - enum point-to-point { - description - "Specifies an OSPF point-to-point network."; + } + } + + augment "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf" { + description "ietf-ospf lack the setting to generate a default route"; + container default-route-advertise { + description "Distribute default route to network"; + leaf enable { + description "Distribute default route"; + type boolean; + } + leaf always { + description "Always distribute default route, even if no local default route exist. + If set to false, a default route will only be distributed if a default route exist + in the local routing table."; + type boolean; + } + } + } + augment "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf" { + description "ietf-ospf does not contain redistribution + 7. How should route redistribution be configured? I see ietf-rip.yang has a separate + container for that purpose, but ietf-ospf.yang (and other IGP modules) don't do the + same. I also noticed the BGP model is using definition from ietf-routing-policy.yang. + + Different vendors handle redistribution in different ways. This could be added with + an augmentation if there were agreement. + + https://marc.info/?l=ms-ospf&m=166258444409552&w=2"; + container redistribute { + list redistribute { + key "protocol"; + description "Redistribute protocols into OSPF"; + leaf protocol { + type infix-distribute-protocol; + description "Set protocol to redistribute"; } } } - - - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ietf-r:type" { - deviate add { - must "derived-from-or-self(., 'ospf:ospfv2') or "+ - "derived-from-or-self(., 'ietf-r:static')" { - description "Only OSPFv2 and Static routes are supported in Infix."; - } + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { + deviate add { + must "current()/name = 'lo' or count(../../../../ospf:areas/ospf:area/ospf:interfaces/ospf:interface[ospf:name=current()/name]) <= 1" { + error-message "Only one area per interface is allowed."; } } + } - augment "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf" { - description "ietf-ospf lack the setting to generate a default route"; - container default-route-advertise { - description "Distribute default route to network"; - leaf enable { - description "Distribute default route"; - type boolean; - } - leaf always { - description "Always distribute default route, even if no local default route exist. - If set to false, a default route will only be distributed if a default route exist - in the local routing table."; - type boolean; - } - } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:interface-type" { + deviate replace { + type infix-ospf-interface-type; } - augment "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf" { - description "ietf-ospf does not contain redistribution - 7. How should route redistribution be configured? I see ietf-rip.yang has a separate - container for that purpose, but ietf-ospf.yang (and other IGP modules) don't do the - same. I also noticed the BGP model is using definition from ietf-routing-policy.yang. + } - Different vendors handle redistribution in different ways. This could be added with - an augmentation if there were agreement. + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:auto-cost" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:graceful-restart" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:enabled" { + deviate not-supported; + } - https://marc.info/?l=ms-ospf&m=166258444409552&w=2"; - container redistribute { - list redistribute { - key "protocol"; - description "Redistribute protocols into OSPF"; - leaf protocol { - type infix-distribute-protocol; - description "Set protocol to redistribute"; - } - } - } - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface" - { - deviate add { - must "current()/name = 'lo' or count(../../../../ospf:areas/ospf:area/ospf:interfaces/ospf:interface[ospf:name=current()/name]) <= 1" { - error-message "Only one area per interface is allowed."; - } - } - } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:spf-control" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:preference" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:stub-router" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:topologies" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:statistics" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database-control" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:lsa-log" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:spf-log" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:fast-reroute" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:node-tags" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:mpls" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:nsr" { + deviate not-supported; + } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:interface-type" - { - deviate replace { - type infix-ospf-interface-type; - } - } + /* OSPF Area */ + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:virtual-links" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:sham-links" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:ranges" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:topologies" { + deviate not-supported; + } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:auto-cost" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:graceful-restart" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:enabled" { - deviate not-supported; - } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:statistics" { + deviate not-supported; + } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:spf-control" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:preference" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:stub-router" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:topologies" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:statistics" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database-control" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:lsa-log" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:spf-log" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:fast-reroute" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:node-tags" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:mpls" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:nsr" { - deviate not-supported; - } + /* OSPF Local RIB */ + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:local-rib/ospf:route/ospf:metric" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:local-rib/ospf:route/ospf:route-tag" { + deviate not-supported; + } + /* OSPF Area Interface */ + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:static-neighbors" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:multi-areas" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:node-flag" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:bfd/ospf:local-multiplier" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:bfd/ospf:interval-config-type" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:priority" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:fast-reroute" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:authentication" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:statistics" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:neighbors/ospf:neighbor/ospf:statistics" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:neighbors/ospf:neighbor/ospf:cost" + { + deviate not-supported; + } - /* OSPF Area */ - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:virtual-links" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:sham-links" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:ranges" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:database" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:topologies" { - deviate not-supported; - } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:database" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:topologies" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:instance-id" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:interface-id" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:demand-circuit" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:ttl-security" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:lls" + { + deviate not-supported; + } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:statistics" { - deviate not-supported; - } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:mtu-ignore" + { + deviate not-supported; + } - /* OSPF Local RIB */ - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:local-rib/ospf:route/ospf:metric" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:local-rib/ospf:route/ospf:route-tag" { - deviate not-supported; - } - /* OSPF Area Interface */ - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:static-neighbors" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:multi-areas" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:node-flag" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:bfd/ospf:local-multiplier" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:bfd/ospf:interval-config-type" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:priority" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:fast-reroute" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:authentication" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:statistics" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:neighbors/ospf:neighbor/ospf:statistics" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:neighbors/ospf:neighbor/ospf:cost" - { - deviate not-supported; - } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:prefix-suppression" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:hello-timer" + { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:wait-timer" + { + deviate not-supported; + } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:database" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:topologies" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:instance-id" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:interface-id" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:demand-circuit" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:ttl-security" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:lls" - { - deviate not-supported; - } - - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:mtu-ignore" - { - deviate not-supported; - } - - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:prefix-suppression" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:hello-timer" - { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area/ospf:interfaces/ospf:interface/ospf:wait-timer" - { - deviate not-supported; - } - - /* OSPF database */ - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv3" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:external" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:summary" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:router" { - deviate not-supported; - } - deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:header" { - deviate not-supported; - } - } + /* OSPF database */ + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv3" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:external" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:summary" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:router" { + deviate not-supported; + } + deviation "/ietf-r:routing/ietf-r:control-plane-protocols/ietf-r:control-plane-protocol/ospf:ospf/ospf:database/ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:header" { + deviate not-supported; + } +} diff --git a/src/confd/yang/infix-system-software@2023-06-27.yang b/src/confd/yang/infix-system-software@2023-06-27.yang index 35a21ebc..2cc449ab 100644 --- a/src/confd/yang/infix-system-software@2023-06-27.yang +++ b/src/confd/yang/infix-system-software@2023-06-27.yang @@ -29,13 +29,13 @@ submodule infix-system-software { leaf datetime { type yang:date-and-time; description - "The time of the event."; + "The time of the event."; } leaf count { type uint32; description - "The total number of occurrences of the event."; + "The total number of occurrences of the event."; } } @@ -43,159 +43,159 @@ submodule infix-system-software { leaf operation { type string; description - "The current operation of the installer service."; + "The current operation of the installer service."; } container progress { leaf percentage { - type uint8 { - range "0 .. 100"; - } + type uint8 { + range "0 .. 100"; + } } leaf message { - type string; + type string; } } leaf last-error { type string; description - "The last error encountered by the installer service."; + "The last error encountered by the installer service."; } } augment "/sys:system-state" { container software { description - "Installed software information + "Installed software information - Determined by RAUC, which manages all software upgrades."; + Determined by RAUC, which manages all software upgrades."; reference "https://rauc.io/"; leaf compatible { - type string; - description - "Platform identifier + type string; + description + "Platform identifier - Software bundles' compatible attributes are matched against this - one, to determine if they are compatible with one another."; + Software bundles' compatible attributes are matched against this + one, to determine if they are compatible with one another."; } leaf variant { - type string; - description - "Hardware variant + type string; + description + "Hardware variant - Identifies the exact system type."; + Identifies the exact system type."; } leaf booted { - type string; - description - "Slot from which the system was booted."; + type string; + description + "Slot from which the system was booted."; } container installer { - description - "The current state of the software installer service."; + description + "The current state of the software installer service."; - uses installer-state; + uses installer-state; - // TODO: Support sending notifications during bundle installation - // notification state-changed { - // uses installer-state; - // } + // TODO: Support sending notifications during bundle installation + // notification state-changed { + // uses installer-state; + // } } list slot { - key "name"; - description - "Details the installed software and current state of a particular - storage slot (partition)."; + key "name"; + description + "Details the installed software and current state of a particular + storage slot (partition)."; - leaf name { - type string; - description - "RAUC's internal name for the slot, in . notation."; - } + leaf name { + type string; + description + "RAUC's internal name for the slot, in . notation."; + } - leaf bootname { - type string; - description - "Short name of the slot."; - } + leaf bootname { + type string; + description + "Short name of the slot."; + } - leaf class { - type string; - description - "Class of software compatible with the slot."; - } + leaf class { + type string; + description + "Class of software compatible with the slot."; + } - leaf state { - type string; - description - "The slot's state."; - } + leaf state { + type string; + description + "The slot's state."; + } - container bundle { - leaf compatible { - type string; - description - "Platform identifier of the installed software image."; - } + container bundle { + leaf compatible { + type string; + description + "Platform identifier of the installed software image."; + } - leaf version { - type string; - description - "Version of the installed software image."; - } - } + leaf version { + type string; + description + "Version of the installed software image."; + } + } - leaf size { - type uint64; - description - "Size, in bytes, of the installed software image."; - } + leaf size { + type uint64; + description + "Size, in bytes, of the installed software image."; + } - leaf sha256 { - type string { - pattern '[a-fA-F0-9]{64}'; - } - description - "Checksum of the installed software image."; - } - container installed { - description - "Logs the time of the last installation and the total number of - updates to this slot."; + leaf sha256 { + type string { + pattern '[a-fA-F0-9]{64}'; + } + description + "Checksum of the installed software image."; + } + container installed { + description + "Logs the time of the last installation and the total number of + updates to this slot."; - uses rauc-stage-log; - } + uses rauc-stage-log; + } - container activated { - description - "Logs the first time the current slot was activated and the total - number of activations."; - uses rauc-stage-log; - } + container activated { + description + "Logs the first time the current slot was activated and the total + number of activations."; + uses rauc-stage-log; + } } } } rpc install-bundle { - nacm:default-deny-all; - description - "Upgrade the system's software by installing the specified bundle."; - input { - leaf url { - type string; - mandatory true; - description - "The location of the software bundle, specified as a Uniform +nacm:default-deny-all; + description + "Upgrade the system's software by installing the specified bundle."; + input { + leaf url { + type string; + mandatory true; + description + "The location of the software bundle, specified as a Uniform Resource Locator (URL). Currently supported protocols include FTP, HTTP(S) and SCP."; - } - } + } + } } } diff --git a/src/confd/yang/infix-system@2023-10-19.yang b/src/confd/yang/infix-system@2023-10-19.yang index 7dcdeb50..9ec7a96c 100644 --- a/src/confd/yang/infix-system@2023-10-19.yang +++ b/src/confd/yang/infix-system@2023-10-19.yang @@ -23,7 +23,7 @@ module infix-system { description "Change deviation for timezone-utc-offset from unsupported to Etc+/-HOUR - Unit is set to hours (tzdata compatibility) - Range is -12 .. 14"; - + reference "internal"; } revision 2023-08-15 { @@ -70,7 +70,7 @@ module infix-system { description "Augment of ietf-system to support setting login shell for users."; leaf shell { type identityref { - base infixsh:shell-type; + base infixsh:shell-type; } default infixsh:false; description "Set UNIX login shell for user, default: none (security)";