3 namespace "urn:onf:yang:vlan-fd-1-0";
\r
6 import ietf-yang-types {
\r
9 import core-model-1-4 {
\r
12 import vlan-interface-1-0 {
\r
13 prefix vlan-interface;
\r
17 "openBackhaul.com proposal to Open Networking Foundation (ONF)";
\r
19 "WG Web : https://github.com/openBackhaul/Overview
\r
20 WG List: VlanFd@openBackhaul.com
\r
21 Editor : Thorsten Heinze
\r
22 Email : Thorsten.Heinze@openBackhaul.com";
\r
24 "Technology specific Forwarding Domain for VLAN Components according to IEEE 802.1Q-2018.
\r
26 Copyright 2019 openBackhaul.com
\r
28 Licensed under the Apache License, Version 2.0 (the 'License');
\r
29 you may not use this file except in compliance with the License.
\r
30 You may obtain a copy of the License at
\r
31 http://www.apache.org/licenses/LICENSE-2.0
\r
32 Unless required by applicable law or agreed to in writing, software
\r
33 distributed under the License is distributed on an 'AS IS' BASIS,
\r
34 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
35 See the License for the specific language governing permissions and
\r
36 limitations under the License.";
\r
38 revision 2020-08-26 {
\r
40 "Model for the Transport SDN Pilot at Telefonica Germany.
\r
41 Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
\r
43 "https://github.com/openBackhaul/vlanFd/tree/tsp: Model definition
\r
44 https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
\r
46 revision 2019-08-19 {
\r
48 "Model for the Transport SDN Pilot at Telefonica Germany.
\r
49 Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
\r
51 "https://github.com/openBackhaul/vlanFd/tree/tsp: Model definition
\r
52 https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
\r
55 identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
\r
56 base core-model:LAYER_PROTOCOL_NAME_TYPE;
\r
61 augment "/core-model:control-construct/core-model:forwarding-domain" {
\r
62 when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-interface:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
\r
68 /****************************************
\r
69 * package notifications
\r
70 **************************************/
\r
72 notification object-creation-notification {
\r
73 uses object-creation-notification;
\r
78 grouping object-creation-notification {
\r
84 "Counts object creation notifications.";
\r
87 type yang:date-and-time;
\r
88 default "2010-11-20T14:00:00+01:00";
\r
93 leaf object-id-ref {
\r
95 path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
\r
96 require-instance false;
\r
104 default "Type of created object not specified.";
\r
113 notification object-deletion-notification {
\r
114 uses object-deletion-notification;
\r
119 grouping object-deletion-notification {
\r
125 "Counts object deletion notifications.";
\r
128 type yang:date-and-time;
\r
129 default "2010-11-20T14:00:00+01:00";
\r
134 leaf object-id-ref {
\r
136 path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
\r
137 require-instance false;
\r
147 notification attribute-value-changed-notification {
\r
148 uses attribute-value-changed-notification;
\r
153 grouping attribute-value-changed-notification {
\r
159 "Counts attribute value changed notifications.";
\r
162 type yang:date-and-time;
\r
163 default "2010-11-20T14:00:00+01:00";
\r
168 leaf object-id-ref {
\r
170 path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
\r
171 require-instance false;
\r
177 leaf attribute-name {
\r
179 default "Attribute name not specified.";
\r
182 "Name of the attribute that has been changed.";
\r
186 default "New value not specified.";
\r
189 "Attribute value converted to a string (xml, json, ...)";
\r
192 "To be sent when an attribute has changed and one or more controllers have to update their data.";
\r
195 notification problem-notification {
\r
196 uses problem-notification;
\r
201 grouping problem-notification {
\r
207 "Counts problem notifications";
\r
210 type yang:date-and-time;
\r
211 default "2010-11-20T14:00:00+01:00";
\r
216 leaf object-id-ref {
\r
218 path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
\r
219 require-instance false;
\r
227 default "Problem name not specified.";
\r
230 "Name of the problem according to *Capability::supportedAlarmList";
\r
233 type severity-type;
\r
234 default "SEVERITY_TYPE_WARNING";
\r
237 "Severity of the problem according to *Configuration::problemSeverityList";
\r
243 /****************************************
\r
244 * grouping statements for object classes
\r
245 **************************************/
\r
246 /****************************************
\r
247 * package super-classes
\r
248 **************************************/
\r
250 grouping current-problem {
\r
251 leaf sequence-number {
\r
255 "Unique sequence number of the current problem object.";
\r
258 type yang:date-and-time;
\r
259 default "2010-11-20T14:00:00+01:00";
\r
264 leaf problem-severity {
\r
265 type severity-type;
\r
266 default "SEVERITY_TYPE_NOT_YET_DEFINED";
\r
269 "Severity of the alarm.";
\r
275 grouping vlan-fd-spec {
\r
276 container vlan-fd-pac {
\r
282 "The set of components associated with a given Bridge. For example, - A TPMR is associated with a single VLAN unaware component. - A Customer VLAN Bridge is associated with a single VLAN aware component. - A Provider Bridge is associated with a single S-VLAN component and zero or more C-VLAN components. Name in ieee802-dot1q-bridge.yang: component.";
\r
285 grouping vlan-fd-pac {
\r
286 container vlan-fd-capability {
\r
288 uses vlan-fd-capability;
\r
292 container vlan-fd-configuration {
\r
293 uses vlan-fd-configuration;
\r
297 container vlan-fd-status {
\r
299 uses vlan-fd-status;
\r
303 container vlan-fd-current-problems {
\r
305 uses vlan-fd-current-problems;
\r
313 grouping vlan-fd-capability {
\r
314 leaf-list supported-sub-layer-protocol-name-list {
\r
315 type sub-layer-protocol-name-type;
\r
316 default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
\r
319 "Lists the supported kinds of Components. ";
\r
321 leaf component-id {
\r
325 "Unique identifier for a particular Bridge component within the system. Name in ieee802-dot1q-bridge.yang: id.";
\r
327 leaf extended-filtering-is-avail {
\r
332 "true = Component can perform filtering on individual multicast addresses controlled by MMRP (Multiple MAC Registration Protocol). Name in ieee802-dot1q-bridge.yang: extended-filtering.";
\r
334 leaf traffic-classes-is-avail {
\r
339 "true = Component can map the Priority values into multiple traffic classes (there is more than one traffic class at the device). Name in ieee802-dot1q-bridge.yang: traffic-classes.";
\r
341 leaf static-entries-on-individual-ports-is-avail {
\r
346 "true = Static entries per port are available. Name in ieee802-dot1q-bridge.yang: static-entry-individual-port.";
\r
348 leaf independent-vlan-learning-is-avail {
\r
353 "true = Component supports Independent VLAN Learning (IVL). Name in ieee802-dot1q-bridge.yang: ivl-capable.";
\r
355 leaf shared-vlan-learning-is-avail {
\r
360 "true = Component supports Shared VLAN Learning (SVL). Name in ieee802-dot1q-bridge.yang: svl-capable.";
\r
362 leaf hybrid-vlan-learning-is-avail {
\r
367 "true = Component supports both Independent and Shared VLAN Learning simultaneously. Name in ieee802-dot1q-bridge.yang: hybrid-capable.";
\r
369 leaf configurable-port-vlan-id-tagging-is-avail {
\r
374 "true = Component supports setting the egress status (VLAN-tagged or Untagged) on each port. Name in ieee802-dot1q-bridge.yang: configurable-pvid-tagging.";
\r
376 leaf multiple-local-bridges-is-avail {
\r
381 "true = Can support multiple local Bridges, outside the scope of 802.1Q defined VLANs. Name in ieee802-dot1q-bridge.yang: local-vlan-capable.";
\r
383 leaf supported-version {
\r
388 "The version number supported. Name in ieee802-dot1q-bridge.yang: version.";
\r
390 leaf maximum-number-of-vlan-ids {
\r
395 "The maximum number of VLAN IDs supported. Name in ieee802-dot1q-bridge.yang: max-vids.";
\r
397 leaf overriding-default-port-vlan-id-is-avail {
\r
402 "true = Component supports overridding the default PVID on each port. Name in ieee802-dot1q-bridge.yang: override-default-pvid.";
\r
404 leaf protocol-frame-format {
\r
405 type protocol-frame-format-type;
\r
408 "Only effective if (portAndProtocolBasedVlanIsAvail==true). The data-link encapsulation format or the detagged_frame_type in a Protocol Template. Name in ieee802-dot1q-bridge.yang: protocol-template.";
\r
410 leaf maximum-number-of-msti {
\r
415 "Maximum number of Multiple Spanning Tree Instances (MSTIs) supported within an MST region (i.e., the number of spanning tree instances that can be supported in addition to the CIST), for MST Bridges. For SST Bridges, this parameter may be either omitted or reported as 0. Name in ieee802-dot1q-bridge.yang: max-msti.";
\r
417 leaf admin-shut-down-is-avail {
\r
422 "true = Manual switching on and off of the forwarding domain without deleting it (underlying OSI network layers are also not affected) is available.";
\r
424 leaf maintenance-timer-range {
\r
426 default "Range of the maintenance timer not yet defined.";
\r
429 "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
\r
431 leaf-list supported-alarm-list {
\r
433 default "Supported Alarms Not Yet Defined";
\r
436 "Available alarms to be listed.";
\r
442 grouping vlan-fd-configuration {
\r
445 default "Forwarding Domain name not yet defined.";
\r
447 "The name of the Component. Free text field to be filled by the operator. Name in ieee802-dot1q-bridge.yang: name.";
\r
453 "Only effective if (adminShutDownIsAvail==true). true = Activation of the Component. false = De-activation of the forwarding domain without deleting it (underlying OSI network layers are not affected).";
\r
455 leaf sub-layer-protocol-name {
\r
456 type sub-layer-protocol-name-type;
\r
457 default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
\r
459 "The type of Component used to classify a particular Bridge component within a Bridge system comprising multiple components. Name in ieee802-dot1q-bridge.yang: type.\n";
\r
463 default "00:00:00:00:00:00";
\r
465 "Unique EUI-48 Universally Administered MAC address configured on a Bridge Component. Name in ieee802-dot1q-bridge.yang: address.";
\r
467 leaf traffic-classes-is-on {
\r
471 "Only effective if (trafficClassesIsAvail==true). true = Traffic Classes are enabled on this Bridge Component. false = Bridge Component operates with a single priority level for all traffic. Name in ieee802-dot1q-bridge.yang: traffic-class-enabled.";
\r
473 list protocol-group-list {
\r
475 uses protocol-group-type;
\r
477 "Only effective if (portAndProtocolBasedVlanIsAvail==true). List of the protocol group database entries. Name in ieee802-dot1q-bridge.yang: protocol-group-database.";
\r
479 leaf maintenance-timer {
\r
484 "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
\r
486 list problem-kind-severity-list {
\r
487 key "problem-kind-name";
\r
488 uses problem-kind-severity-type;
\r
490 "Severity of each entry of the SupportedAlarmList to be configured.";
\r
496 grouping vlan-fd-status {
\r
497 leaf mac-address-cur {
\r
499 default "00:00:00:00:00:00";
\r
502 "Unique EUI-48 Universally Administered MAC address assigned to a Bridge Component. Name in ieee802-dot1q-bridge.yang: address.";
\r
504 leaf number-of-ports-cur {
\r
509 "Number of Bridge Ports associated with the Bridge Component. Values between 1 and 4095. Name in ieee802-dot1q-bridge.yang: ports.";
\r
511 leaf number-of-static-vlan-registrations-cur {
\r
516 "The number of Static VLAN Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-vlan-registration-entries.";
\r
518 leaf number-of-dynamic-vlan-registrations-cur {
\r
523 "The number of Dynamic VLAN Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-vlan-registration-entries.";
\r
526 type fd-status-type;
\r
527 default "FD_STATUS_TYPE_NOT_YET_DEFINED";
\r
530 "Operational status of the forwarding domain.";
\r
536 grouping vlan-fd-current-problems {
\r
537 list current-problem-list {
\r
538 key "sequence-number";
\r
540 uses vlan-fd-current-problem-type;
\r
548 /****************************************
\r
549 * typedef statements
\r
550 **************************************/
\r
552 typedef sub-layer-protocol-name-type {
\r
554 base SUB_LAYER_PROTOCOL_NAME_TYPE;
\r
557 "Represents the type of Component. Name in ieee802-dot1q-bridge.yang: type-of-component.";
\r
560 typedef protocol-frame-format-type {
\r
562 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
565 "A value representing the frame format to be matched. Name in ieee802-dot1q-bridge.yang: protocol-frame-format-type.";
\r
568 /*********************************************
\r
569 * grouping statements for complex data types
\r
570 *******************************************/
\r
572 identity SUB_LAYER_PROTOCOL_NAME_TYPE {
\r
577 identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
\r
578 base SUB_LAYER_PROTOCOL_NAME_TYPE;
\r
580 "c-vlan-component. Base identity for a C-VLAN component. Name in ieee802-dot1q-bridge.yang: c-vlan-component.";
\r
583 identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
\r
584 base SUB_LAYER_PROTOCOL_NAME_TYPE;
\r
586 "s-vlan-component. Base identity for a S-VLAN component. Name in ieee802-dot1q-bridge.yang: s-vlan-component.";
\r
589 identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
\r
590 base SUB_LAYER_PROTOCOL_NAME_TYPE;
\r
592 "d-bridge-component. Base identity for a VLAN unaware component. Name in ieee802-dot1q-bridge.yang: d-bridge-component.";
\r
595 identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
\r
596 base SUB_LAYER_PROTOCOL_NAME_TYPE;
\r
598 "edge-relay-component. Base identity for an EVB station ER component. Name in ieee802-dot1q-bridge.yang: edge-relay-component. ";
\r
601 identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
\r
602 base SUB_LAYER_PROTOCOL_NAME_TYPE;
\r
607 identity PROTOCOL_FRAME_FORMAT_TYPE {
\r
612 identity PROTOCOL_FRAME_FORMAT_TYPE_ETHERNET {
\r
613 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
615 "Ethernet frame format. Name in ieee802-dot1q-bridge.yang: Ethernet.";
\r
618 identity PROTOCOL_FRAME_FORMAT_TYPE_RFC1042 {
\r
619 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
621 "RFC 1042 frame format. Name in ieee802-dot1q-bridge.yang: rfc1042.";
\r
624 identity PROTOCOL_FRAME_FORMAT_TYPE_SNAP8021H_ {
\r
625 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
627 "SNAP 802.1H frame format. Name in ieee802-dot1q-bridge.yang: snap8021H.";
\r
630 identity PROTOCOL_FRAME_FORMAT_TYPE_SNAP_OTHER {
\r
631 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
633 "Other SNAP frame format. Name in ieee802-dot1q-bridge.yang: snapOther.";
\r
636 identity PROTOCOL_FRAME_FORMAT_TYPE_LLC_OTHER {
\r
637 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
639 "Other LLC frame format. Name in ieee802-dot1q-bridge.yang: llcOther.";
\r
642 identity PROTOCOL_FRAME_FORMAT_TYPE_NOT_YET_DEFINED {
\r
643 base PROTOCOL_FRAME_FORMAT_TYPE;
\r
648 identity SEVERITY_TYPE {
\r
653 identity SEVERITY_TYPE_NON_ALARMED {
\r
654 base SEVERITY_TYPE;
\r
659 identity SEVERITY_TYPE_WARNING {
\r
660 base SEVERITY_TYPE;
\r
665 identity SEVERITY_TYPE_MINOR {
\r
666 base SEVERITY_TYPE;
\r
671 identity SEVERITY_TYPE_MAJOR {
\r
672 base SEVERITY_TYPE;
\r
677 identity SEVERITY_TYPE_CRITICAL {
\r
678 base SEVERITY_TYPE;
\r
683 identity SEVERITY_TYPE_NOT_YET_DEFINED {
\r
684 base SEVERITY_TYPE;
\r
689 identity FD_STATUS_TYPE {
\r
694 identity FD_STATUS_TYPE_UP {
\r
695 base FD_STATUS_TYPE;
\r
697 "Ready to pass packets.";
\r
700 identity FD_STATUS_TYPE_DOWN {
\r
701 base FD_STATUS_TYPE;
\r
703 "The interface does not pass any packets.";
\r
706 identity FD_STATUS_TYPE_TESTING {
\r
707 base FD_STATUS_TYPE;
\r
709 "In some test mode. No operational packets can be passed.";
\r
712 identity FD_STATUS_TYPE_UNKNOWN {
\r
713 base FD_STATUS_TYPE;
\r
715 "Status cannot be determined for some reason.";
\r
718 identity FD_STATUS_TYPE_DORMANT {
\r
719 base FD_STATUS_TYPE;
\r
721 "Waiting for some external event.";
\r
724 identity FD_STATUS_TYPE_NOT_PRESENT {
\r
725 base FD_STATUS_TYPE;
\r
727 "Some component (typically hardware) is missing.";
\r
730 identity FD_STATUS_TYPE_LOWER_LAYER_DOWN {
\r
731 base FD_STATUS_TYPE;
\r
733 "Down due to state of lower-layer interface(s).";
\r
736 identity FD_STATUS_TYPE_ADMIN_DOWN {
\r
737 base FD_STATUS_TYPE;
\r
739 "Down due to configuration.";
\r
742 identity FD_STATUS_TYPE_NOT_YET_DEFINED {
\r
743 base FD_STATUS_TYPE;
\r
748 /****************************************
\r
749 * package super-types
\r
750 **************************************/
\r
752 typedef severity-type {
\r
754 base SEVERITY_TYPE;
\r
760 typedef fd-status-type {
\r
762 base FD_STATUS_TYPE;
\r
765 "Current Status of the Forwarding Domain";
\r
768 grouping problem-kind-severity-type {
\r
769 leaf problem-kind-name {
\r
772 "Name of the alarm according to SupportedAlarmList";
\r
774 leaf problem-kind-severity {
\r
775 type severity-type;
\r
776 default "SEVERITY_TYPE_NOT_YET_DEFINED";
\r
778 "Severity of this type of alarm.";
\r
784 grouping protocol-group-type {
\r
788 "The protocol group database index. Name in ieee802-dot1q-bridge.yang: db-index.";
\r
790 leaf protocol-group-id {
\r
794 "Designates a group of protocols in the Protocol Group Database. Name in ieee802-dot1q-bridge.yang: group-id.";
\r
796 leaf protocol-frame-format {
\r
797 type protocol-frame-format-type;
\r
798 default "PROTOCOL_FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
\r
800 "The data-link encapsulation format or the detagged_frame_type in a Protocol Template. Name in ieee802-dot1q-bridge.yang: frame-format-type.";
\r
804 default "Ethertype not yet defined.";
\r
806 "ethertype. Only relevant if (protocolFrameFormat==ETHERNET) OR (protocolFrameFormat==RFC1042) OR (protocolFrameFormat==SNAP8021H). Format containing the 16-bit IEEE 802 EtherType field. The EtherType value represented in the canonical order defined by IEEE 802. The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}'. Name in ieee802-dot1q-bridge.yang: ethertype.";
\r
810 default "Protocol ID not yet defined.";
\r
812 "Only effective if (protocolFrameFormat==SNAP_OTHER). Format containing the 40-bit protocol identifier (PID). The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){4}'. Name in ieee802-dot1q-bridge.yang: protocol-id.";
\r
814 leaf-list llc-address {
\r
816 default "LLC Address not yet defined.";
\r
818 "Only effective if (protocolFrameFormat==LLC_OTHER). A pair of ISO/IEC 8802-2 DSAP and SSAP address field values, for matching frame formats of LLC_Other. The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}'. Name in ieee802-dot1q-bridge.yang: llc-address.";
\r
824 grouping vlan-fd-current-problem-type {
\r
825 leaf problem-name {
\r
827 default "Problem name not specified.";
\r
830 "Name of the alarm according to SupportedAlarmList";
\r
832 uses current-problem;
\r