+ * The skeleton for this method was generated with the MD-SAL application
+ * archetype.
+ *
+ * @param session Reference to the established MD-SAL session
+ */
+ @Override
+ public void onSessionInitiated(BindingAwareBroker.ProviderContext session) {
+ LOG.info("HuaweiNetconfSpeaker Session Initiated");
+ this.mountService = session.getSALService(MountPointService.class);
+ this.dataBroker = session.getSALService(DataBroker.class);
+
+ }
+
+
+ @Override
+ public void onDataTreeChanged(@Nonnull Collection changes) {
+ for (Object obj : changes) {
+ DataTreeModification> change = (DataTreeModification>) obj;
+ DataObjectModification rootNode = change.getRootNode();
+ String nodeId = "";
+ if (rootNode.getModificationType() == WRITE) {
+// Toaster oldToaster = rootNode.getDataBefore();
+// Toaster newToaster = rootNode.getDataAfter();
+// LOG.info("onDataTreeChanged - Toaster config with path {} was added or replaced: "
+// + "old Toaster: {}, new Toaster: {}", change.getRootPath().getRootIdentifier(),
+// oldToaster, newToaster);
+
+ if (nodeId != null) {
+ connectDevice(nodeId,null);
+ }
+ } else if (rootNode.getModificationType() == DELETE) {
+ LOG.info("onDataTreeChanged - Toaster config with path {} was deleted: old Toaster: {}",
+ change.getRootPath().getRootIdentifier(), rootNode.getDataBefore());
+ disConnectDevice(nodeId);
+ }
+ }
+ }
+
+ private void startTask() {
+ pool.scheduleAtFixedRate(()->{
+ for(Object device :deviceList){
+ readInfoFromDevice("");
+ }
+ },0,10000,TimeUnit.MILLISECONDS);
+
+ }
+
+ private void readInfoFromDevice(String s) {
+ final Optional
+ * Date Author Note
+ * -------------------------------------------------------------------------
+ * 2019/8/12 MaXiaonan creat
+ */
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/NetconfIidFactory.java b/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/NetconfIidFactory.java
new file mode 100644
index 000000000..4caaa6664
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/java/com/cmcc/cmhi/huawei/impl/NetconfIidFactory.java
@@ -0,0 +1,55 @@
+/*
+ * Project: driver-layer-aggregator
+ *
+ * File Created at 2019/8/15
+ *
+ * Copyright 2016 CMCC Corporation Limited.
+ * All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * ZYHY Company. ("Confidential Information"). You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license.
+ */
+
+package com.cmcc.cmhi.huawei.impl;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+/**
+ * @author MaXiaonan
+ * @Type NetconfIidFactory.class
+ * @Desc
+ * @date 2019/8/15 8:59
+ */
+public class NetconfIidFactory {
+ private NetconfIidFactory() {
+ throw new IllegalStateException("Instantiating utility class.");
+ }
+
+ public static final InstanceIdentifier
+ * Date Author Note
+ * -------------------------------------------------------------------------
+ * 2019/8/15 MaXiaonan creat
+ */
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-action@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-action@2018-11-23.yang
new file mode 100644
index 000000000..048204fa9
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-action@2018-11-23.yang
@@ -0,0 +1,437 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-devm-action {
+ belongs-to huawei-devm {
+ prefix devm;
+ }
+
+ import huawei-pub-type {
+ prefix pub-type;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ include huawei-devm-type;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "the submodule of devm : devm_action";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ rpc resetBoard {
+ description
+ "Reset board.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc resetMpuBoard {
+ description
+ "Reset MPU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc resetLpuBoard {
+ description
+ "Reset LPU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc resetSfuBoard {
+ description
+ "Reset SFU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc switchOver {
+ description
+ "Switchover.";
+ input {
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ description
+ "Chassis position";
+ }
+ }
+ }
+ rpc resetCard {
+ description
+ "Reset Card.";
+ input {
+ leaf cardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Card position.";
+ }
+ }
+ }
+ rpc resetChassis {
+ description
+ "Reset Chassis.";
+ input {
+ leaf chassisPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Chassis position.";
+ }
+ }
+ }
+ rpc reboot {
+ description
+ "Reboot.";
+ input {
+ leaf saveConfig {
+ type boolean;
+ default "false";
+ description
+ "Flag indicating whether to save the configuration. True: save; False: not save.";
+ }
+ }
+ }
+ rpc transferFile {
+ description
+ "Transfer files.";
+ input {
+ leaf serverIpAddress {
+ type inet:ip-address-no-zone;
+ mandatory true;
+ description
+ "FTP server IP address.";
+ }
+ leaf serverPort {
+ type uint32 {
+ range "21..65535";
+ }
+ default "21";
+ description
+ "Server port.";
+ ext:allowDelete "true";
+ }
+ leaf vpnInstanceName {
+ type string {
+ length "1..128";
+ }
+ description
+ "VPN instance name.";
+ ext:allowDelete "true";
+ }
+ leaf sourceIpv4Address {
+ type inet:ipv4-address-no-zone;
+ description
+ "Source IPv4 address.";
+ }
+ leaf sourceInterfaceName {
+ type pub-type:ifName;
+ description
+ "Source interface name.";
+ ext:allowDelete "true";
+ }
+ leaf serverType {
+ type devmServerType;
+ default "ftp";
+ description
+ "Server type.";
+ }
+ leaf commandType {
+ type devmTransType;
+ default "put";
+ description
+ "Transmission type.";
+ ext:allowDelete "true";
+ }
+ leaf userName {
+ type string {
+ length "1..85";
+ }
+ mandatory true;
+ description
+ "User name.";
+ ext:allowDelete "false";
+ }
+ leaf password {
+ type pub-type:password;
+ mandatory true;
+ description
+ "Password.";
+ ext:allowDelete "false";
+ }
+ leaf localFileName {
+ type string {
+ length "1..128";
+ }
+ mandatory true;
+ description
+ "Local file name.";
+ ext:allowDelete "false";
+ }
+ leaf remoteFileName {
+ type string {
+ length "1..128";
+ }
+ description
+ "File name on the FTP server.";
+ ext:allowDelete "true";
+ }
+ leaf remoteExtension {
+ type string {
+ length "1..5";
+ }
+ default ".hw!";
+ description
+ "Temporary file name extension used for reliability.";
+ ext:allowDelete "true";
+ }
+ container secureTransferOptions {
+ description
+ "Transfer encryption options.";
+ leaf preferKex {
+ type devmPreferKexType;
+ description
+ "Encryption algorithm.";
+ ext:allowDelete "true";
+ }
+ leaf preferStocCipher {
+ type devmCipherType;
+ description
+ "Encryption algorithm for messages from a client to server.";
+ ext:allowDelete "true";
+ }
+ leaf preferCtosCipher {
+ type devmCipherType;
+ description
+ "Encryption algorithm for messages from a server to client.";
+ ext:allowDelete "true";
+ }
+ leaf preferStocHmac {
+ type devmStocHmacType;
+ description
+ "Prefer Stoc Hmac.";
+ ext:allowDelete "true";
+ }
+ leaf preferCtosHmac {
+ type devmStocHmacType;
+ description
+ "Prefer Ctos Hmac.";
+ ext:allowDelete "true";
+ }
+ leaf keepAliveInterval {
+ type uint32 {
+ range "0..60";
+ }
+ default "0";
+ description
+ "Keepalive interval.";
+ ext:allowDelete "true";
+ }
+ leaf keepAliveCount {
+ type uint32 {
+ range "0..100";
+ }
+ default "0";
+ description
+ "Number of Keepalive packets.";
+ ext:allowDelete "true";
+ }
+ }
+ }
+ }
+ rpc resetOfflineConfig {
+ description
+ "Reset offline configuration.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc clearInactiveCfg {
+ description
+ "Clear Inactive Configuration.";
+ input {
+ leaf entClass {
+ type devmOfflineType;
+ description
+ "Class.";
+ }
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ description
+ "Position.";
+ }
+ }
+ }
+ rpc ColdResetLpu {
+ description
+ "Cold reset LPU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc WarmResetLpu {
+ description
+ "Warm reset LPU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc ColdResetMpu {
+ description
+ "Cold reset MPU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc WarmResetMpu {
+ description
+ "Warm reset MPU.";
+ input {
+ leaf boardPosition {
+ type string {
+ length "1..32";
+ }
+ description
+ "Board position.";
+ }
+ }
+ }
+ rpc scheduleRebootAtTime {
+ description
+ "Schedule reboot at time.";
+ input {
+ leaf scheduleDate {
+ type pub-type:date;
+ description
+ "Date.";
+ }
+ leaf scheduleDateTime {
+ type pub-type:time_hhmm;
+ description
+ "Time.";
+ }
+ leaf saveConfig {
+ type boolean;
+ description
+ "Flag indicating whether save config";
+ }
+ }
+ }
+ rpc scheduleRebootDelayTime {
+ description
+ "Schedule reboot delay time.";
+ input {
+ leaf delayTime {
+ type string {
+ length "1..6";
+ }
+ description
+ "Schedule reboot delay time.";
+ }
+ leaf saveConfig {
+ type boolean;
+ description
+ "Flag indicating whether save config";
+ }
+ }
+ }
+ rpc undoSchReboot {
+ description
+ "Undo Schedule reboot.";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-notification@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-notification@2018-11-23.yang
new file mode 100644
index 000000000..28a272b02
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-notification@2018-11-23.yang
@@ -0,0 +1,149 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-devm-notification{
+ belongs-to huawei-devm{
+ prefix devm;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "notification of devm";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ notification hwIfMonitorInputRateRising{
+ description
+ "Interface input flow bandwidth usage exceeded the trap threshold. (Interface=[IfIndex], BandWidthUsage=[hwIfMonitorInputRatePercentage], TrapThreshold=[hwIfMonitorInputRateThreshold], InterfaceName=[InterfaceName])";
+ leaf IfIndex{
+ type uint32;
+ description
+ "Interface index";
+ }
+ leaf hwIfMonitorInputRateThreshold{
+ type uint32;
+ description
+ "Trap threshold";
+ }
+ leaf hwIfMonitorInputRatePercentage{
+ type uint32;
+ description
+ "Input flow bandwidth usage";
+ }
+ leaf InterfaceName{
+ type string;
+ description
+ "Interface name";
+ }
+ }
+ notification hwIfMonitorInputRateResume{
+ description
+ "Interface input flow bandwidth usage was restored to the trap threshold. (Interface=[IfIndex], BandWidthUsage=[hwIfMonitorInputRatePercentage], TrapThreshold=[hwIfMonitorInputRateThreshold], InterfaceName=[InterfaceName])";
+ leaf IfIndex{
+ type uint32;
+ description
+ "Interface index";
+ }
+ leaf hwIfMonitorInputRateThreshold{
+ type uint32;
+ description
+ "Trap threshold";
+ }
+ leaf hwIfMonitorInputRatePercentage{
+ type uint32;
+ description
+ "Input flow bandwidth usage";
+ }
+ leaf InterfaceName{
+ type string;
+ description
+ "Interface name";
+ }
+ }
+ notification hwIfMonitorOutputRateResume{
+ description
+ "Interface output flow bandwidth usage was restored to the trap threshold. (Interface=[IfIndex], BandWidthUsage=[hwIfMonitorOutputRatePercentage], TrapThreshold=[hwIfMonitorOutputRateThreshold], InterfaceName=[InterfaceName])";
+ leaf IfIndex{
+ type uint32;
+ description
+ "Interface index";
+ }
+ leaf hwIfMonitorOutputRateThreshold{
+ type uint32;
+ description
+ "Trap threshold";
+ }
+ leaf InterfaceName{
+ type string;
+ description
+ "Interface name";
+ }
+ leaf hwIfMonitorOutputRatePercentage{
+ type uint32;
+ description
+ "Output flow bandwidth usage";
+ }
+ }
+ notification hwIfMonitorOutputRateRising{
+ description
+ "Interface output flow bandwidth usage exceeded the trap threshold. (Interface=[IfIndex], BandWidthUsage=[hwIfMonitorOutputRatePercentage], TrapThreshold=[hwIfMonitorOutputRateThreshold], InterfaceName=[InterfaceName])";
+ leaf IfIndex{
+ type uint32;
+ description
+ "Interface index";
+ }
+ leaf hwIfMonitorOutputRateThreshold{
+ type uint32;
+ description
+ "Trap threshold";
+ }
+ leaf InterfaceName{
+ type string;
+ description
+ "Interface name";
+ }
+ leaf hwIfMonitorOutputRatePercentage{
+ type uint32;
+ description
+ "Output flow bandwidth usage";
+ }
+ }
+ notification entConfigChange{
+ description
+ "Records in entity-mib change.";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-type@2018-11-23.yang
new file mode 100644
index 000000000..345452ad4
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm-type@2018-11-23.yang
@@ -0,0 +1,2601 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-devm-type {
+ belongs-to huawei-devm {
+ prefix devm;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "the submodule of devm : devm_type";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef devmEntityClassType {
+ type enumeration {
+ enum "other" {
+ description
+ "Other.";
+ }
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "chassis" {
+ description
+ "Chassis.";
+ }
+ enum "backplane" {
+ description
+ "Backplane.";
+ }
+ enum "container" {
+ description
+ "Slot.";
+ }
+ enum "mpuModule" {
+ description
+ "MPU.";
+ }
+ enum "lpuModule" {
+ description
+ "LPU.";
+ }
+ enum "sfuModule" {
+ description
+ "SFU.";
+ }
+ enum "ecuModule" {
+ description
+ "ECU.";
+ }
+ enum "icuModule" {
+ description
+ "ICU.";
+ }
+ enum "cmuModule" {
+ description
+ "CMU.";
+ }
+ enum "clockModule" {
+ description
+ "CLK.";
+ }
+ enum "fan" {
+ description
+ "Fan.";
+ }
+ enum "powerSupply" {
+ description
+ "Power module.";
+ }
+ enum "lcd" {
+ description
+ "LCD.";
+ }
+ enum "cfModule" {
+ description
+ "CF card.";
+ }
+ enum "flexibleCardModule" {
+ description
+ "Flexible card.";
+ }
+ enum "port" {
+ description
+ "Port.";
+ }
+ enum "sensor" {
+ description
+ "Sensor.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmOfflineType {
+ type enumeration {
+ enum "chassis" {
+ description
+ "Chassis.";
+ }
+ enum "board" {
+ description
+ "Board.";
+ }
+ enum "card" {
+ description
+ "Card position.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmContainerType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "boardSlot" {
+ description
+ "Board slot.";
+ }
+ enum "mpuSlot" {
+ description
+ "MPU slot.";
+ }
+ enum "lpuSlot" {
+ description
+ "LPU slot.";
+ }
+ enum "sfuSlot" {
+ description
+ "SFU slot.";
+ }
+ enum "icuSlot" {
+ description
+ "ICU slot.";
+ }
+ enum "ecuSlot" {
+ description
+ "ECU slot.";
+ }
+ enum "clkSlot" {
+ description
+ "CLK slot.";
+ }
+ enum "cmuSlot" {
+ description
+ "CMU slot.";
+ }
+ enum "fanSlot" {
+ description
+ "Fan slot.";
+ }
+ enum "powerSlot" {
+ description
+ "Power slot.";
+ }
+ enum "lcdSlot" {
+ description
+ "LCD slot.";
+ }
+ enum "picSlot" {
+ description
+ "PIC slot.";
+ }
+ enum "ofcSlot" {
+ description
+ "OFC slot.";
+ }
+ enum "cfcardSlot" {
+ description
+ "CF card slot.";
+ }
+ enum "virtualSlot" {
+ description
+ "Virtual slot.";
+ }
+ enum "virtualSubSlot" {
+ description
+ "Virtual sub-slot.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmChassisType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "fname8090Unknown" {
+ description
+ "Unknown.";
+ }
+ enum "fname8090Whole" {
+ description
+ "NE5000E chassis.";
+ }
+ enum "fname8090NE5000EX" {
+ description
+ "NE5000EX chassis.";
+ }
+ enum "fname8090ClusterCentral" {
+ description
+ "NE5000E cluster central chassis.";
+ }
+ enum "fname8090NE5000EX-VB" {
+ description
+ "NE5000EX-VB chassis.";
+ }
+ enum "CE685048S4QEI" {
+ description
+ "CE685048S4QEI chassis.";
+ }
+ enum "CE585048T4S2QEI" {
+ description
+ "CE585048T4S2QEI chassis.";
+ }
+ enum "CE685048T4QEI" {
+ description
+ "CE685048T4QEI chassis.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmChassisSvcType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "other" {
+ description
+ "Other.";
+ }
+ enum "centralChassis" {
+ description
+ "Cluster central chassis.";
+ }
+ enum "lineChassis" {
+ description
+ "Cluster line chassis.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmBoardType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown device.";
+ }
+ enum "CR52MPUA" {
+ description
+ "CR52MPUA.";
+ }
+ enum "CR52MPUB" {
+ description
+ "CR52MPUB.";
+ }
+ enum "CR55MPUA" {
+ description
+ "CR55MPUA.";
+ }
+ enum "CR55MPUAB" {
+ description
+ "CR55MPUAB.";
+ }
+ enum "CR56RPUA" {
+ description
+ "CR56RPUA.";
+ }
+ enum "CR52LPUA" {
+ description
+ "CR52LPUA.";
+ }
+ enum "CR52LPUB" {
+ description
+ "CR52LPUB.";
+ }
+ enum "CR52LPUC" {
+ description
+ "CR52LPUC.";
+ }
+ enum "CR52LPUE" {
+ description
+ "CR52LPUE.";
+ }
+ enum "CR52LPUR" {
+ description
+ "CR52LPUR.";
+ }
+ enum "CR52LPUF" {
+ description
+ "CR52LPUF.";
+ }
+ enum "CR52LPUG" {
+ description
+ "CR52LPUG.";
+ }
+ enum "CR52LPUH" {
+ description
+ "CR52LPUH.";
+ }
+ enum "CR52LPUI" {
+ description
+ "CR52LPUI.";
+ }
+ enum "CR52LPUK" {
+ description
+ "CR52LPUK.";
+ }
+ enum "CR52LPUM" {
+ description
+ "CR52LPUM.";
+ }
+ enum "CR52LPUN" {
+ description
+ "CR52LPUN.";
+ }
+ enum "CR52SPUC" {
+ description
+ "CR52SPUC.";
+ }
+ enum "CR56LPUF100A" {
+ description
+ "CR56LPUF100A.";
+ }
+ enum "CR56LPUF100B" {
+ description
+ "CR56LPUF100B.";
+ }
+ enum "CR56LPUI100A" {
+ description
+ "CR56LPUI100A.";
+ }
+ enum "CR56LPUI100B" {
+ description
+ "CR56LPUI100B.";
+ }
+ enum "CR56LPUI100C" {
+ description
+ "CR56LPUI100C.";
+ }
+ enum "CR56LPUF200A" {
+ description
+ "CR56LPUF200A.";
+ }
+ enum "CR52SFUA" {
+ description
+ "CR52SFUA.";
+ }
+ enum "CR52SRUA" {
+ description
+ "CR52SRUA.";
+ }
+ enum "CR52SFUD" {
+ description
+ "CR52SFUD.";
+ }
+ enum "CR52SFUF" {
+ description
+ "CR52SFUF.";
+ }
+ enum "CR52SFUG" {
+ description
+ "CR52SFUG.";
+ }
+ enum "CR52SFUC" {
+ description
+ "CR52SFUC.";
+ }
+ enum "CR52SFEA" {
+ description
+ "CR52SFEA.";
+ }
+ enum "CR52K-SFEA" {
+ description
+ "CR52K-SFEA.";
+ }
+ enum "CR55SFUA" {
+ description
+ "CR55SFUA.";
+ }
+ enum "CR55ECUA" {
+ description
+ "CR55ECUA.";
+ }
+ enum "CR55C-ECUA" {
+ description
+ "CR55C-ECUA.";
+ }
+ enum "CR55ICUA" {
+ description
+ "CR55ICUA.";
+ }
+ enum "CR56SFUF100B" {
+ description
+ "CR56SFUF100B.";
+ }
+ enum "CR55SFUI100A" {
+ description
+ "CR55SFUI100A.";
+ }
+ enum "CR55ECU100A" {
+ description
+ "CR55ECU100A.";
+ }
+ enum "CR52SFEB" {
+ description
+ "CR52SFEB.";
+ }
+ enum "CR56SFUF100C" {
+ description
+ "CR56SFUF100C.";
+ }
+ enum "CR56SFU200A" {
+ description
+ "CR56SFU200A.";
+ }
+ enum "CR5D00EKGF60" {
+ description
+ "CR5D00EKGF60.";
+ }
+ enum "CR5D00P4XX60" {
+ description
+ "CR5D00P4XX60.";
+ }
+ enum "CR5D00P8UF60" {
+ description
+ "CR5D00P8UF60.";
+ }
+ enum "CR5D00E4XX60" {
+ description
+ "CR5D00E4XX60.";
+ }
+ enum "CR5D00W4XX60" {
+ description
+ "CR5D00W4XX60.";
+ }
+ enum "CR5DLPUFA060" {
+ description
+ "CR5DLPUFA060.";
+ }
+ enum "CR5D00LEXF60" {
+ description
+ "CR5D00LEXF60.";
+ }
+ enum "CR5D00E2NC60" {
+ description
+ "CR5D00E2NC60.";
+ }
+ enum "CR5DE1NLAX60" {
+ description
+ "CR5DE1NLAX60.";
+ }
+ enum "CR5DSFEBA06B" {
+ description
+ "CR5DSFEBA06B.";
+ }
+ enum "CR5D0MPUB460" {
+ description
+ "CR5D0MPUB460.";
+ }
+ enum "CR5DSFUFA06B" {
+ description
+ "CR5DSFUFA06B.";
+ }
+ enum "CR5DSFUIE060" {
+ description
+ "CR5DSFUIE060.";
+ }
+ enum "CR5DSFUFA06C" {
+ description
+ "CR5DSFUFA06C.";
+ }
+ enum "CR5D0MPUA450" {
+ description
+ "CR5D0MPUA450.";
+ }
+ enum "CR5DECUFA050" {
+ description
+ "CR5DECUFA050.";
+ }
+ enum "CR5DSFUIA050" {
+ description
+ "CR5DSFUIA050.";
+ }
+ enum "CLOCK" {
+ description
+ "CLOCK.";
+ }
+ enum "POWER" {
+ description
+ "POWER.";
+ }
+ enum "FAN" {
+ description
+ "FAN.";
+ }
+ enum "LCD" {
+ description
+ "LCD.";
+ }
+ enum "DE51SRU1A" {
+ description
+ "DE51SRU1A.";
+ }
+ enum "DE51SRU1B" {
+ description
+ "DE51SRU1B.";
+ }
+ enum "DE51SRU1C" {
+ description
+ "DE51SRU1C.";
+ }
+ enum "XCA" {
+ description
+ "XCA.";
+ }
+ enum "T1EX8" {
+ description
+ "T1EX8.";
+ }
+ enum "T1CH1" {
+ description
+ "T1CH1.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmSubCardType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown card.";
+ }
+ enum "CR52P2XX" {
+ description
+ "CR52P2XX.";
+ }
+ enum "CR52P4XX" {
+ description
+ "CR52P4XX.";
+ }
+ enum "CR52P8UF" {
+ description
+ "CR52P8UF.";
+ }
+ enum "CR52EEGF" {
+ description
+ "CR52EEGF.";
+ }
+ enum "CR52E1XX" {
+ description
+ "CR52E1XX.";
+ }
+ enum "CR52E4XX" {
+ description
+ "CR52E4XX.";
+ }
+ enum "CR52W4XX" {
+ description
+ "CR52W4XX.";
+ }
+ enum "CR52EAGF" {
+ description
+ "CR52EAGF.";
+ }
+ enum "CR52P4UF" {
+ description
+ "CR52P4UF.";
+ }
+ enum "CR52E2XX" {
+ description
+ "CR52E2XX.";
+ }
+ enum "CR52W2XX" {
+ description
+ "CR52W2XX.";
+ }
+ enum "CR52P1XX" {
+ description
+ "CR52P1XX.";
+ }
+ enum "CR52W1XX" {
+ description
+ "CR52W1XX.";
+ }
+ enum "CR56L5XX" {
+ description
+ "CR56L5XX.";
+ }
+ enum "CR56E1NC" {
+ description
+ "CR56E1NC.";
+ }
+ enum "CR56P2XX" {
+ description
+ "CR56P2XX.";
+ }
+ enum "CR56L2XX" {
+ description
+ "CR56L2XX.";
+ }
+ enum "CR56E2XX" {
+ description
+ "CR56E2XX.";
+ }
+ enum "CR56D2XX" {
+ description
+ "CR56D2XX.";
+ }
+ enum "CR56E5XX" {
+ description
+ "CR56E5XX.";
+ }
+ enum "CR56P1MZ" {
+ description
+ "CR56P1MZ.";
+ }
+ enum "CR56EFGF" {
+ description
+ "CR56EFGF.";
+ }
+ enum "CR52P8CF" {
+ description
+ "CR52P8CF.";
+ }
+ enum "CR52P2UF" {
+ description
+ "CR52P2UF.";
+ }
+ enum "CR52P1UF" {
+ description
+ "CR52P1UF.";
+ }
+ enum "CR55OFC100B" {
+ description
+ "CR55OFC100B.";
+ }
+ enum "CR52OFCB" {
+ description
+ "CR52OFCB.";
+ }
+ enum "CR55OFC100A" {
+ description
+ "CR55OFC100A.";
+ }
+ enum "CR55OFC40" {
+ description
+ "CR55OFC40.";
+ }
+ enum "CR55OFCA" {
+ description
+ "CR55OFCA.";
+ }
+ enum "CR55C-OFCA" {
+ description
+ "CR55C-OFCA.";
+ }
+ enum "CR52OFCV" {
+ description
+ "CR52OFCV.";
+ }
+ enum "CFCARD" {
+ description
+ "CF card.";
+ }
+ enum "CR53P1MZ" {
+ description
+ "CR53P1MZ.";
+ }
+ enum "CR52P4HF" {
+ description
+ "CR52P4HF.";
+ }
+ enum "CR52EMGE" {
+ description
+ "CR52EMGE.";
+ }
+ enum "CR52EFGE" {
+ description
+ "CR52EFGE.";
+ }
+ enum "CR52E5GF" {
+ description
+ "CR52E5GF.";
+ }
+ enum "CR52P4CF" {
+ description
+ "CR52P4CF.";
+ }
+ enum "CR52D1MV" {
+ description
+ "CR52D1MV.";
+ }
+ enum "CR52EKGFY" {
+ description
+ "CR52EKGFY.";
+ }
+ enum "CR57EFGF" {
+ description
+ "CR57EFGF.";
+ }
+ enum "CR56E1NCC" {
+ description
+ "CR56E1NCC.";
+ }
+ enum "CR52P1XZ" {
+ description
+ "CR52P1XZ.";
+ }
+ enum "CR52E1XZ" {
+ description
+ "CR52E1XZ.";
+ }
+ enum "CR52W1XZ" {
+ description
+ "CR52W1XZ.";
+ }
+ enum "SPU" {
+ description
+ "SPU.";
+ }
+ enum "TSUA" {
+ description
+ "TSUA.";
+ }
+ enum "CR56E1MC" {
+ description
+ "CR56E1MC.";
+ }
+ enum "CR56LAXFA" {
+ description
+ "CR56LAXFA.";
+ }
+ enum "CR5D00L5XX60" {
+ description
+ "CR5D00L5XX60.";
+ }
+ enum "CR5D00E5XX60" {
+ description
+ "CR5D00E5XX60.";
+ }
+ enum "CR5D00L2XX60" {
+ description
+ "CR5D00L2XX60.";
+ }
+ enum "CR5D00E2XX60" {
+ description
+ "CR5D00E2XX60.";
+ }
+ enum "CR5D00EFGF60" {
+ description
+ "CR5D00EFGF60.";
+ }
+ enum "CR5D00P1MZ60" {
+ description
+ "CR5D00P1MZ60.";
+ }
+ enum "CR5D00P2XX60" {
+ description
+ "CR5D00P2XX60.";
+ }
+ enum "CR5M00E1MC60" {
+ description
+ "CR5M00E1MC60.";
+ }
+ enum "CR5D00E1NC60" {
+ description
+ "CR5D00E1NC60.";
+ }
+ enum "CR5D00LAXX60" {
+ description
+ "CR5D00LAXX60.";
+ }
+ enum "CR5D0OFCA060" {
+ description
+ "CR5D0OFCA060.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmLpuServiceType {
+ type enumeration {
+ enum "lpu" {
+ description
+ "LPU.";
+ }
+ enum "rnr" {
+ description
+ "RNR.";
+ }
+ enum "tsu" {
+ description
+ "TSU.";
+ }
+ enum "ns" {
+ description
+ "NS.";
+ }
+ enum "gre" {
+ description
+ "GRE.";
+ }
+ }
+ description
+ "Lpu service type";
+ }
+
+ typedef devmLsRole {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "mmb" {
+ description
+ "MMB.";
+ }
+ enum "plmb" {
+ description
+ "PLMB.";
+ }
+ enum "acmb" {
+ description
+ "ACMB.";
+ }
+ enum "mb" {
+ description
+ "MB.";
+ }
+ enum "lc" {
+ description
+ "LC.";
+ }
+ }
+ description
+ "board role";
+ }
+
+ typedef devmEntityAdminState {
+ type enumeration {
+ enum "active" {
+ description
+ "Active state that enabled service supply. ";
+ }
+ enum "inactive" {
+ description
+ "Inactive state that disables service supply.";
+ }
+ enum "notSupported" {
+ description
+ "Administration state not supported.";
+ }
+ }
+ description
+ "entity admin state";
+ }
+
+ typedef devmEntityOperState {
+ type enumeration {
+ enum "normal" {
+ description
+ "Normal.";
+ }
+ enum "fault" {
+ description
+ "Fault.";
+ }
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "offline" {
+ description
+ "Offline.";
+ }
+ enum "opticalNotEquipped" {
+ description
+ "Optical module is not equipped.";
+ }
+ enum "notSupported" {
+ description
+ "Not supported.";
+ }
+ enum "notInstall" {
+ description
+ "Board is not installed.";
+ }
+ enum "wrongType" {
+ description
+ "Wrong board type.";
+ }
+ enum "registered" {
+ description
+ "Registered.";
+ }
+ }
+ description
+ "entity operate state";
+ }
+
+ typedef devmEntityPresentState {
+ type enumeration {
+ enum "online" {
+ description
+ "";
+ }
+ enum "offline" {
+ description
+ "";
+ }
+ enum "unknown" {
+ description
+ "";
+ }
+ }
+ description
+ "Entity present state";
+ }
+
+ typedef devmEntityStandbyState {
+ type enumeration {
+ enum "notSupported" {
+ description
+ "Not supported.";
+ }
+ enum "master" {
+ description
+ "Master.";
+ }
+ enum "slave" {
+ description
+ "Slave.";
+ }
+ enum "systemMaster" {
+ description
+ "System master.";
+ }
+ enum "systemSlave" {
+ description
+ "System slave.";
+ }
+ }
+ description
+ "Entity standby state";
+ }
+
+ typedef devmPwrState {
+ type enumeration {
+ enum "dc" {
+ description
+ "dc:";
+ }
+ enum "ac" {
+ description
+ "ac:";
+ }
+ enum "unknown" {
+ description
+ "unknown:";
+ }
+ }
+ description
+ "Power state";
+ }
+
+ typedef devmRunState {
+ type enumeration {
+ enum "normal" {
+ description
+ "normal:";
+ }
+ enum "abnormal" {
+ description
+ "abnormal:";
+ }
+ enum "unknown" {
+ description
+ "unknown:";
+ }
+ }
+ description
+ "Run state";
+ }
+
+ typedef devmPortType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "Eth" {
+ description
+ "Ethernet.";
+ }
+ enum "Pos" {
+ description
+ "POS.";
+ }
+ enum "Cpos" {
+ description
+ "CPOS port.";
+ }
+ enum "E1" {
+ description
+ "E1 port.";
+ }
+ enum "GE" {
+ description
+ "GE port.";
+ }
+ enum "10GE" {
+ description
+ "10GE port.";
+ }
+ enum "GF" {
+ description
+ "GF port.";
+ }
+ enum "10GF" {
+ description
+ "10GF port.";
+ }
+ enum "40GF" {
+ description
+ "40GF port.";
+ }
+ enum "10GFCOM" {
+ description
+ "Combinable 10GF port.";
+ }
+ enum "40GFSPLIT" {
+ description
+ "Splitable 40GF port.";
+ }
+ enum "Otn" {
+ description
+ "OTN port.";
+ }
+ }
+ description
+ "Port type";
+ }
+
+ typedef devmPortLevel {
+ type enumeration {
+ enum "0xFF" {
+ description
+ "0xFF.";
+ }
+ enum "GE" {
+ description
+ "GE.";
+ }
+ enum "FE" {
+ description
+ "FE.";
+ }
+ enum "10GE" {
+ description
+ "10GE.";
+ }
+ }
+ description
+ "Port level";
+ }
+
+ typedef devmPortHardType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "EthLANPort" {
+ description
+ "Ethernet LAN port.";
+ }
+ enum "EthWANPort" {
+ description
+ "Ethernet WAN port.";
+ }
+ enum "EthGEPort" {
+ description
+ "Ethernet GE port.";
+ }
+ enum "Eth10GEPort" {
+ description
+ "Ethernet 10GE port.";
+ }
+ enum "EthGFPort" {
+ description
+ "Ethernet GF Port.";
+ }
+ enum "Eth10GFPort" {
+ description
+ "Ethernet 10GF port.";
+ }
+ enum "Eth40GFPort" {
+ description
+ "Ethernet 40GF port.";
+ }
+ enum "Eth10GFCOMPort" {
+ description
+ "Combinable Ethernet 10GF port.";
+ }
+ enum "Eth40GFSPLITPort" {
+ description
+ "Splitable Ethernet 40GF split port.";
+ }
+ enum "EthFEPort" {
+ description
+ "Ethernet FE port.";
+ }
+ enum "EthMGEPort" {
+ description
+ "Ethernet MGE port.";
+ }
+ enum "PosPort" {
+ description
+ "POS port.";
+ }
+ enum "OtnPort" {
+ description
+ "OTN port.";
+ }
+ enum "CposPort" {
+ description
+ "CPOS port.";
+ }
+ enum "E1Port" {
+ description
+ "E1 port.";
+ }
+ enum "EthClusterPort" {
+ description
+ "Ethernet multi-chassis cascading port.";
+ }
+ enum "EthPort" {
+ description
+ "Ethernet port.";
+ }
+ enum "EPORT" {
+ description
+ "EPORT.";
+ }
+ enum "OPORT" {
+ description
+ "OPORT.";
+ }
+ }
+ description
+ "Port hardtype";
+ }
+
+ typedef devmCardHardType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown card.";
+ }
+ enum "ETH_10G_WAN" {
+ description
+ "ETH_10G_WAN.";
+ }
+ enum "ETH_10G_LAN" {
+ description
+ "ETH_10G_LAN.";
+ }
+ enum "ETH_10XGE_CARD" {
+ description
+ "ETH_10XGE_CARD.";
+ }
+ enum "EAGF_CARD" {
+ description
+ "EAGF_CARD.";
+ }
+ enum "P4UF_CARD" {
+ description
+ "P4UF_CARD.";
+ }
+ enum "POS_4X2.5G_CARD" {
+ description
+ "POS_4X2.5G_CARD.";
+ }
+ enum "POS_1X10G_CARD" {
+ description
+ "POS_1X10G_CARD.";
+ }
+ enum "POS_2x10GX_CARD" {
+ description
+ "POS_2x10GX_CARD.";
+ }
+ enum "POS_4X622M_CARD" {
+ description
+ "POS_4X622M_CARD.";
+ }
+ enum "ETH_2X10G_LAN_CARD" {
+ description
+ "ETH_2X10G_LAN_CARD.";
+ }
+ enum "ETH_2X10G_WAN_CARD" {
+ description
+ "ETH_2X10G_WAN_CARD.";
+ }
+ enum "ETH_48XGE_CARD" {
+ description
+ "ETH_48XGE_CARD.";
+ }
+ enum "POS_8X155M_CARD" {
+ description
+ "POS_8X155M_CARD.";
+ }
+ enum "ETH_24XGE_CARD" {
+ description
+ "ETH_24XGE_CARD.";
+ }
+ enum "POS_1X2.5G_CARD" {
+ description
+ "POS_1X2.5G_CARD.";
+ }
+ enum "POS_2X2.5G_CARD" {
+ description
+ "POS_2X2.5G_CARD.";
+ }
+ enum "POS_2X10G_CARD" {
+ description
+ "POS_2X10G_CARD.";
+ }
+ enum "POS_4X155M_CARD" {
+ description
+ "POS_4X155M_CARD.";
+ }
+ enum "ETH_5XGE_CARD" {
+ description
+ "ETH_5XGE_CARD.";
+ }
+ enum "P1MZ_CARD" {
+ description
+ "P1MZ_CARD.";
+ }
+ enum "D1MV_CARD" {
+ description
+ "D1MV_CARD.";
+ }
+ enum "ETH_LAN_WAN_4X10G_CARD" {
+ description
+ "ETH_LAN_WAN_4X10G_CARD.";
+ }
+ enum "LAN_WAN_2x10GX_CARD" {
+ description
+ "LAN_WAN_2x10GX_CARD.";
+ }
+ enum "ETH_2x10GX_CARD" {
+ description
+ "ETH_2x10GX_CARD.";
+ }
+ enum "OTN_2x10GX_CARD" {
+ description
+ "OTN_2x10GX_CARD.";
+ }
+ enum "LAN_WAN_5x10GX_CARD" {
+ description
+ "LAN_WAN_5x10GX_CARD.";
+ }
+ enum "ETH_5x10GX_CARD" {
+ description
+ "ETH_5x10GX_CARD.";
+ }
+ enum "POS_40GZ_CARD" {
+ description
+ "POS_40GZ_CARD.";
+ }
+ enum "ETH_100GC_CARD" {
+ description
+ "ETH_100GC_CARD.";
+ }
+ enum "ETH_24xGF_CARD" {
+ description
+ "ETH_24xGF_CARD.";
+ }
+ enum "OFCA_CARD" {
+ description
+ "OFCA_CARD.";
+ }
+ enum "OFC40_CARD" {
+ description
+ "OFC40_CARD.";
+ }
+ enum "OFC100B_CARD" {
+ description
+ "OFC100B_CARD.";
+ }
+ enum "OFC100A_CARD" {
+ description
+ "OFC100A_CARD.";
+ }
+ enum "OFCB_CARD" {
+ description
+ "OFCB_CARD.";
+ }
+ enum "POS_10G_CARD" {
+ description
+ "POS_10G_CARD.";
+ }
+ enum "POS_40G_CARD" {
+ description
+ "POS_40G_CARD.";
+ }
+ enum "WDM_40G_CARD" {
+ description
+ "WDM_40G_CARD.";
+ }
+ enum "ETH_40XGE_SFP_CARD" {
+ description
+ "ETH_40XGE_SFP_CARD.";
+ }
+ enum "ETH_40GC_CARD" {
+ description
+ "ETH_40GC_CARD.";
+ }
+ enum "SPU" {
+ description
+ "SPU.";
+ }
+ enum "TSUA" {
+ description
+ "TSUA.";
+ }
+ enum "LAN_WAN_10x10GX_CARD" {
+ description
+ "LAN_WAN_10x10GX_CARD.";
+ }
+ }
+ description
+ "Card hardtype";
+ }
+
+ typedef devmEthPortMediumType {
+ type enumeration {
+ enum "notSupported" {
+ description
+ "Unsupported Type.";
+ }
+ enum "copper" {
+ description
+ "Copper.";
+ }
+ enum "fiber" {
+ description
+ "Fiber.";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmGFEthPortMediumType {
+ type enumeration {
+ enum "fiber100" {
+ description
+ "";
+ }
+ enum "fiber1000" {
+ description
+ "";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef devmTransMode {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "multiMode" {
+ description
+ "Multi-mode.";
+ }
+ enum "singleMode" {
+ description
+ "Single mode.";
+ }
+ enum "copperMode" {
+ description
+ "Copper mode.";
+ }
+ }
+ description
+ "Port transmission mode";
+ }
+
+ typedef devmHardType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "UNKNOWN" {
+ description
+ "UNKNOWN.";
+ }
+ enum "-" {
+ description
+ "No board configuration.";
+ }
+ enum "chassis" {
+ description
+ "Chassis.";
+ }
+ enum "boardSlot" {
+ description
+ "Board slot.";
+ }
+ enum "mpuSlot" {
+ description
+ "MPU slot.";
+ }
+ enum "lpuSlot" {
+ description
+ "LPU slot.";
+ }
+ enum "sfuSlot" {
+ description
+ "SFU slot.";
+ }
+ enum "icuSlot" {
+ description
+ "ICU slot.";
+ }
+ enum "ecuSlot" {
+ description
+ "ECU slot.";
+ }
+ enum "clkSlot" {
+ description
+ "CLK slot.";
+ }
+ enum "fanSlot" {
+ description
+ "Fan slot.";
+ }
+ enum "powerSlot" {
+ description
+ "Power slot.";
+ }
+ enum "picSlot" {
+ description
+ "PIC slot.";
+ }
+ enum "ofcSlot" {
+ description
+ "OFC slot.";
+ }
+ enum "lcdSlot" {
+ description
+ "LCD slot.";
+ }
+ enum "cfcardSlot" {
+ description
+ "CF card slot.";
+ }
+ enum "cmuSlot" {
+ description
+ "CMU slot.";
+ }
+ enum "fname8090Unknown" {
+ description
+ "Unknown.";
+ }
+ enum "fname8090Whole" {
+ description
+ "NE5000E chassis.";
+ }
+ enum "fname8090NE5000EX" {
+ description
+ "NE5000EX chassis.";
+ }
+ enum "fname8090ClusterCentral" {
+ description
+ "NE5000E cluster central chassis.";
+ }
+ enum "fname8090NE5000EX-VB" {
+ description
+ "NE5000EX-VB chassis.";
+ }
+ enum "CHASSIS" {
+ description
+ "CHASSIS.";
+ }
+ enum "CHASSIS1" {
+ description
+ "CHASSIS1.";
+ }
+ enum "CHASSIS2" {
+ description
+ "CHASSIS2.";
+ }
+ enum "CCCCHASSIS" {
+ description
+ "CCC CHASSIS.";
+ }
+ enum "CE585048T4S2QEI" {
+ description
+ "CE585048T4S2QEI chassis.";
+ }
+ enum "CE685048S4QEI" {
+ description
+ "CE685048S4QEI chassis.";
+ }
+ enum "CE685048T4QEI" {
+ description
+ "CE685048T4QEI chassis.";
+ }
+ enum "CR52MPUA" {
+ description
+ "CR52MPUA.";
+ }
+ enum "CR52MPUB" {
+ description
+ "CR52MPUB.";
+ }
+ enum "CR55MPUA" {
+ description
+ "CR55MPUA.";
+ }
+ enum "C55MPUA" {
+ description
+ "CR55MPUA.";
+ }
+ enum "C56MPUC" {
+ description
+ "C56MPUC.";
+ }
+ enum "CR55MPUAB" {
+ description
+ "CR55MPUAB.";
+ }
+ enum "CR56RPUA" {
+ description
+ "CR56RPUA.";
+ }
+ enum "CR52LPUA" {
+ description
+ "CR52LPUA.";
+ }
+ enum "CR52LPUB" {
+ description
+ "CR52LPUB.";
+ }
+ enum "CR52LPUC" {
+ description
+ "CR52LPUC.";
+ }
+ enum "CR52LPUE" {
+ description
+ "CR52LPUE.";
+ }
+ enum "CR52LPUR" {
+ description
+ "CR52LPUR.";
+ }
+ enum "CR52LPUF" {
+ description
+ "CR52LPUF.";
+ }
+ enum "CR52LPUG" {
+ description
+ "CR52LPUG.";
+ }
+ enum "CR52LPUH" {
+ description
+ "CR52LPUH.";
+ }
+ enum "CR52LPUI" {
+ description
+ "CR52LPUI.";
+ }
+ enum "CR52LPUK" {
+ description
+ "CR52LPUK.";
+ }
+ enum "CR52LPUM" {
+ description
+ "CR52LPUM.";
+ }
+ enum "CR52LPUN" {
+ description
+ "CR52LPUN.";
+ }
+ enum "CR52SPUC" {
+ description
+ "CR52SPUC.";
+ }
+ enum "CR56LPUF100A" {
+ description
+ "CR56LPUF100A.";
+ }
+ enum "CR56LPUF100B" {
+ description
+ "CR56LPUF100B.";
+ }
+ enum "CR56LPUI100A" {
+ description
+ "CR56LPUI100A.";
+ }
+ enum "CR56LPUI100B" {
+ description
+ "CR56LPUI100B.";
+ }
+ enum "CR56LPUI100C" {
+ description
+ "CR56LPUI100C.";
+ }
+ enum "CR56LPUF200A" {
+ description
+ "CR56LPUF200A.";
+ }
+ enum "RNRLPUB" {
+ description
+ "RNRLPUB.";
+ }
+ enum "RNRLPUD" {
+ description
+ "RNRLPUD.";
+ }
+ enum "RNRLPUF" {
+ description
+ "RNRLPUF.";
+ }
+ enum "RNRNS" {
+ description
+ "RNRNS.";
+ }
+ enum "RNRGRE" {
+ description
+ "RNRGRE.";
+ }
+ enum "CR52SFUA" {
+ description
+ "CR52SFUA.";
+ }
+ enum "CR52SRUA" {
+ description
+ "CR52SRUA.";
+ }
+ enum "CR52SFUD" {
+ description
+ "CR52SFUD.";
+ }
+ enum "CR52SFUF" {
+ description
+ "CR52SFUF.";
+ }
+ enum "CR52SFUG" {
+ description
+ "CR52SFUG.";
+ }
+ enum "CR52SFUC" {
+ description
+ "CR52SFUC.";
+ }
+ enum "CR52SFEA" {
+ description
+ "CR52SFEA.";
+ }
+ enum "CR52K-SFEA" {
+ description
+ "CR52K-SFEA.";
+ }
+ enum "CR55SFUA" {
+ description
+ "CR55SFUA.";
+ }
+ enum "CR55ECUA" {
+ description
+ "CR55ECUA.";
+ }
+ enum "CR55C-ECUA" {
+ description
+ "CR55C-ECUA.";
+ }
+ enum "CR55ICUA" {
+ description
+ "CR55ICUA.";
+ }
+ enum "CR56SFUF100B" {
+ description
+ "CR56SFUF100B.";
+ }
+ enum "CR55SFUI100A" {
+ description
+ "CR55SFUI100A.";
+ }
+ enum "CR56SFUF100C" {
+ description
+ "CR56SFUF100C.";
+ }
+ enum "CR56SFU200A" {
+ description
+ "CR56SFU200A.";
+ }
+ enum "CR55ECU100A" {
+ description
+ "CR55ECU100A.";
+ }
+ enum "CR52SFEB" {
+ description
+ "CR52SFEB.";
+ }
+ enum "DE51SRU1A" {
+ description
+ "DE51SRU1A.";
+ }
+ enum "DE51SRU1B" {
+ description
+ "DE51SRU1B.";
+ }
+ enum "DE51SRU1C" {
+ description
+ "DE51SRU1C.";
+ }
+ enum "CR5DSFUFA06C" {
+ description
+ "CR5DSFUFA06C.";
+ }
+ enum "CR5DSFUIK060" {
+ description
+ "CR5DSFUIK060.";
+ }
+ enum "BOOTROM" {
+ description
+ "BOOTROM.";
+ }
+ enum "FLASH" {
+ description
+ "FLASH.";
+ }
+ enum "EPLD1" {
+ description
+ "EPLD1.";
+ }
+ enum "EPLD2" {
+ description
+ "EPLD2.";
+ }
+ enum "CR52E1XX" {
+ description
+ "CR52E1XX.";
+ }
+ enum "CR52W1XX" {
+ description
+ "CR52W1XX.";
+ }
+ enum "CR52EAGF" {
+ description
+ "CR52EAGF.";
+ }
+ enum "CR52P4UF" {
+ description
+ "CR52P4UF.";
+ }
+ enum "CR52P1XX" {
+ description
+ "CR52P1XX.";
+ }
+ enum "CR52P4HF" {
+ description
+ "CR52P4HF.";
+ }
+ enum "CR52E2XX" {
+ description
+ "CR52E2XX.";
+ }
+ enum "CR52W2XX" {
+ description
+ "CR52W2XX.";
+ }
+ enum "CR52P2XX" {
+ description
+ "CR52P2XX.";
+ }
+ enum "CR52EMGE" {
+ description
+ "CR52EMGE.";
+ }
+ enum "CR52P8CF" {
+ description
+ "CR52P8CF.";
+ }
+ enum "CR52EFGE" {
+ description
+ "CR52EFGE.";
+ }
+ enum "CR52P1UF" {
+ description
+ "CR52P1UF.";
+ }
+ enum "CR52P2UF" {
+ description
+ "CR52P2UF.";
+ }
+ enum "CR52E5GF" {
+ description
+ "CR52E5GF.";
+ }
+ enum "CR52P4CF" {
+ description
+ "CR52P4CF.";
+ }
+ enum "CR53P1MZ" {
+ description
+ "CR53P1MZ.";
+ }
+ enum "CR52D1MV" {
+ description
+ "CR52D1MV.";
+ }
+ enum "CR52E4XX" {
+ description
+ "CR52E4XX.";
+ }
+ enum "CR56P2XX" {
+ description
+ "CR56P2XX.";
+ }
+ enum "CR56L2XX" {
+ description
+ "CR56L2XX.";
+ }
+ enum "CR56E2XX" {
+ description
+ "CR56E2XX.";
+ }
+ enum "CR56D2XX" {
+ description
+ "CR56D2XX.";
+ }
+ enum "CR56L5XX" {
+ description
+ "CR56L5XX.";
+ }
+ enum "CR56E5XX" {
+ description
+ "CR56E5XX.";
+ }
+ enum "CR56P1MZ" {
+ description
+ "CR56P1MZ.";
+ }
+ enum "CR56E1NC" {
+ description
+ "CR56E1NC.";
+ }
+ enum "CR56EFGF" {
+ description
+ "CR56EFGF.";
+ }
+ enum "CR52EKGFY" {
+ description
+ "CR52EKGFY.";
+ }
+ enum "CR57EFGF" {
+ description
+ "CR57EFGF.";
+ }
+ enum "CR56E1NCC" {
+ description
+ "CR56E1NCC.";
+ }
+ enum "CR52P1XZ" {
+ description
+ "CR52P1XZ.";
+ }
+ enum "CR52E1XZ" {
+ description
+ "CR52E1XZ.";
+ }
+ enum "CR52W1XZ" {
+ description
+ "CR52W1XZ.";
+ }
+ enum "SPU" {
+ description
+ "SPU.";
+ }
+ enum "TSUA" {
+ description
+ "TSUA.";
+ }
+ enum "CR56E1MC" {
+ description
+ "CR56E1MC.";
+ }
+ enum "CR56LAXFA" {
+ description
+ "CR56LAXFA.";
+ }
+ enum "CR55OFCA" {
+ description
+ "CR55OFCA.";
+ }
+ enum "CR55C-OFCA" {
+ description
+ "CR55C-OFCA.";
+ }
+ enum "CR52OFCB" {
+ description
+ "CR52OFCB.";
+ }
+ enum "CR55OFC40" {
+ description
+ "CR55OFC40.";
+ }
+ enum "CR55OFC100A" {
+ description
+ "CR55OFC100A.";
+ }
+ enum "CR55OFC100B" {
+ description
+ "CR55OFC100B.";
+ }
+ enum "CR52OFCV" {
+ description
+ "CR52OFCV.";
+ }
+ enum "Eth" {
+ description
+ "Ethernet port.";
+ }
+ enum "Pos" {
+ description
+ "POS port.";
+ }
+ enum "GE" {
+ description
+ "Gigabit Ethernet port.";
+ }
+ enum "10GE" {
+ description
+ "10GE port.";
+ }
+ enum "GF" {
+ description
+ "GF port.";
+ }
+ enum "10GF" {
+ description
+ "10GF port.";
+ }
+ enum "40GF" {
+ description
+ "40GF port.";
+ }
+ enum "10GFCOM" {
+ description
+ "Combinable 10GF port.";
+ }
+ enum "40GFSPLIT" {
+ description
+ "Splitable 40GF port.";
+ }
+ enum "VSR" {
+ description
+ "VSR port.";
+ }
+ enum "LFE" {
+ description
+ "LFE.";
+ }
+ enum "POWER" {
+ description
+ "Power module.";
+ }
+ enum "CLOCK" {
+ description
+ "Clock board.";
+ }
+ enum "FAN" {
+ description
+ "Fan.";
+ }
+ enum "LCD" {
+ description
+ "LCD.";
+ }
+ enum "CFCARD" {
+ description
+ "CF card.";
+ }
+ enum "CMU" {
+ description
+ "CMU.";
+ }
+ enum "CR5D00EKGF60" {
+ description
+ "CR5D00EKGF60.";
+ }
+ enum "CR5D00P4XX60" {
+ description
+ "CR5D00P4XX60.";
+ }
+ enum "CR5D00P8UF60" {
+ description
+ "CR5D00P8UF60.";
+ }
+ enum "CR5D00E4XX60" {
+ description
+ "CR5D00E4XX60.";
+ }
+ enum "CR5D00W4XX60" {
+ description
+ "CR5D00W4XX60.";
+ }
+ enum "CR5DLPUFA060" {
+ description
+ "CR5DLPUFA060.";
+ }
+ enum "CR5D00LEXF60" {
+ description
+ "CR5D00LEXF60.";
+ }
+ enum "CR5D00E2NC60" {
+ description
+ "CR5D00E2NC60.";
+ }
+ enum "CR5DE1NLAX60" {
+ description
+ "CR5DE1NLAX60.";
+ }
+ enum "CR5DSFEBA06B" {
+ description
+ "CR5DSFEBA06B.";
+ }
+ enum "CR5D0MPUB460" {
+ description
+ "CR5D0MPUB460.";
+ }
+ enum "CR5DSFUFA06B" {
+ description
+ "CR5DSFUFA06B.";
+ }
+ enum "CR5DSFUIE060" {
+ description
+ "CR5DSFUIE060.";
+ }
+ enum "CR5D0MPUA450" {
+ description
+ "CR5D0MPUA450.";
+ }
+ enum "CR5DECUFA050" {
+ description
+ "CR5DECUFA050.";
+ }
+ enum "CR5DSFUIA050" {
+ description
+ "CR5DSFUIA050.";
+ }
+ enum "CR5D00L5XX60" {
+ description
+ "CR5D00L5XX60.";
+ }
+ enum "CR5D00E5XX60" {
+ description
+ "CR5D00E5XX60.";
+ }
+ enum "CR5D00L2XX60" {
+ description
+ "CR5D00L2XX60.";
+ }
+ enum "CR5D00E2XX60" {
+ description
+ "CR5D00E2XX60.";
+ }
+ enum "CR5D00EFGF60" {
+ description
+ "CR5D00EFGF60.";
+ }
+ enum "CR5D00P1MZ60" {
+ description
+ "CR5D00P1MZ60.";
+ }
+ enum "CR5D00P2XX60" {
+ description
+ "CR5D00P2XX60.";
+ }
+ enum "CR5M00E1MC60" {
+ description
+ "CR5M00E1MC60.";
+ }
+ enum "CR5D00E1NC60" {
+ description
+ "CR5D00E1NC60.";
+ }
+ enum "CR5D00LAXX60" {
+ description
+ "CR5D00LAXX60.";
+ }
+ enum "CR5D0OFCA060" {
+ description
+ "CR5D0OFCA060.";
+ }
+ enum "T1XCS" {
+ description
+ "T1XCS.";
+ }
+ enum "T1EXL2" {
+ description
+ "T1EXL2.";
+ }
+ enum "T1EX12" {
+ description
+ "T1EX12.";
+ }
+ enum "T1EX8" {
+ description
+ "T1EX8.";
+ }
+ enum "T1EH1" {
+ description
+ "T1EH1.";
+ }
+ enum "T1EG24" {
+ description
+ "T1EG24.";
+ }
+ enum "T1CH1" {
+ description
+ "T1CH1.";
+ }
+ enum "T1CQ4" {
+ description
+ "T1CQ4.";
+ }
+ enum "T1SCA" {
+ description
+ "T1SCA.";
+ }
+ enum "T1FAN" {
+ description
+ "T1FAN.";
+ }
+ enum "T1PIU" {
+ description
+ "T1PIU.";
+ }
+ enum "T1EFI" {
+ description
+ "T1EFI.";
+ }
+ enum "XCA" {
+ description
+ "XCA.";
+ }
+ enum "TNU1SCC" {
+ description
+ "TNU1SCC.";
+ }
+ enum "C52MPUA" {
+ description
+ "C52MPUA.";
+ }
+ enum "C52MPUB" {
+ description
+ "C52MPUB.";
+ }
+ enum "LPUE" {
+ description
+ "LPUE.";
+ }
+ enum "LPUF" {
+ description
+ "LPUF.";
+ }
+ enum "TPA1EFI" {
+ description
+ "TPA1EFI.";
+ }
+ enum "TNT1EX8" {
+ description
+ "TNT1EX8.";
+ }
+ enum "other" {
+ description
+ "Other.";
+ }
+ }
+ description
+ "Entity hardtype";
+ }
+
+ typedef devmLoopBackState {
+ type enumeration {
+ enum "noLoopback" {
+ description
+ "No loopback.";
+ }
+ enum "localLoopback" {
+ description
+ "Local Loopback.";
+ }
+ enum "remoteLoopback" {
+ description
+ "Remote Loopback.";
+ }
+ }
+ description
+ "Port loopback state";
+ }
+
+ typedef devmCardInitStatusType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "success" {
+ description
+ "Success.";
+ }
+ enum "fail" {
+ description
+ "Fail.";
+ }
+ }
+ description
+ "Card init status";
+ }
+
+ typedef devmCardLogicStatusType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "success" {
+ description
+ "Success.";
+ }
+ enum "fail" {
+ description
+ "Fail.";
+ }
+ }
+ description
+ "Card logic status";
+ }
+
+ typedef devmClockSrcStatusType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "normal" {
+ description
+ "Normal.";
+ }
+ enum "abnormal" {
+ description
+ "Abnormal.";
+ }
+ }
+ description
+ "Clock source status";
+ }
+
+ typedef devmServerType {
+ type enumeration {
+ enum "ftp" {
+ description
+ "FTP.";
+ }
+ enum "tftp" {
+ description
+ "TFTP.";
+ }
+ enum "sftp" {
+ description
+ "SFTP.";
+ }
+ }
+ description
+ "Service type";
+ }
+
+ typedef devmTransType {
+ type enumeration {
+ enum "put" {
+ description
+ "PUT.";
+ }
+ enum "get" {
+ description
+ "GET.";
+ }
+ }
+ description
+ "Transmission type";
+ }
+
+ typedef devmPreferKexType {
+ type enumeration {
+ enum "dhExchangeGroup" {
+ description
+ "KEX_DH_EXCHANGE_GROUP.";
+ }
+ enum "dhGroup1" {
+ description
+ "KEX_DH_GROUP1.";
+ }
+ }
+ description
+ "Prefer kex type";
+ }
+
+ typedef devmCipherType {
+ type enumeration {
+ enum "aes128" {
+ description
+ "AES128.";
+ }
+ }
+ description
+ "Cipher type";
+ }
+
+ typedef devmStocHmacType {
+ type enumeration {
+ enum "md5" {
+ description
+ "MD5.";
+ }
+ enum "md5_96" {
+ description
+ "MD5_96.";
+ }
+ enum "sha1" {
+ description
+ "SHA1.";
+ }
+ enum "sha1_96" {
+ description
+ "SHA1_96.";
+ }
+ }
+ description
+ "Hmac type";
+ }
+
+ typedef devmTrapType {
+ type enumeration {
+ enum "base-trap" {
+ description
+ "Base-trap.";
+ }
+ enum "dc-trap" {
+ description
+ "DC-trap.";
+ }
+ enum "entity-trap" {
+ description
+ "Entity-trap.";
+ }
+ }
+ description
+ "Trap type";
+ }
+
+ typedef devmOpticalType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "sc" {
+ description
+ "SC.";
+ }
+ enum "gbic" {
+ description
+ "GBIC.";
+ }
+ enum "esfp" {
+ description
+ "ESFP.";
+ }
+ enum "copper" {
+ description
+ "Copper.";
+ }
+ enum "xfp" {
+ description
+ "XFP.";
+ }
+ enum "xenpak" {
+ description
+ "XENPAK.";
+ }
+ enum "transponder" {
+ description
+ "TRANSPONDER.";
+ }
+ enum "cfp" {
+ description
+ "CFP.";
+ }
+ }
+ description
+ "Optical type";
+ }
+
+ typedef devmOpticalFiberType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "sc" {
+ description
+ "SC.";
+ }
+ enum "style_1_copper_connector" {
+ description
+ "style_1_copper_connector.";
+ }
+ enum "style_2_copper_connector" {
+ description
+ "style_2_copper_connector.";
+ }
+ enum "bnc_tnc" {
+ description
+ "bnc_tnc.";
+ }
+ enum "coaxial_headers" {
+ description
+ "coaxial_headers.";
+ }
+ enum "fiberJack" {
+ description
+ "fiberJack.";
+ }
+ enum "lc" {
+ description
+ "lc.";
+ }
+ enum "mt-rj" {
+ description
+ "mt-rj.";
+ }
+ enum "mu" {
+ description
+ "mu.";
+ }
+ enum "sg" {
+ description
+ "sg.";
+ }
+ enum "optical_pigtail" {
+ description
+ "optical_pigtail.";
+ }
+ enum "hssdcII" {
+ description
+ "hssdcII.";
+ }
+ enum "copper_pigtail" {
+ description
+ "copper_pigtail.";
+ }
+ }
+ description
+ "Optical fiber type";
+ }
+
+ typedef devmSysWorkType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "redundant" {
+ description
+ "1:1 mode.";
+ }
+ enum "non-redundant" {
+ description
+ "1+1 mode.";
+ }
+ }
+ description
+ "System work type";
+ }
+
+ typedef devmProductType {
+ type enumeration {
+ enum "unknown" {
+ description
+ "Unknown.";
+ }
+ enum "single" {
+ description
+ "Single.";
+ }
+ enum "ccc-0" {
+ description
+ "CCC-0.";
+ }
+ enum "ccc-1" {
+ description
+ "CCC-1.";
+ }
+ enum "ccc-2" {
+ description
+ "CCC-2.";
+ }
+ }
+ description
+ "Product type";
+ }
+
+ typedef devmProtectType {
+ type enumeration {
+ enum "mainBoardProtect" {
+ description
+ "Main control board protection.";
+ }
+ }
+ description
+ "Protect type";
+ }
+ typedef devmOverloadState {
+ type enumeration {
+ enum "Overload" {
+ description
+ "Overload.";
+ }
+ enum "Unoverload" {
+ description
+ "Unoverload.";
+ }
+ }
+ description
+ "Overload state";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm@2018-11-23.yang
new file mode 100644
index 000000000..8cf78033f
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-devm@2018-11-23.yang
@@ -0,0 +1,1620 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+module huawei-devm {
+ namespace "http://www.huawei.com/netconf/vrp/huawei-devm";
+ prefix devm;
+
+ import huawei-pub-type {
+ prefix pub-type;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ include huawei-devm-action;
+ include huawei-devm-type;
+ include huawei-devm-notification;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "Global configuration.";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ container devm {
+ description
+ "Global configuration.";
+ container phyEntitys {
+ config false;
+ description
+ "Information about physical entities.";
+ list phyEntity {
+ key "entClass position entSerialNo";
+ config false;
+ description
+ "Information about a physical entity.";
+ ext:entry-from "system";
+ leaf entClass {
+ type devmEntityClassType;
+ config false;
+ description
+ "Entity class.";
+ }
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Entity position.";
+ }
+ leaf entSerialNo {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Entity number.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Entity index.";
+ }
+ leaf chassisIndex {
+ type uint32;
+ config false;
+ description
+ "Chassis index.";
+ }
+ leaf boardIndex {
+ type uint32;
+ config false;
+ description
+ "Board index.";
+ }
+ leaf entName {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Entity name.";
+ }
+ leaf entDescr {
+ type string {
+ length "1..256";
+ }
+ config false;
+ description
+ "Entity description.";
+ }
+ leaf entAlias {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Entity alias.";
+ }
+ leaf entVendorType {
+ type devmHardType;
+ config false;
+ description
+ "Type of a hardware entity.";
+ }
+ leaf entContainedIn {
+ type uint32;
+ config false;
+ description
+ "Information about the parent index of an entity.";
+ }
+ leaf entParentRelPos {
+ type uint32;
+ config false;
+ description
+ "Position of an entity relative to its parent entity. ";
+ }
+ leaf entHardwareRev {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Hardware version.";
+ }
+ leaf entFirmwareRev {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Firmware version.";
+ }
+ leaf entSoftwareRev {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Software version.";
+ }
+ leaf entModelName {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Module name.";
+ }
+ leaf entIsFRU {
+ type boolean;
+ config false;
+ description
+ "Flag indicating whether the entity a replaceable unit.";
+ }
+ leaf entAdminState {
+ type devmEntityAdminState;
+ config false;
+ description
+ "Administration state (read-write).";
+ }
+ leaf entOperState {
+ type devmEntityOperState;
+ config false;
+ description
+ "Operation state of an entity (read-only).";
+ }
+ leaf entStandbyState {
+ type devmEntityStandbyState;
+ config false;
+ description
+ "Active/standby state.";
+ }
+ leaf entSystemOid {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Entity OID.";
+ }
+ leaf entLsName {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "LS name of the entity.";
+ }
+ }
+ }
+ container logicEntitys {
+ description
+ "Information about logical entities.";
+ list logicEntity {
+ key "entClass position entSerialNo";
+ description
+ "Information about a logical entity.";
+ leaf entClass {
+ type devmEntityClassType;
+ description
+ "Entity class.";
+ }
+ leaf position {
+ type pub-type:position;
+ description
+ "Entity position.";
+ }
+ leaf entSerialNo {
+ type string {
+ length "0..32";
+ }
+ description
+ "Entity number.";
+ }
+ leaf entVendorType {
+ type devmHardType;
+ must "(../entClass='chassis' and (../entVendorType='CCCCHASSIS' or ../entVendorType='CHASSIS' or ../entVendorType='CHASSIS1' or ../entVendorType='CHASSIS2') ) or (../entClass='lpuModule' and (../entVendorType='T1EX8' or ../entVendorType='T1CH1' or ../entVendorType='TNT1EX8') ) or (../entClass='mpuModule' and (../entVendorType='XCA' or ../entVendorType='TNU1SCC') ) or not(../entClass='chassis' or ../entClass='lpuModule' or ../entClass='mpuModule')";
+ default "unknown";
+ description
+ "Type of a hardware entity.";
+ }
+ leaf entName {
+ type string {
+ length "0..128";
+ }
+ config false;
+ description
+ "Entity name.";
+ }
+ leaf entDescr {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "Entity description.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Entity index.";
+ }
+ leaf entOperState {
+ type devmEntityOperState;
+ config false;
+ description
+ "Operation state of an entity (read-only).";
+ }
+ leaf entParentIndex {
+ type uint32;
+ config false;
+ description
+ "Information about the parent index of an entity.";
+ }
+ leaf entParentRelPos {
+ type uint32;
+ config false;
+ description
+ "Position of an entity relative to its parent entity. ";
+ }
+ leaf entMemo {
+ type string {
+ length "0..256";
+ }
+ description
+ "Chassis Description.";
+ }
+ }
+ }
+ container chassiss {
+ description
+ "Chassis.";
+ list chassis {
+ key "position";
+ description
+ "Chassis.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ description
+ "Chassis position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Chassis index.";
+ }
+ leaf chassisType {
+ type devmChassisType;
+ config false;
+ description
+ "Chassis type.";
+ }
+ leaf serviceType {
+ type devmChassisSvcType;
+ config false;
+ description
+ "Chassis service type.";
+ }
+ leaf slotNum {
+ type uint32;
+ config false;
+ description
+ "Number of slots on a chassis.";
+ }
+ leaf boardNum {
+ type uint32;
+ config false;
+ description
+ "Number of boards on a chassis.";
+ }
+ leaf fanNum {
+ type uint32;
+ config false;
+ description
+ "Number of fans on a chassis.";
+ }
+ leaf powerNum {
+ type uint32;
+ config false;
+ description
+ "Number of power modules for a chassis.";
+ }
+ leaf upTime {
+ type pub-type:timeTick;
+ config false;
+ description
+ "Running time of a chassis.";
+ }
+ leaf statusLastChange {
+ type pub-type:timeTick;
+ config false;
+ description
+ "Time when the entity running status last changed.";
+ }
+ leaf entityLastChange {
+ type pub-type:timeTick;
+ config false;
+ description
+ "Time when the entity on chassis last changed.";
+ }
+ leaf curChassisID {
+ type uint32 {
+ range "1..8";
+ }
+ config false;
+ description
+ "Current Chassis ID.";
+ }
+ leaf nextChassisID {
+ type uint32 {
+ range "1..8";
+ }
+ default "1";
+ description
+ "ID of the next start-up chassis.";
+ }
+ leaf curRunMode {
+ type devmProductType;
+ config false;
+ description
+ "Model of the running chassis.";
+ }
+ leaf nextRunMode {
+ type devmProductType;
+ default "unknown";
+ description
+ "Next start-up chassis model.";
+ }
+ leaf dustCleanCycle {
+ type uint32 {
+ range "0..65535";
+ }
+ units days;
+ default "90";
+ description
+ "Interval at which air filter dust is cleaned.";
+ }
+ leaf lastCleanDate {
+ type string {
+ length "1..128";
+ }
+ config false;
+ description
+ "Date when dust was last cleaned.";
+ }
+ leaf upToLastClean {
+ type uint32 {
+ range "0..4294967295";
+ }
+ default "0";
+ config false;
+ description
+ "Time past since dust was last cleaned.";
+ }
+ leaf alarmExistDays {
+ type uint32 {
+ range "0..4294967295";
+ }
+ default "0";
+ config false;
+ description
+ "Alarm existence days.";
+ }
+ container monitorBoardChanges {
+ config false;
+ description
+ "Time when board status changes.";
+ list monitorBoardChange {
+ key "boardIndex";
+ config false;
+ description
+ "Time when the status of a board changes.";
+ leaf boardIndex {
+ type uint32;
+ config false;
+ description
+ "Board index.";
+ }
+ leaf statusLastChange {
+ type pub-type:timeTick;
+ config false;
+ description
+ "Time when the board running status changes.";
+ }
+ leaf entityLastChange {
+ type pub-type:timeTick;
+ config false;
+ description
+ "Time when the board entity changes.";
+ }
+ }
+ }
+ }
+ }
+ container logicContainers {
+ config false;
+ description
+ "Logic slots.";
+ list logicContainer {
+ key "position";
+ config false;
+ description
+ "Logic slot.";
+ leaf position {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Slot position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Slot index.";
+ }
+ leaf containerType {
+ type devmContainerType;
+ config false;
+ description
+ "Slot type.";
+ }
+ leaf equipedEntityType {
+ type devmHardType;
+ config false;
+ description
+ "Type of an installed entity. ";
+ }
+ container supportedEntityTypes {
+ config false;
+ description
+ "List of supported entity types.";
+ list supportedEntityType {
+ key "entityType";
+ config false;
+ description
+ "List of supported entity types.";
+ leaf entityType {
+ type devmHardType;
+ config false;
+ description
+ "Type of an equipped entity. ";
+ }
+ }
+ }
+ }
+ }
+ container containers {
+ config false;
+ description
+ "Slots.";
+ list container {
+ key "position";
+ config false;
+ description
+ "Slot.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Slot position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Slot index.";
+ }
+ leaf containerType {
+ type devmContainerType;
+ config false;
+ description
+ "Slot type.";
+ }
+ leaf equipedEntityType {
+ type devmHardType;
+ config false;
+ description
+ "Type of an equipped entity. ";
+ }
+ container supportedEntityTypes {
+ config false;
+ description
+ "List of supported entity types.";
+ list supportedEntityType {
+ key "entityType";
+ config false;
+ description
+ "List of supported entity types.";
+ leaf entityType {
+ type devmHardType;
+ config false;
+ description
+ "Type of an equipped entity. ";
+ }
+ }
+ }
+ }
+ }
+ container mpuBoards {
+ config false;
+ description
+ "MPUs.";
+ list mpuBoard {
+ key "position";
+ config false;
+ description
+ "MPU.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "MPU position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "MPU index.";
+ }
+ leaf boardType {
+ type devmBoardType;
+ config false;
+ description
+ "MPU type.";
+ }
+ leaf upTime {
+ type pub-type:timeTick;
+ config false;
+ description
+ "MPU running time, expressed in the number of timeticks.";
+ }
+ leaf sdramSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "SDRAM size.";
+ }
+ leaf nvramSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "NVRAM size.";
+ }
+ leaf flashSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "Flash size.";
+ }
+ leaf lsRole {
+ type devmLsRole;
+ config false;
+ description
+ "MPU role.";
+ }
+ leaf lastResetTime {
+ type yang:date-and-time;
+ config false;
+ description
+ "Last reset time";
+ }
+ leaf lastResetReason {
+ type string {
+ length "1..256";
+ }
+ config false;
+ description
+ "Last reset reason.";
+ }
+ }
+ }
+ container lpuBoards {
+ description
+ "LPUs.";
+ list lpuBoard {
+ key "position";
+ description
+ "LPU.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ description
+ "LPU position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "LPU index.";
+ }
+ leaf boardType {
+ type devmBoardType;
+ config false;
+ description
+ "LPU type.";
+ }
+ leaf sdramSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "SDRAM size.";
+ }
+ leaf flashSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "Flash size.";
+ }
+ leaf upTime {
+ type pub-type:timeTick;
+ config false;
+ description
+ "LPU running time, expressed in the number of timeticks.";
+ }
+ leaf npRDRAMSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "NP RDRAM size.";
+ }
+ leaf npSRAMSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "NP SRAM size.";
+ }
+ leaf serviceType {
+ type devmLpuServiceType;
+ config false;
+ description
+ "Service type.";
+ }
+ leaf nextServiceType {
+ type devmLpuServiceType;
+ config false;
+ description
+ "Type of next started service board.";
+ }
+ leaf picNum {
+ type uint32;
+ config false;
+ description
+ "Number of PICs on an LPU.";
+ }
+ leaf subSlotNum {
+ type uint32;
+ config false;
+ description
+ "Number of slots on a subcard.";
+ }
+ leaf clock8kPort {
+ type string {
+ length "0..32";
+ }
+ description
+ "8K clock port.";
+ }
+ leaf curL3Clk {
+ type uint32;
+ config false;
+ description
+ "L3 clock source being used.";
+ }
+ }
+ }
+ container sfuBoards {
+ config false;
+ description
+ "SFUs.";
+ list sfuBoard {
+ key "position";
+ config false;
+ description
+ "SFU.";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "SFU position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "SFU index.";
+ }
+ leaf boardType {
+ type devmBoardType;
+ config false;
+ description
+ "SFU type.";
+ }
+ leaf sdramSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "SDRAM size.";
+ }
+ leaf flashSize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "Flash size.";
+ }
+ leaf upTime {
+ type pub-type:timeTick;
+ config false;
+ description
+ "SFU running time, expressed in the number of timeticks.";
+ }
+ }
+ }
+ container flexibleCards {
+ config false;
+ description
+ "Flexible cards.";
+ list flexibleCard {
+ key "position entIndex";
+ config false;
+ description
+ "Flexible card.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Flexible card position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Flexible card index.";
+ }
+ leaf cardType {
+ type devmSubCardType;
+ config false;
+ description
+ "Type of a flexible card.";
+ }
+ leaf cardHardType {
+ type devmCardHardType;
+ config false;
+ description
+ "Hardware type of a flexible card.";
+ }
+ leaf portNum {
+ type uint32;
+ config false;
+ description
+ "Number of ports on a flexible card.";
+ }
+ leaf initStatus {
+ type devmCardInitStatusType;
+ config false;
+ description
+ "Initialized status of a flexible card.";
+ }
+ container picCard {
+ config false;
+ description
+ "Physical interface card.";
+ leaf logicStatus {
+ type devmCardLogicStatusType;
+ config false;
+ description
+ "Logic loading status.";
+ }
+ leaf upTime {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when a flexible card goes Up.";
+ }
+ }
+ }
+ }
+ container cfCards {
+ config false;
+ description
+ "CF cards.";
+ list cfCard {
+ key "position entSerialNo";
+ config false;
+ description
+ "CF card.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "CF card position.";
+ }
+ leaf entSerialNo {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Number of a CF card.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "CF card index.";
+ }
+ leaf cardType {
+ type devmSubCardType;
+ config false;
+ description
+ "CF card type.";
+ }
+ leaf memorySize {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "Memory size of a CF card.";
+ }
+ leaf memoryUsed {
+ type uint32;
+ units MByte;
+ config false;
+ description
+ "Used memory of a CF card.";
+ }
+ leaf memoryUsage {
+ type uint32;
+ units %;
+ config false;
+ description
+ "Available memory of a CF card.";
+ }
+ }
+ }
+ container ports {
+ description
+ "Ports.";
+ list port {
+ key "position";
+ description
+ "Port.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ description
+ "Port position.";
+ }
+ leaf entIndex {
+ type uint32 {
+ range "1..4294967295";
+ }
+ default "1";
+ config false;
+ description
+ "Port index.";
+ }
+ leaf adminState {
+ type devmEntityAdminState;
+ must "((../adminState='active' or ../adminState='inactive') )";
+ default "active";
+ description
+ "Port administration state.";
+ }
+ leaf portType {
+ type devmPortType;
+ config false;
+ description
+ "Port type, such as ETH, POS, or OTN.";
+ }
+ leaf portHardType {
+ type devmPortHardType;
+ config false;
+ description
+ "Hardware type of a port.";
+ }
+ leaf loopbackMode {
+ type devmLoopBackState;
+ default "noLoopback";
+ description
+ "Port loopback mode.";
+ }
+ leaf portTxEnDelay {
+ type uint32 {
+ range "0..86400000";
+ }
+ default "0";
+ description
+ "Enable port transmission delay (ms).";
+ }
+ leaf lastUpTime {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when a port last went Up.";
+ }
+ leaf lastDownTime {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when a port last wend Down.";
+ }
+ leaf mediumType {
+ type devmEthPortMediumType;
+ config false;
+ description
+ "Port medium type. ";
+ }
+ leaf opticalIsEquipped {
+ type boolean;
+ config false;
+ description
+ "Flag indicating whether an optical transceiver is equipped.";
+ }
+ leaf physicalbw {
+ type uint64 {
+ range "0..10000000000000";
+ }
+ default "0";
+ config false;
+ description
+ "Port physical bandwidth.";
+ }
+ }
+ }
+ container logicPorts {
+ description
+ "Logic ports.";
+ list logicPort {
+ key "position entSerialNo portType";
+ description
+ "Logic port.";
+ leaf position {
+ type pub-type:position;
+ description
+ "Port position.";
+ }
+ leaf entSerialNo {
+ type string {
+ length "0..32";
+ }
+ description
+ "Port number.";
+ }
+ leaf entIndex {
+ type uint32 {
+ range "1..4294967295";
+ }
+ default "1";
+ config false;
+ description
+ "Port index.";
+ }
+ leaf adminState {
+ type devmEntityAdminState;
+ config false;
+ description
+ "Port administration state.";
+ }
+ leaf portType {
+ type devmPortType;
+ description
+ "Port type, such as ETH, POS, or OTN.";
+ }
+ leaf portHardType {
+ type devmPortHardType;
+ must "((../portHardType='EPORT' or ../portHardType='OPORT') )";
+ mandatory true;
+ description
+ "Hardware type of a port.";
+ }
+ leaf portTxEnDelay {
+ type uint32 {
+ range "0..86400000";
+ }
+ default "0";
+ config false;
+ description
+ "Enable port transmission delay (ms).";
+ }
+ leaf portLevel {
+ type devmPortLevel;
+ must "((../portLevel='0xFF' or ../portLevel='GE' or ../portLevel='FE') )";
+ mandatory true;
+ description
+ "Port speed level.";
+ }
+ }
+ }
+ container boardResStates {
+ config false;
+ description
+ "Board monitoring information.";
+ list boardResState {
+ key "boardPosition";
+ config false;
+ description
+ "Board monitoring information.";
+ leaf boardPosition {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Board position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Board index.";
+ }
+ leaf boardName {
+ type string {
+ length "0..128";
+ }
+ config false;
+ description
+ "Board name.";
+ }
+ leaf cpuUsage {
+ type uint32;
+ units %;
+ config false;
+ description
+ "CPU usage.";
+ }
+ leaf memTotalSize {
+ type uint32;
+ units KByte;
+ config false;
+ description
+ "Total memory size.";
+ }
+ leaf memUsedSize {
+ type uint32;
+ units KByte;
+ config false;
+ description
+ "Used memory size.";
+ }
+ leaf memoryUsage {
+ type uint32;
+ units %;
+ config false;
+ description
+ "Memory usage.";
+ }
+ }
+ }
+ container cpuInfos {
+ description
+ "CPU information of boards.";
+ list cpuInfo {
+ key "position";
+ description
+ "CPU information of a board.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "0..32";
+ }
+ description
+ "Board position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Board index.";
+ }
+ leaf systemCpuUsage {
+ type uint32 {
+ range "0..100";
+ }
+ default "0";
+ config false;
+ description
+ "CPU usage.";
+ ext:support-filter "false";
+ }
+ leaf ovloadThreshold {
+ type uint32 {
+ range "4..100";
+ }
+ default "90";
+ description
+ "Overload threshold.";
+ ext:support-filter "false";
+ }
+ leaf unovloadThreshold {
+ type uint32 {
+ range "1..97";
+ }
+ default "75";
+ description
+ "Overload alarm clear threshold (%)";
+ ext:support-filter "false";
+ }
+ leaf interval {
+ type uint32 {
+ range "1..60";
+ }
+ default "8";
+ description
+ "Overload alarm cycle (min).";
+ ext:support-filter "false";
+ }
+ leaf monitorNumber {
+ type uint32 {
+ range "6..360";
+ }
+ default "48";
+ config false;
+ description
+ "Monitor number in one alarm cycle.";
+ ext:support-filter "false";
+ }
+ leaf monitorCycle {
+ type uint32;
+ config false;
+ description
+ "Monitor cycle, in seconds.";
+ ext:support-filter "false";
+ }
+ leaf ovloadStateChangeTime {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Last overload state changetime.";
+ ext:support-filter "false";
+ }
+ leaf currentOvloadState {
+ type devmOverloadState;
+ config false;
+ description
+ "Current overload state.";
+ ext:support-filter "false";
+ }
+ }
+ }
+ container serviceCpuInfos {
+ config false;
+ description
+ "Service CPU information of boards.";
+ list serviceCpuInfo {
+ key "position serviceName";
+ config false;
+ description
+ "Service CPU information of a board.";
+ leaf position {
+ type pub-type:position;
+ config false;
+ description
+ "Board position.";
+ }
+ leaf serviceName {
+ type string {
+ length "0..50";
+ }
+ config false;
+ description
+ "Service name.";
+ }
+ leaf serviceCpuUsage {
+ type uint32 {
+ range "0..100";
+ }
+ config false;
+ description
+ "CPU usage of service.";
+ }
+ }
+ }
+ container memoryInfos {
+ description
+ "Memory information of boards.";
+ list memoryInfo {
+ key "position";
+ description
+ "Memory information about a board.";
+ ext:entry-from "system";
+ leaf position {
+ type string {
+ length "0..32";
+ }
+ description
+ "Board position.";
+ }
+ leaf entIndex {
+ type uint32;
+ config false;
+ description
+ "Board index.";
+ }
+ leaf osMemoryTotal {
+ type uint32;
+ config false;
+ description
+ "Total OS memory.";
+ ext:support-filter "false";
+ }
+ leaf osMemoryUse {
+ type uint32;
+ config false;
+ description
+ "Used OS memory.";
+ ext:support-filter "false";
+ }
+ leaf osMemoryFree {
+ type uint32;
+ config false;
+ description
+ "Available OS memory.";
+ ext:support-filter "false";
+ }
+ leaf osMemoryUsage {
+ type uint32 {
+ range "0..100";
+ }
+ default "0";
+ config false;
+ description
+ "OS memory usage.";
+ ext:support-filter "false";
+ }
+ leaf doMemoryTotal {
+ type uint32;
+ config false;
+ description
+ "Total VRP memory.";
+ ext:support-filter "false";
+ }
+ leaf doMemoryUse {
+ type uint32;
+ config false;
+ description
+ "Used VRP memory.";
+ ext:support-filter "false";
+ }
+ leaf doMemoryFree {
+ type uint32;
+ config false;
+ description
+ "Available VRP memory. ";
+ ext:support-filter "false";
+ }
+ leaf doMemoryUsage {
+ type uint32 {
+ range "0..100";
+ }
+ default "0";
+ config false;
+ description
+ "VRP memory usage.";
+ ext:support-filter "false";
+ }
+ leaf simpleMemoryTotal {
+ type uint32;
+ config false;
+ description
+ "Total simple memory. ";
+ ext:support-filter "false";
+ }
+ leaf simpleMemoryUse {
+ type uint32;
+ config false;
+ description
+ "Used simple memory. ";
+ ext:support-filter "false";
+ }
+ leaf simpleMemoryFree {
+ type uint32;
+ config false;
+ description
+ "Available simple memory. ";
+ ext:support-filter "false";
+ }
+ leaf simpleMemoryUsage {
+ type uint32 {
+ range "0..100";
+ }
+ default "0";
+ config false;
+ description
+ "Simple memory usage.";
+ ext:support-filter "false";
+ }
+ leaf ovloadThreshold {
+ type uint32 {
+ range "50..100";
+ }
+ description
+ "Overload threshold.";
+ ext:allowDelete "true";
+ ext:support-filter "false";
+ }
+ leaf unovloadThreshold {
+ type uint32 {
+ range "1..97";
+ }
+ description
+ "Overload alarm clear threshold (%)";
+ ext:allowDelete "true";
+ ext:support-filter "false";
+ }
+ leaf ovloadStateChangeTime {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Last overload state changetime.";
+ ext:support-filter "false";
+ }
+ leaf currentOvloadState {
+ type devmOverloadState;
+ config false;
+ description
+ "Current overload state.";
+ ext:support-filter "false";
+ }
+ leaf processOvloadThreshold {
+ type uint32 {
+ range "1..99";
+ }
+ description
+ "Process memory overload threshold.";
+ ext:allowDelete "true";
+ ext:support-filter "false";
+ }
+ }
+ }
+ container entityClasss {
+ config false;
+ description
+ "Entity capabilities.";
+ list entityClass {
+ key "className";
+ config false;
+ description
+ "Entity capability.";
+ ext:entry-from "system";
+ leaf className {
+ type devmEntityClassType;
+ config false;
+ description
+ "Entity type.";
+ }
+ leaf isResetable {
+ type boolean;
+ config false;
+ description
+ "Flag indicating whether the entity can be reset.";
+ }
+ leaf isSwitchoverable {
+ type boolean;
+ config false;
+ description
+ "Flag indicating whether a switchover can be performed on the entity.";
+ }
+ }
+ }
+ container protectGroups {
+ config false;
+ description
+ "Protect groups.";
+ list protectGroup {
+ key "groupNo primaryBoard";
+ config false;
+ description
+ "Protect group.";
+ leaf groupNo {
+ type uint32;
+ config false;
+ description
+ "Protect group number.";
+ }
+ leaf protectGType {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Protect group type.";
+ }
+ leaf switchStatus {
+ type string {
+ length "0..80";
+ }
+ config false;
+ description
+ "Switchover status.";
+ }
+ leaf primaryBoard {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Master board position.";
+ }
+ leaf slaveBoard {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Slave board position.";
+ }
+ }
+ }
+ container inconsistentEntitys {
+ config false;
+ description
+ "Incompatible entities.";
+ list inconsistentEntity {
+ key "entClass position entSerialNo";
+ config false;
+ description
+ "Incompatible entity.";
+ leaf entClass {
+ type devmEntityClassType;
+ config false;
+ description
+ "Entity class.";
+ }
+ leaf position {
+ type pub-type:position;
+ config false;
+ description
+ "Position.";
+ }
+ leaf entSerialNo {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Number.";
+ }
+ leaf logicalType {
+ type devmHardType;
+ config false;
+ description
+ "Logical type.";
+ }
+ leaf physicalType {
+ type devmHardType;
+ config false;
+ description
+ "Physical type.";
+ }
+ leaf entOperState {
+ type devmEntityOperState;
+ config false;
+ description
+ "Running status.";
+ }
+ }
+ }
+ container offlineCfgs {
+ config false;
+ description
+ "Offline configurations.";
+ list offlineCfg {
+ key "entClass position";
+ config false;
+ description
+ "Offline configuration.";
+ leaf entClass {
+ type devmOfflineType;
+ config false;
+ description
+ "Class.";
+ }
+ leaf position {
+ type string {
+ length "1..32";
+ }
+ config false;
+ description
+ "Position.";
+ }
+ }
+ }
+ container scheRebootInfo {
+ config false;
+ description
+ "Schedule reboot date time.";
+ leaf scheduleDateTime {
+ type yang:date-and-time;
+ description
+ "At Time.";
+ }
+ leaf delayTime {
+ type string {
+ length "1..49";
+ }
+ description
+ "delay Time.";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-extension@2018-06-11.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-extension@2018-06-11.yang
new file mode 100644
index 000000000..53b4d7a81
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-extension@2018-06-11.yang
@@ -0,0 +1,127 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+module huawei-extension {
+ namespace "http://www.huawei.com/netconf/vrp/huawei-extension";
+ prefix ext;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "ac ne extension yang syntax";
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ extension support-filter {
+ argument value;
+ description
+ "support-filter";
+ }
+
+ extension value-mapping {
+ description
+ "value-mapping";
+ }
+
+ extension value-replace {
+ description
+ "value-replace";
+ }
+
+ extension item {
+ argument value;
+ description
+ "item";
+ }
+
+ extension meaning {
+ argument value;
+ description
+ "meaning";
+ }
+
+ extension case-sensitivity {
+ argument value;
+ description
+ "case-sensitivity ";
+ }
+
+ extension bitmap-bit-range {
+ argument value;
+ description
+ "bitmap-bit-range";
+ }
+
+ extension masklen {
+ argument value;
+ description
+ "masklen";
+ }
+
+ extension bit {
+ argument value;
+ description
+ "bit";
+ }
+
+ extension allowDelete {
+ argument value;
+ description
+ "allowDelete";
+ }
+ extension value-range {
+ argument value;
+ description
+ " The range of values that can be entered using the id-range type or its derived type node. ";
+ }
+
+ extension task-name {
+ argument value;
+ description
+ "task-name";
+ }
+
+ extension entry-from {
+ argument value;
+ description "Applies only to a list or presence container whose config is true. " +
+ "entry-from specifies an instance to be automatically generated by the system "+
+ "based on other data or to be created by a user.";
+ }
+
+ extension node-ref {
+ argument value;
+ description
+ "Indicates the XPath of the data node for which the rpc operation is performed. "+
+ "If the rpc operation is performed for the entire system (the corresponding node "+
+ "cannot be found in the model tree), this syntax is not required.";
+ }
+
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-action@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-action@2018-11-23.yang
new file mode 100644
index 000000000..3143f15fc
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-action@2018-11-23.yang
@@ -0,0 +1,232 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-action {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ import huawei-pub-type {
+ prefix pub-type;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ include huawei-ifm-type;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "the ifm action submodule";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ rpc rstStaByIfName {
+ description
+ "Clear statistics based on the interface name.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ mandatory true;
+ description
+ "Clear statistics based on the interface name. ";
+ }
+ }
+ }
+ rpc rstStaByPhyType {
+ description
+ "Clear statistics based on the interface type.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ mandatory true;
+ description
+ "To clear the statistics by the type of interface.";
+ }
+ }
+ }
+ rpc rstStaByAll {
+ description
+ "Clear the statistics on all interfaces.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf allIf {
+ type boolean;
+ mandatory true;
+ description
+ "Clear the statistics on all interfaces.";
+ }
+ }
+ }
+ rpc rstMibStatByIfName {
+ description
+ "Clear MIB statistics by interface name.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ mandatory true;
+ description
+ "Name of an interface.";
+ }
+ }
+ }
+ rpc rstMibStatByPhyType {
+ description
+ "Clear MIB statistics by interface type.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ mandatory true;
+ description
+ "Interface type.";
+ }
+ }
+ }
+ rpc rstMibStatByAll {
+ description
+ "Clear MIB statistics about all interfaces.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf allIf {
+ type boolean;
+ mandatory true;
+ description
+ "Clear statistics about all interfaces.";
+ }
+ }
+ }
+ rpc rstIfPnlty {
+ description
+ "Clear the penalty value of an interface and remove the suppression on the interface.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Name of the interface. For example, ethernet0/1/0.";
+ }
+ }
+ }
+ rpc rstIfCnt {
+ description
+ "Clear the number of flapping control times.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Name of the interface. For example, ethernet0/1/0.";
+ }
+ }
+ }
+ rpc rstIfCrcAlarm {
+ description
+ "Clear PPP CRC alarms.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Interface Name. For example, serial0/3/0:0.";
+ }
+ }
+ }
+ rpc rstIfMacMtuDisStat {
+ description
+ "clear MAC&MTU error statistics.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Interface name of cleared MAC&MTU error statistics.";
+ }
+ }
+ }
+ rpc rstRemoteIfStat {
+ description
+ "Clear remote interface statistics.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Interface name of clear remote interface statistics.";
+ }
+ }
+ }
+ rpc restartInterface {
+ description
+ "Restart interface";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ mandatory true;
+ description
+ "Interface name of the Restart interface";
+ }
+ }
+ }
+ rpc rstIfMruDisStat {
+ description
+ "Clear interface Mru discard statistics.";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Interface name of clear interface Mru discard statistics.";
+ }
+ }
+ }
+ rpc rstRemoteIfStatByIfName {
+ description
+ "Clear remote interface statistics by remote interface name.";
+ ext:node-ref "/ifm/remoteInterfaces/remoteInterface";
+ input {
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "Name of a remote interface.";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-deviations-nos@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-deviations-nos@2018-11-23.yang
new file mode 100644
index 000000000..83fea1f05
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-deviations-nos@2018-11-23.yang
@@ -0,0 +1,538 @@
+module huawei-ifm-deviations-nos {
+ namespace "http://www.huawei.com/netconf/vrp/huawei-ifm-deviations-nos";
+ prefix ifm-devs-nos;
+
+ import huawei-ifm {
+ prefix ifm;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "Common interface management, which includes the public configuration of interfaces.";
+
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference "Huawei private.";
+ }
+
+ typedef ifmam4IpAddrType-deviations {
+ type enumeration {
+ enum main {
+ description
+ "Primary address of an interface.";
+ }
+ enum sub {
+ description
+ "Secondary address of an interface.";
+ }
+ enum neg {
+ description
+ "Negotiated address of an interface.";
+ }
+ enum neg_remote {
+ description
+ "Remotely negotiated address of an interface.";
+ }
+ enum unnumber {
+ description
+ "Unnumbered address of an interface.";
+ }
+ }
+ description
+ "Ip Address Type";
+ }
+
+ typedef ifmam6IpAddr6Type-deviations {
+ type enumeration {
+ enum global {
+ description
+ "Global unicast address.";
+ }
+ enum linkLocal {
+ description
+ "Link local address.";
+ }
+ enum anycast {
+ description
+ "Anycast address.";
+ }
+ }
+ description
+ "Ipv6 Address Type";
+ }
+
+ typedef ifmcommErrorDownType-deviations {
+ type enumeration {
+ enum bpdu-protection {
+ description
+ "BPDU protection.";
+ }
+ enum l2-loop-occured {
+ description
+ "L2 loop.";
+ }
+ enum invalid {
+ description
+ "None.";
+ }
+ }
+ description
+ "Interface Error Down Type";
+ }
+
+ typedef ifmcommPhyType-deviations {
+ type enumeration {
+ enum Ethernet {
+ description
+ "Ethernet interface.";
+ }
+ enum GigabitEthernet {
+ description
+ "GigabitEthernet interface.";
+ }
+ enum Eth-Trunk {
+ description
+ "Eth-Trunk interface.";
+ }
+ enum Ip-Trunk {
+ description
+ "IP-Trunk interface.";
+ }
+ enum Pos {
+ description
+ "POS interface.";
+ }
+ enum Tunnel {
+ description
+ "Tunnel interface.";
+ }
+ enum NULL {
+ description
+ "Null interface.";
+ }
+ enum LoopBack {
+ description
+ "Loopback interface.";
+ }
+ enum Vlanif {
+ description
+ "VLANIF interface.";
+ }
+ enum 100GE {
+ description
+ "100 GigabitEthernet interface.";
+ }
+ enum 40GE {
+ description
+ "40 GigabitEthernet interface.";
+ }
+ enum MTunnel {
+ description
+ "MTunnel interface.";
+ }
+ enum 10GE {
+ description
+ "10 GigabitEthernet interface.";
+ }
+ enum MEth {
+ description
+ "Management Ethernet interface.";
+ }
+ enum Cpos {
+ description
+ "CPOS controller.";
+ }
+ enum E1 {
+ description
+ "E1 controller.";
+ }
+ enum Serial {
+ description
+ "Serial interface.";
+ }
+ enum Mp-group {
+ description
+ "MP-group interface.";
+ }
+ enum Virtual-Ethernet {
+ description
+ "Virtual-Ethernet interface.";
+ }
+ enum VMEth {
+ description
+ "Virtual management Ethernet interface.";
+ }
+ enum Ima-group {
+ description
+ "IMA-group interface.";
+ }
+ enum Remote-Ap {
+ description
+ "Virtual cluster access remote access point interface.";
+ }
+ enum VBridge {
+ description
+ "Virtual cluster access bridge interface.";
+ }
+ enum Atm-Bundle {
+ description
+ "ATM-Bundle interface.";
+ }
+ enum Lmpif {
+ description
+ "Lmpif interface.";
+ }
+ enum T1 {
+ description
+ "T1 controller.";
+ }
+ enum T3 {
+ description
+ "T3 controller.";
+ }
+ enum Global-VE {
+ description
+ "Global-VE interface.";
+ }
+ enum Vbdif {
+ description
+ "VBDIF interface.";
+ }
+ enum E3 {
+ description
+ "E3 controller.";
+ }
+ enum Cpos-Trunk {
+ description
+ "Cpos-Trunk interface.";
+ }
+ enum Pos-Trunk {
+ description
+ "Pos-Trunk interface.";
+ }
+ enum Trunk-Serial {
+ description
+ "Trunk-Serial interface.";
+ }
+ enum Global-Ima-Group {
+ description
+ "Global-Ima-Group interface.";
+ }
+ enum Global-Mp-Group {
+ description
+ "Global-Mp-Group interface.";
+ }
+ enum Gmpls-Uni {
+ description
+ "Gmpls-Uni interface.";
+ }
+ enum Wdm {
+ description
+ "Wdm controller.";
+ }
+ enum Nve {
+ description
+ "NVE interface.";
+ }
+ enum Virtual-Template {
+ description
+ "Virtual-Template Interface.";
+ }
+ enum 25GE {
+ description
+ "25 GigabitEthernet interface.";
+ }
+ enum XGigabitEthernet {
+ description
+ "XGigabitEthernet interface.";
+ }
+ enum ServiceIf {
+ description
+ "ServiceIf interface.";
+ }
+ enum FlexE {
+ description
+ "FlexE interface.";
+ }
+ enum 50|100GE {
+ description
+ "50|100 GigabitEthernet interface.";
+ }
+ enum 50GE {
+ description
+ "50 GigabitEthernet interface.";
+ }
+ enum FlexE-50G {
+ description
+ "FlexE-50G interface.";
+ }
+ enum FlexE-100G {
+ description
+ "FlexE-100G interface.";
+ }
+ enum FlexE-50|100G {
+ description
+ "FlexE-50|100G interface.";
+ }
+ enum PW-VE {
+ description
+ "PW-VE interface.";
+ }
+ enum Virtual-Serial {
+ description
+ "Virtual-Serial interface.";
+ }
+ enum 400GE {
+ description
+ "400GE interface.";
+ }
+ enum FCoE-Port {
+ description
+ "FCoE-Port interface.";
+ }
+ enum Virtual-ODUk {
+ description
+ "Virtual-ODUk interface.";
+ }
+ enum Phy-Serial {
+ description
+ "Phy-Serial interface.";
+ }
+ }
+ description
+ "Interface Physical Type";
+ }
+
+ typedef ifmcommServiceType-deviations {
+ type enumeration {
+ enum None {
+ description
+ "None.";
+ }
+ enum TrunkMember {
+ description
+ "Trunk member.";
+ }
+ enum MpMember {
+ description
+ "MP-Group Member.";
+ }
+ enum VbridgeMember {
+ description
+ "VBridge member.";
+ }
+ enum ImaMember {
+ description
+ "IMA member.";
+ }
+ enum BundleMember {
+ description
+ "Bundle member.";
+ }
+ enum CposTrunkMember {
+ description
+ "Cpos-Trunk Member.";
+ }
+ enum PosTrunkMember {
+ description
+ "Pos-Trunk Member.";
+ }
+ enum GlobalMpMember {
+ description
+ "Global-Mp-group Member.";
+ }
+ enum GlobalImaMember {
+ description
+ "Global-Ima-group Member.";
+ }
+ }
+ description
+ "Interface Service Type";
+ }
+
+ typedef ifmcommipv6StatusType-deviations {
+ type enumeration {
+ enum preferred {
+ description
+ "This is a valid address that can appear as the destination or source address of a packet.";
+ }
+ enum inaccessible {
+ description
+ "The address is not accessible because the interface to which this address is assigned is not operational.";
+ }
+ enum unknown {
+ description
+ "The status cannot be determined for some reason.";
+ }
+ enum tentative {
+ description
+ "The uniqueness of the address on the link is being verified. Addresses in this state should not be used for general communication and should only be used to determine the uniqueness of the address.";
+ }
+ enum duplicate {
+ description
+ "The address has been determined to be non-unique on the link and so must not be used.";
+ }
+ }
+ description
+ "The status of an address";
+ }
+
+ deviation "/ifm:ipv6IfStateChange/ifm:rootIndex" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ipv6IfStateChange/ifm:Reason" {
+ deviate not-supported;
+ }
+ deviation "/ifm:linkdown/ifm:rootIndex" {
+ deviate not-supported;
+ }
+ deviation "/ifm:linkdown/ifm:Reason" {
+ deviate not-supported;
+ }
+ deviation "/ifm:linkdown/ifm:PhysicalIndex" {
+ deviate not-supported;
+ }
+ deviation "/ifm:linkup/ifm:rootIndex" {
+ deviate not-supported;
+ }
+ deviation "/ifm:linkup/ifm:Reason" {
+ deviate not-supported;
+ }
+ deviation "/ifm:linkup/ifm:PhysicalIndex" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifDynamicInfo/ifm:subIfCount" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:globalConfig/ifm:sysAttriControlMtu" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:globalConfig/ifm:dualStat" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifMainIfDescr" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifNetworkLayerStatus" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:isActorBearSrv" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:netSlices" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:portMode" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:isAvailable" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifCeIpStatiEnable" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifCeIpStatisticsInfo" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:vPosition" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:vllPwLoopChk" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:ipv6InterfaceCountOper" {
+ deviate not-supported;
+ }
+ deviation "/ifm:ifm/ifm:autoRecoveryTimes/ifm:autoRecoveryTime/ifm:errorDownType" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommErrorDownType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifErrorDown/ifm:errorDownCause" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommErrorDownType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifPhyType" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommPhyType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifServiceType" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommServiceType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ipv4Config/ifm:am4CfgAddrs/ifm:am4CfgAddr/ifm:addrType" {
+ deviate replace {
+ type ifm-devs-nos:ifmam4IpAddrType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ipv4Oper/ifm:ipv4Addrs/ifm:ipv4Addr/ifm:addrType" {
+ deviate replace {
+ type ifm-devs-nos:ifmam4IpAddrType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ipv6Config/ifm:am6CfgAddrs/ifm:am6CfgAddr/ifm:addrType6" {
+ deviate replace {
+ type ifm-devs-nos:ifmam6IpAddr6Type-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ipv6Oper/ifm:ipv6Addrs/ifm:ipv6Addr/ifm:addrType6" {
+ deviate replace {
+ type ifm-devs-nos:ifmam6IpAddr6Type-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:staticDimRanges/ifm:staticDimRange/ifm:ifPhyType" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommPhyType-deviations;
+ }
+ }
+ deviation "/ifm:rstStaByPhyType/ifm:input/ifm:ifPhyType" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommPhyType-deviations;
+ }
+ }
+ deviation "/ifm:rstMibStatByPhyType/ifm:input/ifm:ifPhyType" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommPhyType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ipv6Oper/ifm:ipv6Addrs/ifm:ipv6Addr/ifm:status" {
+ deviate replace {
+ type ifm-devs-nos:ifmcommipv6StatusType-deviations;
+ }
+ }
+ deviation "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:inportCheck" {
+ deviate not-supported;
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-flowalarm@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-flowalarm@2018-11-23.yang
new file mode 100644
index 000000000..f671b97cf
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-flowalarm@2018-11-23.yang
@@ -0,0 +1,64 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-flowalarm {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "flow alarm";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ grouping alarm_type {
+ description
+ "";
+ leaf unknownUnicastAlarm {
+ type uint32 {
+ range "1..100";
+ }
+ description
+ "Unknown-unicast alarm threshold, which can be disabled.";
+ ext:allowDelete "true";
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-fr-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-fr-type@2018-11-23.yang
new file mode 100644
index 000000000..29b53bb4a
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-fr-type@2018-11-23.yang
@@ -0,0 +1,86 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-fr-type {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "fr type";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef cfgLmiType {
+ type enumeration {
+ enum "ansi" {
+ description
+ "LMI ANSI.";
+ }
+ enum "q933a" {
+ description
+ "LMI q933a.";
+ }
+ enum "nonstandard" {
+ description
+ "LMI nonstandard";
+ }
+ }
+ description
+ "type of configured lmi type";
+ }
+ typedef cfgRole {
+ type enumeration {
+ enum "dte" {
+ description
+ "FR DTE.";
+ }
+ enum "dce" {
+ description
+ "FR DCE.";
+ }
+ enum "nni" {
+ description
+ "FR NNI.";
+ }
+ }
+ description
+ "type of configured role";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-fr@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-fr@2018-11-23.yang
new file mode 100644
index 000000000..37e7182c0
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-fr@2018-11-23.yang
@@ -0,0 +1,138 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-fr {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ include huawei-ifm-fr-type;
+ include huawei-ifm-pppbase;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "submodule fr";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ grouping ifm_frConfig_type {
+ description
+ "";
+ leaf lmiType {
+ type cfgLmiType;
+ default "q933a";
+ description
+ "LMI type.";
+ }
+ leaf ifType {
+ type cfgRole;
+ default "dte";
+ description
+ "FR role.";
+ }
+ leaf n391dte {
+ type uint32 {
+ range "1..255";
+ }
+ default "6";
+ description
+ "FR n391Dte.";
+ ext:allowDelete "true";
+ }
+ leaf n392dce {
+ type uint64 {
+ range "1..10";
+ }
+ default "3";
+ description
+ "FR n392Dce.";
+ }
+ leaf n392dte {
+ type uint64 {
+ range "1..10";
+ }
+ default "3";
+ description
+ "FR n392Dte.";
+ }
+ leaf n393dce {
+ type uint64 {
+ range "1..10";
+ }
+ default "4";
+ description
+ "FR n393Dce.";
+ }
+ leaf n393dte {
+ type uint32 {
+ range "1..10";
+ }
+ default "4";
+ description
+ "FR n393Dte.";
+ }
+ leaf t392dce {
+ type uint64 {
+ range "5..30";
+ }
+ default "15";
+ description
+ "FR t392Dce.";
+ ext:allowDelete "true";
+ }
+ container dlcis {
+ description
+ "FR DLCI.";
+ leaf dlci {
+ type uint32 {
+ range "16..1007";
+ }
+ description
+ "FR DLCI.";
+ ext:allowDelete "true";
+ }
+ }
+ container ifLink {
+ description
+ "FR polling interval. The value is expressed in seconds.";
+ uses ifm:ifm_pppbase_ifLink_type;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc-notification@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc-notification@2018-11-23.yang
new file mode 100644
index 000000000..24bc85e06
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc-notification@2018-11-23.yang
@@ -0,0 +1,77 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-hdlc-notification{
+ belongs-to huawei-ifm{
+ prefix ifm;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "notification of hdlc";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ notification hwHdlcLoopbackDetResume{
+ description
+ "Interface loopback is cleared. (InterfaceIndex=[InterfaceIndex], InterfaceName=[InterfaceName])";
+ leaf InterfaceIndex{
+ type int32;
+ description
+ "Interface Index";
+ }
+ leaf InterfaceName{
+ type string;
+ description
+ "Interface Name";
+ }
+ }
+ notification hwHdlcLoopbackDetect{
+ description
+ "Interface loopback is detected. (InterfaceIndex=[InterfaceIndex], InterfaceName=[InterfaceName])";
+ leaf InterfaceIndex{
+ type int32;
+ description
+ "Interface Index";
+ }
+ leaf InterfaceName{
+ type string;
+ description
+ "Interface Name";
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc-type@2018-11-23.yang
new file mode 100644
index 000000000..1d2833d39
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc-type@2018-11-23.yang
@@ -0,0 +1,72 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-hdlc-type {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "hdlc type";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef hdlcDampLevelType {
+ type enumeration {
+ enum "light" {
+ description
+ "Light weight";
+ }
+ enum "middle" {
+ description
+ "Middle weight";
+ }
+ enum "heavy" {
+ description
+ "Heavy weight";
+ }
+ enum "manual" {
+ description
+ "Manually configure the parameters";
+ }
+ }
+ description
+ "hdlcDampLevelType is light/middle/heavy/manual";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc@2018-11-23.yang
new file mode 100644
index 000000000..8d32747b7
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-hdlc@2018-11-23.yang
@@ -0,0 +1,124 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-hdlc {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+
+ include huawei-ifm-pppbase;
+ include huawei-ifm-hdlc-type;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "submodule hdlc";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ grouping hdlcDamp_type {
+ description
+ "type of HDLC damp";
+ leaf hdlcDampEnable {
+ type boolean;
+ default "true";
+ description
+ "HDLC link status damping enable";
+ }
+ leaf hdlcDampLevel {
+ when "not(../hdlcDampEnable='false') or ../hdlcDampEnable='true'";
+ type hdlcDampLevelType;
+ default "light";
+ description
+ "HDLC link status damping level";
+ }
+ leaf hdlcSuppress {
+ when "not(../hdlcDampEnable='false' or ../hdlcDampLevel!='manual')";
+ type uint32 {
+ range "1..20000";
+ }
+ units second;
+ must "not(../hdlcDampLevel='manual') or (../hdlcDampLevel='manual' and ../hdlcSuppress>../hdlcReuse)";
+ description
+ "1000 times of suppress threshold";
+ }
+ leaf hdlcReuse {
+ when "not(../hdlcDampEnable='false' or ../hdlcDampLevel!='manual')";
+ type uint32 {
+ range "1..20000";
+ }
+ units second;
+ must "not(../hdlcDampLevel='manual') or (../hdlcDampLevel='manual' and ../hdlcSuppress and ../hdlcSuppress>../hdlcReuse)";
+ description
+ "1000 times of reuse threshold";
+ }
+ leaf hdlcMaxSuppressTime {
+ when "not(../hdlcDampEnable='false' or ../hdlcDampLevel!='manual')";
+ type uint16 {
+ range "1..255";
+ }
+ units second;
+ must "not(../hdlcDampLevel='manual') or (../hdlcDampLevel='manual' and ../hdlcSuppress and ../hdlcReuse and ../hdlcMaxSuppressTime>../hdlcHalfLifePeriod)";
+ description
+ "Max suppress time(seconds)";
+ }
+ leaf hdlcHalfLifePeriod {
+ when "not(../hdlcDampEnable='false' or ../hdlcDampLevel!='manual')";
+ type uint16 {
+ range "1..60";
+ }
+ units second;
+ description
+ "HDLC protocol status damping half life time(seconds)";
+ }
+ }
+ grouping hdlc_chdlc_oper_hdlcConfig_type {
+ description
+ "";
+ leaf downWhenLoop {
+ type boolean;
+ default "false";
+ description
+ "Enable the function of CHDLC DownWhenLoop.";
+ }
+ container ifLink {
+ description
+ "HDLC polling interval.The value is expressed in seconds.";
+ uses ifm:ifm_pppbase_ifLink_type;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-method@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-method@2018-11-23.yang
new file mode 100644
index 000000000..8cc2293d3
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-method@2018-11-23.yang
@@ -0,0 +1,73 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-method {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ import huawei-pub-type {
+ prefix pub-type;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "the ifm method submodule";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ rpc SubIfStatistics {
+ description
+ "Enable sub-interface Statistics";
+ ext:node-ref "/ifm/interfaces/interface";
+ input {
+ leaf SubIfStatisticsEnable {
+ type boolean;
+ default "false";
+ description
+ "The switch of SubIfStatistics";
+ }
+ leaf mainifName {
+ type pub-type:ifName;
+ description
+ "The interface name of SubIfStatistics";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-notification@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-notification@2018-11-23.yang
new file mode 100644
index 000000000..a4304228c
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-notification@2018-11-23.yang
@@ -0,0 +1,388 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-notification {
+ yang-version 1;
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "notification of ifm";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ notification hwErrordownRecovery {
+ description
+ "Error-down recovered. (Ifindex=[IfIndex], Ifname=[IfName], Cause=[Cause], RecoverType=[RecoveryType])";
+ leaf IfIndex {
+ type uint32;
+ description
+ "Interface index.";
+ }
+ leaf IfName {
+ type string;
+ description
+ "Interface name.";
+ }
+ leaf RecoveryType {
+ type string;
+ description
+ "Recovery Type.";
+ }
+ leaf Cause {
+ type string;
+ description
+ "Fault reason.";
+ }
+ }
+ notification hwErrordown {
+ description
+ "Error-down occurred. (Ifindex=[IfIndex], Ifname=[IfName], Cause=[Cause])";
+ leaf IfIndex {
+ type uint32;
+ description
+ "Interface index.";
+ }
+ leaf IfName {
+ type string;
+ description
+ "Interface name.";
+
+ }
+ leaf RecoveryType {
+ type string;
+ description
+ "Recovery Type.";
+ }
+ leaf Cause {
+ type string;
+ description
+ "Fault reason.";
+ }
+ }
+ notification hwifflowdown {
+ description
+ "The state of interface turned to DOWN because of FLOW DOWN. (Interface=[ifIndex], InterfaceIndex=[hwIFExtIndex], SysUpTime=[sysUpTime], FlowStatus=[hwIFExtFlowStatus],InterfaceName=[ifName])";
+ leaf hwIFExtIndex {
+ type uint32;
+ description
+ "Interface index.";
+ }
+ leaf hwIFExtFlowStatus {
+ type uint32;
+ description
+ flowStatus.;
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf ifIndex {
+ type uint32;
+ description
+ "interface index";
+ }
+ leaf sysUpTime {
+ type yang:timeticks;
+ description
+ "System startup time.";
+ }
+ }
+ notification hwifflowup {
+ description
+ "The state of interface turned to UP because of FLOW UP. (Interface=[hwIFExtIndex], InterfaceIndex=[hwIFExtIndex], SysUpTime=[sysUpTime], FlowStatus=[hwIFExtFlowStatus],InterfaceName=[ifName])";
+ leaf hwIFExtIndex {
+ type uint32;
+ description
+ "Interface index.";
+ }
+ leaf hwIFExtFlowStatus {
+ type uint32;
+ description
+ flowStatus.;
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf ifIndex {
+ type uint32;
+ description
+ "interface index";
+ }
+ leaf sysUpTime {
+ type yang:timeticks;
+ description
+ "System startup time.";
+ }
+ }
+ notification ipv6IfStateChange {
+ description
+ "The status of the IPv6 Interface changed.";
+ leaf ipv6IfAdminStatus {
+ type string;
+ description
+ "current administrate state of the ipv6 interface";
+ }
+ leaf ipv6IfIndex {
+ type uint32;
+ description
+ "interface index";
+ }
+ leaf ipv6MainIf {
+ type string;
+ description
+ "main interface name";
+ }
+ leaf ipv6IfDescr {
+ type string;
+ description
+ "interface name";
+ }
+ leaf ReasonCode {
+ type uint32;
+ description
+ "alarm reason";
+ }
+ leaf ipv6IfOperStatus {
+ type string;
+ description
+ "current operational state of the ipv6 interface";
+ }
+ leaf rootIndex {
+ type uint32;
+ description
+ "carrier id";
+ }
+ leaf Reason {
+ type binary;
+ description
+ "alarm reason";
+ }
+ }
+ notification linkdown {
+ description
+ "The interface status changes. (ifName=[ifName], AdminStatus=[ifAdminStatus], OperStatus=[ifOperStatus], Reason=[Reason], mainIfname=[mainIf])";
+ leaf PhysicalIndex {
+ type uint32;
+ description
+ "carrier id.";
+ }
+ leaf ifAdminStatus {
+ type string;
+ description
+ "the desired state of the interface.";
+ }
+ leaf mainIf {
+ type string;
+ description
+ "the main interface name.";
+ }
+ leaf ifOperStatus {
+ type string;
+ description
+ "the current operational state of the interface.";
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf ifIndex {
+ type uint32;
+ description
+ "interface index.";
+ }
+ leaf reasonCode {
+ type uint32;
+ description
+ "reason code.";
+ }
+ leaf rootIndex {
+ type uint32;
+ description
+ "carrier id.";
+ }
+ leaf Reason {
+ type binary;
+ description
+ "alarm reason.";
+ }
+ }
+ notification linkup {
+ description
+ "The interface status changes. (ifName=[ifName], AdminStatus=[ifAdminStatus], OperStatus=[ifOperStatus], Reason=[Reason], mainIfname=[mainIf])";
+ leaf PhysicalIndex {
+ type uint32;
+ description
+ "carrier id.";
+ }
+ leaf ifAdminStatus {
+ type string;
+ description
+ "the desired state of the interface.";
+ }
+ leaf mainIf {
+ type string;
+ description
+ "the main interface name.";
+ }
+ leaf ifOperStatus {
+ type string;
+ description
+ "the current operational state of the interface.";
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf ifIndex {
+ type uint32;
+ description
+ "interface index.";
+ }
+ leaf reasonCode {
+ type uint32;
+ description
+ "reason code.";
+ }
+ leaf rootIndex {
+ type uint32;
+ description
+ "carrier id.";
+ }
+ leaf Reason {
+ type binary;
+ description
+ "alarm reason.";
+ }
+ }
+ notification hwIfControlFlapResume {
+ description
+ "The state of interface changed from suppress to unsuppress. (InterfaceIndex=[InterfaceIndex], InterfaceExtIndex=[InterfaceExtIndex], InterfaceName=[InterfaceName], SuppressState=[SuppressState])";
+ leaf InterfaceIndex {
+ type uint32;
+ description
+ "Indicates the interface index.";
+ }
+ leaf InterfaceExtIndex {
+ type uint32;
+ description
+ "Indicates the extended interface index.";
+ }
+ leaf InterfaceName {
+ type string;
+ description
+ "Indicates the interface name.";
+ }
+ leaf SuppressState {
+ type uint32;
+ description
+ "Indicates whether the interface is suppressed. 0: indicates the interface is unsuppressed. 1: indicates the interface is suppressed.";
+ }
+ }
+ notification hwIfControlFlapSuppress {
+ description
+ "The state of interface changed from unsuppress to suppress. (InterfaceIndex=[InterfaceIndex], InterfaceExtIndex=[InterfaceExtIndex], InterfaceName=[InterfaceName], SuppressState=[SuppressState])";
+ leaf InterfaceIndex {
+ type uint32;
+ description
+ "Indicates the interface index.";
+ }
+ leaf InterfaceExtIndex {
+ type uint32;
+ description
+ "Indicates the extended interface index.";
+ }
+ leaf InterfaceName {
+ type string;
+ description
+ "Indicates the interface name.";
+ }
+ leaf SuppressState {
+ type uint32;
+ description
+ "Indicates whether the interface is suppressed. 0: indicates the interface is unsuppressed. 1: indicates the interface is suppressed.";
+ }
+ }
+ notification hwPhysicalAdminIfUp {
+ description
+ "The physical manage interface physical status changes to up.(ifName=[ifName], OperStatus=[ifOperStatus])";
+ leaf ifIndex {
+ type uint32;
+ description
+ "interface index.";
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf ifOperStatus {
+ type string;
+ description
+ "the current operational state of the interface.";
+ }
+ }
+ notification hwPhysicalAdminIfDown {
+ description
+ "The physical manage interface physical status changes to down.(ifName=[ifName], OperStatus=[ifOperStatus])";
+ leaf ifIndex {
+ type uint32;
+ description
+ "interface index.";
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf ifOperStatus {
+ type string;
+ description
+ "the current operational state of the interface.";
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase-notification@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase-notification@2018-11-23.yang
new file mode 100644
index 000000000..c0db8b02b
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase-notification@2018-11-23.yang
@@ -0,0 +1,238 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-pppbase-notification {
+ yang-version 1;
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "notification of ifm-pppbase";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ notification hwLcpNegotiateResumed {
+ description
+ "The alarm indicating LCP negotiation failure on the local interface was cleared. (IfName=[ifName])";
+ leaf ifIndex {
+ type uint32;
+ description
+ IfIndex;
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf reasonCode {
+ type string;
+ description
+ "Cause of the negotiation failure.";
+ }
+ }
+ notification hwLcpNegotiateFailed {
+ description
+ "LCP negotiation failed on the local interface. (IfName=[ifName], hwPppNegotiationFailReason=[reasonCode])";
+ leaf ifIndex {
+ type uint32;
+ description
+ IfIndex;
+ }
+ leaf ifName {
+ type string;
+ description
+ "interface name.";
+ }
+ leaf reasonCode {
+ type string;
+ description
+ "Cause of the negotiation failure.";
+ }
+ }
+ notification hwPppLoopbackDetect {
+ description
+ "Interface loopback is detected.(IfIndex=[IfIndex], HwBaseTrapSeverity=[HwBaseTrapSeverity], HwBaseTrapProbableCause=[HwBaseTrapProbableCause], HwBaseTrapEventType=[HwBaseTrapEventType], IfName=[IfName])";
+ leaf IfIndex {
+ type uint32;
+ description
+ Ifindex;
+ }
+ leaf HwBaseTrapSeverity {
+ type uint32;
+ }
+ leaf HwBaseTrapProbableCause {
+ type uint32;
+ }
+ leaf HwBaseTrapEventType {
+ type uint32;
+ }
+ leaf IfName {
+ type string;
+ }
+ }
+ notification hwPppLoopbackDetResume {
+ description
+ "Interface loopback is cleared.(IfIndex=[IfIndex], HwBaseTrapSeverity=[HwBaseTrapSeverity], HwBaseTrapProbableCause=[HwBaseTrapProbableCause], HwBaseTrapEventType=[HwBaseTrapEventType], IfName=[IfName])";
+ leaf IfIndex {
+ type uint32;
+ description
+ Ifindex;
+ }
+ leaf HwBaseTrapSeverity {
+ type uint32;
+ }
+ leaf HwBaseTrapProbableCause {
+ type uint32;
+ }
+ leaf HwBaseTrapEventType {
+ type uint32;
+ }
+ leaf IfName {
+ type string;
+ }
+ }
+ notification hwMpUp {
+ description
+ "The number of available member links in the MP-Group reached the lower threshold and the MP-Group went UP. (IfIndex=[IfIndex], IfName=[IfName])";
+ leaf IfIndex {
+ type uint32;
+ description
+ "Interface index";
+ }
+ leaf IfName {
+ type string;
+ description
+ "Interface name";
+ }
+ }
+ notification hwMpDown {
+ description
+ "The number of available member links in the MP-Group fell below the lower threshold and the MP-Group went Down. (IfIndex=[IfIndex], IfName=[IfName])";
+ leaf IfIndex {
+ type uint32;
+ description
+ "Interface index";
+ }
+ leaf IfName {
+ type string;
+ description
+ "Interface name";
+ }
+ }
+ notification hwNcpNegotiateResumed {
+ description
+ "The alarm indicating NCP negotiation failure on the local interface was cleared. (IfName=[ifName], hwPppNcpName=[hwPppNcpName])";
+ leaf ifIndex {
+ type uint32;
+ description
+ IfIndex;
+ }
+ leaf ifName {
+ type string;
+ description
+ "Interface name";
+ }
+ leaf hwPppNcpName {
+ type string;
+ description
+ "NCP protocol name";
+ }
+ leaf hwPppNegotiationFailReason {
+ type string;
+ description
+ "Reason code";
+ }
+ }
+ notification hwNcpNegotiateFailed {
+ description
+ "NCP negotiation failed on the local interface. (IfName=[ifName], hwPppNcpName=[hwPppNcpName], hwPppNegotiationFailReason=[hwPppNegotiationFailReason])";
+ leaf ifIndex {
+ type uint32;
+ description
+ IfIndex;
+ }
+ leaf ifName {
+ type string;
+ description
+ "Interface name";
+ }
+ leaf hwPppNcpName {
+ type string;
+ description
+ "NCP protocol name";
+ }
+ leaf hwPppNegotiationFailReason {
+ type string;
+ description
+ "Reason code";
+ }
+ }
+ notification hwMpSonChannelDampingDetect {
+ description
+ "The son channel of the MP link is damped. (MpIfIndex=[MpIfIndex], MpIfName=[MpIfName], MpMemberIfIndex=[MpMemberIfIndex], MpMemberIfName=[MpMemberIfName])";
+ leaf MpIfIndex {
+ type uint32;
+ }
+ leaf MpIfName {
+ type string;
+ }
+ leaf MpMemberIfIndex {
+ type uint32;
+ }
+ leaf MpMemberIfName {
+ type string;
+ }
+ }
+ notification hwMpSonChannelDampingResume {
+ description
+ "The son channel of the MP link is recovered from damping. (MpIfIndex=[MpIfIndex], MpIfName=[MpIfName], MpMemberIfIndex=[MpMemberIfIndex], MpMemberIfName=[MpMemberIfName])";
+ leaf MpIfIndex {
+ type uint32;
+ }
+ leaf MpIfName {
+ type string;
+ }
+ leaf MpMemberIfIndex {
+ type uint32;
+ }
+ leaf MpMemberIfName {
+ type string;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase-type@2018-11-23.yang
new file mode 100644
index 000000000..ec06cdf0c
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase-type@2018-11-23.yang
@@ -0,0 +1,200 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-pppbase-type {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "type of pppbase";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef pppbaseMruNegoMtd {
+ type enumeration {
+ enum "IPV4" {
+ description
+ "IPv4 MRU negotiation on PPP MRU.";
+ }
+ enum "IPV6" {
+ description
+ "IPv6 MRU negotiation on PPP MRU.";
+ }
+ }
+ description
+ "type of ppp negotiated mru";
+ }
+ typedef pppbaseCrcType {
+ type enumeration {
+ enum "BitErrRatio" {
+ description
+ "Error bit rate.";
+ }
+ enum "PktErrRatio" {
+ description
+ "Error packet rate.";
+ }
+ enum "HighLow" {
+ description
+ "CRC upper and lower limit.";
+ }
+ enum "Default" {
+ description
+ "Default CRC alarm type.";
+ }
+ }
+ description
+ "type of ppp crc";
+ }
+ typedef pppbaseCrcBitType {
+ type enumeration {
+ enum "16" {
+ description
+ "16 bit.";
+ }
+ enum "32" {
+ description
+ "32 bit.";
+ }
+ }
+ description
+ "type of ppp crc bit";
+ }
+ typedef pppbaseNcpNegoType {
+ type enumeration {
+ enum "Enable" {
+ description
+ "Enable.";
+ }
+ enum "Disable" {
+ description
+ "Disable.";
+ }
+ }
+ description
+ "type of ppp ncp negotiation";
+ }
+ typedef pppDampLevelType {
+ type enumeration {
+ enum "light" {
+ description
+ "Light weight";
+ }
+ enum "middle" {
+ description
+ "Middle weight";
+ }
+ enum "heavy" {
+ description
+ "Heavy weight";
+ }
+ enum "manual" {
+ description
+ "Manually configure the parameters";
+ }
+ }
+ description
+ "pppDampLevelType is light/middle/heavy/manual";
+ }
+ typedef linkType {
+ type enumeration {
+ enum "lcp" {
+ description
+ "lcp.";
+ }
+ enum "ipcp" {
+ description
+ "ipcp.";
+ }
+ }
+ description
+ "description of linkType";
+ }
+ typedef pppFsmState {
+ type enumeration {
+ enum "initial" {
+ description
+ "initial.";
+ }
+ enum "starting" {
+ description
+ "starting.";
+ }
+ enum "closed" {
+ description
+ "closed.";
+ }
+ enum "stopped" {
+ description
+ "stopped.";
+ }
+ enum "closing" {
+ description
+ "closing.";
+ }
+ enum "stopping" {
+ description
+ "stopping.";
+ }
+ enum "reqsent" {
+ description
+ "reqsent.";
+ }
+ enum "ackrcvd" {
+ description
+ "ackrcvd.";
+ }
+ enum "acksent" {
+ description
+ "acksent.";
+ }
+ enum "opened" {
+ description
+ "opened.";
+ }
+ enum "none" {
+ description
+ "none.";
+ }
+ }
+ description
+ "description of ppp fsm state";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase@2018-11-23.yang
new file mode 100644
index 000000000..aa595320f
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-pppbase@2018-11-23.yang
@@ -0,0 +1,570 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-pppbase {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+ import huawei-pub-type {
+ prefix pub-type;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+ include huawei-ifm-pppbase-type;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "submodule pppbase";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ grouping pppDamp_type {
+ description
+ "type of PPP damp";
+ leaf pppDampEnable {
+ type boolean;
+ default "true";
+ description
+ "PPP protocal status damping enable";
+ }
+ leaf pppDampLevel {
+ when "not(../pppDampEnable='false') or ../pppDampEnable='true'";
+ type pppDampLevelType;
+ default "light";
+ description
+ "PPP protocal status damping level";
+ }
+ leaf pppSuppress {
+ when "not(../pppDampEnable='false' or ../pppDampLevel!='manual')";
+ type uint16 {
+ range "1..20000";
+ }
+ units second;
+ description
+ "1000 times of PPP protocal status damping suppress threshold";
+ }
+ leaf pppReuse {
+ when "not(../pppDampEnable='false' or ../pppDampLevel!='manual')";
+ type uint16 {
+ range "1..20000";
+ }
+ units second;
+ description
+ "1000 times of PPP protocal status damping reuse threshold";
+ }
+ leaf pppMaxSuppressTime {
+ when "not(../pppDampEnable='false' or ../pppDampLevel!='manual')";
+ type uint8 {
+ range "1..255";
+ }
+ units second;
+ description
+ "PPP protocal status damping max suppress time(seconds)";
+ }
+ leaf pppHalfLifePeriod {
+ when "not(../pppDampEnable='false' or ../pppDampLevel!='manual')";
+ type uint8 {
+ range "1..60";
+ }
+ units second;
+ description
+ "PPP protocal status damping half life time(seconds)";
+ }
+ }
+ grouping ifm_pppbase_pppConfig_type {
+ description
+ "";
+ leaf negoTimeout {
+ type uint32 {
+ range "1..10";
+ }
+ units second;
+ default "3";
+ description
+ "Timeout duration of PPP negotiation. The value is expressed in seconds.";
+ ext:allowDelete "true";
+ }
+ leaf deadLinkTime {
+ type uint32 {
+ range "5..30";
+ }
+ units second;
+ default "30";
+ description
+ "Specify the Link Dead timer value. The value is expressed in seconds.";
+ ext:allowDelete "true";
+ }
+ leaf peerIpAddr {
+ type inet:ipv4-address-no-zone;
+ description
+ "IP address assigned for the peer.";
+ ext:allowDelete "true";
+ }
+ leaf mruNegoMtd {
+ type pppbaseMruNegoMtd;
+ default "IPV4";
+ description
+ "Enable MRU negotiation. By default, IPv4 negotiation is applied.";
+ ext:allowDelete "true";
+ }
+ leaf ifPapAuth {
+ type boolean;
+ default "false";
+ description
+ "Enable the PAP authentication mode.";
+ }
+ leaf ifChapAuth {
+ type boolean;
+ default "false";
+ description
+ "Enable the CHAP authentication mode.";
+ }
+ leaf magicNumCheck {
+ type boolean;
+ default "false";
+ description
+ "Enable the function of Magic-Number Check";
+ ext:allowDelete "true";
+ }
+ leaf osicpNego {
+ type pppbaseNcpNegoType;
+ default "Enable";
+ description
+ "Enable OSICP negotiate.";
+ ext:allowDelete "true";
+ }
+ leaf mplscpNego {
+ type pppbaseNcpNegoType;
+ default "Enable";
+ description
+ "Enable MPLSCP negotiate.";
+ ext:allowDelete "true";
+ }
+ leaf peerHostRoute {
+ type boolean;
+ default "false";
+ description
+ "Enable the function of suppressing the adding of peer host routes to the local direct route table.";
+ ext:allowDelete "true";
+ }
+ leaf papUserName {
+ type string {
+ length "1..253";
+ }
+ description
+ "PAP authentication on user names.";
+ ext:allowDelete "true";
+ }
+ leaf papPaswrd {
+ type pub-type:password {
+ length "1..128";
+ }
+ description
+ "The password is a string ranging from 1 to 16 characters for a plaintext password and 1 to 128 characters for a ciphertext password.";
+ ext:allowDelete "true";
+ }
+ leaf chapUserName {
+ type string {
+ length "1..253";
+ }
+ description
+ "CHAP authentication on user names.";
+ ext:allowDelete "true";
+ }
+ leaf chapPaswrd {
+ type pub-type:password {
+ length "1..128";
+ }
+ description
+ "The password is a string ranging from 1 to 16 characters for a plaintext password and 1 to 128 characters for a ciphertext password.";
+ ext:allowDelete "true";
+ }
+ leaf dnsAdmitAny {
+ type boolean;
+ default "false";
+ description
+ "Receive any DNS address sent by the peer.";
+ }
+ leaf primDNSAddr {
+ type inet:ipv4-address-no-zone;
+ default "0.0.0.0";
+ description
+ "IP address of the master DNS server.";
+ ext:allowDelete "true";
+ }
+ leaf secndDNSAddr {
+ type inet:ipv4-address-no-zone;
+ default "0.0.0.0";
+ description
+ "IP address of the slave DNS server.";
+ ext:allowDelete "true";
+ }
+ container ifLink {
+ description
+ "PPP polling interval. The value is expressed in seconds.";
+ leaf timeInternal {
+ type uint32 {
+ range "0..32767";
+ }
+ units second;
+ default "10";
+ description
+ "Polling interval. The value is expressed in seconds.";
+ }
+ }
+ container dispPppInfoNode {
+ config false;
+ description
+ "dispPppInfoNode.";
+ leaf lcpState {
+ type pppFsmState;
+ config false;
+ description
+ "lcpState.";
+ }
+ leaf ipcpState {
+ type pppFsmState;
+ config false;
+ description
+ "ipcpState.";
+ }
+ leaf localMru {
+ type uint32;
+ config false;
+ description
+ "localMru.";
+ }
+ leaf peerMru {
+ type uint32;
+ config false;
+ description
+ "peerMru.";
+ }
+ leaf magicNum {
+ type uint32;
+ config false;
+ description
+ "magicNum.";
+ }
+ leaf negoTimeOut {
+ type uint32;
+ config false;
+ description
+ "negoTimeOut.";
+ }
+ leaf peerIpaddr {
+ type inet:ipv4-address-no-zone;
+ config false;
+ description
+ "peerIpaddr.";
+ }
+ leaf mplscpState {
+ type pppFsmState;
+ config false;
+ description
+ "mplscpState.";
+ }
+ leaf osicpState {
+ type pppFsmState;
+ config false;
+ description
+ "osicpState.";
+ }
+ leaf ip6cpState {
+ type pppFsmState;
+ config false;
+ description
+ "ip6cpState.";
+ }
+ container downEvents {
+ config false;
+ description
+ "downEvents.";
+ list downEvent {
+ key "linkType";
+ config false;
+ max-elements "10";
+ description
+ "downEvent.";
+ leaf linkType {
+ type linkType;
+ config false;
+ description
+ "linkType.";
+ }
+ leaf downReason {
+ type string {
+ length "1..100";
+ }
+ config false;
+ description
+ "downReason.";
+ }
+ leaf downTime {
+ type yang:date-and-time;
+ config false;
+ description
+ "downTime.";
+ }
+ }
+ }
+ }
+ container crcParam {
+ description
+ "CRC alarm configurations.";
+ leaf errType {
+ type pppbaseCrcType;
+ default "Default";
+ description
+ "CRC alarm type.";
+ ext:allowDelete "true";
+ }
+ leaf highThreshold {
+ type uint32 {
+ range "1..4294967295";
+ }
+ description
+ "CRC upper limit.";
+ ext:allowDelete "true";
+ }
+ leaf lowThreshold {
+ type uint32 {
+ range "1..4294967295";
+ }
+ description
+ "CRC lower limit.";
+ ext:allowDelete "true";
+ }
+ leaf interval {
+ type uint32 {
+ range "1..65535";
+ }
+ description
+ "Time interval.The value is expressed in seconds.";
+ ext:allowDelete "true";
+ }
+ leaf pktAlaCof {
+ type uint32 {
+ range "1..9";
+ }
+ description
+ "Error packet alarm coefficient.";
+ ext:allowDelete "true";
+ }
+ leaf pktAlaPow {
+ type uint32 {
+ range "1..5";
+ }
+ description
+ "Error packet alarm power.";
+ ext:allowDelete "true";
+ }
+ leaf pktResCof {
+ type uint32 {
+ range "1..9";
+ }
+ description
+ "Error packet resume coefficient.";
+ ext:allowDelete "true";
+ }
+ leaf pktResPow {
+ type uint32 {
+ range "1..6";
+ }
+ description
+ "Error packet resume power.";
+ ext:allowDelete "true";
+ }
+ leaf bitAlaCof {
+ type uint32 {
+ range "1";
+ }
+ description
+ "Error bit alarm coefficient.";
+ ext:allowDelete "true";
+ }
+ leaf bitAlaPow {
+ type uint32 {
+ range "3..6";
+ }
+ description
+ "Error bit alarm power.";
+ ext:allowDelete "true";
+ }
+ leaf bitResCof {
+ type uint32 {
+ range "1";
+ }
+ description
+ "Error bit resume coefficient.";
+ ext:allowDelete "true";
+ }
+ leaf bitResPow {
+ type uint32 {
+ range "3..6";
+ }
+ description
+ "Error bit resume power.";
+ ext:allowDelete "true";
+ }
+ leaf shutdown {
+ type boolean;
+ description
+ "CRC action Down.";
+ ext:allowDelete "true";
+ }
+ leaf crcBit {
+ type pppbaseCrcBitType;
+ default "32";
+ description
+ "CRC bit.";
+ ext:allowDelete "true";
+ }
+ leaf sampleFactor {
+ type uint32 {
+ range "10..100";
+ }
+ default "50";
+ description
+ "Sample window factor, default is 50.";
+ ext:allowDelete "false";
+ }
+ leaf childMaxNum {
+ type uint32 {
+ range "10..100";
+ }
+ default "50";
+ description
+ "Maximum number of child windows, default is 50.";
+ ext:allowDelete "false";
+ }
+ leaf childAlarmNum {
+ type uint32 {
+ range "1..100";
+ }
+ default "5";
+ description
+ "Minimal number of child windows for alarm generating, default is 5.";
+ ext:allowDelete "false";
+ }
+ leaf childResmNum {
+ type uint32 {
+ range "1..100";
+ }
+ default "30";
+ description
+ "Minimal number of child windows for alarm resuming, default is 30.";
+ ext:allowDelete "false";
+ }
+ }
+ container pppStatistics {
+ config false;
+ description
+ "PPP statistics.";
+ leaf inputShortPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP input short packets.";
+ }
+ leaf inputLongPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP input long packets.";
+ }
+ leaf inputCrcPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP input CRC packets.";
+ }
+ leaf inputLostPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP input lost packets.";
+ }
+ leaf outLostPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP output lost packets.";
+ }
+ leaf outOverPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP output over packets.";
+ }
+ leaf outUnderPkts {
+ type uint32;
+ default "0";
+ config false;
+ description
+ "PPP output under packets.";
+ }
+ }
+ }
+ grouping ifm_pppbase_ifLink_type {
+ description
+ "";
+ leaf timeInternal {
+ type uint32 {
+ range "0..32767";
+ }
+ units second;
+ default "10";
+ description
+ "Polling interval. The value is expressed in seconds.";
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-type@2018-11-23.yang
new file mode 100644
index 000000000..e5b20ac59
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm-type@2018-11-23.yang
@@ -0,0 +1,1133 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-ifm-type {
+ belongs-to huawei-ifm {
+ prefix ifm;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "the ifm type submodule";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef ifmcommPhyType {
+ type enumeration {
+ enum "Ethernet" {
+ description
+ "Ethernet interface.";
+ }
+ enum "GigabitEthernet" {
+ description
+ "GigabitEthernet interface.";
+ }
+ enum "Eth-Trunk" {
+ description
+ "Eth-Trunk interface.";
+ }
+ enum "Ip-Trunk" {
+ description
+ "IP-Trunk interface.";
+ }
+ enum "Pos" {
+ description
+ "POS interface.";
+ }
+ enum "Tunnel" {
+ description
+ "Tunnel interface.";
+ }
+ enum "NULL" {
+ description
+ "Null interface.";
+ }
+ enum "LoopBack" {
+ description
+ "Loopback interface.";
+ }
+ enum "Vlanif" {
+ description
+ "VLANIF interface.";
+ }
+ enum "100GE" {
+ description
+ "100 GigabitEthernet interface.";
+ }
+ enum "200GE" {
+ description
+ "200 GigabitEthernet interface.";
+ }
+ enum "40GE" {
+ description
+ "40 GigabitEthernet interface.";
+ }
+ enum "MTunnel" {
+ description
+ "MTunnel interface.";
+ }
+ enum "10GE" {
+ description
+ "10 GigabitEthernet interface.";
+ }
+ enum "GEBrief" {
+ description
+ "GigabitEthernet interface.";
+ }
+ enum "MEth" {
+ description
+ "Management Ethernet interface.";
+ }
+ enum "IMEth" {
+ description
+ "Inner Management Ethernet interface.";
+ }
+ enum "Stack-Port" {
+ description
+ "Stack-port interface.";
+ }
+ enum "Sip" {
+ description
+ "System interconnect port.";
+ }
+ enum "Cpos" {
+ description
+ "CPOS controller.";
+ }
+ enum "E1" {
+ description
+ "E1 controller.";
+ }
+ enum "Serial" {
+ description
+ "Serial interface.";
+ }
+ enum "Mp-group" {
+ description
+ "MP-group interface.";
+ }
+ enum "Virtual-Ethernet" {
+ description
+ "Virtual-Ethernet interface.";
+ }
+ enum "VMEth" {
+ description
+ "Virtual management Ethernet interface.";
+ }
+ enum "Ima-group" {
+ description
+ "IMA-group interface.";
+ }
+ enum "Remote-Ap" {
+ description
+ "Virtual cluster access remote access point interface.";
+ }
+ enum "VBridge" {
+ description
+ "Virtual cluster access bridge interface.";
+ }
+ enum "Atm-Bundle" {
+ description
+ "ATM-Bundle interface.";
+ }
+ enum "Fiber-Channel" {
+ description
+ "Fiber-Channel interface.";
+ }
+ enum "Infiniband" {
+ description
+ "Infiniband interface.";
+ }
+ enum "Lmpif" {
+ description
+ "Lmpif interface.";
+ }
+ enum "T1" {
+ description
+ "T1 controller.";
+ }
+ enum "T3" {
+ description
+ "T3 controller.";
+ }
+ enum "Global-VE" {
+ description
+ "Global-VE interface.";
+ }
+ enum "VC4" {
+ description
+ "VC4 interface.";
+ }
+ enum "VC12" {
+ description
+ "VC12 interface.";
+ }
+ enum "Vbdif" {
+ description
+ "VBDIF interface.";
+ }
+ enum "Fabric-Port" {
+ description
+ "Fabric-Port interface.";
+ }
+ enum "E3" {
+ description
+ "E3 controller.";
+ }
+ enum "Otn" {
+ description
+ "OTN controller.";
+ }
+ enum "Vp" {
+ description
+ "VP interface.";
+ }
+ enum "DcnInterface" {
+ description
+ "DCN interface.";
+ }
+ enum "Cpos-Trunk" {
+ description
+ "Cpos-Trunk interface.";
+ }
+ enum "Pos-Trunk" {
+ description
+ "Pos-Trunk interface.";
+ }
+ enum "Trunk-Serial" {
+ description
+ "Trunk-Serial interface.";
+ }
+ enum "Global-Ima-Group" {
+ description
+ "Global-Ima-Group interface.";
+ }
+ enum "Global-Mp-Group" {
+ description
+ "Global-Mp-Group interface.";
+ }
+ enum "Gmpls-Uni" {
+ description
+ "Gmpls-Uni interface.";
+ }
+ enum "Wdm" {
+ description
+ "Wdm controller.";
+ }
+ enum "Nve" {
+ description
+ "NVE interface.";
+ }
+ enum "FCoE-Port" {
+ description
+ "FCoE-Port Interface.";
+ }
+ enum "Virtual-Template" {
+ description
+ "Virtual-Template Interface.";
+ }
+ enum "FC" {
+ description
+ "FC Interface.";
+ }
+ enum "4x10GE" {
+ description
+ "4x10 GigabitEthernet interface.";
+ }
+ enum "10x10GE" {
+ description
+ "10x10 GigabitEthernet interface.";
+ }
+ enum "3x40GE" {
+ description
+ "3x40 GigabitEthernet interface.";
+ }
+ enum "4x25GE" {
+ description
+ "4x25 GigabitEthernet interface.";
+ }
+ enum "25GE" {
+ description
+ "25 GigabitEthernet interface.";
+ }
+ enum "ATM" {
+ description
+ "Atm interface.";
+ }
+ enum "XGigabitEthernet" {
+ description
+ "XGigabitEthernet interface.";
+ }
+ enum "ServiceIf" {
+ description
+ "ServiceIf interface.";
+ }
+ enum "Virtual-ODUk" {
+ description
+ "Virtual-ODUk interface.";
+ }
+ enum "FlexE" {
+ description
+ "FlexE interface.";
+ }
+ enum "FlexE-200GE" {
+ description
+ "FlexE-200GE interface.";
+ }
+ enum "50|100GE" {
+ description
+ "50|100 GigabitEthernet interface.";
+ }
+ enum "50GE" {
+ description
+ "50 GigabitEthernet interface.";
+ }
+ enum "FlexE-50G" {
+ description
+ "FlexE-50G interface.";
+ }
+ enum "FlexE-100G" {
+ description
+ "FlexE-100G interface.";
+ }
+ enum "FlexE-50|100G" {
+ description
+ "FlexE-50|100G interface.";
+ }
+ enum "PW-VE" {
+ description
+ "PW-VE interface.";
+ }
+ enum "Virtual-Serial" {
+ description
+ "Virtual-Serial interface.";
+ }
+ enum "400GE" {
+ description
+ "400GE interface.";
+ }
+ enum "VX-Tunnel" {
+ description
+ "VX-Tunnel interface.";
+ }
+ }
+ description
+ "Interface Physical Type";
+ }
+ typedef ifmcommRouterType {
+ type enumeration {
+ enum "PtoP" {
+ description
+ "Point to point.";
+ }
+ enum "PtoMP" {
+ description
+ "Point to multi-point.";
+ }
+ enum "Broadcast" {
+ description
+ "Broadcast.";
+ }
+ enum "NBMA" {
+ description
+ "Non-broadcast multi-access.";
+ }
+ enum "invalid" {
+ description
+ "None.";
+ }
+ }
+ description
+ "Interface Router Type";
+ }
+ typedef ifmcommAdminStaType {
+ type enumeration {
+ enum "up" {
+ description
+ "Administratively Up.";
+ }
+ enum "down" {
+ description
+ "Administratively Down.";
+ }
+ }
+ description
+ "Interface Admin State Type";
+ }
+ typedef ifmcommNetWorkLayerState {
+ type enumeration {
+ enum "ipv4andipv6up" {
+ description
+ "Administratively Up of ipv4 and ipv6 state.";
+ }
+ enum "ipv4andipv6down" {
+ description
+ "Administratively Down of ipv4 and ipv6 state.";
+ }
+ }
+ description
+ "Interface Network Layer State Type";
+ }
+ typedef ifmcommLinkProtocol {
+ type enumeration {
+ enum "ethernet" {
+ description
+ "The link protocol of the interface is Ethernet.";
+ }
+ enum "ppp" {
+ description
+ "The link protocol of the interface is PPP.";
+ }
+ enum "hdlc" {
+ description
+ "The link protocol of the interface is HDLC.";
+ }
+ enum "fr" {
+ description
+ "The link protocol of the interface is FR.";
+ }
+ enum "tdm" {
+ description
+ "The link protocol of the interface is TDM.";
+ }
+ enum "atm" {
+ description
+ "The link protocol of the interface is ATM.";
+ }
+ enum "invalid" {
+ description
+ "None.";
+ }
+ }
+ description
+ "Interface Link Portocol Type";
+ }
+ typedef ifmcommIfStatus {
+ type enumeration {
+ enum "up" {
+ description
+ "The interface is in Up state.";
+ }
+ enum "down" {
+ description
+ "The interface is in Down state.";
+ }
+ }
+ description
+ "Interface Status Type";
+ }
+ typedef ifmam4IpAddrType {
+ type enumeration {
+ enum "main" {
+ description
+ "Primary address of an interface.";
+ }
+ enum "sub" {
+ description
+ "Secondary address of an interface.";
+ }
+ enum "neg" {
+ description
+ "Negotiated address of an interface.";
+ }
+ enum "neg_remote" {
+ description
+ "Remotely negotiated address of an interface.";
+ }
+ enum "unnumber" {
+ description
+ "Unnumbered address of an interface.";
+ }
+ enum "nap" {
+ description
+ "Negotiated address using the Neighbor access protocol.";
+ }
+ }
+ description
+ "Ip Address Type";
+ }
+ typedef ifmam4CfgType {
+ type enumeration {
+ enum "config" {
+ description
+ "Configured address.";
+ }
+ enum "negotiation" {
+ description
+ "Negotiated address.";
+ }
+ enum "unnumbered" {
+ description
+ "Unnumbered address.";
+ }
+ }
+ description
+ "Am4 Config Type";
+ }
+ typedef ifmam4IpAddrCreateOrDelete {
+ type enumeration {
+ enum "Config" {
+ description
+ "The IP address is manually configured.";
+ }
+ enum "Delete" {
+ description
+ "No IP address is allocated.";
+ }
+ }
+ description
+ "Ip Address Create or Delete";
+ }
+ typedef ifmam6IpAddr6Type {
+ type enumeration {
+ enum "global" {
+ description
+ "Global unicast address.";
+ }
+ enum "linkLocal" {
+ description
+ "Link local address.";
+ }
+ enum "ndPrefix" {
+ description
+ "ND prefix.";
+ }
+ enum "eui64" {
+ description
+ "EUI 64.";
+ }
+ enum "anycast" {
+ description
+ "Anycast address.";
+ }
+ }
+ description
+ "Ipv6 Address Type";
+ }
+ typedef ifmam6IDGenType {
+ type enumeration {
+ enum "none" {
+ description
+ "none.";
+ }
+ enum "cga" {
+ description
+ "CGA.";
+ }
+ enum "eui64" {
+ description
+ "EUI 64.";
+ }
+ }
+ description
+ "Ipv6 Address Algorithm Type";
+ }
+ typedef ifmcommServiceType {
+ type enumeration {
+ enum "None" {
+ description
+ "None.";
+ }
+ enum "TrunkMember" {
+ description
+ "Trunk member.";
+ }
+ enum "StackMember" {
+ description
+ "Stack member.";
+ }
+ enum "MpMember" {
+ description
+ "MP-Group Member.";
+ }
+ enum "VbridgeMember" {
+ description
+ "VBridge member.";
+ }
+ enum "ImaMember" {
+ description
+ "IMA member.";
+ }
+ enum "BundleMember" {
+ description
+ "Bundle member.";
+ }
+ enum "FabricMember" {
+ description
+ "Fabric member";
+ }
+ enum "LagMasterMember" {
+ description
+ "Master member in a LAG.";
+ }
+ enum "LagSlaveMember" {
+ description
+ "Slave member in a LAG.";
+ }
+ enum "CposTrunkMember" {
+ description
+ "Cpos-Trunk Member.";
+ }
+ enum "PosTrunkMember" {
+ description
+ "Pos-Trunk Member.";
+ }
+ enum "GlobalMpMember" {
+ description
+ "Global-Mp-group Member.";
+ }
+ enum "GlobalImaMember" {
+ description
+ "Global-Ima-group Member.";
+ }
+ }
+ description
+ "Interface Service Type";
+ }
+ typedef ifmcommErrorDownType {
+ type enumeration {
+ enum "bpdu-protection" {
+ description
+ "BPDU protection.";
+ }
+ enum "auto-defend" {
+ description
+ "Attack source tracing.";
+ }
+ enum "monitor-link" {
+ description
+ "The uplink of monitor-link group is down.";
+ }
+ enum "loopback-detect" {
+ description
+ "Loopback detect.";
+ }
+ enum "portsec-reachedlimit" {
+ description
+ "Secure MAC addresses have reached the upper limit.";
+ }
+ enum "mac-address-flapping" {
+ description
+ "MAC address flapping.";
+ }
+ enum "storm-control" {
+ description
+ "Storm-control.";
+ }
+ enum "dual-active" {
+ description
+ "Dual-active.";
+ }
+ enum "no-stack-link" {
+ description
+ "No-stack-link.";
+ }
+ enum "crc-statistics" {
+ description
+ "CRC statistics.";
+ }
+ enum "transceiver-power-low" {
+ description
+ "The transceiver power is low.";
+ }
+ enum "link-flap" {
+ description
+ "Link flapping.";
+ }
+ enum "l2-loop-occured" {
+ description
+ "L2 loop.";
+ }
+ enum "stack-member-exceed-limit" {
+ description
+ "The number of stack members exceeds the limit.";
+ }
+ enum "spine-member-exceed-limit" {
+ description
+ "The number of spine members exceeds the limit.";
+ }
+ enum "resource-mismatch" {
+ description
+ "Resource mismatch.";
+ }
+ enum "leaf-mstp" {
+ description
+ "Leaf port mstp disable.";
+ }
+ enum "m-lag" {
+ description
+ "M-LAG peer detect error.";
+ }
+ enum "fabric-uplink-threshold" {
+ description
+ "Fabric uplink less then threshold.";
+ }
+ enum "stack-config-conflict" {
+ description
+ "Stack config conflict.";
+ }
+ enum "spine-type-unsupported" {
+ description
+ "Spine type unsupported.";
+ }
+ enum "stack-packet-defensive" {
+ description
+ "Stack packet defensive.";
+ }
+ enum "forward-engine-buffer-failed" {
+ description
+ "Forward engine buffer failed.";
+ }
+ enum "forward-engine-interface-failed" {
+ description
+ "Forward engine interface failed.";
+ }
+ enum "fabric-link-failure" {
+ description
+ "Fabric link failure.";
+ }
+ enum "m-lag-consistency-check" {
+ description
+ "M-Lag consistency check failed.";
+ }
+ enum "invalid" {
+ description
+ "None.";
+ }
+ }
+ description
+ "Interface Error Down Type";
+ }
+ typedef veInterfaceType {
+ type enumeration {
+ enum "L2VE" {
+ description
+ "Layer 2 Terminate Virtual-Ethernet interface.";
+ }
+ enum "L3VE" {
+ description
+ "Layer 3 Access Virtual-Ethernet interface.";
+ }
+ enum "TerminateVE" {
+ description
+ "Layer 3 Terminate Virtual-Ethernet interface.";
+ }
+ enum "invalid" {
+ description
+ "None.
+";
+ }
+ }
+ description
+ "Ve Interface Type";
+ }
+ typedef veForwarModeType {
+ type enumeration {
+ enum "through" {
+ description
+ "Software loopback.";
+ }
+ enum "loopback" {
+ description
+ "Hardware loopback.";
+ }
+ enum "half-through" {
+ description
+ "Software switch hardware loopback.";
+ }
+ enum "invalid" {
+ description
+ "None.";
+ }
+ }
+ description
+ "Ve Forward Mode Type";
+ }
+ typedef ifIpStatiModeType {
+ type enumeration {
+ enum "forward" {
+ description
+ "Forward mode statistics.";
+ }
+ enum "mac" {
+ description
+ "MAC mode statistics.";
+ }
+ enum "invalid" {
+ description
+ "None.";
+ }
+ }
+ description
+ "Ip Statistic Mode Type";
+ }
+ typedef ifmcommIfClassType {
+ type enumeration {
+ enum "mainInterface" {
+ description
+ "Main Interface.";
+ }
+ enum "subInterface" {
+ description
+ "Sub-interface.";
+ }
+ }
+ description
+ "Interface Class Type";
+ }
+ typedef ifmcommControlMtu {
+ type enumeration {
+ enum "1450" {
+ description
+ "1450.0";
+ }
+ enum "1500" {
+ description
+ "1500.0";
+ }
+ }
+ description
+ "Control Mtu Value";
+ }
+ typedef ifmcommEncapType {
+ type enumeration {
+ enum "vlanType" {
+ description
+ "VLAN type.";
+ }
+ enum "dot1q" {
+ description
+ "Dot1q.";
+ }
+ enum "qinq" {
+ description
+ "QinQ.";
+ }
+ enum "p2p" {
+ description
+ "P2P.";
+ }
+ enum "p2mp" {
+ description
+ "P2MP.";
+ }
+ enum "l2ve" {
+ description
+ "L2VE.";
+ }
+ enum "l3ve" {
+ description
+ "L3VE.";
+ }
+ enum "vlanTypePolicy" {
+ description
+ "VLAN type policy.";
+ }
+ enum "dot1qPolicy" {
+ description
+ "Dot1q policy.";
+ }
+ enum "stackingPolicy" {
+ description
+ "Stacking policy.";
+ }
+ enum "untagPolicy" {
+ description
+ "Untag policy.";
+ }
+ enum "qinqMapping" {
+ description
+ "QinQ mapping.";
+ }
+ enum "l2vc" {
+ description
+ "L2VC.";
+ }
+ enum "l3vc" {
+ description
+ "L3VC.";
+ }
+ enum "evcUntag" {
+ description
+ "EvcUntag.";
+ }
+ enum "evcDot1q" {
+ description
+ "EvcDot1q.";
+ }
+ enum "evcQinq" {
+ description
+ "EvcQinq.";
+ }
+ enum "evcDefault" {
+ description
+ "EvcDefault.";
+ }
+ enum "evcDot1qPolicy" {
+ description
+ "EvcDot1qPolicy.";
+ }
+ enum "ietf" {
+ description
+ "IETF.";
+ }
+ enum "nonstandard" {
+ description
+ "Nonstandard.";
+ }
+ enum "userVlan" {
+ description
+ "userVlan";
+ }
+ enum "userVlanAny" {
+ description
+ "userVlan AnyOther";
+ }
+ enum "QinqLink" {
+ description
+ "QinqLink";
+ }
+ enum "softGreVE" {
+ description
+ "softGreVE.";
+ }
+ enum "l3VeTER" {
+ description
+ "l3VeTER.";
+ }
+ enum "l3VeACC" {
+ description
+ "l3VeACC.";
+ }
+ enum "invalid" {
+ description
+ "Invalid.";
+ }
+ }
+ description
+ "Fr Encap Type";
+ }
+ typedef ifmcommCfgEncapType {
+ type enumeration {
+ enum "ietf" {
+ description
+ "IETF.";
+ }
+ enum "nonstandard" {
+ description
+ "Nonstandard.";
+ }
+ }
+ description
+ "if config encap type";
+ }
+ typedef ifmcommStatMode {
+ type enumeration {
+ enum "baseInterface" {
+ description
+ "Statistics are collected based on interfaces.";
+ }
+ enum "baseVlanGroup" {
+ description
+ "Statistics are collected based on VLANs.";
+ }
+ }
+ description
+ "Interface Statistic Mode";
+ }
+ typedef ifmcommPortMode {
+ type enumeration {
+ enum "Mix" {
+ description
+ "Mix Port Mode";
+ }
+ enum "L2" {
+ description
+ "L2 Port Mode";
+ }
+ enum "L3" {
+ description
+ "L3 Port Mode";
+ }
+ }
+ description
+ "Interface Port Mode";
+ }
+ typedef transAlarmDownType {
+ type enumeration {
+ enum "enable" {
+ description
+ "Enable Transmission-Alarm Down";
+ }
+ enum "disable" {
+ description
+ "Disable Transmission-Alarm Down";
+ }
+ }
+ description
+ "Trans Alarm Down Type";
+ }
+ typedef enableordisableType {
+ type enumeration {
+ enum "enable" {
+ description
+ "Enabled.";
+ }
+ enum "disable" {
+ description
+ "Disabled.";
+ }
+ }
+ description
+ "enable/disable flag";
+ }
+ typedef ifmcommDampLevelType {
+ type enumeration {
+ enum "light" {
+ description
+ "Light weight";
+ }
+ enum "middle" {
+ description
+ "Middle weight";
+ }
+ enum "heavy" {
+ description
+ "Heavy weight";
+ }
+ enum "manual" {
+ description
+ "Manually configure the parameters";
+ }
+ }
+ description
+ "Damp Level Type";
+ }
+ typedef ifmIpv4Mask {
+ type string {
+ length "9..15";
+ pattern '((([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))';
+ }
+ description
+ "ipv4Mask support mask format";
+ }
+ typedef ifmcommDampStatusType {
+ type enumeration {
+ enum "suppressed" {
+ description
+ "Dampening suppressed.";
+ }
+ enum "unsuppressed" {
+ description
+ "Dampening unsuppressed.";
+ }
+ }
+ description
+ "Damp status type";
+ }
+ typedef ifmCeStaticEnableType {
+ type enumeration {
+ enum "Disable" {
+ description
+ "Statistics Disable.";
+ }
+ enum "Enable" {
+ description
+ "Statistics Enable.";
+ }
+ enum "InBound" {
+ description
+ "Statistics Inbound Enable.";
+ }
+ enum "OutBound" {
+ description
+ "Statistics Outbound Enable.";
+ }
+ }
+ description
+ "DC switch statistics";
+ }
+ typedef ifmcommLinkQualityGradeType {
+ type enumeration {
+ enum "GOOD" {
+ description
+ "The link quality is good with no bit-error.";
+ }
+ enum "HIGH" {
+ description
+ "The link quality is high.";
+ }
+ enum "MIDDLE" {
+ description
+ "The link quality is middle.";
+ }
+ enum "LOW" {
+ description
+ "The link quality is low.";
+ }
+ }
+ description
+ "Link quality grade type";
+ }
+ typedef ifmcommipv6StatusType {
+ type enumeration {
+ enum "preferred" {
+ description
+ "This is a valid address that can appear as the destination or source address of a packet.";
+ }
+ enum "inaccessible" {
+ description
+ "The address is not accessible because the interface to which this address is assigned is not operational.";
+ }
+ enum "unknown" {
+ description
+ "The status cannot be determined for some reason.";
+ }
+ enum "tentative" {
+ description
+ "The uniqueness of the address on the link is being verified. Addresses in this state should not be used for general communication and should only be used to determine the uniqueness of the address.";
+ }
+ enum "duplicate" {
+ description
+ "The address has been determined to be non-unique on the link and so must not be used.";
+ }
+ }
+ description
+ "The status of an address";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm@2018-11-23.yang
new file mode 100644
index 000000000..739bf1d78
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-ifm@2018-11-23.yang
@@ -0,0 +1,2526 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+module huawei-ifm {
+ namespace "http://www.huawei.com/netconf/vrp/huawei-ifm";
+ prefix ifm;
+ import huawei-pub-type {
+ prefix pub-type;
+ }
+ import huawei-rsa {
+ prefix rsa;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import huawei-extension {
+ prefix ext;
+ }
+ include huawei-ifm-action;
+ include huawei-ifm-type;
+ include huawei-ifm-pppbase;
+ include huawei-ifm-hdlc;
+ include huawei-ifm-hdlc-notification;
+ include huawei-ifm-fr;
+ include huawei-ifm-flowalarm;
+ include huawei-ifm-fr-type;
+ include huawei-ifm-hdlc-type;
+ include huawei-ifm-method;
+ include huawei-ifm-pppbase-type;
+ include huawei-ifm-notification;
+ include huawei-ifm-pppbase-notification;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "Common interface management, which includes the public configuration of interfaces.";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ container ifm {
+ description
+ "Common interface management, which includes the public configuration of interfaces.";
+ container globalConfig {
+ description
+ "Globally configured attributes.";
+ leaf globalStatItvl {
+ type uint32 {
+ range "10..600";
+ }
+ default "300";
+ description
+ "Set the interval at which global flow statistics are collected. The value must be a multiple of 10.";
+ }
+ leaf sysAttriControlMtu {
+ type ifmcommControlMtu;
+ default "1450";
+ description
+ "Protocol MTU.";
+ }
+ leaf ipv4IgnorePrimarySub {
+ type enableordisableType;
+ default "disable";
+ description
+ "Ignore primary/secondary of IPv4 address type.";
+ }
+ leaf subIfLinkDownTrapEnable {
+ type boolean;
+ default "true";
+ description
+ "Enable the trap function on all Sub-interface.";
+ }
+ container dualStat {
+ description
+ "Global Dual Statistic";
+ leaf dualStatEnable {
+ type boolean;
+ default "false";
+ description
+ "Set forward mode statistic for all interfaces.";
+ }
+ }
+ }
+ container ifDamp {
+ description
+ "Interface physical status damping";
+ leaf ifDampEnable {
+ type boolean;
+ default "false";
+ description
+ "Interface physical status damping enable";
+ }
+ leaf ifDampTxOff {
+ when "(../ifDampEnable!='false')";
+ type boolean;
+ default "false";
+ description
+ "Shutdown transmission when damping suppressed";
+ }
+ leaf ifDampLevel {
+ when "(../ifDampEnable!='false')";
+ type ifmcommDampLevelType;
+ default "light";
+ description
+ "Interface physical status damping level";
+ }
+ leaf ifSuppress {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint32 {
+ range "1..20000";
+ }
+ must "(../ifSuppress>../ifReuse)";
+ ext:allowDelete "true";
+ description
+ "1000 times of suppress threshold";
+ }
+ leaf ifReuse {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint32 {
+ range "1..20000";
+ }
+ must "(../ifReuse<../ifSuppress)";
+ ext:allowDelete "true";
+ description
+ "1000 times of reuse threshold";
+ }
+ leaf ifMaxSuppressTime {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint16 {
+ range "1..255";
+ }
+ units second;
+ ext:allowDelete "true";
+ description
+ "Max suppress time(seconds)";
+ }
+ leaf ifHalfLifePeriod {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint16 {
+ range "1..60";
+ }
+ units second;
+ ext:allowDelete "true";
+ description
+ "Half life time(seconds)";
+ }
+ }
+ container ipConflictConfig {
+ description
+ "Configuration of IP address conflict detection.";
+ leaf ipConflictCheck {
+ type enableordisableType;
+ default "enable";
+ description
+ "IPv4 address conflict detection.";
+ }
+ leaf ipConflictPreempt {
+ type enableordisableType;
+ must "not(../ipConflictPreempt='enable' and ../ipConflictCheck='enable')";
+ default "disable";
+ description
+ "IPv4 address conflict preemption.";
+ }
+ leaf ipv6ConflictCheck {
+ type enableordisableType;
+ default "enable";
+ description
+ "IPv6 address conflict detection.";
+ }
+ leaf ipv6ConflictPreempt {
+ type enableordisableType;
+ must "not(../ipv6ConflictPreempt='enable' and ../ipv6ConflictCheck='enable')";
+ default "disable";
+ description
+ "IPv6 address conflict preemption.";
+ }
+ }
+ container pppDamp {
+ description
+ "PPP protocal status damping";
+ uses ifm:pppDamp_type;
+ }
+ container hdlcDamp {
+ description
+ "HDLC link status damping";
+ uses ifm:hdlcDamp_type;
+ }
+ container autoRecoveryTimes {
+ description
+ "List of automatic recovery time configuration.";
+ list autoRecoveryTime {
+ key "errorDownType";
+ description
+ "Automatic recovery time configuration.";
+ leaf errorDownType {
+ type ifmcommErrorDownType;
+ description
+ "Cause of the error-down event.";
+ }
+ leaf timeValue {
+ type uint32 {
+ range "30..86400";
+ }
+ mandatory true;
+ description
+ "Delay for the status transition from Down to Up. The value is expressed in seconds.";
+ }
+ }
+ }
+ container staticDimRanges {
+ config false;
+ description
+ "List of Interface Dimensionality.";
+ list staticDimRange {
+ key "ifPhyType";
+ config false;
+ description
+ "Dimensionality of Interface.";
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ config false;
+ description
+ "Interface Type";
+ }
+ leaf chassisRange {
+ type string {
+ length "0..63";
+ }
+ config false;
+ description
+ "The Range of Chassis ";
+ }
+ leaf slotRange {
+ type string {
+ length "0..63";
+ }
+ config false;
+ description
+ "The Range of Slot";
+ }
+ leaf cardRange {
+ type string {
+ length "0..63";
+ }
+ config false;
+ description
+ "The Range of Card";
+ }
+ leaf portRange {
+ type string {
+ length "0..63";
+ }
+ config false;
+ description
+ "The Range of Port";
+ }
+ }
+ }
+ container interfaceCounts {
+ config false;
+ description
+ "List of interface counts.";
+ list interfaceCount {
+ key "ifPhyType ifClass";
+ config false;
+ description
+ "Number of interfaces.";
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ config false;
+ description
+ "Interface type.";
+ }
+ leaf ifClass {
+ type ifmcommIfClassType;
+ config false;
+ description
+ "Main interface or sub-interface.";
+ }
+ leaf ifCount {
+ type uint32;
+ config false;
+ description
+ "Number of interfaces.";
+ }
+ }
+ }
+container ipInterfaceCountOper {
+ config false;
+ description
+ "Number of interfaces supporting IPv4 address configuration.";
+ leaf ifPhyUpCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv4 interfaces that are in the physical Up state.";
+ }
+ leaf ifPhyDownCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv4 interfaces that are in the physical Down state.";
+ }
+ leaf ifV4UpCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv4 interfaces that are in the protocol Up state.";
+ }
+ leaf ifV4DownCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv4 interfaces that are in the protocol Down state.";
+ }
+ container ipInterfaceCounts {
+ config false;
+ description
+ "List of interfaces supporting IPv4 address configuration.";
+ list ipInterfaceCount {
+ key "ifPhyType";
+ config false;
+ description
+ "Number of interfaces supporting IPv4 address configuration.";
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ config false;
+ description
+ "Interface type.";
+ }
+ leaf ifCount {
+ type uint32;
+ config false;
+ description
+ "Number of interfaces.";
+ }
+ }
+ }
+ }
+
+ container ipv6InterfaceCountOper {
+ config false;
+ description
+ "Number of interfaces supporting IPv6 address configuration.";
+ leaf ifPhyUpCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv6 interfaces that are in the physical Up state.";
+ }
+ leaf ifPhyDownCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv6 interfaces that are in the physical Down state.";
+ }
+ leaf ifV6UpCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv6 interfaces that are in the protocol Up state.";
+ }
+ leaf ifV6DownCount {
+ type uint32;
+ config false;
+ description
+ "Number of IPv6 interfaces that are in the protocol Down state.";
+ }
+ container ipv6InterfaceCounts {
+ config false;
+ description
+ "List of interfaces supporting IPv6 address configuration.";
+ list ipv6InterfaceCount {
+ key "ifPhyType";
+ config false;
+ description
+ "Number of interfaces supporting IPv6 address configuration.";
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ config false;
+ description
+ "Interface type.";
+ }
+ leaf ifCount {
+ type uint32;
+ config false;
+ description
+ "Number of interfaces.";
+ }
+ }
+ }
+ }
+
+ container interfaces {
+ description
+ "List of interfaces.";
+ list interface {
+ key "ifName";
+ description
+ "Information about an interface.";
+ leaf ifName {
+ type pub-type:ifName;
+ description
+ "The textual name of the interface. The value of this object should be the name of the interface as assigned by the local device and should be suitable for use in commands entered at the device's `console'. This might be a text name, such as ` NULL0 ', depending on the interface naming syntax of the device.";
+ }
+ leaf ifIndex {
+ type uint32;
+ config false;
+ description
+ "Index of an interface.";
+ }
+ leaf ifClass {
+ type ifmcommIfClassType;
+ default "mainInterface";
+ description
+ "Identify a main interface or a sub-interface.";
+ ext:support-filter "true";
+ }
+ leaf ifPhyType {
+ type ifmcommPhyType;
+ description
+ "Type of an interface. Port types include physical ports and logical ports.";
+ ext:support-filter "true";
+ }
+ leaf ifPosition {
+ type string {
+ length "1..256";
+ }
+ config false;
+ description
+ "Position of an interface. For example, 0/1/0. ";
+ }
+ leaf ifParentIfName {
+ when "../ifClass='subInterface'";
+ type leafref {
+ path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifName";
+ }
+ description
+ "Name of the main interface. For example, ethernet0/1/0.";
+ }
+ leaf ifNumber {
+ type string {
+ length "1..63";
+ pattern '(\d+/\d+/\d+/\d+)|(\d+/\d+/\d+)|(\d+/\d+)|(\d+)|(\d+/\d+/\d+[:]\d+)|(\d+/\d+/\d+[:]\d+[:]\d+[:]\d+)|(\d+/\d+/\d+/\d+[:]\d+)|(\d+/\d+/\d+/\d+[:]\d+[:]\d+[:]\d+)|(\d+/\d+/\d+/\d+/\d+[:]\d+)|(\d+/\d+[:]\d+)';
+ }
+ description
+ "Number of an interface. For example,1, 0/1/0, or 2:1.";
+ }
+ leaf ifDescr {
+ type string {
+ length "1..242";
+ }
+ description
+ "Description of an interface.";
+ ext:allowDelete "true";
+ }
+ leaf ifTrunkIfName {
+ type pub-type:ifName;
+ config false;
+ description
+ "Name of a trunk interface.";
+ }
+ leaf isL2SwitchPort {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "To identify an L2 Switch Port.";
+ }
+ leaf ifAdminStatus {
+ type ifmcommAdminStaType;
+ description
+ "Administrative status of an interface.";
+ ext:allowDelete "true";
+ }
+ leaf ifNetworkLayerStatus {
+ type ifmcommNetWorkLayerState;
+ default "ipv4andipv6up";
+ description
+ "Network-layer status of an interface.";
+ }
+ leaf ifLinkProtocol {
+ type ifmcommLinkProtocol;
+ description
+ "Link protocol.";
+ ext:allowDelete "true";
+ }
+ leaf ifRouterType {
+ type ifmcommRouterType;
+ description
+ "Route attribute of an interface. ";
+ ext:allowDelete "true";
+ }
+ leaf ifDf {
+ type boolean;
+ default "false";
+ description
+ "Clear the Don't Fragment field of IP packets on an interface.";
+ }
+ leaf ifTrapEnable {
+ type boolean;
+ default "true";
+ description
+ "Enable the trap function on an interface.";
+ }
+ leaf ifStatiEnable {
+ type boolean;
+ description
+ "Enable the statistics function on an interface.";
+ ext:allowDelete "true";
+ }
+ leaf statMode {
+ type ifmcommStatMode;
+ description
+ "Mode of statistics collection.";
+ ext:allowDelete "true";
+ }
+ leaf ifMtu {
+ type uint32 {
+ range "0..64000";
+ }
+ description
+ "Maximum transmission unit of an interface.
+ Special explanation:
+ Range: The server may restrict the allowed values for this leaf, depending on the interface's type.";
+ ext:allowDelete "true";
+ }
+ leaf spreadMtuFlag {
+ type boolean;
+ default "false";
+ description
+ "Spread the MTU of main interface to subinterface.";
+ ext:allowDelete "true";
+ }
+ leaf ifBandwidth {
+ type uint32 {
+ range "1..1000000";
+ }
+ description
+ "Specify MIB-referenced bandwidth of an interface. ";
+ ext:allowDelete "true";
+ }
+ leaf ifStatItvl {
+ type uint32 {
+ range "10..600";
+ }
+ description
+ "Interval at which flow statistics are collected on an interface. The value must be a multiple of 10.";
+ ext:allowDelete "true";
+ }
+ leaf vrfName {
+ type pub-type:vrfNameExt;
+ config false;
+ description
+ "Name of a VPN instance. It uniquely identifies a VPN instance.";
+ }
+ leaf vsName {
+ type string {
+ length "1..50";
+ }
+ config false;
+ description
+ "Name of a VS to which an interface belongs.";
+ }
+ leaf l2SwitchPortIndex {
+ type uint32;
+ config false;
+ description
+ "l2SwitchPortIndex of an interface.";
+ }
+ leaf ifServiceType {
+ type ifmcommServiceType;
+ config false;
+ description
+ "Type of a member interface.";
+ }
+ leaf isActorBearSrv {
+ type boolean;
+ config false;
+ description
+ "Whether the local interface runs services.";
+ }
+ leaf l2SubIfFlag {
+ type boolean;
+ default "false";
+ description
+ "Identify an L2 Sub-interface.";
+ }
+ leaf protocolUpDelayTime {
+ type uint32 {
+ range "0..7200";
+ }
+ description
+ "Specify the up-delay-time value, in seconds.";
+ ext:allowDelete "true";
+ }
+ leaf downDelayTime {
+ when "../ifPhyType='Eth-Trunk'";
+ type uint32 {
+ range "0..1000";
+ }
+ description
+ "Specify down-delay-time value in milliseconds. It must be a multiple of 100.";
+ ext:allowDelete "true";
+ }
+ leaf ifMainIfDescr {
+ type string {
+ length "1..242";
+ }
+ config false;
+ description
+ "Interface name.";
+ }
+ leaf portMode {
+ type ifmcommPortMode;
+ config false;
+ description
+ "Interface port mode";
+ }
+ leaf ifCfgMac {
+ type pub-type:macAddress {
+ length "0..255";
+ }
+ ext:allowDelete "true";
+ description
+ "Config MAC Address, in the format of HH-HH-HH.";
+ }
+ leaf isAvailable {
+ type boolean;
+ default "true";
+ config false;
+ description
+ "VP interface must bind Oduk when visible is true.";
+ ext:support-filter "true";
+ }
+ leaf ifCfgEncapType {
+ when "../ifClass='mainInterface' and ../ifPhyType='Pos' and ../ifLinkProtocol='fr'" {
+ description
+ "The constraint of ifCfgEncapType";
+ }
+ type ifmcommCfgEncapType;
+ description
+ "Config Encapsulation Type";
+ ext:allowDelete "true";
+ }
+ leaf ifOperEncapType {
+ type ifmcommEncapType;
+ config false;
+ description
+ "Effective Encapsulation type.";
+ }
+ container mainIpAddr {
+ description
+ "Configure the main IP address.";
+ leaf ipAddrCfgType {
+ type ifmam4IpAddrCreateOrDelete;
+ default "Delete";
+ description
+ "IP address configuration mode.";
+ }
+ leaf ifIpAddr {
+ type inet:ipv4-address-no-zone;
+ default "0.0.0.0";
+ description
+ "IP address.";
+ }
+ leaf subnetMask {
+ type pub-type:ipv4Mask {
+ length "1..255";
+ }
+ default "0.0.0.0";
+ description
+ "IP address mask.";
+ }
+ }
+ container ifControlFlap {
+ description
+ "Interface status suppression.";
+ leaf ifCtrlFlapEnbl {
+ type boolean;
+ default "false";
+ description
+ "Enable the control flap function on an interface.";
+ }
+ leaf ifSuppress {
+ when "../ifCtrlFlapEnbl='true'";
+ type uint32 {
+ range "1..20000";
+ }
+ must "(../ifSuppress>../ifReuse) and ((../ifSuppress<../ifCeiling))";
+ default "2000";
+ description
+ "Suppression threshold on an interface. The value must be greater than the reusing threshold and smaller than the suppression upper limit.";
+ }
+ leaf ifReuse {
+ when "../ifCtrlFlapEnbl='true'";
+ type uint32 {
+ range "1..20000";
+ }
+ must "(../ifReuse<../ifSuppress)";
+ default "750";
+ description
+ "Reusing threshold of an interface. The value must be smaller than the suppression threshold.";
+ }
+ leaf ifCeiling {
+ when "../ifCtrlFlapEnbl='true'";
+ type uint32 {
+ range "1001..20000";
+ }
+ must "(../ifCeiling>../ifSuppress)";
+ default "6000";
+ description
+ "Maximum suppression value on an interface. The value should be greater than the Damping Suppression Threshold.";
+ }
+ leaf ifDecayOk {
+ when "../ifCtrlFlapEnbl='true'";
+ type uint32 {
+ range "1..900";
+ }
+ units second;
+ default "54";
+ description
+ "The penalty value of an Up interface attenuates to 1/2. The value is expressed in seconds.";
+ }
+ leaf ifDecayNg {
+ when "../ifCtrlFlapEnbl='true'";
+ type uint32 {
+ range "1..900";
+ }
+ units second;
+ default "54";
+ description
+ "The penalty value of a Down interface attenuates to 1/2. The value is expressed in seconds.";
+ }
+ }
+ container ifDynamicInfo {
+ config false;
+ description
+ "Dynamic interface information.";
+ leaf ifOperStatus {
+ type ifmcommIfStatus;
+ config false;
+ description
+ "Running status of an interface.";
+ }
+ leaf ifPhyStatus {
+ type ifmcommIfStatus;
+ config false;
+ description
+ "Physical status of an interface.";
+ }
+ leaf ifLinkStatus {
+ type ifmcommIfStatus;
+ config false;
+ description
+ "Link status of an interface.";
+ }
+ leaf ifOpertMTU {
+ type uint32;
+ config false;
+ description
+ "Dynamic MTU of an interface.";
+ }
+ leaf ifOperSpeed {
+ type pub-type:bandWidth;
+ config false;
+ description
+ "Bandwidth of an interface. ";
+ }
+ leaf ifV4State {
+ type ifmcommIfStatus;
+ config false;
+ description
+ "IPv4 Protocol status of an interface.";
+ }
+ leaf ifV6State {
+ type ifmcommIfStatus;
+ config false;
+ description
+ "IPv6 protocol status of an interface.";
+ }
+ leaf ifCtrlFlapDamp {
+ type boolean;
+ config false;
+ description
+ "Status suppression of an interface.";
+ }
+ leaf ifOperMac {
+ type pub-type:macAddress {
+ length "0..255";
+ }
+ config false;
+ description
+ "MAC address of an interface, in the format of HH-HH-HH.";
+ }
+ leaf subIfCount {
+ type uint32;
+ config false;
+ description
+ "Number of sub-interfaces on the interface.";
+ }
+ leaf lineProtocolUpTime {
+ type yang:date-and-time;
+ config false;
+ description
+ "Last line protocol up time.";
+ }
+ leaf isOffline {
+ type boolean;
+ config false;
+ description
+ "Whether an interface is offline.";
+ }
+ leaf ifLinkQualityGrade {
+ type ifmcommLinkQualityGradeType;
+ config false;
+ description
+ "Interface link quality grade.";
+ }
+ }
+ container ifStatistics {
+ config false;
+ description
+ "Interface statistics.";
+ leaf receiveByte {
+ type uint64;
+ config false;
+ description
+ "Number of bytes received on an interface.";
+ }
+ leaf sendByte {
+ type uint64;
+ config false;
+ description
+ "Number of bytes sent on an interface.";
+ }
+ leaf receivePacket {
+ type uint64;
+ config false;
+ description
+ "Number of packets received on an interface.";
+ }
+ leaf sendPacket {
+ type uint64;
+ config false;
+ description
+ "Number of packets sent on an interface.";
+ }
+ leaf rcvUniPacket {
+ type uint64;
+ config false;
+ description
+ "Number of unicast packets received on an interface.";
+ }
+ leaf rcvMutiPacket {
+ type uint64;
+ config false;
+ description
+ "Number of multicast packets received on an interface.";
+ }
+ leaf rcvBroadPacket {
+ type uint64;
+ config false;
+ description
+ "Number of broadcast packets received on an interface.";
+ }
+ leaf sendUniPacket {
+ type uint64;
+ config false;
+ description
+ "Number of unicast packets sent on an interface.";
+ }
+ leaf sendMutiPacket {
+ type uint64;
+ config false;
+ description
+ "Number of multicast packets sent on an interface.";
+ }
+ leaf sendBroadPacket {
+ type uint64;
+ config false;
+ description
+ "Number of broadcast packets sent on an interface.";
+ }
+ leaf rcvErrorPacket {
+ type uint64;
+ config false;
+ description
+ "Number of error packets received on an interface.";
+ }
+ leaf rcvDropPacket {
+ type uint64;
+ config false;
+ description
+ "Number of received packets discarded on an interface.";
+ }
+ leaf sendErrorPacket {
+ type uint64;
+ config false;
+ description
+ "Number of error packets sent on an interface.";
+ }
+ leaf sendDropPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent packets discarded on an interface.";
+ }
+ container ethPortErrSts {
+ config false;
+ description
+ "Error packet statistics on an Ethernet interface.";
+ leaf rxPause {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Receive PAUSE packets.";
+ }
+ leaf rxJumboOctets {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "The packet length is longer than 1518 bytes.";
+ }
+ leaf rxCRC {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "CRC error packet.";
+ }
+ leaf rxSymbol {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Invalid symbol packet.";
+ }
+ leaf rxOverrun {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Packet overflowed from the FIFO in the inbound direction.";
+ }
+ leaf rxInrangeLen {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Packet with unmatched length.";
+ }
+ leaf rxLong {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Oversized packet.";
+ }
+ leaf rxJabber {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "CRC error packet whose length is longer than 1518 bytes.";
+ }
+ leaf rxAlignment {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Packet whose length is not an integer multiply of 8 bits.";
+ }
+ leaf rxFragment {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "CRC packet whose length is shorter than 64 bytes.";
+ }
+ leaf rxUndersize {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Packet whose length is shorter than 64 bytes.";
+ }
+ leaf txPause {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Send PAUSE packets.";
+ }
+ leaf txJumboOctets {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "The length of a packet sent is longer than 1518 bytes.";
+ }
+ leaf txOverrun {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Overflow statistics in the transmit direction.";
+ }
+ leaf txUnderrun {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Underflow statistics in the transmit direction.";
+ }
+ leaf txSystem {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "There is no EOP or SOP packet.";
+ }
+ leaf txLost {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "Discarded packet in the transmit direction.";
+ }
+ }
+ }
+ container ifClearedStat {
+ config false;
+ description
+ "Interface statistics that can be cleared.";
+ leaf ifOperStatItvl {
+ type uint32 {
+ range "10..600";
+ }
+ default "300";
+ config false;
+ description
+ "Current interval at which interface flow statistics are collected.";
+ }
+ leaf inByteRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which bytes are received within the interval.";
+ }
+ leaf inPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which packets are received within the interval.";
+ }
+ leaf inUseRate {
+ type string {
+ length "1..50";
+ }
+ config false;
+ description
+ "Input bandwidth usage within the interval.";
+ }
+ leaf outByteRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which bytes are sent within the interval.";
+ }
+ leaf outPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which packets are sent within the interval.";
+ }
+ leaf outUseRate {
+ type string {
+ length "1..50";
+ }
+ config false;
+ description
+ "Output bandwidth usage within the interval.";
+ }
+ leaf receiveByte {
+ type uint64;
+ config false;
+ description
+ "Number of received bytes, which can be cleared.";
+ }
+ leaf sendByte {
+ type uint64;
+ config false;
+ description
+ "Number of sent bytes, which can be cleared.";
+ }
+ leaf receivePacket {
+ type uint64;
+ config false;
+ description
+ "Number of received packets, which can be cleared.";
+ }
+ leaf sendPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent packets, which can be cleared.";
+ }
+ leaf rcvUniPacket {
+ type uint64;
+ config false;
+ description
+ "Number of received unicast packets, which can be cleared.";
+ }
+ leaf rcvMutiPacket {
+ type uint64;
+ config false;
+ description
+ "Number of received multicast packets, which can be cleared.";
+ }
+ leaf rcvBroadPacket {
+ type uint64;
+ config false;
+ description
+ "Number of received broadcast packets, which can be cleared.";
+ }
+ leaf sendUniPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent unicast packets, which can be cleared.";
+ }
+ leaf sendMutiPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent multicast packets, which can be cleared.";
+ }
+ leaf sendBroadPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent broadcast packets, which can be cleared.";
+ }
+ leaf rcvErrorPacket {
+ type uint64;
+ config false;
+ description
+ "Number of received error packets, which can be cleared.";
+ }
+ leaf rcvDropPacket {
+ type uint64;
+ config false;
+ description
+ "Number of received discarded packets, which can be cleared.";
+ }
+ leaf sendErrorPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent error packets, which can be cleared.";
+ }
+ leaf sendDropPacket {
+ type uint64;
+ config false;
+ description
+ "Number of sent discarded packets, which can be cleared.";
+ }
+ leaf sendUniBit {
+ type uint64;
+ config false;
+ description
+ "Number of unicast bits sent on an interface.";
+ }
+ leaf rcvUniBit {
+ type uint64;
+ config false;
+ description
+ "Number of unicast bits received on an interface.";
+ }
+ leaf sendMutiBit {
+ type uint64;
+ config false;
+ description
+ "Number of muticast bits sent on an interface.";
+ }
+ leaf rcvMutiBit {
+ type uint64;
+ config false;
+ description
+ "Number of muticast bits received on an interface.";
+ }
+ leaf sendBroadBit {
+ type uint64;
+ config false;
+ description
+ "Number of broadcast bits sent on an interface.";
+ }
+ leaf rcvBroadBit {
+ type uint64;
+ config false;
+ description
+ "Number of broadcast bits received on an interface.";
+ }
+ leaf sendUniBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of unicast bits sent on an interface.";
+ }
+ leaf rcvUniBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of unicast bits received on an interface.";
+ }
+ leaf sendMutiBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of muticast bits sent on an interface.";
+ }
+ leaf rcvMutiBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of muticast bits received on an interface.";
+ }
+ leaf sendBroadBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of broadcast bits sent on an interface.";
+ }
+ leaf rcvBroadBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of broadcast bits received on an interface.";
+ }
+ leaf sendUniPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of unicast packets sent on an interface.";
+ }
+ leaf rcvUniPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of unicast packets received on an interface.";
+ }
+ leaf sendMutiPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of multicast packets sent on an interface.";
+ }
+ leaf rcvMutiPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of multicast packets received on an interface.";
+ }
+ leaf sendBroadPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of broadcast packets sent on an interface.";
+ }
+ leaf rcvBroadPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of broadcast packets received on an interface.";
+ }
+ container ifMacMtuDiscardStat {
+ config false;
+ description
+ "MAC&MTU error statistics.";
+ leaf statisticsMtuIpv4 {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "IPv4 MTU error statistics.";
+ }
+ leaf statisticsMtuIpv6 {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "IPv6 MTU error statistics.";
+ }
+ leaf statisticsMacIpv4 {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "IPv4 MAC error statistics.";
+ }
+ leaf statisticsMacIpv6 {
+ type uint64;
+ default "0";
+ config false;
+ description
+ "IPv6 MAC error statistics.";
+ }
+ }
+ }
+ container ifIpIcmpStatistics {
+ config false;
+ description
+ "The icmp Statistics of interface";
+ leaf inputPacket {
+ type uint64;
+ config false;
+ description
+ "Input Packet";
+ }
+ leaf outputPacket {
+ type uint64;
+ config false;
+ description
+ "output-Packet";
+ }
+ leaf inputByte {
+ type uint64;
+ config false;
+ description
+ "input-Byte";
+ }
+ leaf outputByte {
+ type uint64;
+ config false;
+ description
+ "output-Byte";
+ }
+ leaf inputMulticast {
+ type uint64;
+ config false;
+ description
+ "input-Multicast";
+ }
+ leaf outputMulticast {
+ type uint64;
+ config false;
+ description
+ "output-Multicast";
+ }
+ leaf receiveDirectedBroadcast {
+ type uint64;
+ config false;
+ description
+ "receive-Directed-Broadcast";
+ }
+ leaf sendDirectedBroadcast {
+ type uint64;
+ config false;
+ description
+ "send-Directed-Broadcast";
+ }
+ leaf forwardDirectedBroadcast {
+ type uint64;
+ config false;
+ description
+ "forward-Directed-Broadcast";
+ }
+ leaf dropDirectedBroadcast {
+ type uint64;
+ config false;
+ description
+ "drop-Directed-Broadcast";
+ }
+ leaf ttlBeingOne {
+ type uint64;
+ config false;
+ description
+ "TTL-being-One";
+ }
+ leaf invalidTTLPacket {
+ type uint64;
+ config false;
+ description
+ "invalid-TTL-Packet";
+ }
+ leaf inputICMPPacket {
+ type uint64;
+ config false;
+ description
+ "input-ICMPP-acket";
+ }
+ leaf echoReply {
+ type uint64;
+ config false;
+ description
+ "echo-Reply";
+ }
+ leaf unreachable {
+ type uint64;
+ config false;
+ description
+ "unreachable";
+ }
+ leaf sourceQuench {
+ type uint64;
+ config false;
+ description
+ "sourceQuench";
+ }
+ leaf routingRedirect {
+ type uint64;
+ config false;
+ description
+ "routingRedirect";
+ }
+ leaf echoRequest {
+ type uint64;
+ config false;
+ description
+ "echoRequest";
+ }
+ leaf routerAdvert {
+ type uint64;
+ config false;
+ description
+ "routerAdvert";
+ }
+ leaf routerSolicit {
+ type uint64;
+ config false;
+ description
+ "routerSolicit";
+ }
+ leaf timeExceed {
+ type uint64;
+ config false;
+ description
+ "timeExceed";
+ }
+ leaf ipHeaderBad {
+ type uint64;
+ config false;
+ description
+ "IPHeaderBad";
+ }
+ leaf timestampReply {
+ type uint64;
+ config false;
+ description
+ "timestampReply";
+ }
+ leaf timestampRequest {
+ type uint64;
+ config false;
+ description
+ "timestampRequest";
+ }
+ leaf informationRequest {
+ type uint64;
+ config false;
+ description
+ "informationRequest";
+ }
+ leaf informationReply {
+ type uint64;
+ config false;
+ description
+ "informationReply";
+ }
+ leaf netmaskRequest {
+ type uint64;
+ config false;
+ description
+ "netmaskRequest";
+ }
+ leaf netmaskReply {
+ type uint64;
+ config false;
+ description
+ "netmaskReply";
+ }
+ leaf unknownType {
+ type uint64;
+ config false;
+ description
+ "unknownType";
+ }
+ }
+ container ppp {
+ description
+ "PPP settings on a certain interface and Statistics information.";
+ uses ifm:ifm_pppbase_pppConfig_type;
+ }
+ container hdlc {
+ description
+ "HDLC protocol configured on an interface.";
+ uses ifm:hdlc_chdlc_oper_hdlcConfig_type;
+ }
+ container fr {
+ description
+ "The link protocol of the interface is FR.";
+ uses ifm:ifm_frConfig_type;
+ }
+ container ifErrorDown {
+ config false;
+ description
+ "Information about the interface in the error-down state, including the interface name, cause of the error-down event, delay for the transition from Down to Up, and remaining time for the Up state.";
+ leaf errorDownCause {
+ type ifmcommErrorDownType;
+ config false;
+ description
+ "Cause of the error-down event.";
+ }
+ leaf recoveryTime {
+ type uint32;
+ config false;
+ description
+ "Delay for the transition from Down to Up, in seconds.";
+ }
+ leaf remainderTime {
+ type uint32 {
+ range "0..86400";
+ }
+ config false;
+ description
+ "The remaining time for the Up event, in seconds.";
+ }
+ }
+ container ifTrapThreshold {
+ description
+ "Set the trap threshold.";
+ leaf inputRisingRate {
+ type uint32 {
+ range "1..100";
+ }
+ must "(../inputRisingRate>=../inputResumeRate)";
+ description
+ "Input bandwidth usage trap threshold.";
+ ext:allowDelete "true";
+ }
+ leaf inputResumeRate {
+ type uint32 {
+ range "1..100";
+ }
+ must "(../inputResumeRate<=../inputRisingRate)";
+ description
+ "Input bandwidth usage resume threshold";
+ ext:allowDelete "true";
+ }
+ leaf outputRisingRate {
+ type uint32 {
+ range "1..100";
+ }
+ must "(../outputRisingRate>=../outputResumeRate)";
+ description
+ "Output bandwidth usage trap threshold.";
+ ext:allowDelete "true";
+ }
+ leaf outputResumeRate {
+ type uint32 {
+ range "1..100";
+ }
+ must "(../outputResumeRate<=../outputRisingRate)";
+ description
+ "Output bandwidth usage resume threshold.";
+ ext:allowDelete "true";
+ }
+ }
+ container phyDampIfCfg {
+ description
+ "Single Interface status suppression.";
+ leaf dampIgnoreGlobal {
+ type boolean;
+ must "not(../ifDampEnable='true' and ../dampIgnoreGlobal='true')";
+ default "false";
+ description
+ "Ignore Global Damp Function.";
+ }
+ leaf ifDampEnable {
+ type boolean;
+ must "not(../ifDampEnable='true' and ../dampIgnoreGlobal='true')";
+ default "false";
+ description
+ "Interface physical status damping enable.";
+ }
+ leaf ifDampTxOff {
+ when "../ifDampEnable!='false'";
+ type boolean;
+ default "false";
+ description
+ "Shutdown transmission when damping suppressed.";
+ }
+ leaf ifDampLevel {
+ when "../ifDampEnable!='false'";
+ type ifmcommDampLevelType;
+ default "light";
+ description
+ "Interface physical status damping level.";
+ }
+ leaf ifSuppress {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint32 {
+ range "1..20000";
+ }
+ must "(../ifSuppress>../ifReuse)";
+ ext:allowDelete "true";
+ description
+ "1000 times of suppress threshold.";
+ }
+ leaf ifReuse {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint32 {
+ range "1..20000";
+ }
+ must "(../ifReuse<../ifSuppress)";
+ ext:allowDelete "true";
+ description
+ "1000 times of reuse threshold.";
+ }
+ leaf ifMaxSuppressTime {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint16 {
+ range "1..255";
+ }
+ units second;
+ ext:allowDelete "true";
+ description
+ "Max suppress time(seconds).";
+ }
+ leaf ifHalfLifePeriod {
+ when "not (../ifDampLevel='light' or ../ifDampLevel='middle' or ../ifDampLevel='heavy')";
+ type uint16 {
+ range "1..60";
+ }
+ units second;
+ ext:allowDelete "true";
+ description
+ "Half life time(seconds).";
+ }
+ }
+ container phyDampIfOper {
+ config false;
+ description
+ "Interface Status Suppression Information.";
+ leaf ifSuppressStatus {
+ type ifmcommDampStatusType;
+ config false;
+ description
+ "Interface Status Suppression State.";
+ }
+ leaf ifSuppress {
+ type uint32 {
+ range "1..20000";
+ }
+ config false;
+ description
+ "1000 times of suppress threshold.";
+ }
+ leaf ifReuse {
+ type uint32 {
+ range "1..20000";
+ }
+ config false;
+ description
+ "1000 times of reuse threshold.";
+ }
+ leaf ifMaxSuppressTime {
+ type uint16 {
+ range "1..255";
+ }
+ units second;
+ config false;
+ description
+ "Max suppress time(seconds).";
+ }
+ leaf ifHalfLifePeriod {
+ type uint16 {
+ range "1..60";
+ }
+ units second;
+ config false;
+ description
+ "Half life time(seconds).";
+ }
+ leaf dampReuseTime {
+ type uint16 {
+ range "0..255";
+ }
+ units second;
+ config false;
+ description
+ "Damping reuse time(seconds).";
+ }
+ leaf currentPenalty {
+ type uint32;
+ config false;
+ description
+ "1000 times of current penalty.";
+ }
+ leaf ifMaxPenalty {
+ type uint32;
+ config false;
+ description
+ "1000 times of max penalty.";
+ }
+ }
+ container ipv4Config {
+ description
+ "IPv4 configurations.";
+ leaf addrCfgType {
+ type ifmam4CfgType;
+ default "config";
+ description
+ "IPv4 address configuration type.";
+ }
+ container am4CfgAddrs {
+ description
+ "List of IPv4 addresses.";
+ list am4CfgAddr {
+ when "not(../../addrCfgType='negotiation' or ../../addrCfgType='unnumbered')";
+ key "ifIpAddr";
+ description
+ "IPv4 address configurations.";
+ leaf ifIpAddr {
+ type inet:ipv4-address-no-zone;
+ description
+ "IPv4 address.";
+ }
+ leaf subnetMask {
+ type ifmIpv4Mask {
+ length "9..15";
+ pattern '((([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))';
+ }
+ mandatory true;
+ description
+ "IPv4 address mask.";
+ }
+ leaf addrType {
+ type ifmam4IpAddrType;
+ must "((../addrType='main' or ../addrType='sub') )";
+ mandatory true;
+ description
+ "IPv4 address type.";
+ }
+ }
+ }
+ leaf unNumIfName {
+ when "../addrCfgType='unnumbered'";
+ type leafref {
+ path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:ifName";
+ }
+ description
+ "Name of an unnumbered interface. For example, ethernet0/1/0.";
+ ext:allowDelete "true";
+ }
+ }
+ container ipv4Oper {
+ config false;
+ description
+ "IPv4 information.";
+ container ipv4Addrs {
+ config false;
+ description
+ "List of IPv4 addresses.";
+ list ipv4Addr {
+ key "ifIpAddr";
+ config false;
+ description
+ "IPv4 address configurations.";
+ leaf ifIpAddr {
+ type inet:ipv4-address-no-zone;
+ config false;
+ description
+ "IPv4 address.";
+ }
+ leaf subnetMask {
+ type ifmIpv4Mask {
+ length "9..15";
+ pattern '((([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))';
+ }
+ config false;
+ description
+ "IPv4 address mask.";
+ }
+ leaf addrType {
+ type ifmam4IpAddrType;
+ default "main";
+ config false;
+ description
+ "IPv4 address type.";
+ }
+ leaf isIpBlock {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "IPv4 address is blocked or not.";
+ }
+ }
+ }
+ }
+ container ipv6Config {
+ description
+ "IPv6 configurations.";
+ leaf enableFlag {
+ type boolean;
+ default "false";
+ description
+ "It is used to control whether an interface is enabled with the IPv6 function.";
+ }
+ leaf ifMtu6 {
+ when "../enableFlag!='false'";
+ type uint32 {
+ range "0..50000";
+ }
+ description
+ "IPv6 maximum transmission unit of an interface.
+ Special explanation:
+ Range: The server may restrict the allowed values for this leaf, depending on the interface's type.";
+ ext:allowDelete "true";
+ }
+ leaf spreadMtu6Flag {
+ type boolean;
+ must "not(../enableFlag='false' and ../spreadMtu6Flag='true')";
+ default "false";
+ description
+ "Spread the IPv6 MTU of main interface to subinterface.";
+ ext:allowDelete "true";
+ }
+ leaf autoLinkLocal {
+ type boolean;
+ must "not(../enableFlag='false' and ../autoLinkLocal='true')";
+ default "false";
+ description
+ "It is used to control whether an interface is enabled with the auto linklocal address function.";
+ }
+ container am6CfgAddrs {
+ when "../enableFlag!='false'";
+ description
+ "List of IPv6 addresses.";
+ list am6CfgAddr {
+ key "ifIp6Addr";
+ description
+ "IPv6 address configurations.";
+ leaf ifIp6Addr {
+ type inet:ipv6-address-no-zone;
+ description
+ "IPv6 address.";
+ }
+ leaf addrPrefixLen {
+ type uint32 {
+ range "1..128";
+ }
+ must "not(../addrType6='linkLocal') or (../addrType6='linkLocal' and ../addrPrefixLen=10)";
+ mandatory true;
+ description
+ "Length of the IPv6 address prefix.";
+ }
+ leaf addrType6 {
+ type ifmam6IpAddr6Type;
+ must "((../addrType6='global' or ../addrType6='linkLocal' or ../addrType6='anycast') )";
+ mandatory true;
+ description
+ "IPv6 address type.";
+ }
+ leaf ifIDGenType {
+ type ifmam6IDGenType;
+ must "(../addrType6='global' and (../ifIDGenType='none' or ../ifIDGenType='cga' or ../ifIDGenType='eui64') ) or (../addrType6='linkLocal' and (../ifIDGenType='none' or ../ifIDGenType='cga') ) or (../addrType6='anycast' and ../ifIDGenType='none')";
+ default "none";
+ description
+ "Address algorithm.";
+ ext:allowDelete "true";
+ }
+ leaf collisionCount {
+ type uint32 {
+ range "0..3";
+ }
+ config false;
+ description
+ "Number of IPv6 address collisions.";
+ }
+ }
+ }
+ container am6CgaInfos {
+ when "../enableFlag!='false'";
+ description
+ "CGA address container.";
+ list am6CgaInfo {
+ key "rsaKeyLabel";
+ description
+ "CGA address instance.";
+ leaf rsaKeyLabel {
+ type leafref {
+ path "/rsa:rsa/rsa:rsaKeyPairCfgs/rsa:rsaKeyPairCfg/rsa:keyPairLabel";
+ }
+ description
+ "RSA key.";
+ }
+ leaf secLevel {
+ type uint32 {
+ range "0..1";
+ }
+ description
+ "Security level.";
+ ext:allowDelete "true";
+ }
+ leaf modifier {
+ type inet:ipv6-address-no-zone;
+ must "not (../secLevel=1 and ../modifier!='::')";
+ description
+ "CGA address modifier.";
+ ext:allowDelete "true";
+ }
+ }
+ }
+ }
+ container ipv6Oper {
+ config false;
+ description
+ "IPv6 information.";
+ leaf ifOperMtu6 {
+ type uint32 {
+ range "0..50000";
+ }
+ config false;
+ description
+ "Dynamic IPv6 MTU of an interface.";
+ }
+ container ipv6Addrs {
+ config false;
+ description
+ "List of IPv6 addresses.";
+ list ipv6Addr {
+ key "ifIp6Addr";
+ config false;
+ description
+ "IPv6 address query.";
+ leaf ifIp6Addr {
+ type inet:ipv6-address-no-zone;
+ config false;
+ description
+ "IPv6 address.";
+ }
+ leaf addrPrefixLen {
+ type uint32 {
+ range "1..128";
+ }
+ config false;
+ description
+ "Length of the IPv6 address prefix.";
+ }
+ leaf addrType6 {
+ type ifmam6IpAddr6Type;
+ default "global";
+ config false;
+ description
+ "IPv6 address type.";
+ }
+ leaf ifIDGenType {
+ type ifmam6IDGenType;
+ default "none";
+ config false;
+ description
+ "Address algorithm.";
+ }
+ leaf collisionCount {
+ type uint32 {
+ range "0..3";
+ }
+ config false;
+ description
+ "Number of IPv6 address collisions.";
+ }
+ leaf isIpBlock {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "IPv6 address is blocked or not.";
+ }
+ leaf status {
+ type ifmcommipv6StatusType;
+ config false;
+ description
+ "IPv6 address status.";
+ }
+ }
+ }
+ }
+ container vPosition {
+ config false;
+ description
+ "Virtual position of an interface.";
+ leaf vnfcName {
+ type string {
+ length "1..31";
+ }
+ config false;
+ description
+ "Virtualized network function component (VNFC) name.";
+ }
+ leaf vBoardID {
+ type uint32;
+ config false;
+ description
+ "Virtual board ID.";
+ }
+ leaf vPortID {
+ type uint32;
+ config false;
+ description
+ "Virtual Port ID.";
+ }
+ }
+ container ifIpStatiCfg {
+ description
+ "Forward statistic.";
+ leaf ifIpStatiEnable {
+ type boolean;
+ default "false";
+ description
+ "Enable forward statistics.";
+ ext:allowDelete "true";
+ }
+ leaf ifIpStatiMode {
+ type ifIpStatiModeType;
+ description
+ "Forward statistics mode.";
+ ext:allowDelete "true";
+ }
+ }
+ container veGroup {
+ description
+ "Configure a Virtual-Ethernet Group.";
+ leaf veIfType {
+ type veInterfaceType;
+ description
+ "Virtual-Ethernet interface type.";
+ ext:allowDelete "true";
+ }
+ leaf veGroupId {
+ type uint32 {
+ range "1..8192";
+ }
+ description
+ "Virtual-Ethernet group ID.";
+ ext:allowDelete "true";
+ }
+ }
+ container forwardMode {
+ description
+ "Set the Virtual-Ethernet forward mode.";
+ leaf veForwarMode {
+ type veForwarModeType;
+ description
+ "Virtual-Ethernet forward mode type.";
+ ext:allowDelete "true";
+ }
+ }
+ container veMemberSlot {
+ description
+ "Set the Virtual-Ethernet member slot.";
+ leaf veSlotId {
+ type string {
+ length "1..512";
+ }
+ description
+ "Virtual-Ethernet member slot.";
+ ext:allowDelete "true";
+ }
+ }
+ container flowAlarm {
+ description
+ "Unknown-unicast alarm threshold, which can be disabled.";
+ uses ifm:alarm_type;
+ }
+ container transAlarmDown {
+ description
+ "Set the Transmission-Alarm Down. ";
+ leaf pais {
+ type transAlarmDownType;
+ description
+ "Path Alarm Indication Signal";
+ ext:allowDelete "true";
+ }
+ leaf prdi {
+ type transAlarmDownType;
+ description
+ "Path Remote Defect Indication";
+ ext:allowDelete "true";
+ }
+ leaf oof {
+ type transAlarmDownType;
+ description
+ "Out of Frame";
+ ext:allowDelete "true";
+ }
+ }
+ container ifMru {
+ description
+ "Maximum receive unit of an interface.";
+ leaf mru {
+ type uint16 {
+ range "46..9600";
+ }
+ description
+ "Maximum receive unit of an interface.";
+ ext:allowDelete "true";
+ }
+ }
+ container ifTcpMss {
+ description
+ "Maxitum Segment Size of an interface.";
+ leaf tcpmss {
+ type uint16 {
+ range "32..9500";
+ }
+ description
+ "Maxitum Segment Size of an interface.";
+ ext:allowDelete "true";
+ }
+ }
+ container netSlices {
+ description
+ "List of network slice instances.";
+ list netSlice {
+ key "sliceInstanceId";
+ max-elements "8";
+ description
+ "Network slice instance configurations.";
+ leaf sliceInstanceId {
+ type uint32 {
+ range "1..8";
+ }
+ description
+ "Network slice instance ID.";
+ }
+ leaf sliceInstanceName {
+ type string {
+ length "1..63";
+ }
+ config false;
+ description
+ "Network slice description.";
+ }
+ }
+ }
+ container ifMruStatEnable {
+ description
+ "Discard statistics of maximum receive unit of an interface.";
+ leaf mruStatEn {
+ type boolean;
+ default "false";
+ description
+ "Enable discard statistics of maximum receive unit of an interface.";
+ ext:allowDelete "true";
+ }
+ }
+ container remoteIfStat {
+ config false;
+ description
+ "Remote interface statistics.";
+ leaf sendMutiPacket {
+ type uint64;
+ config false;
+ description
+ "Remote interface send muticast packet statistics.";
+ }
+ }
+ container ifMruDiscardStat {
+ config false;
+ description
+ "display the discarded statistics of maximum receive unit of an interface.";
+ leaf dropPack {
+ type uint64;
+ config false;
+ description
+ "display the packets of discarded statistics of maximum receive unit of an interface.";
+ }
+ leaf dropByte {
+ type uint64;
+ config false;
+ description
+ "display the bytes of discarded statistics of maximum receive unit of an interface.";
+ }
+ }
+ container ifTrackRtMtg {
+ description
+ "Interface track route-monitor-group.";
+ leaf routeMtgName {
+ type string {
+ length "1..31";
+ }
+ description
+ "The name of route-monitor-group.";
+ ext:allowDelete "true";
+ }
+ leaf downWeight {
+ type uint32 {
+ range "1..1000";
+ }
+ description
+ "The weight triggered a tracking interface to go down.";
+ ext:allowDelete "true";
+ }
+ }
+ container phyIfMacStat {
+ description
+ "Traffic statistics of main interface.";
+ leaf phyIfMacStatEnable {
+ type boolean;
+ default "false";
+ description
+ "Enable the traffic statistics function on a main interface.";
+ ext:allowDelete "true";
+ }
+ }
+ container vbdIfForwardMode {
+ description
+ "Set the VBDIF forward mode.";
+ leaf vbdIfFwdLoop {
+ type boolean;
+ default "false";
+ description
+ "Set the VBDIF loopback forward mode.";
+ ext:allowDelete "true";
+ }
+ }
+ container ifCeIpStatiEnable {
+ description
+ "Traffic statistics config.";
+ leaf ifIpStatiEnable {
+ type ifmCeStaticEnableType;
+ default "Disable";
+ description
+ "Traffic statistics all enable config.";
+ ext:allowDelete "true";
+ }
+ leaf ifIpStatiIpv4Enable {
+ type ifmCeStaticEnableType;
+ default "Disable";
+ description
+ "Ipv4 traffic statistics enable config.";
+ ext:allowDelete "true";
+ }
+ leaf ifIpStatiIpv6Enable {
+ type ifmCeStaticEnableType;
+ default "Disable";
+ description
+ "Ipv6 traffic statistics enable config.";
+ ext:allowDelete "true";
+ }
+ }
+ container ifCeIpStatisticsInfo {
+ config false;
+ description
+ "Traffic statistics information.";
+ leaf receiveIpv4Bit {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv4 traffic bits received on an interface.";
+ }
+ leaf sendIpv4Bit {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv4 traffic bits sent on an interface.";
+ }
+ leaf receiveIpv4Packet {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv4 traffic packets received on an interface.";
+ }
+ leaf sendIpv4Packet {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv4 traffic packets sent on an interface.";
+ }
+ leaf receiveIpv4BitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv4 traffic bits received on an interface.";
+ }
+ leaf sendIpv4BitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv4 traffic bits sent on an interface.";
+ }
+ leaf receiveIpv4PacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv4 traffic packets received on an interface.";
+ }
+ leaf sendIpv4PacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv4 traffic packets sent on an interface.";
+ }
+ leaf receiveIpv6Bit {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv6 traffic bits received on an interface.";
+ }
+ leaf sendIpv6Bit {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv6 traffic bits sent on an interface.";
+ }
+ leaf receiveIpv6Packet {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv6 traffic packets received on an interface.";
+ }
+ leaf sendIpv6Packet {
+ type uint64;
+ config false;
+ description
+ "Number of Ipv6 traffic packets sent on an interface.";
+ }
+ leaf receiveIpv6BitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv6 traffic bits received on an interface.";
+ }
+ leaf sendIpv6BitRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv6 traffic bits sent on an interface.";
+ }
+ leaf receiveIpv6PacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv6 traffic packets received on an interface.";
+ }
+ leaf sendIpv6PacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate of Ipv6 traffic packets sent on an interface.";
+ }
+ }
+ container vllPwLoopChk {
+ when "not(../ifPhyType!='Ethernet' and ../ifPhyType!='GigabitEthernet' and ../ifPhyType!='Eth-Trunk' and ../ifPhyType!='Vlanif' and ../ifPhyType!='40GE' and ../ifPhyType!='100GE' and ../ifPhyType!='XGigabitEthernet' and ../ifPhyType!='50|100GE' and ../ifPhyType!='50GE' and ../ifPhyType!='400GE')" {
+ description
+ "The constraint of vllPwLoopChk";
+ }
+ description
+ "PW Loop Check.";
+ leaf loopEnable {
+ type boolean;
+ description
+ "Enable PW loop check.";
+ ext:allowDelete "true";
+ }
+ leaf loopCheckTime {
+ type uint32 {
+ range "1..65535";
+ }
+ default "300";
+ description
+ "PW loop check time.";
+ ext:allowDelete "true";
+ }
+ }
+ container inportCheck {
+ leaf checkflag {
+ type boolean;
+ description
+ "ipv4 in port check.";
+ ext:allowDelete "true";
+ }
+ }
+ }
+ }
+ container remoteInterfaces {
+ config false;
+ description
+ "Information about a remote interface.";
+ list remoteInterface {
+ key "ifName";
+ config false;
+ description
+ "List of remote interfaces.";
+ leaf ifName {
+ type pub-type:ifName;
+ config false;
+ description
+ "Name of a remote interface.";
+ }
+ leaf ifIndex {
+ type uint32;
+ config false;
+ description
+ "Index of a remote interface.";
+ }
+ container remoteIfStatOper {
+ config false;
+ description
+ "Statistics about remote interfaces.";
+ leaf lastclearedTime {
+ type pub-type:time;
+ config false;
+ description
+ "Last time when statistics about remote interfaces were cleared.";
+ }
+ leaf inBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which bits are received.";
+ }
+ leaf inPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which packets are received.";
+ }
+ leaf inPeakBitRate {
+ type uint64;
+ config false;
+ description
+ "Peak rate at which bits are received.";
+ }
+ leaf inPeakBitRateRecordTime {
+ type pub-type:time;
+ config false;
+ description
+ "Time when the peak bit receive rate is reached.";
+ }
+ leaf outBitRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which bits are sent.";
+ }
+ leaf outPacketRate {
+ type uint64;
+ config false;
+ description
+ "Rate at which packets are sent.";
+ }
+ leaf outPeakBitRate {
+ type uint64;
+ config false;
+ description
+ "Peak rate at which bits are sent.";
+ }
+ leaf outPeakBitRateRecordTime {
+ type pub-type:time;
+ config false;
+ description
+ "Time when the peak bit send rate is reached.";
+ }
+ leaf inUseRate {
+ type string {
+ length "1..50";
+ }
+ config false;
+ description
+ "Received bandwidth usage.";
+ }
+ leaf outUseRate {
+ type string {
+ length "1..50";
+ }
+ config false;
+ description
+ "Sent bandwidth usage.";
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-pub-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-pub-type@2018-11-23.yang
new file mode 100644
index 000000000..1f11132dd
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-pub-type@2018-11-23.yang
@@ -0,0 +1,506 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+module huawei-pub-type {
+ namespace "http://www.huawei.com/netconf/vrp/huawei-pub-type";
+ prefix pub-type;
+ import huawei-extension {
+ prefix ext;
+ }
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "pub type";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef editOperationType {
+ type enumeration {
+ enum "merge" {
+ description
+ "";
+ }
+ enum "replace" {
+ description
+ "";
+ }
+ enum "create" {
+ description
+ "";
+ }
+ enum "delete" {
+ description
+ "";
+ }
+ }
+ description
+ "editOperationType";
+ }
+
+ typedef timeZone {
+ type string {
+ length "0..15";
+ }
+ description
+ "timeZone is like +08:00";
+ }
+
+ typedef time_hhmm {
+ type string {
+ length "5";
+ pattern '(([0-1][0-9])|(2[0-3])):[0-5][0-9]';
+ }
+ description
+ "time_hhmm is like string";
+ }
+
+ typedef macAddress {
+ type string {
+ length "0..255";
+ }
+ description
+ "A MAC address in standard notation";
+ }
+
+ typedef ipv4PrefixLength {
+ type uint32 {
+ range "0..32";
+ }
+ description
+ "An IPv4 address prefix length. Must lie between 0 and 32 inclusive.";
+ }
+
+ typedef ipv6PrefixLength {
+ type uint32 {
+ range "0..128";
+ }
+ description
+ "An IPv6 address prefix length. Must lie between 0 and 128 inclusive.";
+ }
+
+ typedef ipv4AddressPrefix {
+ type string {
+ length "0..255";
+ }
+ description
+ "now ipv4AddressPrefix is like string";
+ }
+
+ typedef ipv6AddressPrefix {
+ type string {
+ length "0..255";
+ }
+ description
+ "now ipv6AddressPrefix is like string";
+ }
+
+ typedef block {
+ type string {
+ length "0..255";
+ }
+ description
+ "now block is like string";
+ }
+
+ typedef oid {
+ type string {
+ length "0..255";
+ }
+ description
+ "now oid is like string";
+ }
+
+ typedef data {
+ type string {
+ length "0..255";
+ }
+ description
+ "now data is like string";
+ }
+
+ typedef chassisPath {
+ type uint32 {
+ range "0..127";
+ }
+ description
+ "chassisPath is an unsignedInt";
+ }
+
+ typedef slotPath {
+ type string {
+ length "1..127";
+ pattern '\d+/\d+';
+ }
+ description
+ "slotPath is like 1/1";
+ }
+
+ typedef cardPath {
+ type string {
+ length "1..127";
+ }
+ description
+ "cardPath";
+ }
+
+ typedef valspBitErrString {
+ type string {
+ length "1..63";
+ }
+ description
+ "biError is like 0";
+ }
+
+ typedef ifNameString {
+ type string {
+ length "1..63";
+ }
+ description
+ "ifName is like ethernet1/1/1/1";
+ }
+
+ typedef ifName {
+ type ifNameString;
+ description
+ "ifName";
+ }
+
+ typedef vrfNameExt {
+ type vrfName;
+ description
+ "vrfNameExt";
+ }
+
+ typedef positionString {
+ type string {
+ length "1..32";
+ }
+ description
+ "board position is like [1], serialPort position is like[1/1/1/1:2:3]";
+ }
+
+ typedef position {
+ type positionString;
+ description
+ "position";
+ }
+
+ typedef password {
+ type string {
+ length "1..128";
+ }
+ description
+ "The password is a string ranging from 1 to 16 characters for a plaintext password and 20 to 128 characters for a ciphertext password.";
+ }
+
+ typedef passwordOSPF {
+ type string {
+ length "1..8";
+ }
+ description
+ "now password is like string";
+ }
+
+ typedef passwordExtend {
+ type string {
+ length "1..432";
+ }
+ description
+ "The password is a string ranging from 1 to 255 characters for a plaintext password and 20 to 432 characters for a ciphertext password.";
+ }
+
+ typedef oneInputPasswordExtend {
+ type string {
+ length "1..255";
+ }
+ description
+ "now oneInputPasswordExtend is like string, only input once no need to confirm";
+ }
+
+ typedef mibString {
+ type string {
+ length "0..255";
+ }
+ description
+ "now mibString is like string";
+ }
+
+ typedef vrfName {
+ type string {
+ length "1..31";
+ }
+ description
+ "now vrfName is like string";
+ }
+
+ typedef keyChainName {
+ type string {
+ length "0..47";
+ }
+ description
+ "now keyChainName is like string";
+ }
+
+ typedef ipv4Mask {
+ type string {
+ length "1..255";
+ }
+ description
+ "ipv4Mask support both mask and length format";
+ }
+
+ typedef ipv6Mask {
+ type string {
+ length "0..255";
+ }
+ description
+ "ipv6Mask support both mask and length format";
+ }
+
+ typedef timeTick {
+ type uint32;
+ description
+ "timeTick is like unsignedInt";
+ }
+
+ typedef identifierString {
+ type string {
+ pattern '([^\s?|>]*)';
+ }
+ description
+ "now identifierString is like string, which is used for identifier with strict limitation";
+ }
+
+ typedef descriptionString {
+ type string {
+ pattern '([^?]*)';
+ }
+ description
+ "now descriptionString is like string, which is used for description with little limitation";
+ }
+
+ typedef rowStatus {
+ type enumeration {
+ enum "active" {
+ description
+ "Rule status is active at the current time.";
+ }
+ enum "notInService" {
+ description
+ "Rule status is not active at the current time.";
+ }
+ enum "notReady" {
+ description
+ "The system is unavailable at the moment.";
+ }
+ }
+ description
+ "rowStatus is like string";
+ }
+
+ typedef bits8 {
+ type uint8;
+ description
+ "bits8 is like unsignedByte";
+ }
+
+ typedef bits16 {
+ type uint16;
+ description
+ "bits16 is like unsignedShort";
+ }
+
+ typedef bits32 {
+ type uint32;
+ description
+ "bits32 is like unsignedInt";
+ }
+
+ typedef bits64 {
+ type uint64;
+ description
+ "bits64 is like unsignedLong";
+ }
+
+ typedef percent {
+ type uint8 {
+ range "0..100";
+ }
+ description
+ "percent is like unsignedByte";
+ }
+
+ typedef bandWidth {
+ type uint64;
+ description
+ "Type of ifOperSpeed";
+ }
+
+ typedef appType {
+ type enumeration {
+ enum "lct" {
+ description
+ "LCT";
+ }
+ enum "ems" {
+ description
+ "EMS";
+ }
+ enum "cmd" {
+ description
+ "CMD";
+ }
+ enum "ftp" {
+ description
+ "FTP";
+ }
+ enum "unknown" {
+ description
+ "UNKNOWN";
+ }
+ }
+ description
+ "";
+ }
+
+ typedef teTnlName {
+ type string {
+ length "1..35";
+ pattern '[^ ]*';
+ }
+ description
+ "TE tunnel name";
+ }
+
+ typedef evpnName {
+ type string {
+ length "1..31";
+ }
+ description
+ "now evpnName is like string";
+ }
+
+ typedef teTnlNameExt {
+ type teTnlName;
+ description
+ "teTnlNameExt";
+ }
+
+ typedef devmTimeslotListType {
+ type string {
+ length "1..61";
+ }
+ description
+ "";
+ }
+
+ typedef hostName {
+ type string {
+ length "1..255";
+ }
+ description
+ "";
+ }
+
+ typedef XplFilterName {
+ type string {
+ length "1..200";
+ pattern '\s*(([0-9a-zA-Z][0-9a-zA-Z\-_\.]{0,200})|([0-9a-zA-Z][0-9a-zA-Z\-_\.]{0,200}[\(](($)?[0-9a-zA-Z][0-9a-zA-Z\-_\.]{0,200})(([,]($)?[0-9a-zA-Z][0-9a-zA-Z\-_\.]{0,200}){0,7})[\)]))\s*';
+ }
+ description
+ "";
+ }
+
+ typedef passwordIke {
+ type string {
+ length "1..127";
+ }
+ description
+ "now passwordIke is like string";
+ }
+
+ typedef aclNumOrName {
+ type string {
+ length "1..32";
+ pattern '([1-9]\d{3})|(10[0-9]{3})|(23[0-9]{3})|(99999)|([0-9a-zA-Z]([^\s]*))';
+ }
+ description
+ "aclNumOrName is begin with a-z or A-Z or 0-9";
+ }
+
+ typedef hexBinary {
+ type string {
+ length "1..10";
+ pattern '(0x|0X)?[0-9a-fA-F]+';
+ }
+ description
+ "This is a hexadecimal variable.";
+ }
+
+ typedef date {
+ type string {
+ pattern '\d{4}-\d{2}-\d{2}';
+ }
+ description
+ "XSD date string type.";
+ reference "http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#date";
+ }
+
+ typedef time {
+ type string {
+ pattern '\d{2}:\d{2}:\d{2}';
+ }
+ description
+ "XSD time string type.";
+ reference "http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#date";
+ }
+ typedef id-range {
+ type string {
+ pattern '([0-9]|,|\+|\-|\(|\))+';
+ }
+ description
+ "id list,such as '1,3,5-7',or '+1,-3,+(20-30)'.";
+ }
+ typedef vlan-range {
+ type id-range {
+ pattern '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])?(-(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9]))?(,((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])(-(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9]))?))*)|((([\\+|\\-](409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9]))|([\\+|\\-]\\((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])-(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\)))?(,(([\\+|\\-](409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9]))|([\\+|\\-]\\((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])-(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|[1-9])\\))))*)';
+ ext:value-range "1..4094";
+ }
+ description
+ "vlan id list,the value is 1-4094.";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-rsa-type@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-rsa-type@2018-11-23.yang
new file mode 100644
index 000000000..92eb3cc5b
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-rsa-type@2018-11-23.yang
@@ -0,0 +1,68 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+submodule huawei-rsa-type {
+ belongs-to huawei-rsa {
+ prefix rsa;
+ }
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "Description of rsa type submodule";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ typedef rsaEncodeInType {
+ type enumeration {
+ enum "DER" {
+ description
+ "DER";
+ }
+ enum "PEM" {
+ description
+ "PEM";
+ }
+ enum "OPENSSH" {
+ description
+ "OPENSSH";
+ }
+ }
+ description
+ "RSA encodein type list";
+ }
+}
\ No newline at end of file
diff --git a/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-rsa@2018-11-23.yang b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-rsa@2018-11-23.yang
new file mode 100644
index 000000000..814f5b0e1
--- /dev/null
+++ b/ControlPlatform/driver-layer/drivers/huawei/src/main/yang/huawei-rsa@2018-11-23.yang
@@ -0,0 +1,203 @@
+/*
+Copyright (C) 2013-2018 Huawei Technologies Co., Ltd. All rights reserved.
+*/
+module huawei-rsa {
+ namespace "http://www.huawei.com/netconf/vrp/huawei-rsa";
+ prefix rsa;
+ include huawei-rsa-type;
+
+ organization
+ "Huawei Technologies Co., Ltd.";
+ contact
+ "Huawei Industrial Base
+ Bantian, Longgang
+ Shenzhen 518129
+ People's Republic of China
+ Website: http://www.huawei.com
+ Email: support@huawei.com";
+ description
+ "RSA";
+ revision 2018-11-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2018-06-11 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-12-23 {
+ description
+ "The modifications in the schema file are synchronized to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2017-03-23 {
+ description
+ "Functions supported by the schema are added to the YANG file.";
+ reference
+ "Huawei private.";
+ }
+ revision 2013-01-01 {
+ description
+ "Init revision";
+ reference
+ "Huawei private.";
+ }
+ container rsa {
+ description
+ "RSA";
+ container rsaLocalKeys {
+ description
+ "Local key table";
+ container rsaLocalKey {
+ presence "create rsaLocalKey";
+ description
+ "Local key code.";
+ leaf keySize {
+ type uint32 {
+ range "2048";
+ }
+ default "2048";
+ description
+ "Key size";
+ }
+ leaf hostKeyName {
+ type string {
+ length "0..264";
+ }
+ config false;
+ description
+ "Hostkey name";
+ }
+ leaf hostKeyCode {
+ type string {
+ length "0..1024";
+ }
+ config false;
+ description
+ "Hostkey code";
+ }
+ leaf hostKeySSH1 {
+ type string {
+ length "0..1024";
+ }
+ config false;
+ description
+ "Hostkey code in SSH1 format";
+ }
+ leaf hostKeyPEM {
+ type string {
+ length "0..512";
+ }
+ config false;
+ description
+ "Hostkey code in PEM format";
+ }
+ leaf hostKeyOpenSSH {
+ type string {
+ length "0..512";
+ }
+ config false;
+ description
+ "Hostkey code in OpenSSH format";
+ }
+ leaf serverKeyName {
+ type string {
+ length "0..264";
+ }
+ config false;
+ description
+ "Server key name";
+ }
+ leaf serverKeyCode {
+ type string {
+ length "0..1024";
+ }
+ config false;
+ description
+ "Server key code";
+ }
+ }
+ }
+ container rsaPeerKeys {
+ description
+ "Peer key table";
+ list rsaPeerKey {
+ key "keyName";
+ description
+ "Peer key code.";
+ leaf keyName {
+ type string {
+ length "1..40";
+ }
+ description
+ "Key name";
+ }
+ leaf keyCode {
+ type string {
+ length "1..1024";
+ }
+ mandatory true;
+ description
+ "Key code";
+ }
+ leaf encodeInType {
+ type rsaEncodeInType;
+ default "DER";
+ description
+ "Encode type";
+ }
+ }
+ }
+ container rsaKeyPairCfgs {
+ description
+ "RSA keypair tabel";
+ list rsaKeyPairCfg {
+ key "keyPairLabel";
+ max-elements "20";
+ description
+ "RSA keypair";
+ leaf keyPairLabel {
+ type string {
+ length "1..35";
+ pattern '[a-zA-Z0-9_]*';
+ }
+ description
+ "Keypair Label Name : It only contains underscores (_), case-insensitive letters and digits";
+ }
+ leaf keySize {
+ type uint32 {
+ range "2048";
+ }
+ default "2048";
+ description
+ "Size of Keypair";
+ }
+ leaf hostKeyCode {
+ type string {
+ length "0..2048";
+ }
+ config false;
+ description
+ "Hostkey code";
+ }
+ }
+ }
+ container rsaGlobalCfg {
+ description
+ "Global Configuration ";
+ leaf maxKeyPair {
+ type int32 {
+ range "1..20";
+ }
+ default "20";
+ description
+ "Maximum keypair value";
+ }
+ }
+ }
+}
\ No newline at end of file