Может ли модуль YANG иметь список внутри группировки?

Мой код выглядит следующим образом.

1.

grouping policy-attributes {
    container qospolicies {
        list qospolicy {
            key "uuid";
            uses attrs:base-attributes;
            uses qos-policy-attributes;
            uses bandwidth-limit-attributes;
            uses dscp-marking-attributes;
        }
    }
}

Группировка со списком

2.

grouping bandwidth-limit-rules-attributes {
    list bandwidth-limit-rule{
    leaf qos-rule-id {
        type yang:uuid;
        description "The rule id of the associated rule";
    }
    leaf max-kbps {
        type uint64;
        description "The maximum KBPS value";
    }
    leaf max-burst-kbps {
        type uint64;
        description "The burst over the maximum KBPS value";
    }
    leaf policy-id {
        type yang:uuid;
        description "The policy id to which the rule is associated";
    }
    }
}

3.

grouping dscp-marking-rules-attributes {
    list dscp-marking-rule{
    leaf qos-rule-id {
        type yang:uuid;
        description "The rule id of the associated rule";
    }
    leaf dscp-mark {
        type uint8{
        range "0 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38
        | 40 | 46 | 48 | 56 ";}
        description "the value of dscp mark";
    }
    leaf policy-id {
        type yang:uuid;
        description "the policy id to which the rule is associated";
    }
    }
}

Группировка bandwidth-limit-rules-attributes есть список с листьями. Так же bandwidth-limit-rules-attributes используется в группировке policy-attributes, Я хотел бы знать, действительно ли иметь bandwidth-limit-rules-attributes в policy-attributes,

1 ответ

Да, вы можете иметь list как подстановка к grouping, Вот список возможных подзаписей для grouping из RFC6020 ( Ян 1.0).

 +--------------+---------+-------------+
 | substatement | section | cardinality |
 +--------------+---------+-------------+
 | anyxml       | 7.10    | 0..n        |
 | choice       | 7.9     | 0..n        |
 | container    | 7.5     | 0..n        |
 | description  | 7.19.3  | 0..1        |
 | grouping     | 7.11    | 0..n        |
 | leaf         | 7.6     | 0..n        |
 | leaf-list    | 7.7     | 0..n        |
 | list         | 7.8     | 0..n        | <--
 | reference    | 7.19.4  | 0..1        |
 | status       | 7.19.2  | 0..1        |
 | typedef      | 7.3     | 0..n        |
 | uses         | 7.12    | 0..n        |
 +--------------+---------+-------------+

Используя группировку внутри вашего policy-attributes Группировка также действительна:

grouping policy-attributes {
    container qospolicies {
        list qospolicy {
            key uuid;
            /*
            uses attrs:base-attributes;
            uses qos-policy-attributes;
            uses bandwidth-limit-attributes;
            uses dscp-marking-attributes;
            */
            uses bandwidth-limit-rules-attributes;
        }
    }
}
Другие вопросы по тегам