3 namespace "urn:onf:yang:mac-fc-1-0";
\r
6 import ietf-yang-types {
\r
9 import core-model-1-4 {
\r
14 "openBackhaul.com proposal to Open Networking Foundation (ONF)";
\r
16 "WG Web : https://github.com/openBackhaul/Overview
\r
17 WG List: MacFc@openBackhaul.com
\r
18 Editor : Thorsten Heinze
\r
19 Email : Thorsten.Heinze@openBackhaul.com";
\r
21 "Technology specific amendment to the ForwardingConstruct class for documenting entries in the MAC forwarding table according to IEEE 802.1 .
\r
23 Copyright 2019 openBackhaul.com
\r
25 Licensed under the Apache License, Version 2.0 (the 'License');
\r
26 you may not use this file except in compliance with the License.
\r
27 You may obtain a copy of the License at
\r
28 http://www.apache.org/licenses/LICENSE-2.0
\r
29 Unless required by applicable law or agreed to in writing, software
\r
30 distributed under the License is distributed on an 'AS IS' BASIS,
\r
31 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
32 See the License for the specific language governing permissions and
\r
33 limitations under the License.";
\r
35 revision 2020-08-26 {
\r
37 "Model for the Transport SDN Pilot at Telefonica Germany
\r
38 Please view https://github.com/openBackhaul/macFc/issues for changes.";
\r
40 "https://github.com/openBackhaul/macFc/tree/tsp: Model definition
\r
41 https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
\r
44 identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
\r
45 base core-model:LAYER_PROTOCOL_NAME_TYPE;
\r
50 augment "/core-model:control-construct/core-model:forwarding-domain/core-model:fc" {
\r
51 when "derived-from-or-self(./core-model:layer-protocol-name, 'mac-fc:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
\r
57 /****************************************
\r
58 * package notifications
\r
59 **************************************/
\r
61 notification object-creation-notification {
\r
62 uses object-creation-notification;
\r
67 grouping object-creation-notification {
\r
73 "Counts object creation notifications.";
\r
76 type yang:date-and-time;
\r
77 default "2010-11-20T14:00:00+01:00";
\r
82 leaf object-id-ref {
\r
84 path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
\r
85 require-instance false;
\r
93 default "Type of created object not specified.";
\r
102 notification object-deletion-notification {
\r
103 uses object-deletion-notification;
\r
108 grouping object-deletion-notification {
\r
114 "Counts object deletion notifications.";
\r
117 type yang:date-and-time;
\r
118 default "2010-11-20T14:00:00+01:00";
\r
123 leaf object-id-ref {
\r
125 path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
\r
126 require-instance false;
\r
136 notification attribute-value-changed-notification {
\r
137 uses attribute-value-changed-notification;
\r
142 grouping attribute-value-changed-notification {
\r
148 "Counts attribute value changed notifications.";
\r
151 type yang:date-and-time;
\r
152 default "2010-11-20T14:00:00+01:00";
\r
157 leaf object-id-ref {
\r
159 path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
\r
160 require-instance false;
\r
166 leaf attribute-name {
\r
168 default "Attribute name not specified.";
\r
171 "Name of the attribute that has been changed.";
\r
175 default "New value not specified.";
\r
178 "Attribute value converted to a string (xml, json, ...)";
\r
181 "To be sent when an attribute has changed and one or more controllers have to update their data.";
\r
184 notification problem-notification {
\r
185 uses problem-notification;
\r
190 grouping problem-notification {
\r
196 "Counts problem notifications";
\r
199 type yang:date-and-time;
\r
200 default "2010-11-20T14:00:00+01:00";
\r
205 leaf object-id-ref {
\r
207 path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
\r
208 require-instance false;
\r
216 default "Problem name not specified.";
\r
219 "Name of the problem according to *Capability::supportedAlarmList";
\r
222 type severity-type;
\r
223 default "SEVERITY_TYPE_WARNING";
\r
226 "Severity of the problem according to *Configuration::problemSeverityList";
\r
232 /****************************************
\r
233 * grouping statements for object classes
\r
234 **************************************/
\r
235 /****************************************
\r
236 * package super-classes
\r
237 **************************************/
\r
239 grouping current-problem {
\r
240 leaf sequence-number {
\r
244 "Unique sequence number of the current problem object.";
\r
247 type yang:date-and-time;
\r
248 default "2010-11-20T14:00:00+01:00";
\r
253 leaf problem-severity {
\r
254 type severity-type;
\r
255 default "SEVERITY_TYPE_NOT_YET_DEFINED";
\r
258 "Severity of the alarm.";
\r
264 grouping mac-fc-spec {
\r
265 container mac-fc-pac {
\r
271 "Represents an entry into the MAC forwarding table. Name in ieee802-dot1q-bridge.yang: filtering-entry.";
\r
274 grouping mac-fc-pac {
\r
275 container mac-fc-capability {
\r
277 uses mac-fc-capability;
\r
281 container mac-fc-configuration {
\r
282 uses mac-fc-configuration;
\r
286 container mac-fc-status {
\r
288 uses mac-fc-status;
\r
292 container mac-fc-current-problems {
\r
294 uses mac-fc-current-problems;
\r
302 grouping mac-fc-capability {
\r
303 leaf admin-shut-down-is-avail {
\r
308 "true = Manual switching on and off of the forwarding construct without deleting it (underlying OSI network layers are also not affected) is available.";
\r
310 leaf-list supported-alarm-list {
\r
312 default "Supported Alarms not yet defined.";
\r
315 "Available alarms to be listed.";
\r
321 grouping mac-fc-configuration {
\r
324 default "FC name not yet defined.";
\r
326 "Name of the ForwardingConstruct. Free text field to be filled by the operator.";
\r
332 "Only effective if (adminShutDownIsAvail==true). true = Activation of the forwarding of frames. false = De-activation of the ForwardingConstruct without deleting it (underlying OSI network layers are not affected).";
\r
338 "The identity of the Filtering Database. Name in ieee802-dot1q-bridge.yang: database-id.";
\r
342 default "00:00:00:00:00:00";
\r
344 "Configuration of a MAC address (unicast, multicast, broadcast), for which the device has forwarding and/or filtering information.";
\r
347 type entry-kind-type;
\r
348 default "ENTRY_KIND_TYPE_NOT_YET_DEFINED";
\r
350 "The type of filtering entry. Whether static or dynamic. Static entries can be created, deleted, and retrieved. However, dynamic entries can only be deleted or retrieved by the management entity. Consequently, a Bridge is not required to accept a command that can alter the dynamic entries except delete a dynamic entry. Name in ieee802-dot1q-bridge.yang: entry-type.";
\r
352 list problem-kind-severity-list {
\r
353 key "problem-kind-name";
\r
354 uses problem-kind-severity-type;
\r
356 "Severity of the problem to be configured.";
\r
362 grouping mac-fc-status {
\r
364 type fc-status-type;
\r
365 default "FC_STATUS_TYPE_NOT_YET_DEFINED";
\r
368 "The status of this entry. Name in ieee802-dot1q-bridge.yang: status.";
\r
374 grouping mac-fc-current-problems {
\r
375 list current-problem-list {
\r
376 key "sequence-number";
\r
378 uses mac-fc-current-problem-type;
\r
382 leaf number-of-current-problems {
\r
387 "Number of alarms, which are currently active on this interface.";
\r
389 leaf time-of-latest-change {
\r
390 type yang:date-and-time;
\r
391 default "2010-11-20T14:00:00+01:00";
\r
394 "Date and time when the list of alarms has been changed for the last time.";
\r
400 /****************************************
\r
401 * typedef statements
\r
402 **************************************/
\r
404 typedef entry-kind-type {
\r
406 base ENTRY_KIND_TYPE;
\r
412 typedef fc-status-type {
\r
414 base FC_STATUS_TYPE;
\r
420 /*********************************************
\r
421 * grouping statements for complex data types
\r
422 *******************************************/
\r
424 identity ENTRY_KIND_TYPE {
\r
429 identity ENTRY_KIND_TYPE_STATIC {
\r
430 base ENTRY_KIND_TYPE;
\r
432 "Static entries can be created, deleted, and retrieved. Name in ieee802-dot1q-bridge.yang: static.";
\r
435 identity ENTRY_KIND_TYPE_DYNAMIC {
\r
436 base ENTRY_KIND_TYPE;
\r
438 "Dynamic/learnt entries can only be deleted or retrieved. Name in ieee802-dot1q-bridge.yang: dynamic.";
\r
441 identity ENTRY_KIND_TYPE_NOT_YET_DEFINED {
\r
442 base ENTRY_KIND_TYPE;
\r
447 identity FC_STATUS_TYPE {
\r
452 identity FC_STATUS_TYPE_OTHER {
\r
453 base FC_STATUS_TYPE;
\r
455 "None of the following. This may include the case where some other object is being used to determine if and how frames addressed to the value of the corresponding instance of 'address' are being forwarded. Name in ieee802-dot1q-bridge.yang: other.";
\r
458 identity FC_STATUS_TYPE_INVALID {
\r
459 base FC_STATUS_TYPE;
\r
461 "This entry is no longer valid (e.g., it was learned but has since aged out), but has not yet been flushed from the table. Name in ieee802-dot1q-bridge.yang: invalid.";
\r
464 identity FC_STATUS_TYPE_LEARNED {
\r
465 base FC_STATUS_TYPE;
\r
467 "The value of the corresponding instance of the port node was learned and is being used. Name in ieee802-dot1q-bridge.yang: learned.";
\r
470 identity FC_STATUS_TYPE_SELF {
\r
471 base FC_STATUS_TYPE;
\r
473 "The value of the corresponding instance of the address node representing one of the devices address. Name in ieee802-dot1q-bridge.yang: self.";
\r
476 identity FC_STATUS_TYPE_MANAGEMENT {
\r
477 base FC_STATUS_TYPE;
\r
479 "The value of the corresponding instance of address node that is also the value of an existing instance. Name in ieee802-dot1q-bridge.yang: mgmt.";
\r
482 identity FC_STATUS_TYPE_NOT_YET_DEFINED {
\r
483 base FC_STATUS_TYPE;
\r
488 identity SEVERITY_TYPE {
\r
493 identity SEVERITY_TYPE_NON_ALARMED {
\r
494 base SEVERITY_TYPE;
\r
499 identity SEVERITY_TYPE_WARNING {
\r
500 base SEVERITY_TYPE;
\r
505 identity SEVERITY_TYPE_MINOR {
\r
506 base SEVERITY_TYPE;
\r
511 identity SEVERITY_TYPE_MAJOR {
\r
512 base SEVERITY_TYPE;
\r
517 identity SEVERITY_TYPE_CRITICAL {
\r
518 base SEVERITY_TYPE;
\r
523 identity SEVERITY_TYPE_NOT_YET_DEFINED {
\r
524 base SEVERITY_TYPE;
\r
529 /****************************************
\r
530 * package super-types
\r
531 **************************************/
\r
533 typedef severity-type {
\r
535 base SEVERITY_TYPE;
\r
538 "According to ITU-T M.3160";
\r
541 grouping problem-kind-severity-type {
\r
542 leaf problem-kind-name {
\r
545 "Name of the alarm according to supportedAlarmList";
\r
547 leaf problem-kind-severity {
\r
548 type severity-type;
\r
549 default "SEVERITY_TYPE_NOT_YET_DEFINED";
\r
551 "Severity of this type of alarm.";
\r
557 grouping mac-fc-current-problem-type {
\r
558 leaf problem-name {
\r
560 default "Problem name not specified.";
\r
563 "Name of the alarm according to *Capability::supportedAlarmList.";
\r
565 uses current-problem;
\r