--- /dev/null
+module vlan-fc-1-0 {\r
+ yang-version 1.1;\r
+ namespace "urn:onf:yang:vlan-fc-1-0";\r
+ prefix vlan-fc;\r
+\r
+ import ietf-yang-types {\r
+ prefix yang;\r
+ }\r
+ import core-model-1-4 {\r
+ prefix core-model;\r
+ }\r
+\r
+ organization\r
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";\r
+ contact\r
+ "WG Web : https://github.com/openBackhaul/Overview\r
+ WG List: VlanFc@openBackhaul.com\r
+ Editor : Thorsten Heinze\r
+ Email : Thorsten.Heinze@openBackhaul.com";\r
+ description\r
+ "Technology specific Forwarding Construct for VLANs according to IEEE 802.1Q-2018.\r
+\r
+ Copyright 2019 openBackhaul.com\r
+\r
+ Licensed under the Apache License, Version 2.0 (the 'License');\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an 'AS IS' BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.";\r
+\r
+ revision 2020-08-26 {\r
+ description\r
+ "Model for the Transport SDN Pilot at Telefonica Germany\r
+ Please view https://github.com/openBackhaul/vlanFc/issues for changes.";\r
+ reference\r
+ "https://github.com/openBackhaul/vlanFc/tree/tsp: Model definition\r
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";\r
+ }\r
+ revision 2019-08-19 {\r
+ description\r
+ "Model for the Transport SDN Pilot at Telefonica Germany.\r
+ Please view https://github.com/openBackhaul/vlanFd/issues for changes.";\r
+ reference\r
+ "https://github.com/openBackhaul/vlanFc/tree/tsp: Model definition\r
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";\r
+ }\r
+\r
+ identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {\r
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ augment "/core-model:control-construct/core-model:forwarding-domain/core-model:fc" {\r
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-fc:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";\r
+ uses vlan-fc-spec;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ /****************************************\r
+ * package notifications\r
+ **************************************/ \r
+\r
+ notification object-creation-notification {\r
+ uses object-creation-notification;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping object-creation-notification {\r
+ leaf counter {\r
+ type int32;\r
+ default "-1";\r
+ config false;\r
+ description\r
+ "Counts object creation notifications.";\r
+ }\r
+ leaf timestamp {\r
+ type yang:date-and-time;\r
+ default "2010-11-20T14:00:00+01:00";\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf object-id-ref {\r
+ type leafref {\r
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";\r
+ require-instance false;\r
+ }\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf object-type {\r
+ type string;\r
+ default "Type of created object not specified.";\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ notification object-deletion-notification {\r
+ uses object-deletion-notification;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping object-deletion-notification {\r
+ leaf counter {\r
+ type int32;\r
+ default "-1";\r
+ config false;\r
+ description\r
+ "Counts object deletion notifications.";\r
+ }\r
+ leaf timestamp {\r
+ type yang:date-and-time;\r
+ default "2010-11-20T14:00:00+01:00";\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf object-id-ref {\r
+ type leafref {\r
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";\r
+ require-instance false;\r
+ }\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ notification attribute-value-changed-notification {\r
+ uses attribute-value-changed-notification;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping attribute-value-changed-notification {\r
+ leaf counter {\r
+ type int32;\r
+ default "-1";\r
+ config false;\r
+ description\r
+ "Counts attribute value changed notifications.";\r
+ }\r
+ leaf timestamp {\r
+ type yang:date-and-time;\r
+ default "2010-11-20T14:00:00+01:00";\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf object-id-ref {\r
+ type leafref {\r
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";\r
+ require-instance false;\r
+ }\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf attribute-name {\r
+ type string;\r
+ default "Attribute name not specified.";\r
+ config false;\r
+ description\r
+ "Name of the attribute that has been changed.";\r
+ }\r
+ leaf new-value {\r
+ type string;\r
+ default "New value not specified.";\r
+ config false;\r
+ description\r
+ "Attribute value converted to a string (xml, json, ...)";\r
+ }\r
+ description\r
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";\r
+ }\r
+\r
+ notification problem-notification {\r
+ uses problem-notification;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping problem-notification {\r
+ leaf counter {\r
+ type int32;\r
+ default "-1";\r
+ config false;\r
+ description\r
+ "Counts problem notifications";\r
+ }\r
+ leaf timestamp {\r
+ type yang:date-and-time;\r
+ default "2010-11-20T14:00:00+01:00";\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf object-id-ref {\r
+ type leafref {\r
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";\r
+ require-instance false;\r
+ }\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf problem {\r
+ type string;\r
+ default "Problem name not specified.";\r
+ config false;\r
+ description\r
+ "Name of the problem according to *Capability::supportedAlarmList";\r
+ }\r
+ leaf severity {\r
+ type severity-type;\r
+ default "SEVERITY_TYPE_WARNING";\r
+ config false;\r
+ description\r
+ "Severity of the problem according to VlanFc::VlanFcConfiguration::problemSeverityList";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ /****************************************\r
+ * grouping statements for object classes\r
+ **************************************/ \r
+ /****************************************\r
+ * package super-classes\r
+ **************************************/ \r
+\r
+ grouping current-problem {\r
+ leaf sequence-number {\r
+ type int16;\r
+ config false;\r
+ description\r
+ "Unique sequence number of the current problem object.";\r
+ }\r
+ leaf timestamp {\r
+ type yang:date-and-time;\r
+ default "2010-11-20T14:00:00+01:00";\r
+ config false;\r
+ description\r
+ "none";\r
+ }\r
+ leaf problem-severity {\r
+ type severity-type;\r
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";\r
+ config false;\r
+ description\r
+ "Severity of the alarm.";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping vlan-fc-spec {\r
+ container vlan-fc-pac {\r
+ uses vlan-fc-pac;\r
+ description\r
+ "none";\r
+ }\r
+ description\r
+ "Represents the VLAN, which is configured on the C-VLAN or S-VLAN Component. Name in ieee802-dot1q-bridge.yang: vlan.";\r
+ }\r
+\r
+ grouping vlan-fc-pac {\r
+ container vlan-fc-capability {\r
+ config false;\r
+ uses vlan-fc-capability;\r
+ description\r
+ "none";\r
+ }\r
+ container vlan-fc-configuration {\r
+ uses vlan-fc-configuration;\r
+ description\r
+ "none";\r
+ }\r
+ container vlan-fc-current-problems {\r
+ config false;\r
+ uses vlan-fc-current-problems;\r
+ description\r
+ "none";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping vlan-fc-capability {\r
+ leaf-list supported-sub-layer-protocol-name-list {\r
+ type sub-layer-protocol-name-type;\r
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";\r
+ config false;\r
+ description\r
+ "Lists the supported kinds of Components (implicitly defines the Ethertypes of the VLAN headers, which can be forwarded).";\r
+ }\r
+ leaf admin-shut-down-is-avail {\r
+ type boolean;\r
+ default "false";\r
+ config false;\r
+ description\r
+ "true = Manual switching on and off of the forwarding construct without deleting it (underlying OSI network layers are also not affected) is available.";\r
+ }\r
+ leaf-list supported-alarm-list {\r
+ type string;\r
+ default "Supported Alarms not yet defined.";\r
+ config false;\r
+ description\r
+ "Available alarms to be listed.";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping vlan-fc-configuration {\r
+ leaf fc-name {\r
+ type string;\r
+ default "Interface name not yet defined.";\r
+ description\r
+ "Description of the VLAN, could be a name, could be a number. Free text of up to 32 letters to be filled by the operator. Name in ieee802-dot1q-bridge.yang: name.";\r
+ }\r
+ leaf fc-is-on {\r
+ type boolean;\r
+ default "false";\r
+ description\r
+ "Only effective if (adminShutDownIsAvail==true). true = Activation of the forwarding of frames with this VLAN ID. false = De-activation of the ForwardingConstruct without deleting it (underlying OSI network layers are not affected).";\r
+ }\r
+ leaf sub-layer-protocol-name {\r
+ type sub-layer-protocol-name-type;\r
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";\r
+ description\r
+ "Type of VLAN (e.g. C-VLAN, S-VLAN), respectively Ethertype, which is forwarded.";\r
+ }\r
+ leaf vlan-id {\r
+ type int64;\r
+ default "-1";\r
+ description\r
+ "The VLAN ID, which identifies the frames to be forwarded. Range '1..4094 | 4096..4294967295'. Name in ieee802-dot1q-bridge.yang: vid.";\r
+ }\r
+ list problem-kind-severity-list {\r
+ key "problem-kind-name";\r
+ uses problem-kind-severity-type;\r
+ description\r
+ "Severity of the problem to be configured.";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping vlan-fc-current-problems {\r
+ list current-problem-list {\r
+ key "sequence-number";\r
+ config false;\r
+ uses vlan-fc-current-problem-type;\r
+ description\r
+ "none";\r
+ }\r
+ leaf number-of-current-problems {\r
+ type int8;\r
+ default "-1";\r
+ config false;\r
+ description\r
+ "Number of alarms, which are currently active on this interface.";\r
+ }\r
+ leaf time-of-latest-change {\r
+ type yang:date-and-time;\r
+ default "2010-11-20T14:00:00+01:00";\r
+ config false;\r
+ description\r
+ "Date and time when the list of alarms has been changed for the last time.";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ /****************************************\r
+ * typedef statements\r
+ **************************************/ \r
+\r
+ typedef sub-layer-protocol-name-type {\r
+ type identityref {\r
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;\r
+ }\r
+ description\r
+ "Represents the type of Component. Name in ieee802-dot1q-bridge.yang: type-of-component.";\r
+ }\r
+\r
+ /*********************************************\r
+ * grouping statements for complex data types\r
+ *******************************************/ \r
+\r
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE {\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {\r
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;\r
+ description\r
+ "Base identity for a C-VLAN component. Name in ieee802-dot1q-bridge.yang: c-vlan-component.";\r
+ }\r
+\r
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {\r
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;\r
+ description\r
+ "Base identity for a S-VLAN component. Name in ieee802-dot1q-bridge.yang: s-vlan-component.";\r
+ }\r
+\r
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {\r
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;\r
+ description\r
+ "Base identity for a VLAN unaware component. Name in ieee802-dot1q-bridge.yang: d-bridge-component.";\r
+ }\r
+\r
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {\r
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;\r
+ description\r
+ "Base identity for an EVB station ER component. Name in ieee802-dot1q-bridge.yang: edge-relay-component. ";\r
+ }\r
+\r
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {\r
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE {\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE_NON_ALARMED {\r
+ base SEVERITY_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE_WARNING {\r
+ base SEVERITY_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE_MINOR {\r
+ base SEVERITY_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE_MAJOR {\r
+ base SEVERITY_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE_CRITICAL {\r
+ base SEVERITY_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {\r
+ base SEVERITY_TYPE;\r
+ description\r
+ "none";\r
+ }\r
+\r
+ /****************************************\r
+ * package super-types\r
+ **************************************/ \r
+\r
+ typedef severity-type {\r
+ type identityref {\r
+ base SEVERITY_TYPE;\r
+ }\r
+ description\r
+ "According to ITU-T M.3160";\r
+ }\r
+\r
+ grouping problem-kind-severity-type {\r
+ leaf problem-kind-name {\r
+ type string;\r
+ description\r
+ "Name of the alarm according to supportedAlarmList";\r
+ }\r
+ leaf problem-kind-severity {\r
+ type severity-type;\r
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";\r
+ description\r
+ "Severity of this type of alarm.";\r
+ }\r
+ description\r
+ "none";\r
+ }\r
+\r
+ grouping vlan-fc-current-problem-type {\r
+ leaf problem-name {\r
+ type string;\r
+ default "Problem name not specified.";\r
+ config false;\r
+ description\r
+ "Name of the alarm according to VlanFc::VlanFcCapability::supportedAlarmList.";\r
+ }\r
+ uses current-problem;\r
+ description\r
+ "none";\r
+ }\r
+}\r