public icon indicating copy to clipboard operation
public copied to clipboard

IEEE 802.1AG CFM connectivity management + ITU Y1731 Performance management

Open AnnamalaiRajeev opened this issue 1 year ago • 11 comments

Change Scope

  • 802.1AG CFM + Y1731 Performance Management profiles are being added.
  • Backward compatibility: True

Platform Implementations

// Vendor 1 CiscoXR:

  • https://www.cisco.com/c/en/us/support/docs/asynchronous-transfer-mode-atm/operation-administration-maintenance-oam/117457-technote-cfm-00.html
  • CiscoXR Yang - https://github.com/YangModels/yang/blob/main/vendor/cisco/xr/613/Cisco-IOS-XR-ethernet-cfm-cfg.yang

// Vendor 2 Juniper: https://www.juniper.net/documentation/us/en/software/junos/network-mgmt/topics/topic-map/cfm-configuring.html

// Vendor 3 Nokia:

  • https://infocenter.nokia.com/public/7705SAR234R1A/index.jsp?topic=%2Fcom.nokia.oam-guide%2Fitu-t_y-1731_pe-ai9o99jjwe.html

[Note: Please provide at least two references to implementations which are relevant to the model changes proposed. Each implementation should be from separate organizations.].

// references

  • IEEE - https://ieeexplore.ieee.org/document/4431836.
  • Metro Ethernet Forum - https://github.com/MEF-GIT/YANG-public
  • MEF yang - https://github.com/MEF-GIT/YANG-public/tree/master/src/model/standard

[Note: If the feature being proposed is new - and something that is being proposed as an enhancement to device functionality, it is sufficient to have reviewers from the producers of two different implementations].

AnnamalaiRajeev avatar Sep 17 '24 16:09 AnnamalaiRajeev

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

google-cla[bot] avatar Sep 17 '24 16:09 google-cla[bot]

// Tree view - Commit 4

anamalai@gokussg:~$ path/to/venv/bin/pyang -f tree -p /google/src/cloud/anamalai/yang_p/google3/third_party/openconfig/public/release/models/ /google/src/cloud/anamalai/yang_p/google3/third_party/openconfig/public/release/models/cfm/openconfig-cfm.yang
module: openconfig-cfm
  +--rw cfm
     +--rw domains
     |  +--rw maintenance-domain* [md-id]
     |     +--rw md-id                       -> ../config/md-id
     |     +--rw config
     |     |  +--rw md-id?           oc-cfm-types:name-key-type
     |     |  +--rw level?           uint8
     |     |  +--rw md-name-type?    enumeration
     |     |  +--rw none?            boolean
     |     |  +--rw dns_like_name?   string
     |     |  +--rw address          oc-yang:mac-address
     |     |  +--rw unsigned-int     uint16
     |     |  +--rw char-string?     string
     |     +--ro state
     |     |  +--ro md-id?           oc-cfm-types:name-key-type
     |     |  +--ro level?           uint8
     |     |  +--ro md-name-type?    enumeration
     |     |  +--ro none?            boolean
     |     |  +--ro dns_like_name?   string
     |     |  +--ro address          oc-yang:mac-address
     |     |  +--ro unsigned-int     uint16
     |     |  +--ro char-string?     string
     |     +--rw maintenance-associations
     |        +--rw maintenance-association* [ma-id]
     |           +--rw ma-id            -> ../config/ma-id
     |           +--rw config
     |           |  +--rw ma-id?            oc-cfm-types:name-key-type
     |           |  +--rw group-name?       string
     |           |  +--rw ma-name-type?     enumeration
     |           |  +--rw primary-vid       oc-vlan-types:vlan-id
     |           |  +--rw char-string       string
     |           |  +--rw unsigned-int16    uint16
     |           |  +--rw vpn-oui           uint32
     |           |  +--rw vpn-index         uint32
     |           |  +--rw ccm-interval?     enumeration
     |           |  +--rw loss-threshold?   uint16
     |           +--ro state
     |           |  +--ro ma-id?            oc-cfm-types:name-key-type
     |           |  +--ro group-name?       string
     |           |  +--ro ma-name-type?     enumeration
     |           |  +--ro primary-vid       oc-vlan-types:vlan-id
     |           |  +--ro char-string       string
     |           |  +--ro unsigned-int16    uint16
     |           |  +--ro vpn-oui           uint32
     |           |  +--ro vpn-index         uint32
     |           |  +--ro ccm-interval?     enumeration
     |           |  +--ro loss-threshold?   uint16
     |           +--rw mep-endpoints
     |              +--rw mep-endpoint* [local-mep-id]
     |                 +--rw local-mep-id            -> ../config/local-mep-id
     |                 +--rw config
     |                 |  +--rw ccm-enabled?                           boolean
     |                 |  +--rw lowest-priority-defect?                oc-cfm-types:lowest-alarm-priority-type
     |                 |  +--rw fng-alarm-time?                        uint16
     |                 |  +--rw fng-reset-time?                        uint16
     |                 |  +--rw local-mep-id?                          oc-cfm-types:mep-id-type
     |                 |  +--rw interface?                             -> /oc-if:interfaces/interface/name
     |                 |  +--rw include-mep-port-status-in-tlv?        boolean
     |                 |  +--rw include-mep-interface-status-in-tlv?   boolean
     |                 |  +--rw direction?                             enumeration
     |                 +--ro state
     |                 |  +--ro ccm-enabled?                           boolean
     |                 |  +--ro lowest-priority-defect?                oc-cfm-types:lowest-alarm-priority-type
     |                 |  +--ro fng-alarm-time?                        uint16
     |                 |  +--ro fng-reset-time?                        uint16
     |                 |  +--ro local-mep-id?                          oc-cfm-types:mep-id-type
     |                 |  +--ro interface?                             -> /oc-if:interfaces/interface/name
     |                 |  +--ro include-mep-port-status-in-tlv?        boolean
     |                 |  +--ro include-mep-interface-status-in-tlv?   boolean
     |                 |  +--ro direction?                             enumeration
     |                 |  +--ro oper-state?                            oc-cfm-types:operational-state-type
     |                 |  +--ro interface-state?                       oc-cfm-types:interface-status-type
     |                 |  +--ro fng-state?                             oc-cfm-types:fng-state-type
     |                 |  +--ro highest-priority-defect?               oc-cfm-types:highest-defect-priority-type
     |                 |  +--ro mep-defects*                           oc-cfm-types:mep-defects-type
     |                 |  +--ro present-rdi?                           boolean
     |                 |  +--ro config-errors-detected*                oc-cfm-types:config-error-type
     |                 |  +--ro error-ccm-last-failure?                binary
     |                 |  +--ro counters
     |                 |     +--ro mep-ccm-sequence-errors    oc-yang:counter64
     |                 |     +--ro mep-ccms-sent              oc-yang:counter64
     |                 +--rw pm-profiles
     |                 |  +--rw pm-profile* [profile-name]
     |                 |     +--rw profile-name    -> ../../../../../../../../../performance-measurement-profiles-global/performance-measurement-profile/config/profile-name
     |                 |     +--rw config
     |                 |     +--ro state
     |                 |        +--ro loss-measurement-state
     |                 |        |  +--ro far-end-min-frame-loss-ratio?        uint32
     |                 |        |  +--ro far-end-max-frame-loss-ratio?        uint32
     |                 |        |  +--ro far-end-average-frame-loss-ratio?    uint32
     |                 |        |  +--ro near-end-min-frame-loss-ratio?       uint32
     |                 |        |  +--ro near-end-max-frame-loss-ratio?       uint32
     |                 |        |  +--ro near-end-average-frame-loss-ratio?   uint32
     |                 |        |  +--ro counters
     |                 |        |     +--ro slm-sent?       oc-yang:counter64
     |                 |        |     +--ro slm-received?   oc-yang:counter64
     |                 |        |     +--ro slr-sent?       oc-yang:counter64
     |                 |        |     +--ro slr-received?   oc-yang:counter64
     |                 |        +--ro delay-measurement-state
     |                 |           +--ro frame-delay-two-way-min?       uint32
     |                 |           +--ro frame-delay-two-way-max?       uint32
     |                 |           +--ro frame-delay-two-way-average?   uint32
     |                 |           +--ro frame-delay-two-way-stddev?    uint32
     |                 |           +--ro counters
     |                 |              +--ro dmm-sent?       oc-yang:counter64
     |                 |              +--ro dmm-received?   oc-yang:counter64
     |                 |              +--ro dmr-sent?       oc-yang:counter64
     |                 |              +--ro dmr-received?   oc-yang:counter64
     |                 +--rw rdi
     |                 |  +--rw config
     |                 |  |  +--rw transmit-on-defect?   boolean
     |                 |  +--ro state
     |                 |     +--ro transmit-on-defect?   boolean
     |                 +--rw link-loss-forwarding
     |                 |  +--rw config
     |                 |  |  +--rw enable?   boolean
     |                 |  |  +--rw action?   enumeration
     |                 |  +--ro state
     |                 |     +--ro enable?   boolean
     |                 |     +--ro action?   enumeration
     |                 +--rw remote-meps
     |                    +--rw remote-mep* [id]
     |                       +--rw id        -> ../config/id
     |                       +--rw config
     |                       |  +--rw id?            oc-cfm-types:mep-id-type
     |                       |  +--rw mac-address?   oc-yang:mac-address
     |                       +--ro state
     |                          +--ro id?                        oc-cfm-types:mep-id-type
     |                          +--ro mac-address?               oc-yang:mac-address
     |                          +--ro oper-state?                oc-cfm-types:operational-state-type
     |                          +--ro interface-state?           oc-cfm-types:interface-status-type
     |                          +--ro fng-state?                 oc-cfm-types:fng-state-type
     |                          +--ro highest-priority-defect?   oc-cfm-types:highest-defect-priority-type
     |                          +--ro mep-defects*               oc-cfm-types:mep-defects-type
     |                          +--ro present-rdi?               boolean
     |                          +--ro config-errors-detected*    oc-cfm-types:config-error-type
     |                          +--ro error-ccm-last-failure?    binary
     |                          +--ro counters
     |                             +--ro mep-ccm-sequence-errors    oc-yang:counter64
     |                             +--ro mep-ccms-sent              oc-yang:counter64
     +--ro state
     |  +--ro local-meps?                    uint32
     |  +--ro local-meps-operational?        uint32
     |  +--ro cfm-domains?                   uint32
     |  +--ro cfm-services?                  uint32
     |  +--ro down-meps?                     uint32
     |  +--ro up-meps?                       uint32
     |  +--ro disabled-misconfigured?        uint32
     |  +--ro disabled-operational-errors?   uint32
     |  +--ro disabled-out-of-resources?     uint32
     |  +--ro peer-meps?                     uint32
     |  +--ro operational-peer-meps?         uint32
     |  +--ro peer-meps-with-defects?        uint32
     |  +--ro peer-meps-timed-out?           uint32
     +--rw performance-measurement-profiles-global
        +--rw performance-measurement-profile* [profile-name]
           +--rw profile-name    -> ../config/profile-name
           +--rw config
           |  +--rw profile-name?                    string
           |  +--rw enable?                          boolean
           |  +--rw measurement-type?                enumeration
           |  +--rw protocol-type?                   enumeration
           |  +--rw frame-size?                      uint16
           |  +--rw measurement-interval?            uint32
           |  +--rw repetition-period?               uint32
           |  +--rw intervals-archived?              uint16
           |  +--rw packets-per-meaurement-period?   uint16
           |  +--rw burst-interval?                  uint32
           |  +--rw packet-per-burst?                uint32
           +--ro state
              +--ro profile-name?                    string
              +--ro enable?                          boolean
              +--ro measurement-type?                enumeration
              +--ro protocol-type?                   enumeration
              +--ro frame-size?                      uint16
              +--ro measurement-interval?            uint32
              +--ro repetition-period?               uint32
              +--ro intervals-archived?              uint16
              +--ro packets-per-meaurement-period?   uint16
              +--ro burst-interval?                  uint32
              +--ro packet-per-burst?                uint32
              +--ro loss-measurement-state
              |  +--ro far-end-min-frame-loss-ratio?        uint32
              |  +--ro far-end-max-frame-loss-ratio?        uint32
              |  +--ro far-end-average-frame-loss-ratio?    uint32
              |  +--ro near-end-min-frame-loss-ratio?       uint32
              |  +--ro near-end-max-frame-loss-ratio?       uint32
              |  +--ro near-end-average-frame-loss-ratio?   uint32
              |  +--ro counters
              |     +--ro slm-sent?       oc-yang:counter64
              |     +--ro slm-received?   oc-yang:counter64
              |     +--ro slr-sent?       oc-yang:counter64
              |     +--ro slr-received?   oc-yang:counter64
              +--ro delay-measurement-state
                 +--ro frame-delay-two-way-min?       uint32
                 +--ro frame-delay-two-way-max?       uint32
                 +--ro frame-delay-two-way-average?   uint32
                 +--ro frame-delay-two-way-stddev?    uint32
                 +--ro counters
                    +--ro dmm-sent?       oc-yang:counter64
                    +--ro dmm-received?   oc-yang:counter64
                    +--ro dmr-sent?       oc-yang:counter64
                    +--ro dmr-received?   oc-yang:counter64

AnnamalaiRajeev avatar Sep 18 '24 14:09 AnnamalaiRajeev

/gcbrun

dplore avatar Sep 18 '24 20:09 dplore

No major YANG version changes in commit 40ceced39e92d2d80cca62676b85dd4a298f2d61

OpenConfigBot avatar Sep 18 '24 20:09 OpenConfigBot

Tree view Commit 7

module: openconfig-cfm
  +--rw cfm
     +--rw domains
     |  +--rw maintenance-domain* [md-id]
     |     +--rw md-id                       -> ../config/md-id
     |     +--rw config
     |     |  +--rw md-id?           oc-cfm-types:name-key-type
     |     |  +--rw level?           uint8
     |     |  +--rw md-name-type?    enumeration
     |     |  +--rw none?            boolean
     |     |  +--rw dns-like-name?   string
     |     |  +--rw address          oc-yang:mac-address
     |     |  +--rw unsigned-int     uint16
     |     |  +--rw char-string?     string
     |     +--ro state
     |     |  +--ro md-id?           oc-cfm-types:name-key-type
     |     |  +--ro level?           uint8
     |     |  +--ro md-name-type?    enumeration
     |     |  +--ro none?            boolean
     |     |  +--ro dns-like-name?   string
     |     |  +--ro address          oc-yang:mac-address
     |     |  +--ro unsigned-int     uint16
     |     |  +--ro char-string?     string
     |     +--rw maintenance-associations
     |        +--rw maintenance-association* [ma-id]
     |           +--rw ma-id            -> ../config/ma-id
     |           +--rw config
     |           |  +--rw ma-id?            oc-cfm-types:name-key-type
     |           |  +--rw group-name?       string
     |           |  +--rw ma-name-type?     enumeration
     |           |  +--rw primary-vid       oc-vlan-types:vlan-id
     |           |  +--rw char-string       string
     |           |  +--rw unsigned-int16    uint16
     |           |  +--rw vpn-oui           uint32
     |           |  +--rw vpn-index         uint32
     |           |  +--rw ccm-interval?     enumeration
     |           |  +--rw loss-threshold?   uint16
     |           +--ro state
     |           |  +--ro ma-id?            oc-cfm-types:name-key-type
     |           |  +--ro group-name?       string
     |           |  +--ro ma-name-type?     enumeration
     |           |  +--ro primary-vid       oc-vlan-types:vlan-id
     |           |  +--ro char-string       string
     |           |  +--ro unsigned-int16    uint16
     |           |  +--ro vpn-oui           uint32
     |           |  +--ro vpn-index         uint32
     |           |  +--ro ccm-interval?     enumeration
     |           |  +--ro loss-threshold?   uint16
     |           +--rw mep-endpoints
     |              +--rw mep-endpoint* [local-mep-id]
     |                 +--rw local-mep-id            -> ../config/local-mep-id
     |                 +--rw config
     |                 |  +--rw ccm-enabled?                           boolean
     |                 |  +--rw lowest-priority-defect?                oc-cfm-types:lowest-alarm-priority-type
     |                 |  +--rw fng-alarm-time?                        uint16
     |                 |  +--rw fng-reset-time?                        uint16
     |                 |  +--rw local-mep-id?                          oc-cfm-types:mep-id-type
     |                 |  +--rw interface?                             -> /oc-if:interfaces/interface/name
     |                 |  +--rw include-mep-port-status-in-tlv?        boolean
     |                 |  +--rw include-mep-interface-status-in-tlv?   boolean
     |                 |  +--rw direction?                             enumeration
     |                 +--ro state
     |                 |  +--ro ccm-enabled?                           boolean
     |                 |  +--ro lowest-priority-defect?                oc-cfm-types:lowest-alarm-priority-type
     |                 |  +--ro fng-alarm-time?                        uint16
     |                 |  +--ro fng-reset-time?                        uint16
     |                 |  +--ro local-mep-id?                          oc-cfm-types:mep-id-type
     |                 |  +--ro interface?                             -> /oc-if:interfaces/interface/name
     |                 |  +--ro include-mep-port-status-in-tlv?        boolean
     |                 |  +--ro include-mep-interface-status-in-tlv?   boolean
     |                 |  +--ro direction?                             enumeration
     |                 |  +--ro oper-state?                            oc-cfm-types:operational-state-type
     |                 |  +--ro interface-state?                       oc-cfm-types:interface-status-type
     |                 |  +--ro fng-state?                             oc-cfm-types:fng-state-type
     |                 |  +--ro highest-priority-defect?               oc-cfm-types:highest-defect-priority-type
     |                 |  +--ro mep-defects*                           oc-cfm-types:mep-defects-type
     |                 |  +--ro present-rdi?                           boolean
     |                 |  +--ro config-errors-detected*                oc-cfm-types:config-error-type
     |                 |  +--ro error-ccm-last-failure?                binary
     |                 |  +--ro counters
     |                 |     +--ro mep-ccm-sequence-errors    oc-yang:counter64
     |                 |     +--ro mep-ccms-sent              oc-yang:counter64
     |                 +--rw pm-profiles
     |                 |  +--rw pm-profile* [profile-name]
     |                 |     +--rw profile-name    -> ../../../../../../../../../performance-measurement-profiles-global/performance-measurement-profile/config/profile-name
     |                 |     +--rw config
     |                 |     +--ro state
     |                 |        +--ro loss-measurement-state
     |                 |        |  +--ro far-end-min-frame-loss-ratio?        uint32
     |                 |        |  +--ro far-end-max-frame-loss-ratio?        uint32
     |                 |        |  +--ro far-end-average-frame-loss-ratio?    uint32
     |                 |        |  +--ro near-end-min-frame-loss-ratio?       uint32
     |                 |        |  +--ro near-end-max-frame-loss-ratio?       uint32
     |                 |        |  +--ro near-end-average-frame-loss-ratio?   uint32
     |                 |        |  +--ro counters
     |                 |        |     +--ro slm-sent?       oc-yang:counter64
     |                 |        |     +--ro slm-received?   oc-yang:counter64
     |                 |        |     +--ro slr-sent?       oc-yang:counter64
     |                 |        |     +--ro slr-received?   oc-yang:counter64
     |                 |        +--ro delay-measurement-state
     |                 |           +--ro frame-delay-two-way-min?       uint32
     |                 |           +--ro frame-delay-two-way-max?       uint32
     |                 |           +--ro frame-delay-two-way-average?   uint32
     |                 |           +--ro frame-delay-two-way-stddev?    uint32
     |                 |           +--ro counters
     |                 |              +--ro dmm-sent?       oc-yang:counter64
     |                 |              +--ro dmm-received?   oc-yang:counter64
     |                 |              +--ro dmr-sent?       oc-yang:counter64
     |                 |              +--ro dmr-received?   oc-yang:counter64
     |                 +--rw rdi
     |                 |  +--rw config
     |                 |  |  +--rw transmit-on-defect?   boolean
     |                 |  +--ro state
     |                 |     +--ro transmit-on-defect?   boolean
     |                 +--rw link-loss-forwarding
     |                 |  +--rw config
     |                 |  |  +--rw enable?          boolean
     |                 |  |  +--rw damping-timer?   uint64
     |                 |  |  +--rw action?          enumeration
     |                 |  +--ro state
     |                 |     +--ro enable?          boolean
     |                 |     +--ro damping-timer?   uint64
     |                 |     +--ro action?          enumeration
     |                 +--rw remote-meps
     |                    +--rw remote-mep* [id]
     |                       +--rw id        -> ../config/id
     |                       +--rw config
     |                       |  +--rw id?            oc-cfm-types:mep-id-type
     |                       |  +--rw mac-address?   oc-yang:mac-address
     |                       +--ro state
     |                          +--ro id?                        oc-cfm-types:mep-id-type
     |                          +--ro mac-address?               oc-yang:mac-address
     |                          +--ro oper-state?                oc-cfm-types:operational-state-type
     |                          +--ro interface-state?           oc-cfm-types:interface-status-type
     |                          +--ro fng-state?                 oc-cfm-types:fng-state-type
     |                          +--ro highest-priority-defect?   oc-cfm-types:highest-defect-priority-type
     |                          +--ro mep-defects*               oc-cfm-types:mep-defects-type
     |                          +--ro present-rdi?               boolean
     |                          +--ro config-errors-detected*    oc-cfm-types:config-error-type
     |                          +--ro error-ccm-last-failure?    binary
     |                          +--ro counters
     |                             +--ro mep-ccm-sequence-errors    oc-yang:counter64
     |                             +--ro mep-ccms-sent              oc-yang:counter64
     +--ro state
     |  +--ro local-meps?                    uint32
     |  +--ro local-meps-operational?        uint32
     |  +--ro cfm-domains?                   uint32
     |  +--ro cfm-services?                  uint32
     |  +--ro down-meps?                     uint32
     |  +--ro up-meps?                       uint32
     |  +--ro disabled-misconfigured?        uint32
     |  +--ro disabled-operational-errors?   uint32
     |  +--ro disabled-out-of-resources?     uint32
     |  +--ro peer-meps?                     uint32
     |  +--ro operational-peer-meps?         uint32
     |  +--ro peer-meps-with-defects?        uint32
     |  +--ro peer-meps-timed-out?           uint32
     +--rw performance-measurement-profiles-global
        +--rw performance-measurement-profile* [profile-name]
           +--rw profile-name    -> ../config/profile-name
           +--rw config
           |  +--rw profile-name?                    string
           |  +--rw enable?                          boolean
           |  +--rw measurement-type?                enumeration
           |  +--rw protocol-type?                   enumeration
           |  +--rw frame-size?                      uint16
           |  +--rw measurement-interval?            uint32
           |  +--rw repetition-period?               uint32
           |  +--rw intervals-archived?              uint16
           |  +--rw packets-per-meaurement-period?   uint16
           |  +--rw burst-interval?                  uint32
           |  +--rw packet-per-burst?                uint32
           +--ro state
              +--ro profile-name?                    string
              +--ro enable?                          boolean
              +--ro measurement-type?                enumeration
              +--ro protocol-type?                   enumeration
              +--ro frame-size?                      uint16
              +--ro measurement-interval?            uint32
              +--ro repetition-period?               uint32
              +--ro intervals-archived?              uint16
              +--ro packets-per-meaurement-period?   uint16
              +--ro burst-interval?                  uint32
              +--ro packet-per-burst?                uint32
              +--ro loss-measurement-state
              |  +--ro far-end-min-frame-loss-ratio?        uint32
              |  +--ro far-end-max-frame-loss-ratio?        uint32
              |  +--ro far-end-average-frame-loss-ratio?    uint32
              |  +--ro near-end-min-frame-loss-ratio?       uint32
              |  +--ro near-end-max-frame-loss-ratio?       uint32
              |  +--ro near-end-average-frame-loss-ratio?   uint32
              |  +--ro counters
              |     +--ro slm-sent?       oc-yang:counter64
              |     +--ro slm-received?   oc-yang:counter64
              |     +--ro slr-sent?       oc-yang:counter64
              |     +--ro slr-received?   oc-yang:counter64
              +--ro delay-measurement-state
                 +--ro frame-delay-two-way-min?       uint32
                 +--ro frame-delay-two-way-max?       uint32
                 +--ro frame-delay-two-way-average?   uint32
                 +--ro frame-delay-two-way-stddev?    uint32
                 +--ro counters
                    +--ro dmm-sent?       oc-yang:counter64
                    +--ro dmm-received?   oc-yang:counter64
                    +--ro dmr-sent?       oc-yang:counter64
                    +--ro dmr-received?   oc-yang:counter64

AnnamalaiRajeev avatar Sep 19 '24 12:09 AnnamalaiRajeev

Good job @AnnamalaiRajeev. The only thing I couldn't map from our current configs is the option to enable automatic discovery of a MEP. Is there any other way to represent this in the model? Thanks

Juniper description: "With automatic discovery a MEP is enabled to accept continuity check messages (CCMs) from all remote MEPs of the same maintenance association. If automatic discovery is not enabled, the remote MEPs must be configured. If the remote MEP is not configured, the CCMs from the remote MEP are treated as errors."

nleiva avatar Sep 24 '24 14:09 nleiva

/gcbrun

dplore avatar Sep 24 '24 16:09 dplore

/gcbrun

dplore avatar Sep 25 '24 19:09 dplore

AI:

  • add OAM file and have cfm augmented

AnnamalaiRajeev avatar Oct 08 '24 16:10 AnnamalaiRajeev

/gcbrun

dplore avatar Oct 18 '24 22:10 dplore

/gcbrun

dplore avatar Oct 25 '24 01:10 dplore

Last call for comments. This will merge on Nov 19, 2024

dplore avatar Nov 12 '24 05:11 dplore

@AnnamalaiRajeev follow up comment from last week's operator review:

Please add a leaf for MEP auto-discovery. Because there is not a standard for the default value, then don’t specify a default in yang, rather users must configure explicitly true or false. If unset, then it’s implementation specific.

dplore avatar Nov 12 '24 16:11 dplore

@AnnamalaiRajeev follow up comment from last week's operator review:

Please add a leaf for MEP auto-discovery. Because there is not a standard for the default value, then don’t specify a default in yang, rather users must configure explicitly true or false. If unset, then it’s implementation specific.

This is done. ptal thx

AnnamalaiRajeev avatar Nov 12 '24 16:11 AnnamalaiRajeev

Commit 20 . # last call

/anamalai/oam/google3/third_party/openconfig/public/release/models/oam/openconfig-oam-cfm.yang
module: openconfig-oam-cfm

  augment /oc-oam:oam:
    +--rw cfm
       +--rw domains
       |  +--rw maintenance-domain* [md-id]
       |     +--rw md-id                       -> ../config/md-id
       |     +--rw config
       |     |  +--rw md-id?           oc-cfm-types:name-key-type
       |     |  +--rw level?           uint8
       |     |  +--rw md-name-type?    enumeration
       |     |  +--rw none?            boolean
       |     |  +--rw dns-like-name?   string
       |     |  +--rw address          oc-yang:mac-address
       |     |  +--rw unsigned-int     uint16
       |     |  +--rw char-string?     string
       |     +--ro state
       |     |  +--ro md-id?           oc-cfm-types:name-key-type
       |     |  +--ro level?           uint8
       |     |  +--ro md-name-type?    enumeration
       |     |  +--ro none?            boolean
       |     |  +--ro dns-like-name?   string
       |     |  +--ro address          oc-yang:mac-address
       |     |  +--ro unsigned-int     uint16
       |     |  +--ro char-string?     string
       |     +--rw maintenance-associations
       |        +--rw maintenance-association* [ma-id]
       |           +--rw ma-id            -> ../config/ma-id
       |           +--rw config
       |           |  +--rw ma-id?            oc-cfm-types:name-key-type
       |           |  +--rw group-name?       string
       |           |  +--rw ma-name-type?     enumeration
       |           |  +--rw primary-vid       oc-vlan-types:vlan-id
       |           |  +--rw char-string       string
       |           |  +--rw unsigned-int16    uint16
       |           |  +--rw vpn-oui           uint32
       |           |  +--rw vpn-index         uint32
       |           |  +--rw ccm-interval?     enumeration
       |           |  +--rw loss-threshold?   uint16
       |           +--ro state
       |           |  +--ro ma-id?            oc-cfm-types:name-key-type
       |           |  +--ro group-name?       string
       |           |  +--ro ma-name-type?     enumeration
       |           |  +--ro primary-vid       oc-vlan-types:vlan-id
       |           |  +--ro char-string       string
       |           |  +--ro unsigned-int16    uint16
       |           |  +--ro vpn-oui           uint32
       |           |  +--ro vpn-index         uint32
       |           |  +--ro ccm-interval?     enumeration
       |           |  +--ro loss-threshold?   uint16
       |           +--rw mep-endpoints
       |              +--rw mep-endpoint* [local-mep-id]
       |                 +--rw local-mep-id            -> ../config/local-mep-id
       |                 +--rw config
       |                 |  +--rw ccm-enabled?                           boolean
       |                 |  +--rw lowest-priority-defect?                oc-cfm-types:lowest-alarm-priority-type
       |                 |  +--rw fng-alarm-time?                        uint16
       |                 |  +--rw fng-reset-time?                        uint16
       |                 |  +--rw local-mep-id?                          oc-cfm-types:mep-id-type
       |                 |  +--rw interface?                             -> /oc-if:interfaces/interface/name
       |                 |  +--rw include-mep-port-status-in-tlv?        boolean
       |                 |  +--rw include-mep-interface-status-in-tlv?   boolean
       |                 |  +--rw direction?                             enumeration
       |                 |  +--rw auto-discovery?                        boolean
       |                 +--ro state
       |                 |  +--ro ccm-enabled?                           boolean
       |                 |  +--ro lowest-priority-defect?                oc-cfm-types:lowest-alarm-priority-type
       |                 |  +--ro fng-alarm-time?                        uint16
       |                 |  +--ro fng-reset-time?                        uint16
       |                 |  +--ro local-mep-id?                          oc-cfm-types:mep-id-type
       |                 |  +--ro interface?                             -> /oc-if:interfaces/interface/name
       |                 |  +--ro include-mep-port-status-in-tlv?        boolean
       |                 |  +--ro include-mep-interface-status-in-tlv?   boolean
       |                 |  +--ro direction?                             enumeration
       |                 |  +--ro auto-discovery?                        boolean
       |                 |  +--ro oper-state?                            oc-cfm-types:operational-state-type
       |                 |  +--ro interface-state?                       oc-cfm-types:interface-status-type
       |                 |  +--ro fng-state?                             oc-cfm-types:fng-state-type
       |                 |  +--ro highest-priority-defect?               oc-cfm-types:highest-defect-priority-type
       |                 |  +--ro mep-defects*                           oc-cfm-types:mep-defects-type
       |                 |  +--ro present-rdi?                           boolean
       |                 |  +--ro config-errors-detected*                oc-cfm-types:config-error-type
       |                 |  +--ro error-ccm-last-failure?                binary
       |                 |  +--ro counters
       |                 |     +--ro mep-ccm-sequence-errors    oc-yang:counter64
       |                 |     +--ro mep-ccms-sent              oc-yang:counter64
       |                 +--rw pm-profiles
       |                 |  +--rw pm-profile* [profile-name]
       |                 |     +--rw profile-name    -> ../config/profile-name
       |                 |     +--rw config
       |                 |     |  +--rw profile-name?   string
       |                 |     +--ro state
       |                 |        +--ro profile-name?                    string
       |                 |        +--ro enable?                          boolean
       |                 |        +--ro measurement-type?                enumeration
       |                 |        +--ro protocol-type?                   enumeration
       |                 |        +--ro frame-size?                      uint16
       |                 |        +--ro measurement-interval?            uint32
       |                 |        +--ro repetition-period?               uint32
       |                 |        +--ro intervals-archived?              uint16
       |                 |        +--ro packets-per-meaurement-period?   uint16
       |                 |        +--ro burst-interval?                  uint32
       |                 |        +--ro packet-per-burst?                uint32
       |                 |        +--ro loss-measurement-state
       |                 |        |  +--ro far-end-min-frame-loss-ratio?        uint32
       |                 |        |  +--ro far-end-max-frame-loss-ratio?        uint32
       |                 |        |  +--ro far-end-average-frame-loss-ratio?    uint32
       |                 |        |  +--ro near-end-min-frame-loss-ratio?       uint32
       |                 |        |  +--ro near-end-max-frame-loss-ratio?       uint32
       |                 |        |  +--ro near-end-average-frame-loss-ratio?   uint32
       |                 |        |  +--ro counters
       |                 |        |     +--ro slm-sent?       oc-yang:counter64
       |                 |        |     +--ro slm-received?   oc-yang:counter64
       |                 |        |     +--ro slr-sent?       oc-yang:counter64
       |                 |        |     +--ro slr-received?   oc-yang:counter64
       |                 |        +--ro delay-measurement-state
       |                 |           +--ro frame-delay-two-way-min?       uint32
       |                 |           +--ro frame-delay-two-way-max?       uint32
       |                 |           +--ro frame-delay-two-way-average?   uint32
       |                 |           +--ro frame-delay-two-way-stddev?    uint32
       |                 |           +--ro counters
       |                 |              +--ro dmm-sent?       oc-yang:counter64
       |                 |              +--ro dmm-received?   oc-yang:counter64
       |                 |              +--ro dmr-sent?       oc-yang:counter64
       |                 |              +--ro dmr-received?   oc-yang:counter64
       |                 +--rw rdi
       |                 |  +--rw config
       |                 |  |  +--rw transmit-on-defect?   boolean
       |                 |  +--ro state
       |                 |     +--ro transmit-on-defect?   boolean
       |                 +--rw link-loss-forwarding
       |                 |  +--rw config
       |                 |  |  +--rw enable?          boolean
       |                 |  |  +--rw damping-timer?   uint64
       |                 |  |  +--rw action?          enumeration
       |                 |  +--ro state
       |                 |     +--ro enable?          boolean
       |                 |     +--ro damping-timer?   uint64
       |                 |     +--ro action?          enumeration
       |                 +--rw remote-meps
       |                    +--rw remote-mep* [id]
       |                       +--rw id        -> ../config/id
       |                       +--rw config
       |                       |  +--rw id?            oc-cfm-types:mep-id-type
       |                       |  +--rw mac-address?   oc-yang:mac-address
       |                       +--ro state
       |                          +--ro id?                        oc-cfm-types:mep-id-type
       |                          +--ro mac-address?               oc-yang:mac-address
       |                          +--ro oper-state?                oc-cfm-types:operational-state-type
       |                          +--ro interface-state?           oc-cfm-types:interface-status-type
       |                          +--ro fng-state?                 oc-cfm-types:fng-state-type
       |                          +--ro highest-priority-defect?   oc-cfm-types:highest-defect-priority-type
       |                          +--ro mep-defects*               oc-cfm-types:mep-defects-type
       |                          +--ro present-rdi?               boolean
       |                          +--ro config-errors-detected*    oc-cfm-types:config-error-type
       |                          +--ro error-ccm-last-failure?    binary
       |                          +--ro counters
       |                             +--ro mep-ccm-sequence-errors    oc-yang:counter64
       |                             +--ro mep-ccms-sent              oc-yang:counter64
       +--ro state
       |  +--ro local-meps?                    uint32
       |  +--ro local-meps-operational?        uint32
       |  +--ro cfm-domains?                   uint32
       |  +--ro cfm-services?                  uint32
       |  +--ro down-meps?                     uint32
       |  +--ro up-meps?                       uint32
       |  +--ro disabled-misconfigured?        uint32
       |  +--ro disabled-operational-errors?   uint32
       |  +--ro disabled-out-of-resources?     uint32
       |  +--ro peer-meps?                     uint32
       |  +--ro operational-peer-meps?         uint32
       |  +--ro peer-meps-with-defects?        uint32
       |  +--ro peer-meps-timed-out?           uint32
       +--rw performance-measurement-profiles-global
          +--rw performance-measurement-profile* [profile-name]
             +--rw profile-name    -> ../config/profile-name
             +--rw config
             |  +--rw profile-name?                    string
             |  +--rw enable?                          boolean
             |  +--rw measurement-type?                enumeration
             |  +--rw protocol-type?                   enumeration
             |  +--rw frame-size?                      uint16
             |  +--rw measurement-interval?            uint32
             |  +--rw repetition-period?               uint32
             |  +--rw intervals-archived?              uint16
             |  +--rw packets-per-meaurement-period?   uint16
             |  +--rw burst-interval?                  uint32
             |  +--rw packet-per-burst?                uint32
             +--ro state
                +--ro profile-name?                    string
                +--ro enable?                          boolean
                +--ro measurement-type?                enumeration
                +--ro protocol-type?                   enumeration
                +--ro frame-size?                      uint16
                +--ro measurement-interval?            uint32
                +--ro repetition-period?               uint32
                +--ro intervals-archived?              uint16
                +--ro packets-per-meaurement-period?   uint16
                +--ro burst-interval?                  uint32
                +--ro packet-per-burst?                uint32
                +--ro loss-measurement-state
                |  +--ro far-end-min-frame-loss-ratio?        uint32
                |  +--ro far-end-max-frame-loss-ratio?        uint32
                |  +--ro far-end-average-frame-loss-ratio?    uint32
                |  +--ro near-end-min-frame-loss-ratio?       uint32
                |  +--ro near-end-max-frame-loss-ratio?       uint32
                |  +--ro near-end-average-frame-loss-ratio?   uint32
                |  +--ro counters
                |     +--ro slm-sent?       oc-yang:counter64
                |     +--ro slm-received?   oc-yang:counter64
                |     +--ro slr-sent?       oc-yang:counter64
                |     +--ro slr-received?   oc-yang:counter64
                +--ro delay-measurement-state
                   +--ro frame-delay-two-way-min?       uint32
                   +--ro frame-delay-two-way-max?       uint32
                   +--ro frame-delay-two-way-average?   uint32
                   +--ro frame-delay-two-way-stddev?    uint32
                   +--ro counters
                      +--ro dmm-sent?       oc-yang:counter64
                      +--ro dmm-received?   oc-yang:counter64
                      +--ro dmr-sent?       oc-yang:counter64
                      +--ro dmr-received?   oc-yang:counter64

AnnamalaiRajeev avatar Nov 12 '24 17:11 AnnamalaiRajeev

/gcbrun

dplore avatar Nov 13 '24 08:11 dplore

/gcbrun

dplore avatar Nov 20 '24 23:11 dplore

/gcbrun

dplore avatar Nov 21 '24 01:11 dplore