Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
311 changes: 199 additions & 112 deletions release/models/oam/openconfig-oam-cfm.yang
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@ module openconfig-oam-cfm {
maintenance domains, associations, maintenance endpoints,
performance management policies and remote defect handling features";

oc-ext:openconfig-version "0.1.0";
oc-ext:openconfig-version "0.2.0";

revision "2026-04-23" {
description
"Add SLM model and move pm-profile to remote MEP level";
reference "0.2.0";
}

revision "2024-09-11" {
description
Expand Down Expand Up @@ -139,9 +145,13 @@ module openconfig-oam-cfm {
} //end container mep state

container pm-profiles {
status deprecated;
description
"This container includes configuration and state objects for the Frame Loss
Measurement & Delay Measurement functions defined in [Y.1731] and [MEF SOAM PM IA].";
Measurement & Delay Measurement functions defined in [Y.1731] and [MEF SOAM PM IA].

This container has been deprecated in favor of keeping pm-profiles at the remote
mep level.";

list pm-profile {
description " Measurement profile name and state.";
Expand Down Expand Up @@ -228,6 +238,40 @@ module openconfig-oam-cfm {
uses remote-mep-config;
uses mep-oper-states;
}

container pm-profiles {
description
"Performance measurement profiles associated with this remote MEP.";

list pm-profile {
description "Measurement profile name and state.";
key "profile-name";

leaf profile-name {
description "A unique profile name identifying the profile";
type leafref {
path "../config/profile-name";
}
}

container config {
description "Associated performance measurement profile.";
leaf profile-name {
description "A unique profile name identifying the profile";
type string;
}
}
Comment on lines +257 to +263
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The config container in the pm-profile list manually defines profile-name instead of using the performance-measurement-config grouping. This is inconsistent with the state container (lines 265-270) and prevents the configuration of other profile parameters (e.g., enable, measurement-type) at the remote MEP level. Following the OpenConfig style, the config container should use the common configuration grouping.

                                container config {
                                  description "Associated performance measurement profile.";
                                  uses performance-measurement-config;
                                }

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I simply moved over the existing container from local-mep to remote-mep level.


container state {
description "Operational data for performance measurement.";
config false;
uses performance-measurement-config;
uses performance-measurement-state;
}

uses synthetic-loss-measurement-state;
Comment on lines +265 to +272
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The synthetic-loss-measurement-state grouping is used outside of the state container. In OpenConfig, all operational state data should be nested within the state container to maintain the configuration/state separation pattern. This also applies to the usage at line 321.

Suggested change
container state {
description "Operational data for performance measurement.";
config false;
uses performance-measurement-config;
uses performance-measurement-state;
}
uses synthetic-loss-measurement-state;
container state {
description "Operational data for performance measurement.";
config false;
uses performance-measurement-config;
uses performance-measurement-state;
uses synthetic-loss-measurement-state;
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was done intentionally to avoid the /state/.../state path.

}
}
} // end list remote-mep
} // end container remote-meps
} // end list mep-endpoint
Expand Down Expand Up @@ -273,6 +317,8 @@ module openconfig-oam-cfm {
uses performance-measurement-config;
uses performance-measurement-state;
}

uses synthetic-loss-measurement-state;
}
}
} // End container cfm
Expand Down Expand Up @@ -937,61 +983,56 @@ module openconfig-oam-cfm {
}
}

grouping loss-measurement-state {
description "Loss measurement state grouping.";

container loss-measurement-state {
description "Loss measurement state container.";
grouping loss-measurement-common-stats {
description "Shared loss measurement grouping.";

leaf far-end-min-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the minimum one-way availability flr in the
egress direction (source --> destination),
from among the set of availability flr values
calculated by the MEP in this Measurement Interval. There is
one availability flr value for each 'delta_t' time period
within the Measurement Interval, as specified in MEF 10.2.1.
leaf far-end-min-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the minimum one-way availability flr in the
egress direction (source --> destination),
from among the set of availability flr values
calculated by the MEP in this Measurement Interval. There is
one availability flr value for each 'delta_t' time period
within the Measurement Interval, as specified in MEF 10.2.1.

The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).
The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsForwardMinFlr";
}
leaf far-end-max-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the maximum one-way availability flr in the
forward direction (source --> destination),
from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
There is one availability flr value for each 'delta_t' time
period within the Measurement Interval, as specified in MEF
10.2.1.

The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsForwardMaxFlr";
Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsForwardMinFlr";
}
leaf far-end-max-frame-loss-ratio {
type uint32 {
range "0..100000";
}
leaf far-end-average-frame-loss-ratio {
units milli-percent;
description
"This object contains the maximum one-way availability flr in the
forward direction (source --> destination),
from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
There is one availability flr value for each 'delta_t' time
period within the Measurement Interval, as specified in MEF
10.2.1.

type uint32 {
range "0..100000";
}
units milli-percent;
The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

description
Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsForwardMaxFlr";
}
leaf far-end-average-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the average one-way availability flr in the
forward direction, from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
Expand All @@ -1003,62 +1044,58 @@ module openconfig-oam-cfm {
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsForwardAvgFlr";
}

leaf near-end-min-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the minimum one-way availability flr in the
backward direction (destination --> source),
from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
There is one availability flr value for each 'delta_t' time
period within the Measurement Interval, as specified in MEF
10.2.1.

The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsBackwardMinFlr";
}
leaf near-end-min-frame-loss-ratio {
type uint32 {
range "0..100000";
}
leaf near-end-max-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the maximum one-way availability flr in the
backward direction, from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
There is one availability flr value for each 'delta_t' time
period within the Measurement Interval, as specified in MEF
10.2.1.

The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).
Service OAM Performance Monitoring YANG Module
MEF 39

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsBackwardMaxFlr";
}
units milli-percent;
description
"This object contains the minimum one-way availability flr in the
backward direction (destination --> source),
from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
There is one availability flr value for each 'delta_t' time
period within the Measurement Interval, as specified in MEF
10.2.1.

leaf near-end-average-frame-loss-ratio {
The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

type uint32 {
range "0..100000";
}
units milli-percent;
Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsBackwardMinFlr";
}
leaf near-end-max-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the maximum one-way availability flr in the
backward direction, from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
There is one availability flr value for each 'delta_t' time
period within the Measurement Interval, as specified in MEF
10.2.1.

description
The flr value is a ratio that is expressed as a percent with a
value of 0 (ratio 0.00) through 100000 (ratio 1.00).
Service OAM Performance Monitoring YANG Module
MEF 39

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsBackwardMaxFlr";
}
leaf near-end-average-frame-loss-ratio {
type uint32 {
range "0..100000";
}
units milli-percent;
description
"This object contains the average one-way availability flr in the
backward direction, from among the set of availability flr
values calculated by the MEP in this Measurement Interval.
Expand All @@ -1070,17 +1107,9 @@ module openconfig-oam-cfm {
value of 0 (ratio 0.00) through 100000 (ratio 1.00).

Units are in milli-percent, where 1 indicates 0.001 percent.";
reference
reference
"MEF-SOAM-PM-MIB.mefSoamLmCurrentAvailStatsBackwardAvgFlr";
}

uses loss-measurement-counters-state;
}
}

grouping loss-measurement-counters-state {
description "Loss-measurement-related measurement counters state.";

container counters {
description
"A collection of loss-measurement-related statistics objects.";
Expand All @@ -1107,6 +1136,64 @@ module openconfig-oam-cfm {
}
}

grouping loss-measurement-state {
description "Loss measurement state grouping.";

container loss-measurement-state {
description "Loss measurement state container.";
uses loss-measurement-common-stats;
}
}

grouping synthetic-loss-measurement-stats {
description "Synthetic loss measurement grouping.";

leaf cos {
type uint8;
description "Class of Service for this synthetic loss measurement entry.";
}

leaf test-id {
type uint32;
description "Test ID for this synthetic loss measurement entry.";
}

uses loss-measurement-common-stats;
}

grouping synthetic-loss-measurement-state {
description "Synthetic loss measurement state grouping.";

container synthetic-loss-measurement-states {
config false;
description "Collection of synthetic loss measurement states.";

list synthetic-loss-measurement-state {
key "cos test-id";
description "Synthetic loss measurement state entry, keyed by CoS and test ID.";

leaf cos {
type leafref {
path "../state/cos";
}
description "Class of Service for this synthetic loss measurement entry.";
}

leaf test-id {
type leafref {
path "../state/test-id";
}
description "Test ID for this synthetic loss measurement entry.";
}
container state {
description "Statistical data for synthetic loss measurement";
config false;
uses synthetic-loss-measurement-stats;
}
}
}
}

grouping delay-measurement-counters-state {
description "Delay measurement counters state.";

Expand Down Expand Up @@ -1315,4 +1402,4 @@ module openconfig-oam-cfm {
"Add cfm related state and config to oam";
uses cfm-top;
}
}
}