diff --git a/doc/terminal-device-properties-guide.md b/doc/terminal-device-properties-guide.md index 88f3f0706..682f839d2 100644 --- a/doc/terminal-device-properties-guide.md +++ b/doc/terminal-device-properties-guide.md @@ -36,4 +36,94 @@ Manifest files are a special OpenConfig model category since they do not represe In order to keep separated them from the rest of operational models, the following openconfig extension is included in the model, to enrich the module metadata: ``` oc-ext:origin "openconfig-properties"; -``` \ No newline at end of file +``` +# Extensions introduced in the v0.2.0 release of the model. + +### Motivation + +After the initial release of the [openconfig-terminal-device-properties.yang](https://github.com/openconfig/public/blob/master/release/models/devices-manifest/openconfig-terminal-device-properties.yang), there have been significant technical questions and discussions happening within the Telecom Infra Project (TIP) Open Optical & Packet Transport (OOPT) community between operators and vendors. + +This issue summarizes the motivation and issues detected in the first release of the model and it will serve as an introduction and motivation of a new pull request (#911) with a new proposed comprehensive update of the model which will be accompanied by the relevant explanations on how the new model proposal will try to overcome the detected issues. It is worth mentioning that the current analysis and the new proposal are the outcomes of an extensive technical discussion within the OOPT community between vendors and service providers and that it consolidates an already discussed proposal starting from the issues and motivations explained here. + +### Context + +The current proposed terminal-device-properties model was designed with the objective of allowing the terminal devices' system vendors to expose the intrinsic properties (Modulation Format, FEC, Baud-rate) and performance characteristics (Rx-OSNR, CD/PMD limits) of the device's supported transmission modes. + +The initial version of the model was designed as a flat list of mode properties, where each entry represents a mode supported by the terminal device and includes the list of characteristics of that mode. However, this initial version presents a significant list of limitations. + +### Initial release limitations +- **First issue**: The current model exposes a list of modes available in the device, however, the characteristics of a mode of transmission are affected by the HW transceiver supplying it. In other words, two different transceivers (supported by the same terminal device) might support the same mode, but their mode characteristics are different. + +image + +- **Second issue**: There is not an interoperability matrix within the Terminal Device's which exposes the compatibility between Terminal Device's chassis, linecards, transceivers and modes. Right now there is no compatibility information available in the model, to allow the supplier to properly describe which modes are supported by each transceiver module available in the terminal device. + +#### Operational challenges + +- It is not clear how mode IDs will be assigned and who will assign them. +- Clarification of the bookended solution target by the model. + +### New proposal scope and initial assumptions + +Clarify the target of the next extension targets + +1. Bookended solutions, and interoperability between terminal devices of the same system vendor. +2. Interoperability between different system vendors O-OTs through standard modes + +### Solution proposed + +This pull request covers a proposed solution to the issues described in #910. + +The changes to the existing model **are not backward compatible.** + +The summary of the changes proposed is the following: + +**1. Operational-mode list:** + - The list of the exposed operational modes properties by the Terminal Device is augmented with the set of **CHARacteristic properties** of the operational mode. + - The mode-ids are the same used within the operational datastore of the terminal device (exposed by the [openconfig-terminal-device.yang](https://github.com/openconfig/public/blob/master/release/models/optical-transport/openconfig-terminal-device.yang) model) and have network-wide scope assuming they guarantee interoperability in bookended scenarios (two Terminal Devices of the same system vendor supporting the same mode). + - The mode-ids are defined by the system vendor. + +**2. Mode-descriptors list:** + - The **design properties** of the modes, which are dependent on the transceiver component that implements the mode, are exposed as a nested list within the operational mode list. It is assumed that a single operational mode might be implemented by different transceivers which might have associated different design properties exposed by different mode descriptors. + - The **mode-descriptor-id** is a local index that does not have interoperability meaning outside the specific Terminal device which reports it. In other words, the same mode descriptors might be exported by different Terminal Devices with different IDs. + +**3. Interoperable mode list.** + - A given proprietary operational mode might be capable to comply with a certain number of standards or elsewhere publicly defined operational modes defined by other organizations e.g., ITU-T or OpenROADM. + - This compatibility characteristic shall be assured by the system vendor and imply that the design properties of the implementations of that specific operational mode are a superset of all listed supported standard modes. + - This model block will replace the previous "G.698.2" node tree with a more generic definition able to accommodate multiple standards or MSA-defined modes. + +**4. Transceiver-descriptors list.** + - The Terminal Device exposes the list of the transceiver components which are supported by the device. + - Each transceiver exposes the list of compatible modes and their associated mode descriptor. + - This new model block enhances the previous version by allowing to expose explicitly the compatibility matrix between the Terminal Device, the set of transceiver modules supported and the associated modes supported. + +**5. Linecard-descriptors list.** + - The Terminal Device exposes the list of linecard components which are supported by the device. + - Each linecard component exposes the list of transceivers that are supported. + - Each linecard constrains the list of modes that can be supported among the ones supported by the transceiver. + - Each linecard constrains the optical-channel configuration, e.g., target-output-power and frequency range. + - This new model block enhances the previous version by allowing to expose explicitly the compatibility matrix between the Terminal Device, the line cards, the set of transceiver module per line card and the associated modes supported. + +Following the model tree with the 5 blocks described above. In green the new leaves/containers are added in this proposal; in black the non-modified leaves, even if they have been reallocated within the tree under different containers/lists. + +image + +For more clarity on the above please check the following common definitions and assumptions defined during the design process of this proposal within the Telecom Infra Project (TIP) OOPT MUST project. + +#### Common definitions +- System-vendor = the O-OT host platform provider (e.g. muxponder shelf, router, switch) and system integrator including the network operating system of the O-OT +- Manufacturer = Transceiver manufacturer (pluggable) +- Bookended scenario definition. + - The System Vendor is the same in the two O-OTs. + - The O-OTs of the same system vendor might host different Transceiver manufacturers. + - Mode-ids are defined and maintained by the system vendor. + - Interoperability shall be guaranteed by the system vendor if the same mode-id is configured in the line interfaces /optical-channels of the two O-OTs. + +#### Assumptions +- The **openconfig-terminal-device-properties.yang** is a standalone model which represents static properties of a given terminal device, including: + - **Operational-modes’ characteristic properties** on the transceiver configuration which characterize the mode (modulation-format, baud-rate, bit-rate, fec-format, filter…) + - **Mode-descriptors** which describe the transmission design properties (Tx/Rx properties + CHARacteristic properties) of the implementation of the mode conditioned by the HW platform (transceiver + linecard) (Rx/Tx-OSNR, CD/PMD tolerances, penalties…) + - **optical-channel’s configuration constraints** introduced by the HW implementation (min/max-central-frequency, min/max-output-power…) +- The openconfig-terminal-device-properties.yang is a standalone model representing a given mode’s static properties. We shall avoid any reference btw the manifest files and the operational openconfig trees which change dynamically. In other words, the references between mode-descriptors and operational modes, shall be through absolute identifiers. + + diff --git a/regexp-tests/openconfig-network-instance-types-test.yang b/regexp-tests/openconfig-network-instance-types-test.yang index 9a4edf22d..9047cd777 100644 --- a/regexp-tests/openconfig-network-instance-types-test.yang +++ b/regexp-tests/openconfig-network-instance-types-test.yang @@ -13,6 +13,7 @@ module openconfig-network-instance-types-test { pt:pattern-test-pass "99:4294967295"; pt:pattern-test-pass "999:999999999"; pt:pattern-test-pass "9999:99999999"; + pt:pattern-test-fail "09999:99999999"; // regression: not canonical pt:pattern-test-pass "65535:0"; pt:pattern-test-pass "59999:65536"; pt:pattern-test-pass "64999:4294967289"; @@ -24,6 +25,7 @@ module openconfig-network-instance-types-test { pt:pattern-test-pass "65535:4289999999"; pt:pattern-test-pass "65535:4199999999"; pt:pattern-test-pass "65535:3999999999"; + pt:pattern-test-pass "65535:2999999999"; // regression: [1-3][0-9]{9}, not just 3[0-9]{9} pt:pattern-test-fail "0:4294967296"; pt:pattern-test-fail "65536:777777"; pt:pattern-test-fail "65540:777777"; @@ -52,6 +54,7 @@ module openconfig-network-instance-types-test { pt:pattern-test-fail "1.1.1.1:65600"; pt:pattern-test-fail "1.1.1.1:66000"; pt:pattern-test-fail "1.1.1.1:70000"; + pt:pattern-test-fail "1.1.1.1:09999"; // regression pt:pattern-test-fail "256.255.255.255:99"; pt:pattern-test-fail "1.1.1.256:99"; pt:pattern-test-fail "256.1.1.1%eth0:99"; @@ -71,7 +74,9 @@ module openconfig-network-instance-types-test { pt:pattern-test-pass "4293999999:65535"; pt:pattern-test-pass "4289999999:65535"; pt:pattern-test-pass "4199999999:65535"; + pt:pattern-test-pass "1999999999:65535"; // regression pt:pattern-test-pass "3999999999:65535"; + pt:pattern-test-fail "3999999999:05535"; // regression pt:pattern-test-fail "4294967296:0"; pt:pattern-test-fail "777777:65536"; pt:pattern-test-fail "777777:65540"; diff --git a/regexp-tests/openconfig-yang-types-test.yang b/regexp-tests/openconfig-yang-types-test.yang index 2f6ca1ba6..6539ba6b7 100644 --- a/regexp-tests/openconfig-yang-types-test.yang +++ b/regexp-tests/openconfig-yang-types-test.yang @@ -5,6 +5,19 @@ module openconfig-yang-types-test { import pattern-test { prefix "pt"; } import openconfig-yang-types { prefix "oc-yang"; } + leaf hex-string-prefixed { + type oc-yang:hex-string-prefixed; + pt:pattern-test-pass "0x0000"; + pt:pattern-test-pass "0xffff"; + pt:pattern-test-pass "0xFFFF"; + pt:pattern-test-pass "0x0123456789abcdefABCDEF"; + pt:pattern-test-pass "0xFEDCBAfedcba9876543210"; + pt:pattern-test-fail "0xg"; + pt:pattern-test-fail "0xG"; + pt:pattern-test-fail "0x0123456789abcdefABCDEFG"; + pt:pattern-test-fail "0xFED0xba9876543210"; + } + leaf hex-string { type oc-yang:hex-string; pt:pattern-test-pass "00000"; diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index ac924b67c..c69587e0f 100644 --- a/release/models/aft/openconfig-aft-common.yang +++ b/release/models/aft/openconfig-aft-common.yang @@ -23,7 +23,13 @@ submodule openconfig-aft-common { "Submodule containing definitions of groupings that are re-used across multiple contexts within the AFT model."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description @@ -693,6 +699,20 @@ submodule openconfig-aft-common { entries within the next-hop group become unusable, the backup next-hop group is used if specified."; } + + leaf backup-active { + type boolean; + default false; + description + "Set to true if and only if the device no longer forwards traffic + using the primary NextHops of this NextHopGroup and instead uses + the specified backup-next-hop-group. This leaf should be set to + false if the backup-next-hop-group is either unspecified or unused + by the device."; + } + + + } grouping aft-nhg-nh-state { diff --git a/release/models/aft/openconfig-aft-ethernet.yang b/release/models/aft/openconfig-aft-ethernet.yang index 2845c9383..b2c0758df 100644 --- a/release/models/aft/openconfig-aft-ethernet.yang +++ b/release/models/aft/openconfig-aft-ethernet.yang @@ -20,7 +20,13 @@ submodule openconfig-aft-ethernet { "Submodule containing definitions of groupings for the abstract forwarding tables for Ethernet."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description diff --git a/release/models/aft/openconfig-aft-ipv4.yang b/release/models/aft/openconfig-aft-ipv4.yang index f6152aca8..d582b2ad7 100644 --- a/release/models/aft/openconfig-aft-ipv4.yang +++ b/release/models/aft/openconfig-aft-ipv4.yang @@ -20,7 +20,13 @@ submodule openconfig-aft-ipv4 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv4."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description diff --git a/release/models/aft/openconfig-aft-ipv6.yang b/release/models/aft/openconfig-aft-ipv6.yang index 1976a7271..c8aede635 100644 --- a/release/models/aft/openconfig-aft-ipv6.yang +++ b/release/models/aft/openconfig-aft-ipv6.yang @@ -20,7 +20,13 @@ submodule openconfig-aft-ipv6 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv6."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description diff --git a/release/models/aft/openconfig-aft-mpls.yang b/release/models/aft/openconfig-aft-mpls.yang index 77091afa4..2418a5a9e 100644 --- a/release/models/aft/openconfig-aft-mpls.yang +++ b/release/models/aft/openconfig-aft-mpls.yang @@ -21,20 +21,18 @@ submodule openconfig-aft-mpls { "Submodule containing definitions of groupings for the abstract forwarding table for MPLS label forwarding."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; - revision "2024-01-26" { + revision "2024-04-25" { description - "Add gre container under next-hops aft entry state. - Add src-ip, dst-ip and ttl under gre aft entry state - for telemetry."; - reference "2.5.0"; + "Add backup-active to AFT NHG state."; + reference "2.6.0"; } - revision "2023-09-26" { + revision "2024-04-25" { description - "Add next-hop-group-name in NHG AFT entry state."; - reference "2.4.0"; + "Add backup-active to AFT NHG state."; + reference "2.5.0"; } revision "2023-04-19" { diff --git a/release/models/aft/openconfig-aft-pf.yang b/release/models/aft/openconfig-aft-pf.yang index fc72ece6e..8f0d5a243 100644 --- a/release/models/aft/openconfig-aft-pf.yang +++ b/release/models/aft/openconfig-aft-pf.yang @@ -28,7 +28,13 @@ submodule openconfig-aft-pf { fields other than the destination address that is used in other forwarding tables."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description diff --git a/release/models/aft/openconfig-aft-state-synced.yang b/release/models/aft/openconfig-aft-state-synced.yang index 166ad7ead..3e0950826 100644 --- a/release/models/aft/openconfig-aft-state-synced.yang +++ b/release/models/aft/openconfig-aft-state-synced.yang @@ -16,7 +16,13 @@ submodule openconfig-aft-state-synced { "Submodule containing definitions of groupings for the state synced signals corresponding to various abstract forwarding tables."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description diff --git a/release/models/aft/openconfig-aft.yang b/release/models/aft/openconfig-aft.yang index 011956948..d1af3e977 100644 --- a/release/models/aft/openconfig-aft.yang +++ b/release/models/aft/openconfig-aft.yang @@ -42,7 +42,13 @@ module openconfig-aft { is referred to as an Abstract Forwarding Table (AFT), rather than the FIB."; - oc-ext:openconfig-version "2.5.0"; + oc-ext:openconfig-version "2.6.0"; + + revision "2024-04-25" { + description + "Add backup-active to AFT NHG state."; + reference "2.6.0"; + } revision "2024-01-26" { description diff --git a/release/models/bgp/openconfig-bgp-policy.yang b/release/models/bgp/openconfig-bgp-policy.yang index 03dd2ab8d..f4c0c18c4 100644 --- a/release/models/bgp/openconfig-bgp-policy.yang +++ b/release/models/bgp/openconfig-bgp-policy.yang @@ -28,7 +28,15 @@ module openconfig-bgp-policy { It augments the base routing-policy module with BGP-specific options for conditions and actions."; - oc-ext:openconfig-version "7.0.0"; + oc-ext:openconfig-version "7.1.0"; + + revision "2024-07-02" { + description + "Add ext-community-count container, which also clarifies that + community-count does not include other types of communities (e.g. + extended)."; + reference "7.1.0"; + } revision "2024-01-31" { description @@ -384,28 +392,52 @@ module openconfig-bgp-policy { grouping community-count-config { description - "Configuration data for community count condition"; + "Configuration data for different community count conditions"; uses oc-pol-types:attribute-compare-operators; } grouping community-count-state { description - "Operational state data for community count condition"; + "Operational state data for different community count conditions"; } grouping community-count-top { description - "Top-level grouping for community count condition"; + "Top-level grouping for different community count conditions"; container community-count { description "Value and comparison operations for conditions based on the - number of communities in the route update"; + number of regular communities in the route update."; + + container config { + description + "Configuration data for regular community count condition"; + + uses community-count-config; + } + + container state { + + config false; + + description + "Operational state data for regular community count condition"; + + uses community-count-config; + uses community-count-state; + } + } + + container ext-community-count { + description + "Value and comparison operations for conditions based on the + number of extended communities in the route update."; container config { description - "Configuration data for community count condition"; + "Configuration data for extended community count condition"; uses community-count-config; } @@ -415,7 +447,7 @@ module openconfig-bgp-policy { config false; description - "Operational state data for community count condition"; + "Operational state data for extended community count condition"; uses community-count-config; uses community-count-state; diff --git a/release/models/devices-manifest/openconfig-terminal-device-properties.yang b/release/models/devices-manifest/openconfig-terminal-device-properties.yang index 85bf510a8..862676c40 100644 --- a/release/models/devices-manifest/openconfig-terminal-device-properties.yang +++ b/release/models/devices-manifest/openconfig-terminal-device-properties.yang @@ -35,10 +35,18 @@ module openconfig-terminal-device-properties { the OTSi (OTSiMC). It also includes (optional) aspects such as filter characterization, CD and DGD tolerance."; - oc-ext:openconfig-version "0.1.2"; + oc-ext:openconfig-version "0.2.0"; // Revisions + revision "2024-05-28" { + description "Comprehensive model update to undertake the limitations + of the first version of the model, such the introduction of modes + dependencies on hardware components and the interoperability information + between terminal devices, linecards, transceviers and modes."; + reference "0.2.0"; + } + revision "2024-05-15" { description "Fix yang namespace URI to openconfig.net."; @@ -131,15 +139,6 @@ module openconfig-terminal-device-properties { It may vary depending on the modulation format used in the associated transmission mode (operational-mode)."; } - leaf pre-fec-ber-threshold { - type decimal64 { - fraction-digits 18; - } - units bit-errors-per-second; - description - "Threshold on the PRE-FEC-BER, for which FEC code is able to - correct errors."; - } } grouping filter-attributes-top { @@ -237,46 +236,22 @@ module openconfig-terminal-device-properties { } } - grouping operational-mode-descriptor-explicit-capabilities-state { + grouping mode-descriptor-design-properties-state { description - "Operational-mode capabilities leafs."; - - leaf modulation-format { - type union { - type string; - type oc-opt-term-prop-types:modulation-format; - } - description - "Optical modulation format associated to the mode. The - modulation format associated to the optical signal."; - } - - leaf bit-rate { - type oc-opt-term-prop-types:bit-rate; - description - "Rounded bit rate of the tributary signal delivered by the - optical channel associated to the specific operational mode. - Exact bit rate will be refined by protocol selection at the - associated tributary logical channel."; - } - - leaf baud-rate { - type decimal64 { - fraction-digits 2; - } - units Bd; - description - "Baud-rate or symbol rate."; - } - - leaf optical-channel-spectrum-width { - type decimal64 { - fraction-digits 2; - } - units GHz; + "For each given mode supported by the device there might be + one or multiple implementations related to the transceiver hardware + modules which implements the mode. For a given implementation, + a set of design properties are represented within the mode-descriptor + data structure, which is identified by a unique local identifier. + A mode-descriptor shall uniquely characterize a given operational mode + implemented by a given transceiver component described within the + terminal-device manfiest file."; + + leaf mode-descriptor-id { + type uint16; description - "Spectrum width of the optical channel associated to this - operational mode, calculated as the baud-rate*(1+roll-off)."; + "Two-octet encoding of the vendor-defined operational + mode"; } leaf min-tx-osnr { @@ -357,9 +332,19 @@ module openconfig-terminal-device-properties { optical channel associated to the associated transmission mode (operational model), expressed in decibels (dB)"; } + + leaf pre-fec-ber-threshold { + type decimal64 { + fraction-digits 18; + } + units bit-errors-per-second; + description + "Threshold on the PRE-FEC-BER, for which FEC code is able to + correct errors."; + } } - grouping operational-mode-descriptor-explicit-top { + grouping operational-mode-descriptor-design-properties-top { description "Definition of proprietary or non-standard operational-modes, which can be uniformly characterized by the set of attributes included in their @@ -369,150 +354,172 @@ module openconfig-terminal-device-properties { allowed values to be configured at the oc-component:optical-channel instance configured to this mode."; - container explicit-mode { + container mode-descriptors { description "Explicit definition of the operational-mode. Typically this is used for non-standard/proprietary modes defined by the terminal-device vendor and it is self-described by the capabilities included in the subtree underneath."; - container operational-mode-capabilities{ + list mode-descriptor{ + key "mode-descriptor-id"; description - "Set of attributes which characterizes the operational-mode for optimal - optical-channel transmission and receiver functions. This attributes - are intending to describe all the relevant data used during the - network planning phase, to estimate the physical-impairment - tolerances which can be introduced by the DWDM optical path, - while assuring optimal transmission function."; + ""; + leaf mode-descriptor-id { + type leafref { + path "../state/mode-descriptor-id"; + } + description + "Reference to mode-descriptor-id"; + } container state { config false; description - "Operational-mode explicit mode capabilities state container."; - - uses operational-mode-descriptor-explicit-capabilities-state; + "Mode-descriptor state attributes top container."; + uses mode-descriptor-design-properties-state; } - container fec { - description - "The Forward Error Coding (FEC) coding schema used, - including the name, overhead, pre-fec-ber threshold and - gain properties."; + uses operational-mode-descriptor-penalties-top; + uses operational-mode-descriptor-interoperable-modes-top; + } + } + } - container state { - config false; - description - "FEC state attributes top container."; + grouping interoperable-mode-properties-state { + description + "System-defined configuration data for component properties"; - uses fec-codes-attributes; - } + leaf name { + type string; + description + "System-supplied name of the property -- this is typically + non-configurable"; + } + + leaf value { + type union { + type string; + type boolean; + type int64; + type uint64; + type decimal64 { + fraction-digits 2; } + } + description + "Property values can take on a variety of types. Signed and + unsigned integer types may be provided in smaller sizes, + e.g., int8, uint16, etc."; + } + } - container penalties { - description - "Enconsing list's container."; + grouping operational-mode-descriptor-interoperable-mode-state { + description + "Interoperable mode features attributes grouping."; - list penalty { - key "parameter-and-unit up-to-boundary"; - description - "Penalties includes contributions from different impairments including - cd, pmd, low RX Power, pdl,... - - For parameter values below lowest up-to-boundary value, the penalty is 0. - - For parameter values between lowest and highest up-to-boundary - values, penalty could be linearly interpolated. - - For parameter values above highest up-to-boundary value, the penalty is the one - included within penalty-value attribute associated to the highest up-to-boundary"; - - leaf parameter-and-unit { - type leafref { - path "../state/parameter-and-unit"; - } - description - "Impairment and unit leading to the penalty (i.e., cd-ps)"; - } - - leaf up-to-boundary { - type leafref { - path "../state/up-to-boundary"; - } - description - "defines the upper (for positive values) and lower (for negative values) - limit for which the penalty value is valid."; - } - - container state { - config false; - description - "Penalties list element's state attributes top container."; - uses penalties-list-element-attributes; - } - } - } + leaf mode-name { + type string; + description + "Public well-know free-format name reference to the mode name."; + } - container filter { - description - "This container includes information which characterises the filter at - transceiver transmission for the given operational-mode."; + leaf publisher-organization { + type union { + type string; + type oc-opt-term-prop-types:interoperability-modes-organization; + } + description + "Name of the organization, standard body, Multi-Source Agreement, or + open source project, responsible of the definition of the interoperable + mode."; + } + } + grouping operational-mode-descriptor-penalties-top { + description + "Top container grouping for operational-mode-descriptor."; + container penalties { + description + "Enconsing list's container."; - container state { - config false; - description - "Filter's state attributes top container."; - uses filter-attributes-top; + list penalty { + key "parameter-and-unit up-to-boundary"; + description + "Penalties includes contributions from different impairments including + cd, pmd, low RX Power, pdl,... + - For parameter values below lowest up-to-boundary value, the penalty is 0. + - For parameter values between lowest and highest up-to-boundary + values, penalty could be linearly interpolated. + - For parameter values above highest up-to-boundary value, the penalty is the one + included within penalty-value attribute associated to the highest up-to-boundary"; + + leaf parameter-and-unit { + type leafref { + path "../state/parameter-and-unit"; } + description + "Impairment and unit leading to the penalty (i.e., cd-ps)"; } - } - container optical-channel-config-value-constraints{ - description - "Set of constraints of the configuration attributes - of the optical-channel associated to the selected - operational-mode."; + leaf up-to-boundary { + type leafref { + path "../state/up-to-boundary"; + } + description + "defines the upper (for positive values) and lower (for negative values) + limit for which the penalty value is valid."; + } container state { config false; description - "Operational-mode explicit mode config value constrains state top - container."; - - uses operational-mode-descriptor-explicit-config-constraints-state; + "Penalties list element's state attributes top container."; + uses penalties-list-element-attributes; } } } } - grouping operational-mode-descriptor-standard-state { + grouping operational-mode-descriptor-interoperable-modes-top { description - "Standard mode features attributes grouping."; + "Each mode-descriptor of a given operational-mode could be compatible + with many interoperable modes which are defined, elsewhere, by standard + bodies, multi-source agreements, vendor forums or any other public forum. + This compatibility characteristic shall be assured by the system-vendor + and imply that the design properties of the implementations of that + specific operational mode are a superset of the all listed supported + standard modes"; - leaf standard-mode { - type oc-opt-term-prop-types:standard-mode; + container interoperable-modes { description - "G.698.2 (11/18) standard mode"; - } - } + "Top level container of interoperable modes."; - grouping operational-mode-descriptor-standard-top { - description - "Standard mode features description grouping. It is used if the - 'mode-type' attribute is set to 'TRANSCEIVER_MODE_TYPE_STANDARD"; + list interoperable-mode { + key "mode-name"; + description + "Each interoperable mode is defined by its public name reference + and a set of free form key-value properties which augments with + the required information provided by the system-vendor."; - container G.698.2 { - description - "ITU-T G.698.2 (11/18) standard mode that guarantees interoperability. - It must be an string with the following format: - B-DScW-ytz(v) where all these attributes are conformant - to the ITU-T G.698.2 (11/18) recommendation."; + leaf mode-name { + type leafref { + path "../state/mode-name"; + } + description + "Reference to mode-name."; + } - container state { + container state { config false; description - "Operational-mode standard mode state top container."; + "Operational-mode interoperbale mode state top container."; - uses operational-mode-descriptor-standard-state; + uses operational-mode-descriptor-interoperable-mode-state; + } } } } + grouping operational-mode-descriptor-state{ description "Top-level operational-mode-features grouping definitions"; @@ -524,13 +531,74 @@ module openconfig-terminal-device-properties { mode"; } - leaf mode-type { - type identityref{ - base oc-opt-term-prop-types:TRANSCEIVER_MODE_TYPE; + leaf modulation-format { + type union { + type string; + type oc-opt-term-prop-types:modulation-format; + } + description + "Optical modulation format associated to the mode. The + modulation format associated to the optical signal."; + } + + leaf bit-rate { + type oc-opt-term-prop-types:bit-rate; + description + "Rounded bit rate of the tributary signal delivered by the + optical channel associated to the specific operational mode. + Exact bit rate will be refined by protocol selection at the + associated tributary logical channel."; + } + + leaf baud-rate { + type decimal64 { + fraction-digits 2; + } + units Bd; + description + "Baud-rate or symbol rate."; + } + + leaf optical-channel-spectrum-width { + type decimal64 { + fraction-digits 2; + } + units GHz; + description + "Spectrum width of the optical channel associated to this + operational mode, calculated as the baud-rate*(1+roll-off)."; + } + } + + grouping operation-mode-filter-and-fec { + description + "Enclosing grouping for Operational Mode filter and FEC attributes."; + + container filter { + description + "This container includes information which characterises the filter at + transceiver transmission for the given operational-mode."; + + container state { + config false; + description + "Filter's state attributes top container."; + uses filter-attributes-top; } + } + container fec { description - "Indicates whether the transceiver's mode is a standard - mode, an organizational mode or an explicit mode."; + "The Forward Error Coding (FEC) coding schema used, + including the name, overhead, pre-fec-ber threshold and + gain properties."; + + container state { + config false; + description + "FEC state attributes top container."; + + uses fec-codes-attributes; + } } } @@ -538,7 +606,7 @@ module openconfig-terminal-device-properties { description "top-level operational-mode definitions"; - container operational-modes { + container operational-mode-descriptors { config false; description "Indicates the transceiver's list of supported operational @@ -546,12 +614,12 @@ module openconfig-terminal-device-properties { reference "https://github.com/openconfig/public/blob/master/doc/terminal-device-properties-guide.md"; - list mode-descriptor { + list operational-modes { key "mode-id"; description - "List of operational modes supported by the platform. - The operational mode provides a platform-defined summary - of information such as symbol rate, modulation, pulse + "List of operational modes supported by the terminal-device. + The operational mode descriptor list provides a platform-defined + summary of the modes' information such as symbol rate, modulation, pulse shaping, etc."; leaf mode-id { @@ -569,11 +637,342 @@ module openconfig-terminal-device-properties { uses operational-mode-descriptor-state; } - uses operational-mode-descriptor-standard-top; - uses operational-mode-descriptor-explicit-top; + uses operation-mode-filter-and-fec; + uses operational-mode-descriptor-design-properties-top; + } + } + } + + // Definition of terminal-device transceiver descriptors. + + grouping terminal-device-component-descriptor-state { + description + "State data for terminal device descriptor components."; + + leaf component-descriptor-id { + type string; + description + "Unique identifier assigned by the system vendor for the + component descriptor."; + } + + leaf system-vendor-name { + type string; + description + "System vendor company name"; + } + + leaf system-vendor-part-no { + type string; + description + "System-vendor assigned part number for the component. This should + be present in particular if the component is also an FRU + (field replaceable unit)"; + } + + leaf mfg-name { + type string; + description + "System-supplied identifier for the manufacturer of the + component. This data is particularly useful when a + component manufacturer is different than the overall + device vendor."; + } + + leaf mfg-part-no { + type string; + description + "Transceiver manufacturer assigned part number for the component."; + } + + leaf hardware-version { + type string; + description + "For hardware components, this is the hardware revision of + the component."; + } + + leaf firmware-version { + type string; + description + "For hardware components, this is the version of associated + firmware that is running on the component, if applicable."; + } + + leaf software-version { + type string; + description + "For software components such as operating system or other + software module, this is the version of the currently + running software."; + } + + leaf clei-code { + type string; + description + "Common Language Equipment Identifier (CLEI) code of the + component. This should be present in particular if the + component is also an FRU (field replaceable unit)"; + } + } + grouping transceiver-compatible-mode-state { + description + "Each compatible mode has associated a mode-descriptor which represents + the operational mode design properties associated to the transceiver which + transmits the mode."; + + container state { + description + "State container of transciever compatible modes."; + + leaf mode-id { + type uint16; + must "../../../../../../operational-mode-descriptors/operational-modes[mode-id=current()]/mode-id"; + + description + "Two-octet encoding of the vendor-defined operational mode. + Each value shall reference a valid mode-id included in the + operational-mode-descriptors list."; + } + + leaf mode-descriptor-id { + type leafref { + path "/oc-opt-term-properties:operational-mode-descriptors/operational-modes/mode-descriptors/mode-descriptor/mode-descriptor-id"; + } + description + "Reference to the associated mode-descriptor-id which describes + the specific design properties of the mode once it is being transmitted + by the parent transceiver component."; + } + } + } + + grouping transceiver-compatible-modes { + description + "Transceiver compatible modes definition."; + + container transceiver-compatible-modes { + config false; + description + "Indicates the set of operatational-modes, present in the terminal- + device manifest, which are compatible with the described transceiver + component."; + + list transceiver-compatible-mode { + key "mode-id"; + description + "List of operational modes supported by the target transceiver."; + + leaf mode-id { + type leafref { + path "../state/mode-id"; + } + description + "Reference to a ../state/mode-id."; + } + uses transceiver-compatible-mode-state; + } + } + } + + grouping transceiver-descriptor-top { + description + "top-level transceiver-descriptor definitions"; + + container transceiver-descriptors { + config false; + description + "Indicates the terminal-device's list of compatible transceiver + component and its associated modes and mode descriptors compatibility + matrix."; + + list transceiver-descriptor { + key "component-descriptor-id"; + description + "List of transceiver components supported by the terminal-device. + The operational mode provides a platform-defined summary + of information such as symbol rate, modulation, pulse + shaping, etc."; + + leaf component-descriptor-id { + type leafref { + path "../state/component-descriptor-id"; + } + description + "Reference to component-descriptor-id"; + } + + container state { + description + "Static features or properties which characterize the + component descriptor."; + + uses terminal-device-component-descriptor-state; + } + uses transceiver-compatible-modes; + } + } + } + + // Definition of terminal-device linecard descriptors. + + grouping linecards-constrained-compatible-modes-state { + description + "Grouping for the linecards' contrained compatible modes + state attributes."; + + container state { + description + "State container for linecard constrained compatible modes"; + + leaf mode-id { + type uint16; + must "../../../../../../../../operational-mode-descriptors/operational-modes[mode-id=current()]/mode-id"; + + description + "Absolute reference to an operational-mode-id. Each value shall + reference a valid mode-id included in the operational-mode-descriptors + list."; + } + + leaf mode-descriptor-id { + type leafref { + path "/oc-opt-term-properties:operational-mode-descriptors/operational-modes/mode-descriptors/mode-descriptor/mode-descriptor-id"; + } + description + "Reference to the associated mode-descriptor-id which describes + the specific design properties of the mode once it is being transmitted + by the parent transceiver component."; + } + } + } + + grouping constrained-compatible-modes { + description + "Linecards' compatible transceiver list of compatible modes which are + constrained by the integration made by the system vendor of the given + terminal-device."; + + container constrained-compatible-modes { + config false; + description + "Indicates the set of operatational-modes, present in the terminal- + device manifest, which are compatible with the described transceiver + component within the linecard component."; + + list constrained-compatible-mode { + key "mode-id"; + description + "List of operational modes supported by the target transceiver."; + + leaf mode-id { + type leafref { + path "../state/mode-id"; + } + description + "Reference to linecard-descriptor/constrained-compatible-mode/state/mode-id."; + } + + uses linecards-constrained-compatible-modes-state; + + container optical-channel-config-value-constraints{ + description + "Set of constraints of the configuration attributes + of the optical-channel associated to the selected + operational-mode."; + + container state { + config false; + description + "Operational-mode explicit mode config value constrains state top + container."; + + uses operational-mode-descriptor-explicit-config-constraints-state; + } + } + } + } + } + + grouping linecard-compatible-transceivers { + description + "Linecard-transceiver compatibility matrix definition."; + + container compatible-transceivers { + config false; + description + "Indicates the set of transceiver component which are compatible + with the described linecard component."; + + list compatible-transceiver { + key "transceiver-descriptor-id"; + description + "List of transceiver descriptor ids."; + + leaf transceiver-descriptor-id { + type leafref { + path "../state/transceiver-descriptor-id"; + } + description + "Reference to transceiver-descriptor-id"; + } + container state { + description + "Static features or properties which characterize the + component descriptor."; + + leaf transceiver-descriptor-id { + type string; + description + "String rerference of the system vendor defined transciever + component descriptor id."; + } + } + uses constrained-compatible-modes; + } + } + } + + grouping linecard-descriptor-top { + description + "top-level linecard-descriptor definitions"; + + container linecard-descriptors { + config false; + description + "Indicates the terminal-device's list of compatible linecard + component and its associated modes and mode descriptors compatibility + matrix."; + + list linecard-descriptor { + key "component-descriptor-id"; + description + "List of linecard components supported by the terminal-device. + The operational mode provides a platform-defined summary + of information such as symbol rate, modulation, pulse + shaping, etc."; + + leaf component-descriptor-id { + type leafref { + path "../state/component-descriptor-id"; + } + description + "Reference to component-descriptor-id"; + } + + container state { + description + "Static features or properties which characterize the + component descriptor."; + + uses terminal-device-component-descriptor-state; + } + uses linecard-compatible-transceivers; } } } + uses transceiver-descriptor-top; + uses linecard-descriptor-top; uses operational-mode-top; } diff --git a/release/models/devices-manifest/openconfig-terminal-device-property-types.yang b/release/models/devices-manifest/openconfig-terminal-device-property-types.yang index f389b602c..b1fd0ef9b 100644 --- a/release/models/devices-manifest/openconfig-terminal-device-property-types.yang +++ b/release/models/devices-manifest/openconfig-terminal-device-property-types.yang @@ -29,10 +29,18 @@ module openconfig-terminal-device-property-types { definitions of the set of modulation format, FEC codes and adjustment granularity types use in the reffered model."; - oc-ext:openconfig-version "0.1.1"; + oc-ext:openconfig-version "0.2.0"; // Revisions + revision "2024-05-28" { + description "Comprehensive model update to undertake the limitations + of the first version of the model, such the introduction of modes + dependencies on hardware components and the interoperability information + between terminal devices, linecards, transceviers and modes."; + reference "0.2.0"; + } + revision "2024-05-15" { description "Fix yang namespace URI to openconfig.net."; @@ -62,6 +70,14 @@ module openconfig-terminal-device-property-types { reference "ITU-T G.698.2 (11/2018)"; } + typedef interoperability-modes-organization { + type identityref { + base INTEROPERABILITY_MODES_ORGANIZATION; + } + description + "Optical modulation format associated to the mode"; + } + typedef bit-rate { type identityref { base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE; @@ -123,6 +139,11 @@ module openconfig-terminal-device-property-types { "Definition of impairment type and unit used in penaty list"; } + identity INTEROPERABILITY_MODES_ORGANIZATION { + description + "Base identity for interoperability modes' defining organizations."; + } + identity SHAPING_TYPE { description "Base identity for pulse-shaping-type, to help characterize the @@ -260,7 +281,6 @@ module openconfig-terminal-device-property-types { no minimun spacing between channels is defined."; } - identity FEC { description "Forward Error Correction base identity."; @@ -279,6 +299,7 @@ module openconfig-terminal-device-property-types { "Generic FEC, Reed Solomon (255,239) coding schema, defined in ITU-T G.975 (10/2000)."; } + identity FEC_E { base FEC; description diff --git a/release/models/keychain/openconfig-keychain.yang b/release/models/keychain/openconfig-keychain.yang index adf35eaad..d073f13a1 100644 --- a/release/models/keychain/openconfig-keychain.yang +++ b/release/models/keychain/openconfig-keychain.yang @@ -33,7 +33,13 @@ module openconfig-keychain { which may be then referenced by other models such as routing protocol management."; - oc-ext:openconfig-version "0.4.0"; + oc-ext:openconfig-version "0.5.0"; + +revision "2024-05-30" { + description + "Update key-id to a union of hex-string-prefixed and uint64."; + reference "0.5.0"; + } revision "2022-11-05" { description @@ -194,13 +200,16 @@ module openconfig-keychain { leaf key-id { type union { - type oc-yang:hex-string { - length "1..64"; + type oc-yang:hex-string-prefixed { + length "3..66"; } type uint64; } description - "Identifier for the key within the keychain."; + "Identifier for the key within the keychain. Note that the + hex-string type is deprecated and will be removed from a future + version of this model. Implementations should transition to using + the hex-string-prefixed type."; } leaf secret-key { diff --git a/release/models/network-instance/openconfig-evpn.yang b/release/models/network-instance/openconfig-evpn.yang index 3b201e809..b9870e461 100644 --- a/release/models/network-instance/openconfig-evpn.yang +++ b/release/models/network-instance/openconfig-evpn.yang @@ -40,7 +40,14 @@ module openconfig-evpn { domains, this is not currently supported and requires an extension of the model."; - oc-ext:openconfig-version "0.8.0"; + oc-ext:openconfig-version "0.9.0"; + + revision "2024-05-14" { + description + "Add configuration of VPWS identifier + for EVPN Virtual Private Wire Services (RFC 8214)"; + reference "0.9.0"; + } revision "2024-04-03" { description @@ -555,6 +562,30 @@ module openconfig-evpn { draft-ietf-bess-rfc7432bis-05 BGP MPLS-Based Ethernet VPN"; } + + leaf local-vpws-service-id { + type uint32 { + range "1..16777215"; + } + description + "Indicates the local VPWS identifier assigned + to the Attachment Circuit (AC)."; + reference + "RFC8214 Virtual Private Wire Service Support + in Ethernet VPN."; + } + + leaf remote-vpws-service-id { + type uint32 { + range "1..16777215"; + } + description + "Indicates the remote VPWS identifier assigned + to the Attachment Circuit (AC)."; + reference + "RFC8214 Virtual Private Wire Service Support + in Ethernet VPN."; + } } grouping evpn-import-export-config { diff --git a/release/models/optical-transport/openconfig-optical-attenuator.yang b/release/models/optical-transport/openconfig-optical-attenuator.yang index 94b3d71bf..cffe56a5a 100644 --- a/release/models/optical-transport/openconfig-optical-attenuator.yang +++ b/release/models/optical-transport/openconfig-optical-attenuator.yang @@ -24,7 +24,13 @@ module openconfig-optical-attenuator { for variable optical attenuators, deployed as part of a transport line system."; - oc-ext:openconfig-version "0.1.0"; + oc-ext:openconfig-version "0.2.0"; + + revision "2024-07-10" { + description + "Adding SYSTEM_CONTROLLED mode with accompanying leaves"; + reference "0.2.0"; + } revision "2019-07-19" { description @@ -62,6 +68,12 @@ module openconfig-optical-attenuator { "Constant attenuation mode"; } + identity SYSTEM_CONTROLLED { + base OPTICAL_ATTENUATOR_MODE; + description + "System controls the attenuation value."; + } + // grouping statements @@ -112,6 +124,28 @@ module openconfig-optical-attenuator { maintain constant output power. When false, the attenuator is set max attenuation or blocked."; } + + leaf max-output-power { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The max power level allowed on the output of attenuator. This leaf + is optional when in SYSTEM_CONTROLLED mode."; + } + + leaf max-output-power-threshold { + type decimal64 { + fraction-digits 2; + } + units dB; + description + "If the system-derived-target-output-power is equal to or greater than + 'max-output-power + max-output-power-threshold', a device alarm will + be raised within /system/alarms. This leaf is only relevant when + in SYSTEM_CONTROLLED mode."; + } } grouping optical-attenuator-state { @@ -150,6 +184,15 @@ module openconfig-optical-attenuator { port. This leaf is only valid for ports of type EGRESS."; } + leaf system-derived-target-output-power { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The target output power as determined by the device. + This leaf is only relevant when in SYSTEM_CONTROLLED mode."; + } container actual-attenuation { description diff --git a/release/models/optical-transport/openconfig-terminal-device.yang b/release/models/optical-transport/openconfig-terminal-device.yang index c9289282a..8001cfb60 100644 --- a/release/models/optical-transport/openconfig-terminal-device.yang +++ b/release/models/optical-transport/openconfig-terminal-device.yang @@ -77,7 +77,14 @@ module openconfig-terminal-device { ports per linecard, separate linecards for client and line ports, etc.)."; - oc-ext:openconfig-version "1.9.1"; + oc-ext:openconfig-version "1.9.2"; + + revision "2024-06-12" { + description + "Add a state leaf to optical channels to reference their logical + channel assignment."; + reference "1.9.2"; + } revision "2023-12-13" { description @@ -1325,6 +1332,18 @@ module openconfig-terminal-device { to the same value across related optical channels."; } + leaf logical-channel-assignment { + type leafref { + path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" + + "/oc-opt-term:channel/oc-opt-term:index"; + } + description + "Reference to the logical channel that is directly assigned + to this optical channel if it is assigned to a logical channel. + The logical channel must also reference this optical channel at + logical-channel-assignments/assignment/state/optical-channel"; + } + uses oc-transceiver:optical-power-state; container chromatic-dispersion { diff --git a/release/models/policy/openconfig-policy-types.yang b/release/models/policy/openconfig-policy-types.yang index d33dfe28d..dea5bf0fa 100644 --- a/release/models/policy/openconfig-policy-types.yang +++ b/release/models/policy/openconfig-policy-types.yang @@ -10,6 +10,7 @@ module openconfig-policy-types { // import some basic types import ietf-yang-types { prefix yang; } import openconfig-extensions { prefix oc-ext; } + import openconfig-yang-types { prefix oc-yang; } // meta organization @@ -24,9 +25,15 @@ module openconfig-policy-types { policy. It can be imported by modules that contain protocol- specific policy conditions and actions."; - oc-ext:openconfig-version "3.2.3"; + oc-ext:openconfig-version "3.3.0"; - revision "2022-11-08" { + revision "2024-05-14" { + description + "Add hex-string-prefixed to typedef tag-type."; + reference "3.3.0"; + } + +revision "2022-11-08" { description "Add INSTALL_PROTOCOL_TYPE local."; reference "3.2.3"; @@ -165,14 +172,18 @@ module openconfig-policy-types { type union { type uint32; type yang:hex-string; + type oc-yang:hex-string-prefixed { + length "3..18"; + } } - description "type for expressing route tags on a local system, - including IS-IS and OSPF; may be expressed as either decimal or - hexidecimal integer"; + description + "Type for expressing route tags on a local system, including IS-IS + and OSPF; This may be expressed as either decimal or hexidecimal + integer."; reference - "RFC 2178 OSPF Version 2 + "RFC 2178 OSPF Version 2 specifies a 32 bit value RFC 5130 A Policy Control Mechanism in IS-IS Using - Administrative Tags"; + Administrative Tags specifies 32 bit and 64 bit values."; } identity INSTALL_PROTOCOL_TYPE { diff --git a/release/models/system/openconfig-messages.yang b/release/models/system/openconfig-messages.yang index 894704479..bfed7afd2 100644 --- a/release/models/system/openconfig-messages.yang +++ b/release/models/system/openconfig-messages.yang @@ -32,12 +32,18 @@ module openconfig-messages { /yang/system/openconfig-system.yang model, rather it provies the Operator with an alternative method of consuming messages."; - oc-ext:openconfig-version "0.0.1"; + oc-ext:openconfig-version "0.1.0"; + + revision 2024-07-15 { + description + "Remove unused top-level messages container."; + reference "0.1.0"; + } revision "2018-08-13" { - description - "Initial draft."; - reference "0.0.1"; + description + "Initial draft."; + reference "0.0.1"; } // identity statements @@ -217,5 +223,4 @@ module openconfig-messages { uses debug-messages-top; } } - uses messages-top; } diff --git a/release/models/system/openconfig-system.yang b/release/models/system/openconfig-system.yang index e63b5859c..3352fd221 100644 --- a/release/models/system/openconfig-system.yang +++ b/release/models/system/openconfig-system.yang @@ -47,7 +47,13 @@ module openconfig-system { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "2.0.0"; + oc-ext:openconfig-version "2.1.0"; + + revision "2024-07-15" { + description + "Added auth key reference in ntp server configuration."; + reference "2.1.0"; + } revision "2023-12-20" { description @@ -748,6 +754,14 @@ module openconfig-system { description "Source address to use on outgoing NTP packets"; } + + leaf key-id { + type leafref { + path "../../../../ntp-keys/ntp-key/key-id"; + } + description + "Reference to NTP authentication key for this server."; + } } grouping system-ntp-server-state { diff --git a/release/models/types/openconfig-yang-types.yang b/release/models/types/openconfig-yang-types.yang index c978cd049..dbbf88a6d 100644 --- a/release/models/types/openconfig-yang-types.yang +++ b/release/models/types/openconfig-yang-types.yang @@ -32,7 +32,13 @@ module openconfig-yang-types { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "0.3.1"; + oc-ext:openconfig-version "1.0.0"; + + revision "2024-05-30" { + description + "Add hex-string-prefixed typedef"; + reference "1.0.0"; + } revision "2021-07-14" { description @@ -109,12 +115,26 @@ module openconfig-yang-types { } typedef hex-string { + status deprecated; type string { pattern '[0-9a-fA-F]*'; oc-ext:posix-pattern '^[0-9a-fA-F]*$'; } description - "A string consisting of a hexadecimal characters."; + "A string consisting of a hexadecimal characters. This leaf is + deprecated and will removed in a future version of this model. + The type hex-string-prefixed should be used instead."; + } + + typedef hex-string-prefixed { + type string { + pattern '(0x)([0-9a-fA-F]{2})*'; + oc-ext:posix-pattern '^(0x)([0-9a-fA-F]{2})*$'; + length "3..max"; + } + description + "A string encoding a hexadecimal number with a prefix of '0x' followed + by a list of bytes."; } typedef counter32 { diff --git a/release/models/wifi/openconfig-wifi-phy.yang b/release/models/wifi/openconfig-wifi-phy.yang index 41d727f61..cf328248d 100644 --- a/release/models/wifi/openconfig-wifi-phy.yang +++ b/release/models/wifi/openconfig-wifi-phy.yang @@ -25,7 +25,13 @@ module openconfig-wifi-phy { description "Model for managing PHY layer configuration of Radio interfaces."; - oc-ext:openconfig-version "1.2.3"; + oc-ext:openconfig-version "1.2.4"; + + revision "2024-07-10" { + description + "Adding TRANSITION modes to PHY OPMODES"; + reference "1.2.4"; + } revision "2023-11-30" { description @@ -484,20 +490,40 @@ module openconfig-wifi-phy { description "Open authentication with Opportunistic Wireless Encryption."; } + enum ENHANCED_OPEN_TRANSITION { + description + "Open authentication with Opportunistic Wireless Encryption and + support for transition mode."; + } enum WPA3_SAE { description "WPA3-SAE using Simultaneous Authentication of Equals (SAE)."; } + enum WPA3_2_SAE_TRANSITION { + description + "WPA3-SAE using Simultaneous Authentication of Equals (SAE) and + WPA2-PSK AKMs."; + } enum WPA3_ENTERPRISE { description "WPA3-Enterprise with 802.1X SHA-256 authentication key management."; } + enum WPA3_2_ENTERPRISE_TRANSITION { + description + "WPA3-Enterprise with 802.1X SHA-256 authentication key + management."; + } enum WPA3_ENTERPRISE_192_BIT { description "WPA3-Enterprise with 802.1X SHA-384 authentication key management."; } + enum WPA3_ENTERPRISE_GCM_256_BIT { + description + "WPA3-Enterprise with 802.1X GCM256 authentication key + management."; + } } description "Operating mode of the BSS.";