802.1 Tools
  • Home
  • Maintenance
    • All items
    • Open items
    • Closed items
    • Items for review
    • Status
  • Meetings
  • Help
  • Log in
  1. Maintenance Items
  2. 0366
  3. Request
Requested revision
Standard:IEEE 802.1Qcw-2023Clause:48.6.17 and 48.6.21
Clause title:"The ieee802-dot1q-sched YANG module" and "The ieee802-dot1q-psfp YANG module"
Rationale for revision
In the current YANG models there are several statements such as
        must
          "(count(./gate-control-entry) <= ../supported-list-max)" {

These implicitly require that several leafs need to exist like
/ietf-interfaces:interfaces/interface[name='eth0']/ieee802-dot1q-bridge:bridge-port/ieee802-dot1q-sched-bridge:gate-parameter-table/supported-list-max
for EVERY interface, otherwise a YANG data tree does not validate.
This includes interfaces where no scheduling configuration shall be applied at all, like in
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "if-index": 1,
        "name": "eth0",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "down",
        "admin-status": "down",
        "statistics": {
          "discontinuity-time": "2023-12-15T10:04:12.345+00:00"
        }
      }
    ]
  }
}

or even iana-if-type:ilan interfaces which are required for applying the IEEE 802.1CB YANG models.

Also see https://www.ieee802.org/1/private/email2/msg36517.html and the follow up mails for further discussion on this topic.
Proposed text
In 48.6.17 apply the following diff:

--- ieee802-dot1q-sched.yang    2024-02-08 15:20:30.413357268 +0100
+++ ieee802-dot1q-sched@2024-01-30.yang 2024-02-13 11:22:04.876588200 +0100
@@ -33,6 +33,10 @@
     
     This version of this YANG module is part of IEEE Std 802.1Q; see the
     standard itself for full legal notices.";
+  revision 2024-01-30 {
+    description
+      "TODO add proper revision description";
+  }
   revision 2023-10-22 {
     description
       "Published as part of IEEE Std 802.1Qcw-2023.
@@ -77,7 +81,7 @@
       }
       refine "gate-control-entry/time-interval-value" {
         must
-          "(. <= ../../../supported-interval-max )";
+          "not (. > ../../../supported-interval-max )";
       }
       augment "gate-control-entry" {
         description
@@ -187,9 +191,9 @@
       }
       container admin-control-list {
         must
-          "(count(./gate-control-entry) <= ../supported-list-max)" {
+          "not(count(./gate-control-entry) > ../supported-list-max)" {
           error-message
-            "Number of elements in admin-control-list must not be greater"+
+            "Number of elements in admin-control-list must not be greater "+
             "than supported-list-max";
         }
         description
@@ -202,9 +206,9 @@
       }
       container oper-control-list {
         must
-          "(count(./gate-control-entry) <= ../supported-list-max)" {
+          "not(count(./gate-control-entry) > ../supported-list-max)" {
           error-message
-            "Number of elements in oper-control-list must not be greater"+
+            "Number of elements in oper-control-list must not be greater "+
             "than supported-list-max";
         }
         config false;
@@ -217,7 +221,7 @@
       }
       container admin-cycle-time {
         must
-          "(./numerator div ./denominator <= "+
+          "not (./numerator div ./denominator > "+
           "../supported-cycle-max/numerator div "+
           "../supported-cycle-max/denominator )" {
           error-message
@@ -235,7 +239,7 @@
       }
       container oper-cycle-time {
         must
-          "(./numerator div ./denominator <= "+
+          "not (./numerator div ./denominator > "+
           "../supported-cycle-max/numerator div "+
           "../supported-cycle-max/denominator )" {
           error-message

In 48.6.21 apply the following diff:

--- ieee802-dot1q-psfp.yang     2024-02-13 10:57:01.045060316 +0100
+++ ieee802-dot1q-psfp@2024-01-30.yang  2024-02-13 11:22:52.733000013 +0100
@@ -36,6 +36,10 @@
     
     This version of this YANG module is part of IEEE Std 802.1Q; see the
     standard itself for full legal notices.";
+  revision 2024-01-30 {
+    description
+      "TODO add proper revision description";
+  }
   revision 2023-10-26 {
     description
       "Published as part of IEEE Std 802.1Qcw-2023.
@@ -86,7 +90,7 @@
       }
       refine "gate-control-entry/time-interval-value" {
         must
-          "(. <= ../../../../supported-interval-max )";
+          "not (. > ../../../../supported-interval-max )";
       }
       augment "gate-control-entry" {
         description
@@ -130,9 +134,9 @@
         "This container comprises all flow meter related nodes.";
       list flow-meter-instance-table {
         must
-          "(count(.) <= ../max-flow-meter-instances)" {
+          "not (count(.) > ../max-flow-meter-instances)" {
           error-message
-            "Number of elements in flow-meter-instance-table must not be"+
+            "Number of elements in flow-meter-instance-table must not be "+
             "greater than max-flow-meter-instances.";
         }
         key "flow-meter-instance-id";
@@ -420,9 +424,9 @@
         }
         container admin-control-list {
           must
-            "(count(./gate-control-entry) <= ../../supported-list-max)" {
+            "not (count(./gate-control-entry) > ../../supported-list-max)" {
             error-message
-              "Number of elements in admin-control-list must not be"+
+              "Number of elements in admin-control-list must not be "+
               "greater than supported-list-max";
           }
           description
@@ -436,9 +440,9 @@
         }
         container oper-control-list {
           must
-            "(count(./gate-control-entry) <= ../../supported-list-max)" {
+            "not (count(./gate-control-entry) > ../../supported-list-max)" {
             error-message
-              "Number of elements in oper-control-list must not be greater"+
+              "Number of elements in oper-control-list must not be greater "+
               "than supported-list-max";
           }
           config false;
@@ -453,11 +457,11 @@
         }
         container admin-cycle-time {
           must
-            "(./numerator div ./denominator <= "+
+            "not (./numerator div ./denominator > "+
             "../../supported-cycle-max/numerator div "+
             "../../supported-cycle-max/denominator)" {
             error-message
-              "admin-cycle-time must not be greater than"+
+              "admin-cycle-time must not be greater than "+
               "supported-cycle-max";
           }
           description
@@ -472,11 +476,11 @@
         }
         container oper-cycle-time {
           must
-            "(./numerator div ./denominator <= "+
+            "not (./numerator div ./denominator > "+
             "../../supported-cycle-max/numerator div "+
             "../../supported-cycle-max/denominator)" {
             error-message
-              "oper-cycle-time must not be greater than"+
+              "oper-cycle-time must not be greater than "+
               "supported-cycle-max";
           }
           config false;
Impact on existing networks
Possible to use the Qcw YANG models in bridges that are not exclusively composed of interfaces that support scheduling. No negative impact expected.
Originator
Name:Florian KauerEmail:florian.kauer@linutronix.de
Affiliation:Linutronix GmbH
Submitted:2024-02-13