Add support for Cisco IOS XR 6.4.1. 69/97369/1
authorCharles Eckel <eckelcu@cisco.com>
Tue, 31 Aug 2021 20:30:50 +0000 (13:30 -0700)
committerCharles Eckel <eckelcu@cisco.com>
Tue, 31 Aug 2021 20:30:50 +0000 (13:30 -0700)
Signed-off-by: Charles Eckel <eckelcu@cisco.com>
Change-Id: Ib82ea3daf6c829d94b25224d50dca125824e9a85

67 files changed:
artifacts/pom.xml
cisco-xr-driver/pom.xml
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/TopologyDataHandler.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/common/helper/BandwidthProfileHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/common/helper/InterfaceHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/common/util/MtuUtils.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/AbstractL2vpnActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/AbstractL2vpnBridgeDomainActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/InterfaceActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnBridgeDomainActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnBridgeDomainLocalActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnLocalConnectActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnP2pConnectActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/TransactionActivator.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/AttachmentCircuitHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/BridgeDomainAttachmentCircuitHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/BridgeDomainHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/BridgeDomainPseudowireHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/L2vpnHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/PseudowireHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/XConnectHelper.java
cisco-xr-driver/src/main/java/org/opendaylight/unimgr/utils/NetconfConstants.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/common/helper/InterfaceHelperTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/common/util/MtuUtilsTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/AbstractL2vpnBridgeDomainActivatorTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnBridgeDomainActivatorTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnLocalConnectionActivatorTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnP2pConnectionActivatorTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/activator/L2vpnTestUtils.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/AttachmentCircuitHelperTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/BridgeDomainAttachmentCircuitHelperTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/BridgeDomainHelperTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/L2vpnHelperTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/PseudowireHelperTest.java
cisco-xr-driver/src/test/java/org/opendaylight/unimgr/mef/nrp/cisco/xr/l2vpn/helper/XConnectHelperTest.java
cisco-xrmodels/pom.xml
cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/infra/policymgr/cfg/rev161215/IdleTimeoutBuilder.java [deleted file]
cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/infra/policymgr/cfg/rev161215/PrecedenceBuilder.java [deleted file]
cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/snmp/agent/cfg/rev151027/SnmpDscpValueBuilder.java [deleted file]
cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/snmp/agent/cfg/rev151027/SnmpPrecedenceValue1Builder.java [deleted file]
cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/xr/types/rev150629/CharNumBuilder.java [deleted file]
cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/xr/types/rev150629/TtyEscapeCharNumBuilder.java [deleted file]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ifmgr-cfg@2015-07-30.yang [deleted file]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ifmgr-cfg@2017-09-07.yang [new file with mode: 0644]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-infra-policymgr-cfg@2016-12-15.yang [deleted file]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-infra-policymgr-cfg@2017-12-12.yang [new file with mode: 0644]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ip-static-cfg@2017-05-01.yang [moved from cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ip-static-cfg@2015-09-10.yang with 50% similarity]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2-eth-infra-cfg@2017-05-01.yang [moved from cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2-eth-infra-cfg@2015-11-09.yang with 53% similarity]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2vpn-cfg@2015-11-09.yang [deleted file]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2vpn-cfg@2017-06-26.yang [new file with mode: 0644]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-snmp-agent-cfg@2015-10-27.yang [deleted file]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-snmp-agent-cfg@2017-12-20.yang [new file with mode: 0644]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-types@2015-06-29.yang [deleted file]
cisco-xrmodels/src/main/yang/Cisco-IOS-XR-types@2017-12-01.yang [new file with mode: 0644]
features/features4-unimgr/pom.xml
features/odl-unimgr-cisco-xr-driver/pom.xml
features/odl-unimgr-legato-api/pom.xml
features/odl-unimgr-rest/pom.xml
features/odl-unimgr-template-driver/pom.xml
features/odl-unimgr/pom.xml
features/pom.xml
impl/pom.xml
it/pom.xml
karaf/pom.xml
legato-api/pom.xml
nrp-api/pom.xml
template-driver/pom.xml

index 84c481d8a6f61c64e275b46c32b2dbaa4464e41c..45cb104100fdbf5123aba0df385fb7050d768906 100644 (file)
@@ -6,7 +6,7 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
   <modelVersion>4.0.0</modelVersion>
 
index 82ad5a0c6a5681aac299c935de20b89091ebd851..39a8aea5b169c77d747074aebb24a0d4e45d8f4b 100644 (file)
@@ -6,8 +6,8 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.2 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>
index 3cc188e9b67f11997945415682514b15aae44bdb..1d7716c7da2847b4403489913d5fde17d70bdf55 100644 (file)
@@ -51,9 +51,13 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.XrCapabilitiesServic
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.driver.XrDriverBuilder;
 import org.opendaylight.unimgr.mef.nrp.common.NrpDao;
 import org.opendaylight.unimgr.mef.nrp.common.TapiUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfigurationKey;
+ /*
+  * Cisco IOS XR 6.4.1, rev170907
+  * Cisco IOS XR 6.2.1, rev150730
+  */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfigurationKey;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.LayerProtocolName;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortDirection;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortRole;
index 7a49dbf7f1e35b7489a084fe16ee7d1238e80911..8b21f590aa4fa9b948a9263d172dc12f56a89d9f 100644 (file)
@@ -13,24 +13,28 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Optional;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManagerBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.RateUnits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.ThresholdUnits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.manager.PolicyMapsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.manager.policy.maps.PolicyMap;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.manager.policy.maps.PolicyMapBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.PolicyMapRule;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.PolicyMapRuleBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.Police;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.PoliceBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.BurstBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.ConformActionBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.ExceedActionBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.PeakBurstBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.PeakRateBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.RateBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.policy.map.rule.policy.map.rule.police.ViolateActionBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManagerBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.RateUnits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.ThresholdUnits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.manager.PolicyMapsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.manager.policy.maps.PolicyMap;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.manager.policy.maps.PolicyMapBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.PolicyMapRule;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.PolicyMapRuleBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.Police;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.PoliceBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.BurstBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.ConformActionBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.ExceedActionBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.PeakBurstBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.PeakRateBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.RateBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.policy.map.rule.policy.map.rule.police.ViolateActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.mef.yang.mef.common.rev180321.BwpFlow;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.Uint32;
index 7627ef7a13423f8fe66dbcc19a114fb640817490..977766d165cdc02b17cc98d7b64c535d80a11035 100644 (file)
@@ -11,25 +11,45 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceActive;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurationsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceModeEnum;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfigurationBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.Mtus;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev151109.InterfaceConfiguration2;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev151109.InterfaceConfiguration2Builder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev151109._interface.configurations._interface.configuration.EthernetServiceBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev151109._interface.configurations._interface.configuration.ethernet.service.Encapsulation;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev151109._interface.configurations._interface.configuration.ethernet.service.EncapsulationBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceActive;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurationsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceModeEnum;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfigurationBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.Mtus;
+/*
+ * Cisco IOS XR 6.4.1, rev170501
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev170501.InterfaceConfiguration2;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev170501.InterfaceConfiguration2Builder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev170501._interface.configurations._interface.configuration.EthernetServiceBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev170501._interface.configurations._interface.configuration.ethernet.service.Encapsulation;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.cfg.rev170501._interface.configurations._interface.configuration.ethernet.service.EncapsulationBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev151109
+ * Cisco IOS XR 6.2.1, rev151109
+ */
 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.datatypes.rev151109.Match;
 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2.eth.infra.datatypes.rev151109.VlanTagOrAny;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.InterfaceConfiguration3;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.InterfaceConfiguration3Builder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109._interface.configurations._interface.configuration.L2Transport;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109._interface.configurations._interface.configuration.L2TransportBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.InterfaceName;
+/*
+ * Cisco IOS XR 6.4.1, rev170626.InterfaceConfiguration4
+ * Cisco IOS XR 6.2.1, rev151109.InterfaceConfiguration3
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.InterfaceConfiguration4;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.InterfaceConfiguration4Builder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626._interface.configurations._interface.configuration.L2Transport;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626._interface.configurations._interface.configuration.L2TransportBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.InterfaceName;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.Uint32;
@@ -146,11 +166,11 @@ public class InterfaceHelper {
                     .setEnabled(Empty.getInstance())
                     .build();
 
-        InterfaceConfiguration3 augmentation = new InterfaceConfiguration3Builder()
+        InterfaceConfiguration4 augmentation = new InterfaceConfiguration4Builder()
             .setL2Transport(l2transport)
             .build();
 
-        configurationBuilder.addAugmentation(InterfaceConfiguration3.class, augmentation);
+        configurationBuilder.addAugmentation(InterfaceConfiguration4.class, augmentation);
     }
 
 }
index 1fe4b09fd120158272d8340e3a8c215c0a67627b..e79d614485e9f81a34b8afa7a4f1a671ebc0d1d8 100644 (file)
@@ -10,11 +10,19 @@ package org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util;
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.Mtus;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.MtusBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.Mtu;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.MtuBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.Mtus;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.MtusBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.mtus.Mtu;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.mtus.MtuBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
 
index b9c123196f726038ac01e99d5110ba079f81e8a8..8af9abd6b3ef757aec64fe0c10259f62416f0b96 100644 (file)
@@ -18,19 +18,35 @@ import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.common.ResourceActivator;
 import org.opendaylight.unimgr.utils.NetconfConstants;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.Database;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroupKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnects;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnectKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.Database;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroupKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnects;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnectKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev180321.nrp.connectivity.service.end.point.attrs.NrpCarrierEthConnectivityEndPointResource;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ServiceType;
index 703605dba4ff81a4deeddc42b45ca0ed46047936..3ed3b7d47cc847ac8673136d45154e8020f9cc8a 100644 (file)
@@ -20,19 +20,35 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.common.ResourceActivator;
 import org.opendaylight.unimgr.mef.nrp.common.ResourceActivatorException;
 import org.opendaylight.unimgr.utils.NetconfConstants;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.Database;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroupKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomains;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomainKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.Database;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroupKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomains;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomainKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev180321.nrp.connectivity.service.end.point.attrs.NrpCarrierEthConnectivityEndPointResource;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortRole;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
index 766c58f88b6fbd00a05ecc721aab5c67550f8ec9..5fc49684f8e91aa5467ee872592831d9b8165f7e 100644 (file)
@@ -11,12 +11,20 @@ import java.util.Optional;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.helper.InterfaceHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.MtuUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceActive;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfigurationKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.Mtus;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceActive;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfigurationKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.Mtus;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 public class InterfaceActivator {
index 8142ceca6e913a3848983547321c6c6321952168..5bf425fdd09d5cc87a1aac617cbec88d85676993 100644 (file)
@@ -25,15 +25,27 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.BridgeDomainAttachm
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.BridgeDomainHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.BridgeDomainPseudowireHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.L2vpnHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index df230917e422539c31aa93b938c3f6a56d6340a2..7e04b48a5fa9140e979a751db17aaa740f4c2b4b 100644 (file)
@@ -24,15 +24,27 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.BridgeDomainAttachm
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.BridgeDomainHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.BridgeDomainPseudowireHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.L2vpnHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index 68cae1e0d2543950c1bec38120b6f58d935a0309..c57676d07e88a70ad56af435001208ce17248391 100644 (file)
@@ -25,15 +25,27 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.AttachmentCircuitHe
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.L2vpnHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.PseudowireHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.XConnectHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index 1b8d972092135ce935ee7374a7f5b7b1b6805402..3f3cb05c62e68d227811e9d553facd7bf53638c8 100644 (file)
@@ -25,15 +25,27 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.AttachmentCircuitHe
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.L2vpnHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.PseudowireHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.XConnectHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index 605069548881819adecaf6ef00b34022802a6838..19f045b976778adc6b0f28197f4b74fc99986644 100644 (file)
@@ -19,10 +19,22 @@ import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.MountPointHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.helper.InterfaceHelper;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.L2vpnHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215.PolicyManager;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev171212
+ * Cisco IOS XR 6.2.1, rev161215
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev171212.PolicyManager;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
@@ -82,8 +94,8 @@ public class TransactionActivator {
         WriteTransaction transaction = optional.get().newWriteOnlyTransaction();
 
         if (ids.getTargetType().equals(
-                org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109
-                .l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect.class)) {
+                org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626
+                    .l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect.class)) {
 
             if (!ServicePort.isSameDevice(endpoint, dvls)) {
                 transaction.delete(LogicalDatastoreType.CONFIGURATION, ids);
index 7baa55e3117b52bf56eb7899e9147166c0ce8ff9..27d25348a98ea6c071ecca94495a15e0a3025ed4 100644 (file)
@@ -12,10 +12,14 @@ import java.util.LinkedList;
 import java.util.List;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.helper.InterfaceHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuitsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuitBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuitsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuitBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
 
 
index d92f44518edc7ff955d0997c96ffeb422ddc997b..3a0d90e55f6030457a836069d82ac1c9fa5a89a2 100644 (file)
@@ -11,10 +11,14 @@ import java.util.LinkedList;
 import java.util.List;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.helper.InterfaceHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuitsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.attachment.circuits.BdAttachmentCircuit;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.attachment.circuits.BdAttachmentCircuitBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuitsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.attachment.circuits.BdAttachmentCircuit;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.attachment.circuits.BdAttachmentCircuitBuilder;
 
 /*
  * @author arif.hussain@xoriant.com
index 82499b7948b757054feee0afb98ea7b60ae109e1..3b755e913997d1a078d741fa9e3f4445162f0101 100644 (file)
@@ -10,18 +10,26 @@ package org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroupsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroupBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroupKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomains;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomainsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomainBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroupsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroupBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroupKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomains;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomainsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomainBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 
 /*
  * @author arif.hussain@xoriant.com
index 9aaf400cc0782ade8a155b646979d11bf8997442..d6fc614a865285c29da2ae8efd59b74507e162fb 100644 (file)
@@ -9,11 +9,15 @@ package org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper;
 
 import java.util.LinkedList;
 import java.util.List;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.PseudowireIdRange;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowiresBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.pseudowires.BdPseudowire;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.pseudowires.BdPseudowireBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.PseudowireIdRange;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowiresBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.pseudowires.BdPseudowire;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.pseudowires.BdPseudowireBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
 
 /*
index 52969787cea35d64f7ebc1e0b351de30e49ab562..7ab087942de135659b8c857deba58e490a42ccbe 100644 (file)
@@ -7,12 +7,16 @@
  */
 package org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper;
 
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpnBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.Database;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.DatabaseBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpnBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.Database;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.DatabaseBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 
index b63cf53185d5ce0e53015a635cf3d50bc4281bfd..00ddaf90dce7c9587886543a8c57f1e510d2b939 100644 (file)
@@ -11,13 +11,17 @@ import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.PseudowireIdRange;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.PseudowiresBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.PseudowireBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.NeighborBuilder;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.PseudowireIdRange;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.PseudowiresBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.PseudowireBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.NeighborBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
 
 /*
index 9cbf294891673d8b1ccec9265708db693c42875c..2029554e40ebdd1d3e0f037898e40da1795ef7f7 100644 (file)
@@ -10,18 +10,26 @@ package org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroupsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroupBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroupKey;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnects;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnectsBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnectBuilder;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroupsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroupBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroupKey;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnects;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnectsBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnectBuilder;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 
 
 /*
index 76c554f6d58a53d2d435a7377de0f415cc73bdac..a41dd95504ab4550fd70cd7896b52084927008c5 100644 (file)
@@ -10,6 +10,16 @@ package org.opendaylight.unimgr.utils;
 
 public interface NetconfConstants {
 
+    /*
+     * The YANG models identified by these constants must match those
+     * supported by the XR devices to which unimgr connects.
+     */
+
+    String NETCONF_TOPOLODY_NAME = "topology-netconf";
+
+    /*
+     * Cisco IOS XR 6.2.1
+
     String CAPABILITY_IOX_L2VPN =
         "(http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg?revision=2015-11-09)Cisco-IOS-XR-l2vpn-cfg";
 
@@ -18,6 +28,30 @@ public interface NetconfConstants {
 
     String CAPABILITY_IOX_INFRA_POLICYMGR =
         "(http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg?revision=2016-12-15)Cisco-IOS-XR-infra-policymgr-cfg";
+    */
 
-    String NETCONF_TOPOLODY_NAME = "topology-netconf";
+    /*
+     * Cisco IOS XR 6.4.1
+     */
+    String CAPABILITY_IOX_L2VPN =
+        "(http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg?revision=2017-06-26)Cisco-IOS-XR-l2vpn-cfg";
+
+    String CAPABILITY_IOX_IFMGR =
+        "(http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg?revision=2017-09-07)Cisco-IOS-XR-ifmgr-cfg";
+
+    String CAPABILITY_IOX_INFRA_POLICYMGR =
+        "(http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg?revision=2017-12-12)Cisco-IOS-XR-infra-policymgr-cfg";
+
+    /*
+     * Cisco IOS XR 6.5.3
+
+    String CAPABILITY_IOX_L2VPN =
+        "(http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg?revision=2017-06-26)Cisco-IOS-XR-l2vpn-cfg";
+
+    String CAPABILITY_IOX_IFMGR =
+        "(http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg?revision=2017-09-07)Cisco-IOS-XR-ifmgr-cfg";
+
+    String CAPABILITY_IOX_INFRA_POLICYMGR =
+        "(http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg?revision=2018-09-30)Cisco-IOS-XR-infra-policymgr-cfg";
+    */
 }
index ba6683b5678738a29d36bb4a3a43e39a06d1af08..601207ab498085b681de82570a87be23876d6f2f 100644 (file)
@@ -17,13 +17,25 @@ import org.junit.Test;
 import org.mockito.Mockito;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.MtuUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.Mtus;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.Mtu;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.InterfaceConfiguration3;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.InterfaceName;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.Mtus;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.mtus.Mtu;
+/*
+ * Cisco IOS XR 6.4.1, rev170626.InterfaceConfiguration3
+ * Cisco IOS XR 6.2.1, rev151109.InterfaceConfiguration4
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.InterfaceConfiguration4;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.InterfaceName;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
 
 
@@ -98,7 +110,7 @@ public class InterfaceHelperTest {
         assertNotNull(actualInterfaceConfiguration);
         assertEquals(interfaceName, actualInterfaceConfiguration.getInterfaceName());
         assertNull(actualInterfaceConfiguration.getMtus());
-        assertNull(actualInterfaceConfiguration.augmentation(InterfaceConfiguration3.class));
+        assertNull(actualInterfaceConfiguration.augmentation(InterfaceConfiguration4.class));
     }
 
     @Test
@@ -139,8 +151,8 @@ public class InterfaceHelperTest {
         assertEquals(mtuValue, actualMtu.getMtu().longValue());
         assertEquals(owner, actualMtu.getOwner());
 
-        InterfaceConfiguration3 l2Configuration =
-                actualInterfaceConfiguration.augmentation(InterfaceConfiguration3.class);
+        InterfaceConfiguration4 l2Configuration =
+                actualInterfaceConfiguration.augmentation(InterfaceConfiguration4.class);
         assertNotNull(l2Configuration);
         assertNotNull(l2Configuration.getL2Transport());
         assertNotNull(l2Configuration.getL2Transport().getEnabled());
@@ -175,13 +187,13 @@ public class InterfaceHelperTest {
         assertNotNull(actualInterfaceConfiguration);
         assertEquals(interfaceName1, actualInterfaceConfiguration.getInterfaceName());
         assertNull(actualInterfaceConfiguration.getMtus());
-        assertNull(actualInterfaceConfiguration.augmentation(InterfaceConfiguration3.class));
+        assertNull(actualInterfaceConfiguration.augmentation(InterfaceConfiguration4.class));
 
         actualInterfaceConfiguration = actualInterfaceConfigurationList.get(1);
 
         assertNotNull(actualInterfaceConfiguration);
         assertEquals(interfaceName2, actualInterfaceConfiguration.getInterfaceName());
         assertNull(actualInterfaceConfiguration.getMtus());
-        assertNull(actualInterfaceConfiguration.augmentation(InterfaceConfiguration3.class));
+        assertNull(actualInterfaceConfiguration.augmentation(InterfaceConfiguration4.class));
     }
 }
index 42844960f9af91c9b237c3701a9cf5f0d0f596f2..2c350d74001edab2cffc7ba53ac31c84ab704120 100644 (file)
@@ -13,9 +13,17 @@ import static org.junit.Assert.assertNotNull;
 import java.util.LinkedList;
 import java.util.List;
 import org.junit.Test;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.Mtus;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.Mtu;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.Mtus;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.mtus.Mtu;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.CiscoIosXrString;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
 
index 3e19f86282b78695544d443243505a9c26316700..93824ff48914239ac1754d7081e97b4264a3780a 100644 (file)
@@ -27,7 +27,11 @@ import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.MountPointHelper;
 import org.opendaylight.unimgr.mef.nrp.common.ResourceActivatorException;
 import org.opendaylight.unimgr.mef.nrp.common.TapiUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortDirection;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortRole;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
index 3ea562b48f7587645e30f9d02c531d3faee684d1..14d943edeaf545b575f9cf29e485ceb35c94675c 100644 (file)
@@ -19,15 +19,23 @@ import org.opendaylight.mdsal.binding.api.MountPointService;
 import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.common.TapiUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomains;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.attachment.circuits.BdAttachmentCircuit;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.BridgeDomains;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.BridgeDomain;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.bd.attachment.circuits.BdAttachmentCircuit;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortDirection;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ConnectivityServiceEndPoint;
index ec295b985f1131c7661142941708d75bb10c8166..97862db524cdd35325ebac5855fd90a72097e405 100644 (file)
@@ -26,12 +26,20 @@ import org.opendaylight.mdsal.binding.api.ReadTransaction;
 import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBrokerTest;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ServiceType;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
index 285e46b369d084a2f429cb8d4219d22c630027e0..3e56e50760ee9615e4e1c856d5fbc3fe9880e96b 100644 (file)
@@ -25,15 +25,23 @@ import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBro
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper.PseudowireHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.Mtu;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.mtus.Mtu;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ServiceType;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index a57207f30e3b53da4bf265c3d9f665f322cc2a10..5a79b052bc37be9e823a1fadcd6f1b60a61f6592 100644 (file)
@@ -26,16 +26,24 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.common.TapiUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.Mtu;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.pseudowire.content.MplsStaticLabels;
+/*
+ * Cisco IOS XR 6.4.1, rev170907
+ * Cisco IOS XR 6.2.1, rev150730
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907.InterfaceConfigurations;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations.InterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev170907._interface.configurations._interface.configuration.mtus.Mtu;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.pseudowire.content.MplsStaticLabels;
 import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev180321.NrpConnectivityServiceEndPointAttrs;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ConnectivityServiceEndPoint;
index 8f4fce119854a958ee3a01ee1fd34e98976179de..3ea128ea3cb853cea31f4c15c0d25b0146e25bf3 100644 (file)
@@ -16,9 +16,17 @@ import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.helper.InterfaceHelper;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.InterfaceName;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.attachment.circuits.AttachmentCircuit;
+/*
+ * Cisco IOS XR 6.4.1, rev171201
+ * Cisco IOS XR 6.2.1, rev150629
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev171201.InterfaceName;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
index bd120b9c16c5ef61c46e5d9f17d31b983d14b1d0..1490c5274b68075c58ab15d323317dff74e0252f 100644 (file)
@@ -13,7 +13,11 @@ import org.junit.Test;
 import org.opendaylight.unimgr.mef.nrp.api.EndPoint;
 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.ServicePort;
 import org.opendaylight.unimgr.mef.nrp.common.TapiUtils;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortDirection;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ConnectivityServiceEndPoint;
index 4952d2b9a311d2b3b8b784a1f9ce21003f9074ce..9ebd1b87b172fd6959cf98a883ad8cb372ad4412 100644 (file)
@@ -10,10 +10,14 @@ package org.opendaylight.unimgr.mef.nrp.cisco.xr.l2vpn.helper;
 import junit.framework.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.BridgeDomainGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.BridgeDomainGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.BridgeDomainGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdAttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.bridge.domain.groups.bridge.domain.group.bridge.domains.bridge.domain.BdPseudowires;
 import org.powermock.api.mockito.PowerMockito;
 
 /*
index 86316547300a1fce9f514731f8b6c8181e4aaeb6..f9379840fef9c63e2b4610f229d91af55b5dfb1b 100644 (file)
@@ -12,9 +12,13 @@ import static org.junit.Assert.assertNotNull;
 
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.L2vpn;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.Database;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.L2vpn;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.Database;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
 
 
 /*
index 5f7ebab3a9c3d918cd85d0d52c27d2695c71edf4..185740d8f44f82e90561102d09827efa17e7cf9b 100644 (file)
@@ -12,9 +12,13 @@ import static org.junit.Assert.assertNotNull;
 
 import java.util.List;
 import org.junit.Test;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.Pseudowire;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.pseudowires.pseudowire.Neighbor;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
index d96eeebaf6ce18ac6ed4f17daa765b9dbe4e53f8..69c594c0332f10af74f103a66573c053d2219e97 100644 (file)
@@ -14,12 +14,16 @@ import java.util.LinkedList;
 import java.util.List;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.XconnectGroups;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.XconnectGroup;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnects;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
-import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
+/*
+ * Cisco IOS XR 6.4.1, rev170626
+ * Cisco IOS XR 6.2.1, rev151109
+ */
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.XconnectGroups;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.XconnectGroup;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.P2pXconnects;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.P2pXconnect;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.AttachmentCircuits;
+import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev170626.l2vpn.database.xconnect.groups.xconnect.group.p2p.xconnects.p2p.xconnect.Pseudowires;
 
 
 /*
index e221f67586b7759e040b2eac08a2252d5ea86136..8137fe3f78b4fed5de21be1578078032c3422859 100644 (file)
@@ -6,8 +6,8 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.2 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
diff --git a/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/infra/policymgr/cfg/rev161215/IdleTimeoutBuilder.java b/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/infra/policymgr/cfg/rev161215/IdleTimeoutBuilder.java
deleted file mode 100644 (file)
index 6c5fc76..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class IdleTimeoutBuilder {
-    private IdleTimeoutBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static IdleTimeout getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/infra/policymgr/cfg/rev161215/PrecedenceBuilder.java b/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/infra/policymgr/cfg/rev161215/PrecedenceBuilder.java
deleted file mode 100644 (file)
index 149d923..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.infra.policymgr.cfg.rev161215;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class PrecedenceBuilder {
-    private PrecedenceBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static Precedence getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/snmp/agent/cfg/rev151027/SnmpDscpValueBuilder.java b/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/snmp/agent/cfg/rev151027/SnmpDscpValueBuilder.java
deleted file mode 100644 (file)
index 4c17435..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.snmp.agent.cfg.rev151027;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class SnmpDscpValueBuilder {
-    private SnmpDscpValueBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static SnmpDscpValue getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/snmp/agent/cfg/rev151027/SnmpPrecedenceValue1Builder.java b/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/ios/xr/snmp/agent/cfg/rev151027/SnmpPrecedenceValue1Builder.java
deleted file mode 100644 (file)
index 382ebe4..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.snmp.agent.cfg.rev151027;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class SnmpPrecedenceValue1Builder {
-    private SnmpPrecedenceValue1Builder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static SnmpPrecedenceValue1 getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/xr/types/rev150629/CharNumBuilder.java b/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/xr/types/rev150629/CharNumBuilder.java
deleted file mode 100644 (file)
index 4ac5158..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class CharNumBuilder {
-    private CharNumBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static CharNum getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/xr/types/rev150629/TtyEscapeCharNumBuilder.java b/cisco-xrmodels/src/main/java/org/opendaylight/yang/gen/v1/http/cisco/com/ns/yang/cisco/xr/types/rev150629/TtyEscapeCharNumBuilder.java
deleted file mode 100644 (file)
index cf3a235..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629;
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
- * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
- *
- * The reason behind putting it under src/main/java is:
- * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
- * loss of user code.
- *
- */
-public class TtyEscapeCharNumBuilder {
-    private TtyEscapeCharNumBuilder() {
-        //Exists only to defeat instantiation.
-    }
-
-    public static TtyEscapeCharNum getDefaultInstance(String defaultValue) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-}
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ifmgr-cfg@2015-07-30.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ifmgr-cfg@2015-07-30.yang
deleted file mode 100644 (file)
index 82edcef..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-module Cisco-IOS-XR-ifmgr-cfg {
-
-  /*** NAMESPACE / PREFIX DEFINITION ***/
-
-  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg";
-
-
-  prefix "ifmgr-cfg";
-
-  /*** LINKAGE (IMPORTS / INCLUDES) ***/
-
-  import Cisco-IOS-XR-types { prefix "xr"; }
-
-  /*** META INFORMATION ***/
-
-  organization "Cisco Systems, Inc.";
-
-  contact
-    "Cisco Systems, Inc.
-     Customer Service
-
-     Postal: 170 West Tasman Drive
-     San Jose, CA 95134
-
-     Tel: +1 800 553-NETS
-
-     E-mail: cs-yang@cisco.com";
-
-  description 
-    "This module contains a collection of YANG definitions
-     for Cisco IOS-XR ifmgr package configuration.
-
-     This module contains definitions
-     for the following management objects:
-       global-interface-configuration: Global scoped configuration
-         for interfaces
-       interface-configurations: interface configurations
-
-     Copyright (c) 2013-2015 by Cisco Systems, Inc.
-     All rights reserved.";
-
-  revision "2015-07-30" {
-    description
-      "Descriptions updated.";
-  }
-
-  revision "2015-01-07" {
-    description
-      "IOS XR 5.3.1 revision.";
-  }
-
-  typedef Interface-mode-enum {
-    type enumeration {
-      enum default {
-        value 0;
-        description "Default Interface Mode";
-      }
-      enum point-to-point {
-        value 1;
-        description "Point-to-Point Interface Mode";
-      }
-      enum multipoint {
-        value 2;
-        description "Multipoint Interface Mode";
-      }
-      enum l2-transport {
-        value 3;
-        description "L2 Transport Interface Mode";
-      }
-    }
-    description "Interface mode enum";
-  }
-  typedef Interface-active {
-    type string {
-      pattern "(act)|(pre)";
-    }
-    description "act:The interface is active, pre:Preconfiguration";
-  }
-  typedef Secondary-admin-state-enum {
-    type enumeration {
-      enum maintenance {
-        value 1;
-        description "Maintenance Mode";
-      }
-    }
-    description "Secondary admin state enum";
-  }
-  typedef Link-status-enum {
-    type enumeration {
-      enum default {
-        value 0;
-        description
-          "Display link status messages for physical links";
-      }
-      enum disable {
-        value 1;
-        description "Disable link status messages";
-      }
-      enum software-interfaces {
-        value 2;
-        description
-          "Display link status messages for all interfaces";
-      }
-    }
-    description "Link status enum";
-  }
-
-  container global-interface-configuration {
-    xr:xr-xml-map "ifmgr_cfg:GlobalInterfaceConfiguration";
-    description "Global scoped configuration for interfaces";
-    leaf link-status {
-      xr:xr-xml-map "ifmgr_cfg:LinkStatus";
-      xr:xr-cli-map "link-status (disable)|(software-interfaces)|(p"+
-        "hysical)|(logical) ";
-      type Link-status-enum;
-      default "default";
-      description "Enable or disable link-status messages";
-    }
-  }
-
-  container interface-configurations {
-    xr:xr-xml-map "ifmgr_cfg:InterfaceConfigurationTable";
-    description "interface configurations";
-
-    list interface-configuration {
-      xr:xr-xml-map "ifmgr_cfg:InterfaceConfiguration";
-      key "active interface-name";
-      description "The configuration for an interface";
-
-      container dampening {
-        xr:xr-xml-map "ifmgr_cfg:Dampening";
-        description
-          "Whether this interface's state changes are
-          dampened or not";
-        leaf args {
-          xr:xr-xml-map "ifmgr_cfg:Args";
-          type enumeration {
-            enum default-values {
-              value 0;
-              description "Default values";
-            }
-            enum specify-half-life {
-              value 1;
-              description "Half Life Specified";
-            }
-            enum specify-all {
-              value 4;
-              description
-                "All Arguments except Restart Penalty
-                Specified";
-            }
-            enum specify-rp {
-              value 5;
-              description "All Arguments Specified";
-            }
-          }
-          description "Dampening Arguments";
-        }
-        leaf half-life {
-          xr:xr-xml-map "ifmgr_cfg:HalfLife";
-          when "../args = 'specify-half-life' or ../args ="+
-            " 'specify-all' or ../args = 'specify-rp'" {
-              description
-                "../Args = 1 or ../Args = 4 or ../Args = 5";
-          }
-          type uint32 {
-            range "1..45";
-          }
-          units "minute";
-          description "Decay half life (in minutes)";
-        }
-        leaf reuse-threshold {
-          xr:xr-xml-map "ifmgr_cfg:ReuseThreshold";
-          when "../args = 'specify-all' or ../args = 'specify-rp'" {
-            description "../Args = 4 or ../Args = 5";
-          }
-          type uint32 {
-            range "1..20000";
-          }
-          description "Reuse threshold";
-        }
-        leaf suppress-threshold {
-          xr:xr-xml-map "ifmgr_cfg:SuppressThreshold";
-          when "../args = 'specify-all' or ../args = 'specify-rp'" {
-            description "../Args = 4 or ../Args = 5";
-          }
-          type uint32 {
-            range "1..20000";
-          }
-          description "Suppress threshold";
-        }
-        leaf suppress-time {
-          xr:xr-xml-map "ifmgr_cfg:SuppressTime";
-          when "../args = 'specify-all' or ../args = 'specify-rp'" {
-            description "../Args = 4 or ../Args = 5";
-          }
-          type uint32 {
-            range "1..255";
-          }
-          units "minute";
-          description "Max suppress time (in minutes)";
-        }
-        leaf restart-penalty {
-          xr:xr-xml-map "ifmgr_cfg:RestartPenalty";
-          when "../args = 'specify-rp'" {
-            description "../Args = 5";
-          }
-          type uint32 {
-            range "0..20000";
-          }
-          description "Restart penalty";
-        }
-      }
-
-      container mtus {
-        xr:xr-xml-map "ifmgr_cfg:MTUConfiguration";
-        description "The MTU configuration for the interface";
-
-        list mtu {
-          xr:xr-xml-map "ifmgr_cfg:MTU";
-          xr:xr-cli-map "interface <interface> (point-to-point)|(l2"+
-            "transport) mtu <number> ";
-          key "owner";
-          description "The MTU for the interface";
-          leaf owner {
-            xr:xr-xml-map "ifmgr_cfg:Owner";
-            type xr:Cisco-ios-xr-string;
-            description
-              "The Owner of the interface - eg. for
-              'LoopbackX' main interface this is 'loopback'";
-          }
-          leaf mtu {
-            xr:xr-xml-map "ifmgr_cfg:MTU";
-            type uint32 {
-              range "64..65535";
-            }
-            mandatory true;
-            description "The MTU value";
-          }
-        }
-      }
-
-      container encapsulation {
-        xr:xr-xml-map "ifmgr_cfg:Encapsulation";
-        description "The encapsulation on the interface";
-        leaf encapsulation {
-          xr:xr-xml-map "ifmgr_cfg:Encapsulation";
-          type string;
-          description "The encapsulation - e.g. hdlc, ppp";
-        }
-        leaf capsulation-options {
-          xr:xr-xml-map "ifmgr_cfg:CapsulationOptions";
-          type int32;
-          description
-            "The options for this capsulation, usually '0'";
-        }
-      }
-      leaf shutdown {
-        xr:xr-xml-map "ifmgr_cfg:Shutdown";
-        xr:xr-cli-map "interface <interface> (point-to-point)|(l2tr"+
-          "ansport) shutdown ";
-        type empty;
-        description
-          "The existence of this configuration indicates
-          the interface is shut down";
-      }
-      leaf interface-virtual {
-        xr:xr-xml-map "ifmgr_cfg:InterfaceVirtual";
-        type empty;
-        description
-          "The mode in which an interface is running. The
-          existence of this object causes the creation of
-          the software virtual/subinterface.";
-      }
-      leaf secondary-admin-state {
-        xr:xr-xml-map "ifmgr_cfg:SecondaryAdminState";
-        type Secondary-admin-state-enum;
-        description "The secondary admin state of the interface";
-      }
-      leaf interface-mode-non-physical {
-        xr:xr-xml-map "ifmgr_cfg:InterfaceModeNonPhysical";
-        type Interface-mode-enum;
-        default "default";
-        description
-          "The mode in which an interface is running. The
-          existence of this object causes the creation of
-          the software subinterface.";
-      }
-      leaf bandwidth {
-        xr:xr-xml-map "ifmgr_cfg:Bandwidth";
-        xr:xr-cli-map "interface <interface> (point-to-point)|(l2tr"+
-          "ansport) bandwidth <number> ";
-        type int32;
-        units "kbit/s";
-        description "The bandwidth of the interface in kbps";
-      }
-      leaf link-status {
-        xr:xr-xml-map "ifmgr_cfg:LinkStatus";
-        xr:xr-cli-map "interface <interface> (point-to-point)|(l2tr"+
-          "ansport) logging events link-status ";
-        type empty;
-        description
-          "Enable interface and line-protocol state change
-          alarms";
-      }
-      leaf description {
-        xr:xr-xml-map "ifmgr_cfg:Description";
-        type string;
-        description "The description of this interface";
-      }
-      leaf active {
-        xr:xr-xml-map "ifmgr_cfg:Active";
-        type Interface-active;
-        description
-          "Whether the interface is active or
-          preconfigured";
-      }
-      leaf interface-name {
-        xr:xr-xml-map "ifmgr_cfg:InterfaceName";
-        type xr:Interface-name;
-        description "The name of the interface";
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ifmgr-cfg@2017-09-07.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ifmgr-cfg@2017-09-07.yang
new file mode 100644 (file)
index 0000000..a3686d9
--- /dev/null
@@ -0,0 +1,323 @@
+module Cisco-IOS-XR-ifmgr-cfg {
+  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg";
+  prefix ifmgr-cfg;
+
+  import Cisco-IOS-XR-types {
+    prefix xr;
+  }
+
+  organization
+    "Cisco Systems, Inc.";
+  contact
+    "Cisco Systems, Inc.
+     Customer Service
+     
+     Postal: 170 West Tasman Drive
+     San Jose, CA 95134
+     
+     Tel: +1 800 553-NETS
+     
+     E-mail: cs-yang@cisco.com";
+  description
+    "This module contains a collection of YANG definitions
+     for Cisco IOS-XR ifmgr package configuration.
+     
+     This module contains definitions
+     for the following management objects:
+       global-interface-configuration: Global scoped configuration
+         for interfaces
+       interface-configurations: interface configurations
+     
+     Copyright (c) 2013-2017 by Cisco Systems, Inc.
+     All rights reserved.";
+
+  revision 2017-09-07 {
+    description
+      "Fixed type translation error.";
+  }
+  revision 2015-07-30 {
+    description
+      "Descriptions updated.";
+  }
+  revision 2015-01-07 {
+    description
+      "IOS XR 5.3.1 revision.";
+  }
+
+  typedef Interface-mode-enum {
+    type enumeration {
+      enum "default" {
+        value 0;
+        description
+          "Default Interface Mode";
+      }
+      enum "point-to-point" {
+        value 1;
+        description
+          "Point-to-Point Interface Mode";
+      }
+      enum "multipoint" {
+        value 2;
+        description
+          "Multipoint Interface Mode";
+      }
+      enum "l2-transport" {
+        value 3;
+        description
+          "L2 Transport Interface Mode";
+      }
+    }
+    description
+      "Interface mode enum";
+  }
+
+  typedef Interface-active {
+    type string {
+      pattern "(act)|(pre)";
+    }
+    description
+      "act:The interface is active, pre:Preconfiguration";
+  }
+
+  typedef Secondary-admin-state-enum {
+    type enumeration {
+      enum "normal" {
+        value 0;
+        description
+          "Normal Mode";
+      }
+      enum "maintenance" {
+        value 1;
+        description
+          "Maintenance Mode";
+      }
+    }
+    description
+      "Secondary admin state enum";
+  }
+
+  typedef Link-status-enum {
+    type enumeration {
+      enum "default" {
+        value 0;
+        description
+          "Display link status messages for physical links";
+      }
+      enum "disable" {
+        value 1;
+        description
+          "Disable link status messages";
+      }
+      enum "software-interfaces" {
+        value 2;
+        description
+          "Display link status messages for all interfaces";
+      }
+    }
+    description
+      "Link status enum";
+  }
+
+  container global-interface-configuration {
+    description
+      "Global scoped configuration for interfaces";
+    leaf link-status {
+      type Link-status-enum;
+      default "default";
+      description
+        "Enable or disable link-status messages";
+    }
+  }
+  container interface-configurations {
+    description
+      "interface configurations";
+    list interface-configuration {
+      key "active interface-name";
+      description
+        "The configuration for an interface";
+      container dampening {
+        description
+          "Whether this interface's state changes are
+           dampened or not";
+        leaf args {
+          type enumeration {
+            enum "default-values" {
+              value 0;
+              description
+                "Default values";
+            }
+            enum "specify-half-life" {
+              value 1;
+              description
+                "Half Life Specified";
+            }
+            enum "specify-all" {
+              value 4;
+              description
+                "All Arguments except Restart Penalty
+                 Specified";
+            }
+            enum "specify-rp" {
+              value 5;
+              description
+                "All Arguments Specified";
+            }
+          }
+          description
+            "Dampening Arguments";
+        }
+        leaf half-life {
+          when "../args = 'specify-half-life' or ../args = 'specify-all' or ../args = 'specify-rp'" {
+            description
+              "../Args = SpecifyHalfLife or ../Args =
+               SpecifyAll or ../Args = SpecifyRP";
+          }
+          type uint32 {
+            range "1..45";
+          }
+          units "minute";
+          description
+            "Decay half life (in minutes)";
+        }
+        leaf reuse-threshold {
+          when "../args = 'specify-all' or ../args = 'specify-rp'" {
+            description
+              "../Args = SpecifyAll or ../Args = SpecifyRP";
+          }
+          type uint32 {
+            range "1..20000";
+          }
+          description
+            "Reuse threshold";
+        }
+        leaf suppress-threshold {
+          when "../args = 'specify-all' or ../args = 'specify-rp'" {
+            description
+              "../Args = SpecifyAll or ../Args = SpecifyRP";
+          }
+          type uint32 {
+            range "1..20000";
+          }
+          description
+            "Suppress threshold";
+        }
+        leaf suppress-time {
+          when "../args = 'specify-all' or ../args = 'specify-rp'" {
+            description
+              "../Args = SpecifyAll or ../Args = SpecifyRP";
+          }
+          type uint32 {
+            range "1..255";
+          }
+          units "minute";
+          description
+            "Max suppress time (in minutes)";
+        }
+        leaf restart-penalty {
+          when "../args = 'specify-rp'" {
+            description
+              "../Args = SpecifyRP";
+          }
+          type uint32 {
+            range "0..20000";
+          }
+          description
+            "Restart penalty";
+        }
+      }
+      container mtus {
+        description
+          "The MTU configuration for the interface";
+        list mtu {
+          key "owner";
+          description
+            "The MTU for the interface";
+          leaf owner {
+            type xr:Cisco-ios-xr-string;
+            description
+              "The Owner of the interface - eg. for
+               'LoopbackX' main interface this is 'loopback'";
+          }
+          leaf mtu {
+            type uint32 {
+              range "64..65535";
+            }
+            mandatory true;
+            description
+              "The MTU value";
+          }
+        }
+      }
+      container encapsulation {
+        description
+          "The encapsulation on the interface";
+        leaf encapsulation {
+          type string;
+          description
+            "The encapsulation - e.g. hdlc, ppp";
+        }
+        leaf capsulation-options {
+          type uint32;
+          description
+            "The options for this capsulation, usually '0'";
+        }
+      }
+      leaf shutdown {
+        type empty;
+        description
+          "The existence of this configuration indicates
+           the interface is shut down";
+      }
+      leaf interface-virtual {
+        type empty;
+        description
+          "The mode in which an interface is running. The
+           existence of this object causes the creation of
+           the software virtual/subinterface.";
+      }
+      leaf secondary-admin-state {
+        type Secondary-admin-state-enum;
+        description
+          "The secondary admin state of the interface";
+      }
+      leaf interface-mode-non-physical {
+        type Interface-mode-enum;
+        default "default";
+        description
+          "The mode in which an interface is running. The
+           existence of this object causes the creation of
+           the software subinterface.";
+      }
+      leaf bandwidth {
+        type uint32 {
+          range "0..4294967295";
+        }
+        units "kbit/s";
+        description
+          "The bandwidth of the interface in kbps";
+      }
+      leaf link-status {
+        type empty;
+        description
+          "Enable interface and line-protocol state change
+           alarms";
+      }
+      leaf description {
+        type string;
+        description
+          "The description of this interface";
+      }
+      leaf active {
+        type Interface-active;
+        description
+          "Whether the interface is active or
+           preconfigured";
+      }
+      leaf interface-name {
+        type xr:Interface-name;
+        description
+          "The name of the interface";
+      }
+    }
+  }
+}
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-infra-policymgr-cfg@2016-12-15.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-infra-policymgr-cfg@2016-12-15.yang
deleted file mode 100755 (executable)
index 11f36b9..0000000
+++ /dev/null
@@ -1,1879 +0,0 @@
-module Cisco-IOS-XR-infra-policymgr-cfg {
-   namespace 
-     "http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg";
-   
-   prefix "infra-policymgr-cfg";
-     
-   import ietf-inet-types { 
-     prefix inet;
-   }
-     
-   organization "Cisco Systems, Inc.";
-   contact
-     "Cisco Systems, Inc.
-      Customer Service
-      Postal: 170 West Tasman Drive
-      San Jose, CA 95134
-      Tel: +1 800 553-NETS
-      E-mail: cs-yang@cisco.com";
-   description
-     "This module contains a collection of YANG definitions
-      for Cisco IOS-XR ASR9k policy manager configuration.
-      Copyright (c) 2013, 2015-2016 by Cisco Systems, Inc.
-      All rights reserved.";
-   revision "2016-12-15" {
-     description
-       "IOS XR 6.1.3 revision.";
-   }
-
-   revision "2015-05-18" {
-     description
-       "IOS XR 5.3.2 revision.";
-   }
-   revision "2013-07-22" {
-     description
-       "Initial revision.";
-   }
-   typedef mac-address {
-      type string {
-        pattern '[0-9a-fA-F]{4}(\.[0-9a-fA-F]{4}){2}';
-      }
-      description
-       "The mac-address type represents a MAC address.
-        The canonical representation uses lowercase characters.
-        It is made of three groups of four hexadecimal digits
-        separated by dots (.)";
-    }
-   typedef Class-map-type {
-     type enumeration {
-       enum qos {
-         value 1;
-         description "QoS Classmap.";
-       }
-       enum traffic {
-         value 3;
-         description "TRAFFIC Classmap.";
-       }
-       enum control {
-         value 4;
-         description "Control Subscriber Classmap.";
-       }
-     }
-     description "Policy manager class-map type.";
-   }
-   typedef Alarm-severity {
-     type string {
-       pattern "(informational)|(notification)|(warning)|(error)|"+
-               "(critical)|(alert)|(emergency)";
-     }
-     description "Alaram severity types.";
-   }
-   typedef Policy-map-type {
-     type enumeration {
-       enum qos {
-         value 1;
-         description "QoS Policymap";
-       }
-       enum pbr {
-         value 2;
-         description "PBR Policymap";
-       }
-       enum traffic {
-         value 3;
-         description "TRAFFIC Policymap";
-       }
-       enum subscriber-control {
-         value 4;
-         description "SUBSCRIBER-CONTROL Policymap";
-       }
-       enum redirect {
-         value 6;
-         description "REDIRECT Policy map";
-       }
-       enum flow-monitor {
-         value 7;
-         description "FLOWMONITOR Policy map";
-       }
-     }
-     description "Policy manager policy-map type.";
-   }
-   typedef Service-policy-type {
-     type string {
-       pattern "(PBR)|(QOS)|(REDIRECT)|(TRAFFIC)|"+
-                "(pbr)|(qos)|(redirect)|(traffic)";
-     }
-     description "Policy manager service-policy type.";
-   }
-   typedef Pmap-class-map-type {
-     type enumeration {
-       enum qos {
-         value 1;
-         description "QoS Classmap.";
-       }
-       enum traffic {
-         value 2;
-         description "TRAFFIC Classmap.";
-       }
-       enum subscriber-control {
-         value 3;
-         description "Subscriber Control Classmap.";
-       }
-     }
-     description "Policy manager class-map type.";
-   }
-   typedef Bandwidth-units {
-     type string {
-       pattern "(bps)|(kbps)|(mbps)|(gbps)|(percent)|(per-million)|"+
-               "(per-thousand)";
-     }
-     description "Supported units for bandwidth.
-                  bps          - units in Bits/Sec
-                  kbps         - units in KiloBits/Sec
-                  mbps         - units in MegaBits/Sec
-                  gbps         - units in GigaBits/Sec
-                  percent      - units in Percentage
-                  per-million  - parts per-million bandwidth value
-                  per-thousand - Parts per-thousand bandwidth value";
-   }
-   typedef Bandwidth-remaining-units {
-     type string {
-       pattern "(percent)|(ratio)";
-     }
-     description "Supported units for bandwidth remaining.
-                  percent      - units in Percentage
-                  ratio        - units in Ratio";
-   }
-   typedef Rate-units {
-     type string {
-       pattern "(bps)|(kbps)|(mbps)|(gbps)|(pps)|(percent)|(cellsps)";
-     }
-     description "Supported units for police rate or peak-rate.
-                  bps     - units in Bits/Sec
-                  kbps    - units in KiloBits/Sec
-                  mbps    - units in MegaBits/Sec
-                  gbps    - units in GigaBits/Sec
-                  pps     - units in Packets/Sec
-                  percent - units in Percentage
-                  cellsps - units in Cells/Sec";
-   }
-   typedef Cac-rate-units {
-     type string {
-       pattern "(bps)|(kbps)|(mbps)|(gbps)|(cellsps)";
-     }
-     description "Supported units for CAC rate or flow-rate.
-                  bps     - units in Bits/Sec
-                  kbps    - units in KiloBits/Sec
-                  mbps    - units in MegaBits/Sec
-                  gbps    - units in GigaBits/Sec
-                  cellsps - units in Cells/Sec";
-   }
-   typedef Queue-units {
-     type string {
-       pattern "(bytes)|(kbytes)|(mbytes)|(gbytes)|(us)|(ms)|"+
-               "(packets)|(cells)|(percent)";
-     }
-     description "Supported units for queue.
-                  bytes   - units in Bytes
-                  kbytes  - units in KiloBytes
-                  mbytes  - units in MegaBytes
-                  gbytes  - units in Gigabytes
-                  us      - units in Microseconds
-                  ms      - units in Milliseconds
-                  packets - units in Packets
-                  cells   - units in Cells
-                  percent - units in Percent";
-   }
-   
-   typedef Threshold-units {
-     type string {
-       pattern "(bytes)|(kbytes)|(mbytes)|(gbytes)|(us)|(ms)|"+
-               "(packets)|(cells)";
-     }
-     description "Supported units for RED threshold.
-                  bytes   - units in Bytes
-                  kbytes  - units in KiloBytes
-                  mbytes  - units in MegaBytes
-                  gbytes  - units in GigaBytes
-                  us      - units in Microseconds
-                  ms      - units in Milliseconds
-                  packets - units in Packets
-                  cells   - units in Cells";
-   }
-   
-   typedef Pfc-units {
-    type string {
-      pattern "(bytes)|(kbytes)|(mbytes)|(gbytes)|(us)|(ms)|"+
-              "(packets)|(cells)";
-    }
-    description "Supported units for pfc.
-                 bytes   - units in Bytes
-                 kbytes  - units in KiloBytes
-                 mbytes  - units in MegaBytes
-                 gbytes  - units in Gigabytes
-                 us      - units in Microseconds
-                 ms      - units in Milliseconds
-                 packets - units in Packets
-                 cells   - units in Cells";
-  }
-   typedef Float-str {
-     type string {
-       pattern "[0-9]+(\.[0-9]+)?";
-     }
-     description "Floating point number string representation.";
-   }
-   
-   typedef Dscp {
-     type string {
-       pattern "([0-9]|[1-5][0-9]|6[0-3])|"+
-               "(af11)|(af12)|(af13)|(af21)|(af22)|(af23)|(af31)|"+
-               "(af32)|(af33)|(af41)|(af42)|(af43)|(ef)|(default)|"+
-               "(cs1)|(cs2)|(cs3)|(cs4)|(cs5)|(cs6)|(cs7)";
-     }
-     description "DSCP value string representation.
-                  Should be single value 0..63 or predefined string.";
-   }
-   typedef Dscp-range {
-     type string {
-       pattern "([0-9]|[1-5][0-9]|6[0-3])|"+
-               "(([0-9]|[1-5][0-9]|6[0-3])-"+
-               "([0-9]|[1-5][0-9]|6[0-3]))|"+
-               "(af11)|(af12)|(af13)|(af21)|(af22)|(af23)|(af31)|"+
-               "(af32)|(af33)|(af41)|(af42)|(af43)|(ef)|(default)|"+
-               "(cs1)|(cs2)|(cs3)|(cs4)|(cs5)|(cs6)|(cs7)";
-     }
-     description "DSCP value or range string representation.
-                  Should be single value 0..63 or predefined string 
-                  or range <min>-<max>.";
-   }
-   
-   typedef Num-range {
-     type string {
-       pattern "(\d+)|(\d+\-\d+)";
-     }
-     description "Numeric value or range string representation.
-                  Should be single value or range <min>-<max>.";
-   }
-   
-   typedef Protocol {
-     type string {
-       pattern 
-         "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|"+
-         "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\-"+
-         "([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))|"+
-         "((ahp)|(dhcpv4)|(dhcpv6)|(eigrp)|(esp)|(gre)|(icmp)|"+
-         "(igmp)|(igrp)|(ipinip)|(ipv4)|(ipv6)|(ipv6icmp)|(mpls)|"+
-         "(nos)|(ospf)|(pcp)|(pim)|(ppp)|(sctp)|(tcp)|(udp))";
-     }
-     description "Numeric value or range or string representation.
-                  Should be single value or range 0..255.";
-   }
-   
-   typedef Ethertype {
-     type string {
-       pattern 
-         "((153[6-9]|15[4-9][0-9]|1[6-9][0-9][0-9]|[2-9][0-9][0-9][0-9])|"+
-         "([1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9])|"+
-         "(65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|"+
-         "((arp)|(ipv4)|(ipv6))";
-     }
-     description "Numeric value or string representation.
-                  Should be single value 1536..65535 or predefined string.";
-   }
-   typedef Precedence {
-     type union {
-       type uint8 {
-         range "0..7";
-       }
-       type string {
-         pattern "(critical)|(flash)|(flash-override)|(immediate)|"+
-                 "(internet)|(network)|(priority)|(routine)";
-       }
-     }
-     description "Precedence value.
-                  critical        Critical precedence (5)
-                  flash           Flash precedence (3)
-                  flash-override  Flash override precedence (4)
-                  immediate       Immediate precedence (2)
-                  internet        Internetwork control precedence (6)
-                  network         Network control precedence (7)
-                  priority        Priority precedence (1)
-                  routine         Routine precedence (0)";
-   }
-   
-   typedef Cos {
-     type uint8 {
-       range "0..7";
-     }
-     description "Cos value.";
-   }
-   typedef Idle-timeout-number {
-     type uint16 {
-       range "10..2550";
-     }
-     units "seconds";
-     description "String that idle-timeout can take.";
-   }
-   
-   typedef Idle-timeout-string {
-     type string {
-       pattern "(None)|(none)";
-     }
-     description "This flow does not expire.";
-   }
-   
-   typedef Idle-timeout {
-     type union {
-       type Idle-timeout-number;
-       type Idle-timeout-string;
-     }
-     description "Idle timeout.";
-   }
-   
-   typedef Event-type {
-     type enumeration {
-       enum account-logoff {
-         description "Account logoff event.";
-       }
-       enum account-logon {
-         description "Account logon event.";
-       }
-       enum authentication-failure {
-         description "Authentication failure event.";
-       }
-       enum authentication-no-response {
-         description "Authentication no response event.";
-       }
-       enum authorization-failure {
-         description "Authorization failure event.";
-       }
-       enum authorization-no-response {
-         description "Authorization no response event.";
-       }
-       enum credit-exhausted {
-         description "Credit exhaustion event.";
-       }
-       enum exception {
-         description "Exception event.";
-       }
-       enum idle-timeout {
-         description "Idle timeout event.";
-       }
-       enum quota-depleted {
-         description "Quota depletion event.";
-       }
-       enum service-start {
-         description "Service start event.";
-       }
-       enum service-stop {
-         description "Service stop event.";
-       }
-       enum session-activate {
-         description "Session activate event.";
-       }
-       enum session-start {
-         description "Session start event.";
-       }
-       enum session-stop {
-         description "Session stop event.";
-       }
-       enum timer-expiry {
-         description "Timer expiry event.";
-       }
-     }
-     description "Event type.";
-   }
-   
-   typedef Execution-strategy {
-     type enumeration {
-       enum do-all {
-         description "Do all actions.";
-       }
-       enum do-until-failure {
-         description "Do all actions until failure.";
-       }
-       enum do-until-success {
-         description "Do all actions until success.";
-       }
-     }
-     description "Executuion strategy.";
-   }
-   
-   typedef Authorize-identifier {
-     type enumeration {
-       enum circuit-id {
-         description "Authorize circuit ID.";
-       }
-       enum dhcp-client-id {
-         description "Authorize dhcp client ID.";
-       }
-       enum remote-id {
-         description "Authorize remote ID.";
-       }
-       enum source-address-ipv4 {
-         description "Authorize source IPv4 address.";
-       }
-       enum source-address-ipv6 {
-         description "Authorize source IPv6 address.";
-       }
-       enum source-address-mac {
-         description "Authorize source MAC address.";
-       }
-       enum username {
-         description "Authorize username.";
-       }
-     }
-     description "Authorize identifier.";
-   }
-   
-   grouping MATCH {
-     description "Supported 'match' or 'match-not' actions.";
-     leaf-list ipv4-dscp {
-       type Dscp-range;
-       max-elements 8;
-       description "Match IPv4 DSCP.";
-     }
-     leaf-list ipv6-dscp {
-       type Dscp-range;
-       max-elements 8;
-       description "Match IPv6 DSCP.";
-     }
-     leaf-list dscp {
-       type Dscp-range;
-       max-elements 8;
-       description "Match DSCP.";
-     }
-     leaf-list ipv4-precedence {
-       type Precedence;
-       max-elements 8;
-       description "Match IPv4 precedence.";
-     }
-     leaf-list ipv6-precedence {
-       type Precedence;
-       max-elements 8;
-       description "Match IPv6 precedence.";
-     }
-     leaf-list precedence {
-       type Precedence;
-       max-elements 8;
-       description "Match precedence.";
-     }
-     leaf-list qos-group {
-       type Num-range;
-       max-elements 8;
-       description "Match QoS group.
-                    Should be value 0..512 or range.";
-     }
-     leaf-list traffic-class {
-       type Num-range;
-       max-elements 8;
-       description "Match Traffic Class.
-                    Should be value 0..7 or range.";
-     }
-     leaf-list cos {
-       type Cos;
-       max-elements 8;
-       description "Match CoS.";
-     }
-     leaf-list inner-cos {
-       type Cos;
-       max-elements 8;
-       description "Match inner CoS.";
-     }
-     leaf dei {
-       type uint8 {
-         range "0..1";
-       }
-       description "Match DEI bit.";
-     }
-     leaf dei-inner {
-       type uint8 {
-         range "0..1";
-       }
-       description "Match DEI INNER  bit.";
-     }
-     leaf-list protocol {
-       type Protocol;
-       max-elements 7;
-       description "Match protocol.";
-     }
-     leaf ipv4-acl {
-       type string {
-         length "1..64";
-       }
-       description "Match IPv4 ACL.";
-     }
-     leaf ipv6-acl {
-       type string {
-         length "1..64";
-       }
-       description "Match IPv6 ACL.";
-     }
-     leaf ethernet-services-acl {
-       type string {
-         length "1..64";
-       }
-       description "Match Ethernet Services";
-     }
-     leaf-list mpls-experimental-topmost {
-       type Cos;
-       max-elements 8;
-       description "Match MPLS experimental topmost label.";
-     }
-     leaf-list mpls-experimental-imposition {
-       type Cos;
-       max-elements 8;
-       description "Match MPLS experimental imposition label.";
-     }
-     leaf-list discard-class {
-       type Cos;
-       max-elements 8;
-       description "Match discard class.";
-     }
-     leaf-list ipv4-packet-length {
-       type Num-range;
-       max-elements 8;
-       description "Match IPv4 packet length.
-                    Should be value 0..65535 or range.";
-     }
-     leaf-list ipv6-packet-length {
-       type Num-range;
-       max-elements 8;
-       description "Match IPv6 packet length. 
-                    Should be value 0..65535 or range.";
-     }
-     leaf-list packet-length {
-       type Num-range;
-       max-elements 8;
-       description "Match packet length. 
-                    Should be value 0..65535 or range.";
-     }
-     leaf mpls-disposition-ipv4-access-list {
-       type string {
-         length "1..32";
-       }
-       description "Match MPLS Label Disposition IPv4 access list.";
-     }
-     leaf mpls-disposition-ipv6-access-list {
-       type string {
-         length "1..32";
-       }
-       description "Match MPLS Label Disposition IPv6 access list.";
-     }
-     leaf-list vlan {
-       type Num-range;
-       max-elements 8;
-       description "Match VLAN ID.";
-     }
-     leaf-list inner-vlan {
-       type Num-range;
-       max-elements 8;
-       description "Match inner VLAN ID.";
-     }
-     leaf-list flow-tag {
-       type Num-range;
-       max-elements 8;
-       description "Match flow-tag. Should be value 1..63 or range.";
-     }
-     leaf-list ethertype {
-       type Ethertype;
-       max-elements 8;
-       description "Match Ethertype.";
-     }
-     list destination-address-ipv4 {
-       key "address netmask";
-       max-elements 8;
-       description "Match destination IPv4 address.";
-       leaf address {
-         type inet:ipv4-address-no-zone;
-         description "IPv4 address.";
-       }
-       leaf netmask {
-         type inet:ipv4-address-no-zone;
-         description "IPv4 netmask.";
-       }
-     }
-     list destination-address-ipv6 {
-       key "address prefix-length";
-       max-elements 8;
-       description "Match destination IPv6 address.";
-       leaf address {
-         type inet:ipv6-address-no-zone;
-         description "IPv6 address.";
-       }
-       leaf prefix-length {
-         type uint8 {
-           range "0..128";
-         }
-         description "IPv6 prefix length.";
-       }
-     }
-     leaf-list destination-port {
-       type Num-range;
-       max-elements 8;
-       description "Match destination port. 
-                    Should be value 0..65535 or range.";
-     }
-     leaf-list fragment-type {
-       type string {
-         pattern "(first-fragment)|(is-fragment)|(last-fragment)";
-       }
-       max-elements 3;
-       description "Match fragment type for a packet.";
-     }
-     leaf-list frame-relay-dlci {
-       type Num-range;
-       max-elements 8;
-       description "Match frame-relay DLCI value. 
-                    Should be value 16..1007 or range.";
-     }
-     leaf fr-de {
-         type uint8 {
-           range "0..1";
-         }
-         description "Set FrameRelay DE bit.";
-     }
-     leaf-list icmpv4-code {
-       type Num-range;
-       max-elements 8;
-       description "Match IPv4 ICMP code. 
-                    Should be value 0..255 or range.";
-     }
-     leaf-list icmpv4-type {
-       type Num-range;
-       max-elements 8;
-       description "Match IPv4 ICMP type. 
-                    Should be value 0..255 or range.";
-     }
-     leaf-list icmpv6-code {
-       type Num-range;
-       max-elements 8;
-       description "Match IPv6 ICMP code. 
-                    Should be value 0..255 or range.";
-     }
-     leaf-list icmpv6-type {
-       type Num-range;
-       max-elements 8;
-       description "Match IPv6 ICMP type. 
-                    Should be value 0..255 or range.";
-     }
-     list source-address-ipv4 {
-       key "address netmask";
-       max-elements 8;
-       description "Match source IPv4 address.";
-       leaf address {
-         type inet:ipv4-address-no-zone;
-         description "IPv4 address.";
-       }
-       leaf netmask {
-         type inet:ipv4-address-no-zone;
-         description "IPv4 netmask.";
-       }
-     }
-     list source-address-ipv6 {
-       key "address prefix-length";
-       max-elements 8;
-       description "Match source IPv6 address.";
-       leaf address {
-         type inet:ipv6-address-no-zone;
-         description "IPv6 address.";
-       }
-       leaf prefix-length {
-         type uint8 {
-           range "0..128";
-         }
-         description "IPv6 prefix length.";
-       }
-     }
-     leaf-list source-port {
-       type Num-range;
-       max-elements 8;
-       description "Match source port. 
-                    Should be value 0..65535 or range.";
-     }
-     leaf tcp-flag {
-       type uint16 {
-         range "0..4095";
-       }
-       description "Match TCP flags.";
-     }
-     leaf authen-status {
-       type string {
-         pattern "(authenticated)|(unauthenticated)";
-       }
-       description "Match authentication status.";
-     }
-     leaf-list circuit-id {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match Circuit ID."; 
-     }
-     leaf-list circuit-id-regex {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match Circuit id regex."; 
-     }
-     leaf-list dhcp-client-id {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match dhcp client ID."; 
-     }
-     leaf-list dhcp-client-id-regex {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match dhcp client id regex."; 
-     }
-     list domain-name {
-       key "name format";
-       max-elements 8;
-       description "Match domain name.";
-       leaf name {
-         type string {
-           length "1..32";
-         }
-         description "Domain name or regular expression.";
-       }
-       leaf format {
-         type string {
-           length "1..32";
-         }
-         description "Domain-format name.";
-       }
-     } 
-     list domain-name-regex {
-       key "regex format";
-       max-elements 8;
-       description "Match domain name.";
-       leaf regex {
-         type string {
-           length "1..32";
-         }
-         description "Domain name or regular expression.";
-       }
-       leaf format {
-         type string {
-           length "1..32";
-         }
-         description "Domain-format name.";
-       }
-     } 
-     leaf-list remote-id {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match remote ID."; 
-     }
-     leaf-list remote-id-regex {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match remote id regex."; 
-     }
-     leaf-list service-name {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match servicve name.";
-     }
-     leaf-list service-name-regex {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match servicve name regular expression.";
-     }
-     leaf-list timer {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match timer.";
-     }
-     leaf-list timer-regex {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match timer regular expression.";
-     }
-     leaf-list user-name {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match user name.";
-     }
-     leaf-list user-name-regex {
-       type string {
-         length "1..32";
-       }
-       max-elements 8;
-       description "Match user name regular expression.";
-     }
-     leaf-list source-mac {
-         type string;
-         max-elements 8;
-         description "Match source MAC address.";
-       }
-       leaf-list destination-mac {
-         type string;
-         max-elements 8;
-         description "Match destination MAC address.";
-       }
-        leaf vpls-control {
-          type empty;
-          description "Match VPLS control";
-         }
-         leaf vpls-broadcast{
-           type empty;
-           description "Match VPLS Broadcast";
-        }
-        leaf vpls-multicast {
-          type empty;
-          description "Match VPLS Multicast";
-         }
-        leaf vpls-known {
-          type empty;
-          description "Match VPLS Known";
-         }
-        leaf vpls-unknown {
-          type empty;
-          description "Match VPLS Unknown";
-         }
-   }
-   
-   grouping MATCH-MATCHNOT {
-     description "match or match-not containers.";
-     container match {
-       description "Match rules.";
-       uses MATCH;
-       
-       leaf atm-clp {
-         type uint8 {
-           range "0..1";
-         }
-        description "Match ATM CLP bit.";
-       }
-       leaf atm-oam {
-         type empty;
-         description "Match ATM OAM.";
-       }
-       leaf cac-admit {
-         type empty;
-         description "Match CAC admitted.";
-       }
-       leaf cac-unadmit {
-         type empty;
-         description "Match CAC unadmitted.";
-       }
-       container flow {
-         description "Match flow.";
-         leaf-list flow-key {
-           type string {
-             pattern "(SourceIP)|(DestinationIP)|(5Tuple)";
-           }
-           max-elements 2;
-           description "Configure the flow-key parameters.";
-         }
-         container flow-cache {
-           description "Configure the flow-cache parameters";
-           leaf idle-timeout {
-             type Idle-timeout;
-             description "Maximum time of inactivity for a flow.";
-           }
-         }
-       }
-     }
-     container match-not {
-       description "Match not rules.";
-       uses MATCH;
-       container flow {
-         description "Match flow.";
-         leaf-list flow-tag {
-           type uint16 {
-               range "1..63";
-           }
-           max-elements 2;
-           description "Configure the flow-tag parameters.";
-         }
-       }
-     }  
-   }
-   grouping CLASS-MAP-RULE {
-     description "Class-map rule";
-     leaf class-map-mode-match-any {
-       when "count(../class-map-mode-match-all) = 0" {
-           description "Class MUST have only one mode.";
-       }
-       type empty;
-       description "Match all match criteria";
-     }
-     leaf class-map-mode-match-all {
-       when "count(../class-map-mode-match-any) = 0" {
-           description "Class MUST have only one mode.";
-       }
-       type empty;
-       description "Match any match criteria.";
-     }
-     uses MATCH-MATCHNOT;
-     leaf description {
-       type string;
-       description "Description for this policy-map.";
-     }
-   }
-   
-   grouping POLICY-MARK {
-     description "Policy packet marking actions.";
-     leaf dscp {
-       type Dscp;
-       description 
-         "Marks a packet by setting the DSCP in the ToS byte.";
-     }
-     leaf qos-group {
-       type uint16 {
-         range "0..512";
-       }
-       description
-         "Sets the QoS group identifiers on IPv4 or MPLS packets.
-          The set qos-group is supported only on an ingress policy.";
-     }
-     leaf traffic-class {
-       type uint8 {
-         range "0..7";
-       }
-       description
-         "Sets the Traffic class identifiers on IPv4 or MPLS packets.";
-     }
-     leaf discard-class {
-       type uint8 {
-         range "0..7";
-       }
-       description
-         "Sets the discard class on IPv4 or MPLS packets.
-          The discard-class can be used only in service policies 
-          that are attached in the ingress policy.";
-     }
-     leaf forward-class {
-       type uint8 {
-         range "0..7";
-       }
-       description 
-         "Sets the discard class.";
-     }
-     leaf df {
-       type uint8 {
-         range "0..1";
-       }
-       description "Set DF bit.";
-     }
-     leaf cos {
-       type uint8 {
-         range "0..7";
-       }
-       description 
-         "Sets the specific IEEE 802.1Q Layer 2 CoS value of an
-          outgoing packet.
-          This command should be used by a router if a user wants
-          to mark a packet that is being sent to a switch. 
-          Switches can leverage Layer 2 header information, 
-          including a CoS value marking. Packets entering an 
-          interface cannot be set with a CoS value.";
-     }
-     leaf inner-cos {
-       type uint8 {
-         range "0..7";
-       }
-       description "Set inner cos.";
-     }
-     leaf precedence {
-       type Precedence;
-       description "Sets the precedence value in the IP header.";
-     }
-     leaf precedence-tunnel {
-       type Precedence;
-       description "Sets the precedence tunnel value for ipsec.";
-     }
-     leaf mpls-experimental-top-most {
-       type uint8 {
-         range "0..7";
-       }
-       description 
-         "Sets the experimental value of the MPLS packet top-most
-          labels.";
-     }
-     leaf mpls-experimental-imposition {
-       type uint8 {
-          range "0..7";
-       }
-       description
-         "Sets the experimental value of the MPLS packet 
-          imposition labels.
-          Imposition can be used only in service policies that 
-          are attached in the ingress policy";
-     }
-     leaf srp-priority {
-       type uint8 {
-         range "0..7";
-       }
-       description 
-         "Sets the spatial reuse protocol priority value of an 
-          outgoing packet.";
-     }
-     leaf fr-de {
-         type uint8 {
-           range "0..1";
-         }
-         description "Set FrameRelay DE bit.";
-     }
-     leaf dei {
-         type uint8 {
-           range "0..1";
-         }
-         description "Set DEI bit.";
-     }
-     leaf dei-imposition {
-         type uint8 {
-           range "0..1";
-         }
-         description "Set DEI imposition bit.";
-     }
-     leaf source-address {
-         type inet:ipv4-address-no-zone;
-         description "Source IPv4 address.";
-     }
-     leaf destination-address {
-         type inet:ipv4-address-no-zone;
-         description "Destination IPv4 address.";
-     }
-   }
-   
-   grouping CAC-RATE-VALUE {
-     description "CAC rate value.";
-     leaf value {
-       type uint32 {
-         range "1..4294967295";
-       }
-       must "../units" {
-         description "units must be set.";
-       }
-       description "Rate value.";
-     }
-     leaf units {
-       type Cac-rate-units;
-       description "Rate units.";
-     }
-   }
-   
-   grouping POLICE-ACTION {
-     description "Police action.";
-     leaf Transmit {
-       type empty;
-       description "Police action transmit.";
-     }
-     leaf drop {
-       type empty;
-       description "Police action drop.";
-     }
-     container set {
-       description "Police action packet marking.";
-       uses POLICY-MARK;
-     }
-   }
-   
-   grouping POLICY-MAP-RULE {
-     description "Class-map rule.";
-     list event {
-       key "event-type";
-       description "Policy event.";
-       leaf event-type {
-         type Event-type;
-         description "Event type.";
-       }
-       leaf event-mode-match-all {
-         when "count(../event-mode-match-first) = 0" {
-           description "Event MUST have only one mode.";
-         }
-         type empty;
-         description "Execute all the matched classes.";
-       }
-       leaf event-mode-match-first {
-         when "count(../event-mode-match-all) = 0" {
-           description "Event MUST have only one mode.";
-         }
-         type empty;
-         description "Execute only the first matched class.";
-       }
-       list class {
-         key "class-name class-type";
-         description "Class-map rule.";
-         leaf class-name {
-           type string {
-             pattern "[a-zA-Z0-9][a-zA-Z0-9\._@$%+#:=<>\-]{0,62}";
-           }
-           description "Name of class.";
-         }
-         leaf class-type {
-           type Pmap-class-map-type;
-           description "Type of class.";
-         }
-         leaf class-execution-strategy {
-           type Execution-strategy;
-           description "Class execution strategy.";
-         }
-         list action-rule {
-           key "action-sequence-number";
-           description "Action rule.";
-           leaf action-sequence-number {
-             type uint16 {
-               range "1..65535";
-             }
-             description "Sequence number for this action.";
-           }
-           container activate-dynamic-template {
-             presence "This container is present only if actions is
-                       related to dynamic templates.";
-             description "Activate dynamic templates.";
-             leaf name {
-               type string;
-               mandatory true;
-               description "Dynamic template name.";
-             }
-             leaf aaa-list {
-               type string;
-               description "Name of the AAA method list.";
-             }
-           }
-           container authenticate {
-             description "Authentication related configuration.";
-             leaf aaa-list {
-               type string;
-               description "Name of the AAA method list.";
-             }
-           }
-           container authorize {
-             must "format or identifier" {
-               description "format or identifier must be set.";
-             }
-             presence "This container is present only if actions is
-                       related to authorization.";
-             description "Authorize.";
-             leaf aaa-list {
-               type string;
-               mandatory true;
-               description "Name of the AAA method list.";
-             }
-             leaf format {
-               type string;
-               description "Specify an Authorize format name.";
-             }
-             leaf identifier {
-               type Authorize-identifier;
-               description "Specify an Authorize format name.";
-             }
-             leaf password {
-               type string;
-               mandatory true;
-               description "Specify a password to be used for AAA
-                            request.";
-             }
-           }
-           container deactivate-dynamic-template {
-             presence "This container is present only if actions is
-                       related to dynamic templates.";
-             description "Deactivate dynamic templates.";
-             leaf name {
-               type string;
-               mandatory true;
-               description "Dynamic template name.";
-             }
-             leaf aaa-list {
-               type string;
-               description "Name of the AAA method list.";
-             }
-           }
-           leaf disconnect {
-             type empty;
-             description "Disconnect session.";
-           }
-           leaf monitor {
-             type empty;
-             description "Monitor session.";
-           }
-           container set-timer {
-             presence "This container is present only if actions is
-                       related to timer.";
-             description "Set a timer to execute a rule on its 
-                          expiry";
-             leaf timer-name {
-               type string;
-               mandatory true;
-               description "Name of the timer.";
-             }
-             leaf timer-value {
-               type uint32;
-               units "minutes";
-               mandatory true;
-               description "Timer value in minutes.";
-             }
-           }
-           container stop-timer {
-             description "Disable timer before it expires.";
-             leaf timer-name {
-               type string;
-               description "Name of the timer.";
-             }
-           }
-         }
-       }
-     }
-     list policy-map-rule {
-       key "class-name class-type";
-       description "Class-map rule.";
-       leaf class-name {
-         type string {
-           pattern "[a-zA-Z0-9][a-zA-Z0-9\._@$%+#:=<>\-]{0,62}";
-         }
-         description "Name of class-map.";
-       }
-       leaf class-type {
-         type Pmap-class-map-type;
-         description "Type of class-map.";
-       }
-       container shape {
-         must "rate" {
-           description "rate container must be present.";
-         }
-         description "Policy action shape.";
-         container rate {
-           description "Rate configuration.";
-           leaf value {
-             type uint32;
-             must "../unit" {
-               description "unit must be set.";
-             }
-             description "Shape bandwidth value.";
-           }
-           leaf unit {
-             type Bandwidth-units;
-             description "Shape bandwidth units.";
-           }
-         }
-         container burst {
-           description "Burst size configuration.";
-           leaf value {
-             type uint32;
-             must "../units" {
-               description "units must be set.";
-             }
-             description "Burst size value.";
-           }
-           leaf units {
-             type Threshold-units;
-             description "Burst size units.";
-           }
-         }
-       }
-       container min-bandwidth {
-         description "Policy action minimum bandwidth queue.";
-         leaf value {
-           type uint32;
-           must "../unit" {
-             description "unit must be set.";
-           }
-           description "Minimum bandwidth value.";
-         }
-         leaf unit {
-           type Bandwidth-units;
-           description "Minimum bandwidth units.";
-         }
-       }
-       container bandwidth-remaining {
-         description "Policy action bandwidth remaining queue.";
-         leaf value {
-           type uint32;
-           must "../unit" {
-             description "unit must be set.";
-           }
-           description "Remaining bandwidth value.";
-         }
-         leaf unit {
-           type Bandwidth-remaining-units;
-           description "Remaining bandwidth units.";
-         }
-       }
-       container queue-limit {
-         description "Policy action queue limit.";
-         leaf value {
-           type uint32;
-           must "../unit" {
-             description "unit must be set.";
-           }
-           description "Remaining bandwidth value.";
-         }
-         leaf unit {
-           type Queue-units;
-           description "Remaining bandwidth units.";
-         }
-       }
-       container pfc {
-        description "Policy action pfc."; 
-        leaf pfc-pause-set {
-            type empty;
-            description "Pfc Pause set value.";
-        }
-        container pfc-buffer-size {
-            leaf value {
-              type uint32;
-              must "../unit" {
-                description "unit must be set.";
-              }
-              description "Pfc buffer size value.";
-            }
-            leaf unit {
-              type Pfc-units;
-              description "Pfc buffer size units.";
-            }
-        } 
-        container pfc-pause-threshold {
-            leaf value {
-              type uint32;
-              must "../unit" {
-                description "unit must be set.";
-              }
-              description "Pfc pause threshold value.";
-            }
-            leaf unit {
-              type Pfc-units;
-              description "Pfc pause threshold units.";
-            }
-        } 
-        container pfc-resume-threshold {
-            leaf value {
-              type uint32;
-              must "../unit" {
-                description "unit must be set.";
-              }
-              description "Pfc resume threshold value.";
-            }
-            leaf unit {
-              type Pfc-units;
-              description "Pfc resume threshold units.";
-            }
-        }
-      }
-       leaf priority-level {
-         type uint8 {
-           range "1..7";
-         }
-         description "Priority level.";
-       }
-       leaf default-red {
-         type empty;
-         description "Default random early detection";
-       }
-       leaf ecn-red {
-         type empty;
-         description "ECN based random early detection";
-       }
-       list random-detect {
-         key "threshold-min-value threshold-min-units "+
-             "threshold-max-value threshold-max-units";
-         description "Random early detection.
-                      All RED profiles in a class must be based
-                      on the same field.";
-         leaf threshold-min-value {
-           type uint32;
-           description "Minimum RED threshold value.";
-         }
-         leaf threshold-min-units {
-           type Threshold-units;
-           description "Minimum RED threshold units.";
-         }
-         leaf threshold-max-value {
-           type uint32;
-           description "Maximum RED threshold value.";
-         }
-         leaf threshold-max-units {
-           type Threshold-units;
-           description "Maximum RED threshold units.";
-         }
-         leaf-list cos {
-           type Dscp-range;
-           max-elements 8;
-           description "WRED based on CoS.";
-         }
-         leaf-list discard-class {
-           type Cos;
-           max-elements 8;
-           description "WRED based on discard class.";
-         }
-         leaf-list dscp {
-           type Dscp-range;
-           max-elements 8;
-           description "WRED based on DSCP.";
-         }
-         leaf-list mpls-exp {
-           type Cos;
-           max-elements 8;
-           description "MPLS Experimental value based WRED.";
-         }
-         leaf-list precedence {
-           type Precedence;
-           max-elements 8;
-           description "WRED based on precedence.";
-         }
-         leaf dei {
-           type uint8 {
-             range "0..1";
-           }
-           description "DEI based WRED.";
-         }
-         leaf ecn {
-           type empty;
-           description "ECN based WRED.";
-         }
-       }
-       container set {
-         description "Policy action packet marking.";
-         uses POLICY-MARK;
-       }
-       container police {
-         must "rate" {
-           description "rate container must be present.";
-         }
-         description "Configures traffic policing action.";
-         container rate {
-           description "Rate configuration.";
-           leaf value {
-             type uint32;
-             must "../units" {
-               description "units must be set.";
-             }
-             description "Rate value.";
-           }
-           leaf units {
-             type Rate-units;
-             description "Rate units.";
-           }
-         }
-         container peak-rate {
-           description "Peak rate configuration.";
-           leaf value {
-             type uint32;
-             must "../units" {
-               description "units must be set.";
-             }
-             description "Peak rate value.";
-           }
-           leaf units {
-             type Rate-units;
-             description "Peak rate units.";
-           }
-         }
-         container burst {
-           description "Burst configuration.";
-           leaf value {
-             type uint32;
-             must "../units" {
-               description "units must be set.";
-             }
-             description "Burst value.";
-           }
-           leaf units {
-             type Threshold-units;
-             description "Burst units.";
-           }
-         }
-         container peak-burst {
-           description "Peak burst configuration.";
-           leaf value {
-             type uint32;
-             must "../units" {
-               description "units must be set.";
-             }
-             description "Peak burst value.";
-           }
-           leaf units {
-             type Threshold-units;
-             description "Peak burst units.";
-           }
-         }
-         container conform-action {
-           description 
-             "Configures the action to take on packets that conform 
-              to the rate limit.";
-           uses POLICE-ACTION;
-         }
-         container exceed-action {
-           description 
-             "Configures the action to take on packets that exceed 
-              the rate limit.";
-           uses POLICE-ACTION;
-         }
-         container violate-action {
-           description
-             "Configures the action to take on packets that violate
-              the rate limit.";
-           uses POLICE-ACTION;
-         }
-       }
-       container service-policy {
-         description 
-           "Configure a child service policy.";
-         leaf policy-name {
-           type string {
-             pattern "[a-zA-Z0-9][a-zA-Z0-9\._@$%+#:=<>\-]{0,62}";
-           }
-           description "Name of service-policy.";
-         }
-         leaf type {
-           type Service-policy-type;
-           description "Type of service-policy.";
-         }
-       }
-       container cac-local {
-         description "Policy action CAC.";
-         container rate {
-           description "The rate allocated for all flows.";
-           uses CAC-RATE-VALUE;
-         }
-         container flow-rate {
-           description "The rate allocated per flow.";
-           uses CAC-RATE-VALUE;
-         }
-         leaf flow-idle-timeout {
-           type Idle-timeout;
-           description "The interval after which a flow is removed, 
-                        if there is no activity.
-                        If timeout is 0 this flow does not expire.";
-         }
-       }
-       container flow-params {
-         description "Policy flow monitoring action.";
-         leaf max-flow {
-           type uint16 {
-             range "0..4096";
-           }
-           description 
-             "Max simultaneous flows monitored per policy class";
-         }
-         leaf interval-duration {
-           type uint32;
-           units "seconds";
-           description "Monitored interval duration.";
-         }
-         leaf history {
-           type uint32;
-           description 
-             "Keep stats/metrics on box for so many intervals.";
-         }
-         leaf timeout {
-           type uint32;
-           units "seconds";
-           description "Declare a flow dead if no packets received in
-                        so much time";
-         }
-       }
-       container metrics-ipcbr {
-         description "Policy IP-CBR metric action.";
-         container rate {
-           description "Nominal per-flow data rate.";
-           leaf layer3 {
-             type uint32;
-             units "bps";
-             description "Nominal rate specified at the L3 (IP).";
-           }
-           leaf packet {
-             type uint32;
-             units "pps";
-             description "Nominal IP layer packet rate (in pps).";
-           }
-           leaf media {
-             type uint32 {
-               range "1..3000000000";
-             }
-             units "bps";
-             description 
-               "Nominal data rate of the media flow (ip payload).";
-           }
-         }
-         container media-packet {
-           description "Media-packet structure.";
-           leaf size {
-             type uint16;
-             units "bytes";
-             description "Nominal size of the media-packet.";
-           }
-           leaf count-in-layer3 {
-             type uint8 {
-               range "1..64";
-             }
-             units "packets";
-             description 
-               "Nominal number of media packets in an IP payload.";
-           }
-         }
-       }
-       container react {
-         description "Policy action react.";
-         leaf descrition {
-           type string;
-           description "String describing the react statement.";
-         }
-         container action {
-           description "Action on alert.";
-           leaf syslog {
-             type empty;
-             description "Syslog.";
-           }
-           leaf snmp {
-             type empty;
-             description "SNMP.";
-           }
-         }
-         container alarm {
-           description "Alaram settings.";
-           container type {
-             description "Alarm type.";
-             leaf discrete {
-               type empty;
-               description "Discrete alarm type.";
-             }
-             leaf group-count {
-               type uint16;
-               units "number of flows";
-               description "Number of flows to reach before 
-                            triggering alarm";
-             }
-             leaf group-percent {
-               type uint16;
-               units "percentage";
-               description "Percent to reach before triggering alarm";
-             }
-           }
-           leaf severity {
-             type Alarm-severity;
-             description "Severity of the alarm.";
-           }
-         }
-         container threshold {
-           description "Alarm threshold settings.";
-           container trigger-value {
-             description "Alarm trigger value settings.";
-             leaf greater-than {
-               type string;
-               description "Greater than";
-             }
-             leaf greater-than-equal {
-               type string;
-               description "Greater than equal";
-             }
-             leaf less-than {
-               type string;
-               description "Less than";
-             }
-             leaf less-than-equal {
-               type string;
-               description "Less than equal";
-             }
-             leaf range {
-               type string;
-               description "Range";
-             }
-           }
-           container trigger-type {
-             description "Alarm trigger type settings.";
-             leaf immediate {
-               type empty;
-               description "Immediate trigger.";
-             }
-             leaf average {
-               type uint32;
-               description "Trigger averaged over N intervals.";
-             }
-           }
-         }
-         leaf criterion-delay-factor {
-           type empty;
-           description "React criterion delay factor.";
-         }
-         leaf criterion-media-stop {
-           type empty;
-           description "React criterion media stop.";
-         }
-         leaf criterion-mrv {
-           type empty;
-           description "React criterion mrv.";
-         }
-         leaf criterion-flow-count {
-           type empty;
-           description "React criterion flow count.";
-         }
-         leaf criterion-packet-rate {
-           type empty;
-           description "React criterion packet rate.";
-         }
-       }
-       leaf http-redirect {
-         type string;
-         description "Policy action http redirect.
-                     Redirect to this url.";
-       }
-       leaf pbr-transmit {
-         type empty;
-         description "Policy action PBR transmit.";
-       }
-       leaf pbr-drop {
-         type empty;
-         description "Policy action PBR drop.";
-       }
-       leaf decap-gre {
-         type empty;
-         description "Policy action DECAP GRE.";
-       }
-         container pbr-forward {
-           description "Policy action PBR forward.";
-           leaf default {
-             type empty;
-             description "Use system default routing table.";
-           }
-           container next-hop {
-             description "Use specific next-hop.
-                          Here we present 5 different combination 
-                          for the pbf next-hop.
-                           1. vrf with v6 address
-                           2. vrf with v4 address
-                           3. vrf 
-                           4. v4 address
-                           5. v6 address";
-             leaf vrf {
-               type string;
-               description "VRF name.";
-             }
-             leaf ipv4-address {
-               type inet:ipv4-address;
-               description "IPv4 address.";
-             }
-             leaf ipv6-address {
-               type inet:ipv6-address;
-               description "IPv6 address.";
-             }
-           }
-         }
-       leaf service-fragment {
-         type string;
-         description "Policy action service fragment. 
-                      Service fragment name";
-       }
-       leaf fragment {
-         type string;
-         description "Policy action fragment. Fragment name";
-       }
-       container service-function-path {
-         must "path-id" {
-           description "path id must be present.";
-         }
-         description "Policy action service function path.";
-         leaf path-id {
-           type uint32 {
-             range "1..16777215";
-           }
-           must "../index" {
-             description "index must be set.";
-           }
-           description "Service function path id.";
-         }
-         leaf index {
-           type uint8 {
-             range "1..255";
-           }
-           description "Service function path index.";
-         }
-         leaf metadata {
-           type string;
-           description "Service function path metadata name.";
-         }
-       }
-     }
-     leaf description {
-       type string;
-       description "Description for this policy-map.";
-     }
-   }
-  container policy-manager {
-    description "Global Policy Manager configuration.";
-
-     container class-maps {
-       description "Class-maps configuration.";
-       list class-map {
-         key "type name";
-         description "Class-map configuration.";
-         leaf type {
-           type Class-map-type;
-           description "Type of class-map.";  
-         }
-         leaf name {
-           type string {
-             pattern "[a-zA-Z0-9][a-zA-Z0-9\._@$%+#:=<>\-]{0,62}";
-           }
-           description "Name of class-map.";
-         }
-         
-         uses CLASS-MAP-RULE;
-       }
-     }
-     
-     container policy-maps {
-       description "Policy-maps configuration.";
-       list policy-map {
-         key "type name";
-         description "Policy-map configuration.";
-         leaf type {
-           type Policy-map-type;
-           description "Type of policy-map.";
-         }
-         leaf name {
-           type string {
-             pattern "[a-zA-Z0-9][a-zA-Z0-9\._@$%+#:=<>\-]{0,62}";
-           }
-           description "Name of policy-map.";
-         }
-         
-         uses POLICY-MAP-RULE;
-       }
-     }
-   }
- }
\ No newline at end of file
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-infra-policymgr-cfg@2017-12-12.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-infra-policymgr-cfg@2017-12-12.yang
new file mode 100644 (file)
index 0000000..03db826
--- /dev/null
@@ -0,0 +1,2314 @@
+module Cisco-IOS-XR-infra-policymgr-cfg {
+  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg";
+  prefix infra-policymgr-cfg;
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+
+  organization
+    "Cisco Systems, Inc.";
+  contact
+    "Cisco Systems, Inc.
+     Customer Service
+      
+     Postal: 170 West Tasman Drive
+     San Jose, CA 95134
+      
+     Tel: +1 800 553-NETS
+      
+     E-mail: cs-yang@cisco.com";
+  description
+    "This module contains a collection of YANG definitions
+     for Cisco IOS-XR ASR9k policy manager configuration.
+      
+     Copyright (c) 2013, 2015-2018 by Cisco Systems, Inc.
+     All rights reserved.";
+
+  revision 2017-12-12 {
+    description
+      "IOS XR 6.4.1 revision.";
+  }
+  revision 2017-06-27 {
+    description
+      "IOS XR 6.4.1 revision.";
+  }
+  revision 2017-05-15 {
+    description
+      "IOS XR 6.3.1 revision.";
+  }
+  revision 2017-04-03 {
+    description
+      "IOS XR 6.3.1 revision.";
+  }
+  revision 2017-03-03 {
+    description
+      "IOS XR 6.3.1 revision.";
+  }
+  revision 2017-02-15 {
+    description
+      "IOS XR 6.2.1 revision.";
+  }
+  revision 2017-02-08 {
+    description
+      "IOS XR 6.2.1 revision.";
+  }
+  revision 2016-12-15 {
+    description
+      "IOS XR 6.2.1 revision.";
+  }
+  revision 2015-05-18 {
+    description
+      "IOS XR 5.3.2 revision.";
+  }
+  revision 2013-07-22 {
+    description
+      "Initial revision.";
+  }
+
+  typedef mac-address {
+    type string {
+      pattern "[0-9a-fA-F]{4}(\\.[0-9a-fA-F]{4}){2}";
+    }
+    description
+      "The mac-address type represents a MAC address.
+       The canonical representation uses lowercase characters.
+       It is made of three groups of four hexadecimal digits
+       separated by dots (.)";
+  }
+
+  typedef Class-map-type {
+    type enumeration {
+      enum "qos" {
+        value 1;
+        description
+          "QoS Classmap.";
+      }
+      enum "traffic" {
+        value 3;
+        description
+          "TRAFFIC Classmap.";
+      }
+      enum "control" {
+        value 4;
+        description
+          "Control Subscriber Classmap.";
+      }
+    }
+    description
+      "Policy manager class-map type.";
+  }
+
+  typedef Alarm-severity {
+    type string {
+      pattern "(informational)|(notification)|(warning)|(error)|(critical)|(alert)|(emergency)";
+    }
+    description
+      "Alaram severity types.";
+  }
+
+  typedef Policy-map-type {
+    type enumeration {
+      enum "qos" {
+        value 1;
+        description
+          "QoS Policymap";
+      }
+      enum "pbr" {
+        value 2;
+        description
+          "PBR Policymap";
+      }
+      enum "traffic" {
+        value 3;
+        description
+          "TRAFFIC Policymap";
+      }
+      enum "subscriber-control" {
+        value 4;
+        description
+          "SUBSCRIBER-CONTROL Policymap";
+      }
+      enum "redirect" {
+        value 6;
+        description
+          "REDIRECT Policy map";
+      }
+      enum "flow-monitor" {
+        value 7;
+        description
+          "FLOWMONITOR Policy map";
+      }
+    }
+    description
+      "Policy manager policy-map type.";
+  }
+
+  typedef Service-policy-type {
+    type string {
+      pattern "(PBR)|(QOS)|(REDIRECT)|(TRAFFIC)|(pbr)|(qos)|(redirect)|(traffic)";
+    }
+    description
+      "Policy manager service-policy type.";
+  }
+
+  typedef Pmap-class-map-type {
+    type enumeration {
+      enum "qos" {
+        value 1;
+        description
+          "QoS Classmap.";
+      }
+      enum "traffic" {
+        value 2;
+        description
+          "TRAFFIC Classmap.";
+      }
+      enum "subscriber-control" {
+        value 3;
+        description
+          "Subscriber Control Classmap.";
+      }
+    }
+    description
+      "Policy manager class-map type.";
+  }
+
+  typedef Bandwidth-units {
+    type string {
+      pattern "(bps)|(kbps)|(mbps)|(gbps)|(percent)|(per-million)|(per-thousand)";
+    }
+    description
+      "Supported units for bandwidth.
+       bps          - units in Bits/Sec
+       kbps         - units in KiloBits/Sec
+       mbps         - units in MegaBits/Sec
+       gbps         - units in GigaBits/Sec
+       percent      - units in Percentage
+       per-million  - parts per-million bandwidth value
+       per-thousand - Parts per-thousand bandwidth value";
+  }
+
+  typedef Bandwidth-remaining-units {
+    type string {
+      pattern "(percent)|(ratio)";
+    }
+    description
+      "Supported units for bandwidth remaining.
+       percent      - units in Percentage
+       ratio        - units in Ratio";
+  }
+
+  typedef Rate-units {
+    type string {
+      pattern "(bps)|(kbps)|(mbps)|(gbps)|(pps)|(percent)|(cellsps)";
+    }
+    description
+      "Supported units for police rate or peak-rate.
+       bps     - units in Bits/Sec
+       kbps    - units in KiloBits/Sec
+       mbps    - units in MegaBits/Sec
+       gbps    - units in GigaBits/Sec
+       pps     - units in Packets/Sec
+       percent - units in Percentage
+       cellsps - units in Cells/Sec";
+  }
+
+  typedef Cac-rate-units {
+    type string {
+      pattern "(bps)|(kbps)|(mbps)|(gbps)|(cellsps)";
+    }
+    description
+      "Supported units for CAC rate or flow-rate.
+       bps     - units in Bits/Sec
+       kbps    - units in KiloBits/Sec
+       mbps    - units in MegaBits/Sec
+       gbps    - units in GigaBits/Sec
+       cellsps - units in Cells/Sec";
+  }
+
+  typedef Queue-units {
+    type string {
+      pattern "(bytes)|(kbytes)|(mbytes)|(gbytes)|(us)|(ms)|(packets)|(cells)|(percent)";
+    }
+    description
+      "Supported units for queue.
+       bytes   - units in Bytes
+       kbytes  - units in KiloBytes
+       mbytes  - units in MegaBytes
+       gbytes  - units in Gigabytes
+       us      - units in Microseconds
+       ms      - units in Milliseconds
+       packets - units in Packets
+       cells   - units in Cells
+       percent - units in Percent";
+  }
+
+  typedef Threshold-units {
+    type string {
+      pattern "(bytes)|(kbytes)|(mbytes)|(gbytes)|(us)|(ms)|(packets)|(cells)";
+    }
+    description
+      "Supported units for RED threshold.
+       bytes   - units in Bytes
+       kbytes  - units in KiloBytes
+       mbytes  - units in MegaBytes
+       gbytes  - units in GigaBytes
+       us      - units in Microseconds
+       ms      - units in Milliseconds
+       packets - units in Packets
+       cells   - units in Cells";
+  }
+
+  typedef Pfc-units {
+    type string {
+      pattern "(bytes)|(kbytes)|(mbytes)|(gbytes)|(us)|(ms)|(packets)|(cells)";
+    }
+    description
+      "Supported units for pfc.
+       bytes   - units in Bytes
+       kbytes  - units in KiloBytes
+       mbytes  - units in MegaBytes
+       gbytes  - units in Gigabytes
+       us      - units in Microseconds
+       ms      - units in Milliseconds
+       packets - units in Packets
+       cells   - units in Cells";
+  }
+
+  typedef Float-str {
+    type string {
+      pattern "[0-9]+(\\.[0-9]+)?";
+    }
+    description
+      "Floating point number string representation.";
+  }
+
+  typedef Dscp {
+    type string {
+      pattern "([0-9]|[1-5][0-9]|6[0-3])|(af11)|(af12)|(af13)|(af21)|(af22)|(af23)|(af31)|(af32)|(af33)|(af41)|(af42)|(af43)|(ef)|(default)|(cs1)|(cs2)|(cs3)|(cs4)|(cs5)|(cs6)|(cs7)";
+    }
+    description
+      "DSCP value string representation.
+       Should be single value 0..63 or predefined string.";
+  }
+
+  typedef Dscp-range {
+    type string {
+      pattern "([0-9]|[1-5][0-9]|6[0-3])|(([0-9]|[1-5][0-9]|6[0-3])-([0-9]|[1-5][0-9]|6[0-3]))|(af11)|(af12)|(af13)|(af21)|(af22)|(af23)|(af31)|(af32)|(af33)|(af41)|(af42)|(af43)|(ef)|(default)|(cs1)|(cs2)|(cs3)|(cs4)|(cs5)|(cs6)|(cs7)";
+    }
+    description
+      "DSCP value or range string representation.
+       Should be single value 0..63 or predefined string 
+       or range <min>-<max>.";
+  }
+
+  typedef Num-range {
+    type string {
+      pattern "(\\d+)|(\\d+\\-\\d+)";
+    }
+    description
+      "Numeric value or range string representation.
+       Should be single value or range <min>-<max>.";
+  }
+
+  typedef Protocol {
+    type string {
+      pattern "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\-([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))|((ahp)|(dhcpv4)|(dhcpv6)|(eigrp)|(esp)|(gre)|(icmp)|(igmp)|(igrp)|(ipinip)|(ipv4)|(ipv6)|(ipv6icmp)|(mpls)|(nos)|(ospf)|(pcp)|(pim)|(ppp)|(sctp)|(tcp)|(udp))";
+    }
+    description
+      "Numeric value or range or string representation.
+       Should be single value or range 0..255.";
+  }
+
+  typedef Ethertype {
+    type string {
+      pattern "((153[6-9]|15[4-9][0-9]|1[6-9][0-9][0-9]|[2-9][0-9][0-9][0-9])|([1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9])|(65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|((arp)|(ipv4)|(ipv6))";
+    }
+    description
+      "Numeric value or string representation.
+       Should be single value 1536..65535 or predefined string.";
+  }
+
+  typedef Precedence {
+    type union {
+      type uint8 {
+        range "0..7";
+      }
+      type string {
+        pattern "(critical)|(flash)|(flash-override)|(immediate)|(internet)|(network)|(priority)|(routine)";
+      }
+    }
+    description
+      "Precedence value.
+       critical        Critical precedence (5)
+       flash           Flash precedence (3)
+       flash-override  Flash override precedence (4)
+       immediate       Immediate precedence (2)
+       internet        Internetwork control precedence (6)
+       network         Network control precedence (7)
+       priority        Priority precedence (1)
+       routine         Routine precedence (0)";
+  }
+
+  typedef Cos {
+    type uint8 {
+      range "0..7";
+    }
+    description
+      "Cos value.";
+  }
+
+  typedef Idle-timeout-number {
+    type uint16 {
+      range "10..2550";
+    }
+    units "seconds";
+    description
+      "String that idle-timeout can take.";
+  }
+
+  typedef Idle-timeout-string {
+    type string {
+      pattern "(None)|(none)";
+    }
+    description
+      "This flow does not expire.";
+  }
+
+  typedef Idle-timeout {
+    type union {
+      type Idle-timeout-number;
+      type Idle-timeout-string;
+    }
+    description
+      "Idle timeout.";
+  }
+
+  typedef Event-type {
+    type enumeration {
+      enum "account-logoff" {
+        description
+          "Account logoff event.";
+      }
+      enum "account-logon" {
+        description
+          "Account logon event.";
+      }
+      enum "authentication-failure" {
+        description
+          "Authentication failure event.";
+      }
+      enum "authentication-no-response" {
+        description
+          "Authentication no response event.";
+      }
+      enum "authorization-failure" {
+        description
+          "Authorization failure event.";
+      }
+      enum "authorization-no-response" {
+        description
+          "Authorization no response event.";
+      }
+      enum "credit-exhausted" {
+        description
+          "Credit exhaustion event.";
+      }
+      enum "exception" {
+        description
+          "Exception event.";
+      }
+      enum "idle-timeout" {
+        description
+          "Idle timeout event.";
+      }
+      enum "quota-depleted" {
+        description
+          "Quota depletion event.";
+      }
+      enum "service-start" {
+        description
+          "Service start event.";
+      }
+      enum "service-stop" {
+        description
+          "Service stop event.";
+      }
+      enum "session-activate" {
+        description
+          "Session activate event.";
+      }
+      enum "session-start" {
+        description
+          "Session start event.";
+      }
+      enum "session-stop" {
+        description
+          "Session stop event.";
+      }
+      enum "timer-expiry" {
+        description
+          "Timer expiry event.";
+      }
+    }
+    description
+      "Event type.";
+  }
+
+  typedef Execution-strategy {
+    type enumeration {
+      enum "do-all" {
+        description
+          "Do all actions.";
+      }
+      enum "do-until-failure" {
+        description
+          "Do all actions until failure.";
+      }
+      enum "do-until-success" {
+        description
+          "Do all actions until success.";
+      }
+    }
+    description
+      "Executuion strategy.";
+  }
+
+  typedef Authorize-identifier {
+    type enumeration {
+      enum "circuit-id" {
+        description
+          "Authorize circuit ID.";
+      }
+      enum "dhcp-client-id" {
+        description
+          "Authorize dhcp client ID.";
+      }
+      enum "remote-id" {
+        description
+          "Authorize remote ID.";
+      }
+      enum "source-address-ipv4" {
+        description
+          "Authorize source IPv4 address.";
+      }
+      enum "source-address-ipv6" {
+        description
+          "Authorize source IPv6 address.";
+      }
+      enum "source-address-mac" {
+        description
+          "Authorize source MAC address.";
+      }
+      enum "username" {
+        description
+          "Authorize username.";
+      }
+    }
+    description
+      "Authorize identifier.";
+  }
+
+  typedef dhcp-client-id-options {
+    type string {
+      pattern "(none)|(ascii)|(hex)";
+    }
+    description
+      "DHCP client Id Flag option.";
+  }
+
+  grouping MATCH {
+    description
+      "Supported 'match' or 'match-not' actions.";
+    leaf-list ipv4-dscp {
+      type Dscp-range;
+      ordered-by user;
+      description
+        "Match IPv4 DSCP.";
+    }
+    leaf-list ipv6-dscp {
+      type Dscp-range;
+      ordered-by user;
+      description
+        "Match IPv6 DSCP.";
+    }
+    leaf-list dscp {
+      type Dscp-range;
+      ordered-by user;
+      description
+        "Match DSCP.";
+    }
+    leaf-list ipv4-precedence {
+      type Precedence;
+      ordered-by user;
+      description
+        "Match IPv4 precedence.";
+    }
+    leaf-list ipv6-precedence {
+      type Precedence;
+      ordered-by user;
+      description
+        "Match IPv6 precedence.";
+    }
+    leaf-list precedence {
+      type Precedence;
+      ordered-by user;
+      description
+        "Match precedence.";
+    }
+    leaf-list qos-group {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match QoS group.
+         Should be value 0..512 or range.";
+    }
+    leaf-list traffic-class {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match Traffic Class.
+         Should be value 0..63 or range.";
+    }
+    leaf-list cos {
+      type Cos;
+      ordered-by user;
+      description
+        "Match CoS.";
+    }
+    leaf-list inner-cos {
+      type Cos;
+      ordered-by user;
+      description
+        "Match inner CoS.";
+    }
+    leaf dei {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Match DEI bit.";
+    }
+    leaf dei-inner {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Match DEI INNER  bit.";
+    }
+    leaf-list protocol {
+      type Protocol;
+      ordered-by user;
+      description
+        "Match protocol.";
+    }
+    leaf ipv4-acl {
+      type string {
+        length "1..64";
+      }
+      description
+        "Match IPv4 ACL.";
+    }
+    leaf ipv6-acl {
+      type string {
+        length "1..64";
+      }
+      description
+        "Match IPv6 ACL.";
+    }
+    leaf ethernet-services-acl {
+      type string {
+        length "1..64";
+      }
+      description
+        "Match Ethernet Services";
+    }
+    leaf-list mpls-experimental-topmost {
+      type Cos;
+      ordered-by user;
+      description
+        "Match MPLS experimental topmost label.";
+    }
+    leaf-list mpls-experimental-imposition {
+      type Cos;
+      ordered-by user;
+      description
+        "Match MPLS experimental imposition label.";
+    }
+    leaf-list discard-class {
+      type Cos;
+      ordered-by user;
+      description
+        "Match discard class.";
+    }
+    leaf-list ipv4-packet-length {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match IPv4 packet length.
+         Should be value 0..65535 or range.";
+    }
+    leaf-list ipv6-packet-length {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match IPv6 packet length. 
+         Should be value 0..65535 or range.";
+    }
+    leaf-list packet-length {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match packet length. 
+         Should be value 0..65535 or range.";
+    }
+    leaf mpls-disposition-ipv4-access-list {
+      type string {
+        length "1..32";
+      }
+      description
+        "Match MPLS Label Disposition IPv4 access list.";
+    }
+    leaf mpls-disposition-ipv6-access-list {
+      type string {
+        length "1..32";
+      }
+      description
+        "Match MPLS Label Disposition IPv6 access list.";
+    }
+    leaf-list vlan {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match VLAN ID.";
+    }
+    leaf-list inner-vlan {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match inner VLAN ID.";
+    }
+    leaf-list flow-tag {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match flow-tag. Should be value 1..63 or range.";
+    }
+    leaf-list ethertype {
+      type Ethertype;
+      ordered-by user;
+      description
+        "Match Ethertype.";
+    }
+    list destination-address-ipv4 {
+      key "address netmask";
+      description
+        "Match destination IPv4 address.";
+      leaf address {
+        type inet:ipv4-address-no-zone;
+        description
+          "IPv4 address.";
+      }
+      leaf netmask {
+        type inet:ipv4-address-no-zone;
+        description
+          "IPv4 netmask.";
+      }
+    }
+    list destination-address-ipv6 {
+      key "address prefix-length";
+      description
+        "Match destination IPv6 address.";
+      leaf address {
+        type inet:ipv6-address-no-zone;
+        description
+          "IPv6 address.";
+      }
+      leaf prefix-length {
+        type uint8 {
+          range "0..128";
+        }
+        description
+          "IPv6 prefix length.";
+      }
+    }
+    leaf-list destination-port {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match destination port. 
+         Should be value 0..65535 or range.";
+    }
+    leaf-list fragment-type {
+      type string {
+        pattern "(first-fragment)|(is-fragment)|(last-fragment)";
+      }
+      max-elements "3";
+      ordered-by user;
+      description
+        "Match fragment type for a packet.";
+    }
+    leaf-list frame-relay-dlci {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match frame-relay DLCI value. 
+         Should be value 16..1007 or range.";
+    }
+    leaf fr-de {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Set FrameRelay DE bit.";
+    }
+    leaf-list icmpv4-code {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match IPv4 ICMP code. 
+         Should be value 0..255 or range.";
+    }
+    leaf-list icmpv4-type {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match IPv4 ICMP type. 
+         Should be value 0..255 or range.";
+    }
+    leaf-list icmpv6-code {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match IPv6 ICMP code. 
+         Should be value 0..255 or range.";
+    }
+    leaf-list icmpv6-type {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match IPv6 ICMP type. 
+         Should be value 0..255 or range.";
+    }
+    list source-address-ipv4 {
+      key "address netmask";
+      description
+        "Match source IPv4 address.";
+      leaf address {
+        type inet:ipv4-address-no-zone;
+        description
+          "IPv4 address.";
+      }
+      leaf netmask {
+        type inet:ipv4-address-no-zone;
+        description
+          "IPv4 netmask.";
+      }
+    }
+    list source-address-ipv6 {
+      key "address prefix-length";
+      description
+        "Match source IPv6 address.";
+      leaf address {
+        type inet:ipv6-address-no-zone;
+        description
+          "IPv6 address.";
+      }
+      leaf prefix-length {
+        type uint8 {
+          range "0..128";
+        }
+        description
+          "IPv6 prefix length.";
+      }
+    }
+    leaf-list source-port {
+      type Num-range;
+      ordered-by user;
+      description
+        "Match source port. 
+         Should be value 0..65535 or range.";
+    }
+    leaf tcp-flag {
+      type uint16 {
+        range "0..4095";
+      }
+      description
+        "Match TCP flags.";
+    }
+    leaf authen-status {
+      type string {
+        pattern "(authenticated)|(unauthenticated)";
+      }
+      description
+        "Match authentication status.";
+    }
+    leaf-list circuit-id {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match Circuit ID.";
+    }
+    leaf-list circuit-id-regex {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match Circuit id regex.";
+    }
+    list dhcp-client-id {
+      key "value flag";
+      description
+        "Match dhcp client ID.";
+      leaf value {
+        type string {
+          length "1..32";
+        }
+        description
+          "Dhcp client Id.";
+      }
+      leaf flag {
+        type dhcp-client-id-options;
+        description
+          "Dhcp client id Ascii/Hex";
+      }
+    }
+    list dhcp-client-id-regex {
+      key "value flag";
+      description
+        "Match dhcp client id regex.";
+      leaf value {
+        type string {
+          length "1..32";
+        }
+        description
+          "Dhcp client id regular expression.";
+      }
+      leaf flag {
+        type dhcp-client-id-options;
+        description
+          "Dhcp client Id regex Ascii/Hex.";
+      }
+    }
+    list domain-name {
+      key "name format";
+      description
+        "Match domain name.";
+      leaf name {
+        type string {
+          length "1..32";
+        }
+        description
+          "Domain name or regular expression.";
+      }
+      leaf format {
+        type string {
+          length "1..32";
+        }
+        description
+          "Domain-format name.";
+      }
+    }
+    list domain-name-regex {
+      key "regex format";
+      description
+        "Match domain name.";
+      leaf regex {
+        type string {
+          length "1..32";
+        }
+        description
+          "Domain name or regular expression.";
+      }
+      leaf format {
+        type string {
+          length "1..32";
+        }
+        description
+          "Domain-format name.";
+      }
+    }
+    leaf-list remote-id {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match remote ID.";
+    }
+    leaf-list remote-id-regex {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match remote id regex.";
+    }
+    leaf-list service-name {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match servicve name.";
+    }
+    leaf-list service-name-regex {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match servicve name regular expression.";
+    }
+    leaf-list timer {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match timer.";
+    }
+    leaf-list timer-regex {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match timer regular expression.";
+    }
+    leaf-list user-name {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match user name.";
+    }
+    leaf-list user-name-regex {
+      type string {
+        length "1..32";
+      }
+      ordered-by user;
+      description
+        "Match user name regular expression.";
+    }
+    leaf-list source-mac {
+      type string;
+      ordered-by user;
+      description
+        "Match source MAC address.";
+    }
+    leaf-list destination-mac {
+      type string;
+      ordered-by user;
+      description
+        "Match destination MAC address.";
+    }
+    leaf vpls-control {
+      type empty;
+      description
+        "Match VPLS control";
+    }
+    leaf vpls-broadcast {
+      type empty;
+      description
+        "Match VPLS Broadcast";
+    }
+    leaf vpls-multicast {
+      type empty;
+      description
+        "Match VPLS Multicast";
+    }
+    leaf vpls-known {
+      type empty;
+      description
+        "Match VPLS Known";
+    }
+    leaf vpls-unknown {
+      type empty;
+      description
+        "Match VPLS Unknown";
+    }
+  }
+
+  grouping MATCH-MATCHNOT {
+    description
+      "match or match-not containers.";
+    container match {
+      description
+        "Match rules.";
+      uses MATCH;
+      leaf atm-clp {
+        type uint8 {
+          range "0..1";
+        }
+        description
+          "Match ATM CLP bit.";
+      }
+      leaf atm-oam {
+        type empty;
+        description
+          "Match ATM OAM.";
+      }
+      leaf cac-admit {
+        type empty;
+        description
+          "Match CAC admitted.";
+      }
+      leaf cac-unadmit {
+        type empty;
+        description
+          "Match CAC unadmitted.";
+      }
+      container flow {
+        description
+          "Match flow.";
+        leaf-list flow-key {
+          type string {
+            pattern "(SourceIP)|(DestinationIP)|(5Tuple)";
+          }
+          ordered-by user;
+          description
+            "Configure the flow-key parameters.";
+        }
+        container flow-cache {
+          description
+            "Configure the flow-cache parameters";
+          leaf idle-timeout {
+            type Idle-timeout;
+            description
+              "Maximum time of inactivity for a flow.";
+          }
+        }
+      }
+    }
+    container match-not {
+      description
+        "Match not rules.";
+      uses MATCH;
+      container flow {
+        description
+          "Match flow.";
+        leaf-list flow-tag {
+          type uint16 {
+            range "1..63";
+          }
+          ordered-by user;
+          description
+            "Configure the flow-tag parameters.";
+        }
+      }
+    }
+  }
+
+  grouping CLASS-MAP-RULE {
+    description
+      "Class-map rule";
+    leaf class-map-mode-match-any {
+      when "count(../class-map-mode-match-all) = 0" {
+        description
+          "Class MUST have only one mode.";
+      }
+      type empty;
+      description
+        "Match all match criteria";
+    }
+    leaf class-map-mode-match-all {
+      when "count(../class-map-mode-match-any) = 0" {
+        description
+          "Class MUST have only one mode.";
+      }
+      type empty;
+      description
+        "Match any match criteria.";
+    }
+    uses MATCH-MATCHNOT;
+    leaf description {
+      type string;
+      description
+        "Description for this policy-map.";
+    }
+  }
+
+  grouping POLICY-MARK {
+    description
+      "Policy packet marking actions.";
+    leaf dscp {
+      type Dscp;
+      description
+        "Marks a packet by setting the DSCP in the ToS byte.";
+    }
+    leaf qos-group {
+      type uint16 {
+        range "0..512";
+      }
+      description
+        "Sets the QoS group identifiers on IPv4 or MPLS packets.
+         The set qos-group is supported only on an ingress policy.";
+    }
+    leaf traffic-class {
+      type uint8 {
+        range "0..63";
+      }
+      description
+        "Sets the Traffic class identifiers on IPv4 or MPLS packets.";
+    }
+    leaf discard-class {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Sets the discard class on IPv4 or MPLS packets.
+         The discard-class can be used only in service policies 
+         that are attached in the ingress policy.";
+    }
+    leaf forward-class {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Sets the forward class.";
+    }
+    leaf df {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Set DF bit.";
+    }
+    leaf cos {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Sets the specific IEEE 802.1Q Layer 2 CoS value of an
+         outgoing packet.
+         This command should be used by a router if a user wants
+         to mark a packet that is being sent to a switch. 
+         Switches can leverage Layer 2 header information, 
+         including a CoS value marking. Packets entering an 
+         interface cannot be set with a CoS value.";
+    }
+    leaf inner-cos {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Set inner cos.";
+    }
+    leaf precedence {
+      type Precedence;
+      description
+        "Sets the precedence value in the IP header.";
+    }
+    leaf precedence-tunnel {
+      type Precedence;
+      description
+        "Sets the precedence tunnel value for ipsec.";
+    }
+    leaf mpls-experimental-top-most {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Sets the experimental value of the MPLS packet top-most
+         labels.";
+    }
+    leaf mpls-experimental-imposition {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Sets the experimental value of the MPLS packet 
+         imposition labels.
+         Imposition can be used only in service policies that 
+         are attached in the ingress policy";
+    }
+    leaf srp-priority {
+      type uint8 {
+        range "0..7";
+      }
+      description
+        "Sets the spatial reuse protocol priority value of an 
+         outgoing packet.";
+    }
+    leaf fr-de {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Set FrameRelay DE bit.";
+    }
+    leaf dei {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Set DEI bit.";
+    }
+    leaf dei-imposition {
+      type uint8 {
+        range "0..1";
+      }
+      description
+        "Set DEI imposition bit.";
+    }
+    leaf source-address {
+      type inet:ipv4-address-no-zone;
+      description
+        "Source IPv4 address.";
+    }
+    leaf destination-address {
+      type inet:ipv4-address-no-zone;
+      description
+        "Destination IPv4 address.";
+    }
+  }
+
+  grouping CAC-RATE-VALUE {
+    description
+      "CAC rate value.";
+    leaf value {
+      type uint32 {
+        range "1..4294967295";
+      }
+      must "../units" {
+        description
+          "units must be set.";
+      }
+      description
+        "Rate value.";
+    }
+    leaf units {
+      type Cac-rate-units;
+      description
+        "Rate units.";
+    }
+  }
+
+  grouping POLICE-ACTION {
+    description
+      "Police action.";
+    leaf Transmit {
+      type empty;
+      description
+        "Police action transmit.";
+    }
+    leaf drop {
+      type empty;
+      description
+        "Police action drop.";
+    }
+    container set {
+      description
+        "Police action packet marking.";
+      uses POLICY-MARK;
+    }
+  }
+
+  grouping POLICY-MAP-RULE {
+    description
+      "Class-map rule.";
+    list event {
+      key "event-type";
+      description
+        "Policy event.";
+      leaf event-type {
+        type Event-type;
+        description
+          "Event type.";
+      }
+      leaf event-mode-match-all {
+        when "count(../event-mode-match-first) = 0" {
+          description
+            "Event MUST have only one mode.";
+        }
+        type empty;
+        description
+          "Execute all the matched classes.";
+      }
+      leaf event-mode-match-first {
+        when "count(../event-mode-match-all) = 0" {
+          description
+            "Event MUST have only one mode.";
+        }
+        type empty;
+        description
+          "Execute only the first matched class.";
+      }
+      list class {
+        key "class-name class-type";
+        description
+          "Class-map rule.";
+        leaf class-name {
+          type string {
+            pattern "[a-zA-Z0-9][a-zA-Z0-9\\._@$%+#:=<>\\-]{0,62}";
+          }
+          description
+            "Name of class.";
+        }
+        leaf class-type {
+          type Pmap-class-map-type;
+          description
+            "Type of class.";
+        }
+        leaf class-execution-strategy {
+          type Execution-strategy;
+          description
+            "Class execution strategy.";
+        }
+        list action-rule {
+          key "action-sequence-number";
+          description
+            "Action rule.";
+          leaf action-sequence-number {
+            type uint16 {
+              range "1..65535";
+            }
+            description
+              "Sequence number for this action.";
+          }
+          container activate-dynamic-template {
+            presence
+              "This container is present only if actions is
+               related to dynamic templates.";
+            description
+              "Activate dynamic templates.";
+            leaf name {
+              type string;
+              mandatory true;
+              description
+                "Dynamic template name.";
+            }
+            leaf aaa-list {
+              type string;
+              description
+                "Name of the AAA method list.";
+            }
+          }
+          container authenticate {
+            description
+              "Authentication related configuration.";
+            leaf aaa-list {
+              type string;
+              description
+                "Name of the AAA method list.";
+            }
+          }
+          container authorize {
+            must "format or identifier" {
+              description
+                "format or identifier must be set.";
+            }
+            presence
+              "This container is present only if actions is
+               related to authorization.";
+            description
+              "Authorize.";
+            leaf aaa-list {
+              type string;
+              mandatory true;
+              description
+                "Name of the AAA method list.";
+            }
+            leaf format {
+              type string;
+              description
+                "Specify an Authorize format name.";
+            }
+            leaf identifier {
+              type Authorize-identifier;
+              description
+                "Specify an Authorize format name.";
+            }
+            leaf password {
+              type string;
+              mandatory true;
+              description
+                "Specify a password to be used for AAA
+                 request.";
+            }
+          }
+          container deactivate-dynamic-template {
+            presence
+              "This container is present only if actions is
+               related to dynamic templates.";
+            description
+              "Deactivate dynamic templates.";
+            leaf name {
+              type string;
+              mandatory true;
+              description
+                "Dynamic template name.";
+            }
+            leaf aaa-list {
+              type string;
+              description
+                "Name of the AAA method list.";
+            }
+          }
+          leaf disconnect {
+            type empty;
+            description
+              "Disconnect session.";
+          }
+          leaf monitor {
+            type empty;
+            description
+              "Monitor session.";
+          }
+          container set-timer {
+            presence
+              "This container is present only if actions is
+               related to timer.";
+            description
+              "Set a timer to execute a rule on its 
+               expiry";
+            leaf timer-name {
+              type string;
+              mandatory true;
+              description
+                "Name of the timer.";
+            }
+            leaf timer-value {
+              type uint32;
+              units "minutes";
+              mandatory true;
+              description
+                "Timer value in minutes.";
+            }
+          }
+          container stop-timer {
+            description
+              "Disable timer before it expires.";
+            leaf timer-name {
+              type string;
+              description
+                "Name of the timer.";
+            }
+          }
+        }
+      }
+    }
+    list policy-map-rule {
+      key "class-name class-type";
+      description
+        "Class-map rule.";
+      leaf class-name {
+        type string {
+          pattern "[a-zA-Z0-9][a-zA-Z0-9\\._@$%+#:=<>\\-]{0,62}";
+        }
+        description
+          "Name of class-map.";
+      }
+      leaf class-type {
+        type Pmap-class-map-type;
+        description
+          "Type of class-map.";
+      }
+      container shape {
+        must "rate" {
+          description
+            "rate container must be present.";
+        }
+        description
+          "Policy action shape.";
+        container rate {
+          description
+            "Rate configuration.";
+          leaf value {
+            type uint32;
+            must "../unit" {
+              description
+                "unit must be set.";
+            }
+            description
+              "Shape bandwidth value.";
+          }
+          leaf unit {
+            type Bandwidth-units;
+            description
+              "Shape bandwidth units.";
+          }
+        }
+        container burst {
+          description
+            "Burst size configuration.";
+          leaf value {
+            type uint32;
+            must "../units" {
+              description
+                "units must be set.";
+            }
+            description
+              "Burst size value.";
+          }
+          leaf units {
+            type Threshold-units;
+            description
+              "Burst size units.";
+          }
+        }
+      }
+      container min-bandwidth {
+        description
+          "Policy action minimum bandwidth queue.";
+        leaf value {
+          type uint32;
+          must "../unit" {
+            description
+              "unit must be set.";
+          }
+          description
+            "Minimum bandwidth value.";
+        }
+        leaf unit {
+          type Bandwidth-units;
+          description
+            "Minimum bandwidth units.";
+        }
+      }
+      container bandwidth-remaining {
+        description
+          "Policy action bandwidth remaining queue.";
+        leaf value {
+          type uint32;
+          must "../unit" {
+            description
+              "unit must be set.";
+          }
+          description
+            "Remaining bandwidth value.";
+        }
+        leaf unit {
+          type Bandwidth-remaining-units;
+          description
+            "Remaining bandwidth units.";
+        }
+      }
+      container queue-limit {
+        description
+          "Policy action queue limit.";
+        leaf value {
+          type uint32;
+          must "../unit" {
+            description
+              "unit must be set.";
+          }
+          description
+            "Remaining bandwidth value.";
+        }
+        leaf unit {
+          type Queue-units;
+          description
+            "Remaining bandwidth units.";
+        }
+      }
+      container pfc {
+        description
+          "Policy action pfc.";
+        leaf pfc-pause-set {
+          type empty;
+          description
+            "Pfc Pause set value.";
+        }
+        container pfc-buffer-size {
+          leaf value {
+            type uint32;
+            must "../unit" {
+              description
+                "unit must be set.";
+            }
+            description
+              "Pfc buffer size value.";
+          }
+          leaf unit {
+            type Pfc-units;
+            description
+              "Pfc buffer size units.";
+          }
+        }
+        container pfc-pause-threshold {
+          leaf value {
+            type uint32;
+            must "../unit" {
+              description
+                "unit must be set.";
+            }
+            description
+              "Pfc pause threshold value.";
+          }
+          leaf unit {
+            type Pfc-units;
+            description
+              "Pfc pause threshold units.";
+          }
+        }
+        container pfc-resume-threshold {
+          leaf value {
+            type uint32;
+            must "../unit" {
+              description
+                "unit must be set.";
+            }
+            description
+              "Pfc resume threshold value.";
+          }
+          leaf unit {
+            type Pfc-units;
+            description
+              "Pfc resume threshold units.";
+          }
+        }
+      }
+      leaf priority-level {
+        type uint8 {
+          range "1..7";
+        }
+        description
+          "Priority level.";
+      }
+      leaf default-red {
+        type empty;
+        description
+          "Default random early detection";
+      }
+      leaf ecn-red {
+        type empty;
+        description
+          "ECN based random early detection";
+      }
+      list random-detect {
+        key "threshold-min-value threshold-min-units threshold-max-value threshold-max-units";
+        description
+          "Random early detection.
+           All RED profiles in a class must be based
+           on the same field.";
+        leaf threshold-min-value {
+          type uint32;
+          description
+            "Minimum RED threshold value.";
+        }
+        leaf threshold-min-units {
+          type Threshold-units;
+          description
+            "Minimum RED threshold units.";
+        }
+        leaf threshold-max-value {
+          type uint32;
+          description
+            "Maximum RED threshold value.";
+        }
+        leaf threshold-max-units {
+          type Threshold-units;
+          description
+            "Maximum RED threshold units.";
+        }
+        leaf-list cos {
+          type Dscp-range;
+          ordered-by user;
+          description
+            "WRED based on CoS.";
+        }
+        leaf-list discard-class {
+          type Cos;
+          ordered-by user;
+          description
+            "WRED based on discard class.";
+        }
+        leaf-list dscp {
+          type Dscp-range;
+          ordered-by user;
+          description
+            "WRED based on DSCP.";
+        }
+        leaf-list mpls-exp {
+          type Cos;
+          ordered-by user;
+          description
+            "MPLS Experimental value based WRED.";
+        }
+        leaf-list precedence {
+          type Precedence;
+          ordered-by user;
+          description
+            "WRED based on precedence.";
+        }
+        leaf dei {
+          type uint8 {
+            range "0..1";
+          }
+          description
+            "DEI based WRED.";
+        }
+        leaf ecn {
+          type empty;
+          description
+            "ECN based WRED.";
+        }
+      }
+      container set {
+        description
+          "Policy action packet marking.";
+        uses POLICY-MARK;
+      }
+      container police {
+        must "rate" {
+          description
+            "rate container must be present.";
+        }
+        description
+          "Configures traffic policing action.";
+        container rate {
+          description
+            "Rate configuration.";
+          leaf value {
+            type uint32;
+            must "../units" {
+              description
+                "units must be set.";
+            }
+            description
+              "Rate value.";
+          }
+          leaf units {
+            type Rate-units;
+            description
+              "Rate units.";
+          }
+        }
+        container peak-rate {
+          description
+            "Peak rate configuration.";
+          leaf value {
+            type uint32;
+            must "../units" {
+              description
+                "units must be set.";
+            }
+            description
+              "Peak rate value.";
+          }
+          leaf units {
+            type Rate-units;
+            description
+              "Peak rate units.";
+          }
+        }
+        container burst {
+          description
+            "Burst configuration.";
+          leaf value {
+            type uint32;
+            must "../units" {
+              description
+                "units must be set.";
+            }
+            description
+              "Burst value.";
+          }
+          leaf units {
+            type Threshold-units;
+            description
+              "Burst units.";
+          }
+        }
+        container peak-burst {
+          description
+            "Peak burst configuration.";
+          leaf value {
+            type uint32;
+            must "../units" {
+              description
+                "units must be set.";
+            }
+            description
+              "Peak burst value.";
+          }
+          leaf units {
+            type Threshold-units;
+            description
+              "Peak burst units.";
+          }
+        }
+        container conform-action {
+          description
+            "Configures the action to take on packets that conform 
+             to the rate limit.";
+          uses POLICE-ACTION;
+        }
+        container exceed-action {
+          description
+            "Configures the action to take on packets that exceed 
+             the rate limit.";
+          uses POLICE-ACTION;
+        }
+        container violate-action {
+          description
+            "Configures the action to take on packets that violate
+             the rate limit.";
+          uses POLICE-ACTION;
+        }
+      }
+      container service-policy {
+        description
+          "Configure a child service policy.";
+        leaf policy-name {
+          type string {
+            pattern "[a-zA-Z0-9][a-zA-Z0-9\\._@$%+#:=<>\\-]{0,62}";
+          }
+          description
+            "Name of service-policy.";
+        }
+        leaf type {
+          type Service-policy-type;
+          description
+            "Type of service-policy.";
+        }
+      }
+      container cac-local {
+        description
+          "Policy action CAC.";
+        container rate {
+          description
+            "The rate allocated for all flows.";
+          uses CAC-RATE-VALUE;
+        }
+        container flow-rate {
+          description
+            "The rate allocated per flow.";
+          uses CAC-RATE-VALUE;
+        }
+        leaf flow-idle-timeout {
+          type Idle-timeout;
+          description
+            "The interval after which a flow is removed, 
+             if there is no activity.
+             If timeout is 0 this flow does not expire.";
+        }
+      }
+      container flow-params {
+        description
+          "Policy flow monitoring action.";
+        leaf max-flow {
+          type uint16 {
+            range "0..4096";
+          }
+          description
+            "Max simultaneous flows monitored per policy class";
+        }
+        leaf interval-duration {
+          type uint32;
+          units "seconds";
+          description
+            "Monitored interval duration.";
+        }
+        leaf history {
+          type uint32;
+          description
+            "Keep stats/metrics on box for so many intervals.";
+        }
+        leaf timeout {
+          type uint32;
+          units "seconds";
+          description
+            "Declare a flow dead if no packets received in
+             so much time";
+        }
+      }
+      container metrics-ipcbr {
+        description
+          "Policy IP-CBR metric action.";
+        container rate {
+          description
+            "Nominal per-flow data rate.";
+          leaf layer3 {
+            type uint32;
+            units "bps";
+            description
+              "Nominal rate specified at the L3 (IP).";
+          }
+          leaf packet {
+            type uint32;
+            units "pps";
+            description
+              "Nominal IP layer packet rate (in pps).";
+          }
+          leaf media {
+            type uint32 {
+              range "1..3000000000";
+            }
+            units "bps";
+            description
+              "Nominal data rate of the media flow (ip payload).";
+          }
+        }
+        container media-packet {
+          description
+            "Media-packet structure.";
+          leaf size {
+            type uint16;
+            units "bytes";
+            description
+              "Nominal size of the media-packet.";
+          }
+          leaf count-in-layer3 {
+            type uint8 {
+              range "1..64";
+            }
+            units "packets";
+            description
+              "Nominal number of media packets in an IP payload.";
+          }
+        }
+      }
+      container react {
+        description
+          "Policy action react.";
+        leaf descrition {
+          type string;
+          description
+            "String describing the react statement.";
+        }
+        container action {
+          description
+            "Action on alert.";
+          leaf syslog {
+            type empty;
+            description
+              "Syslog.";
+          }
+          leaf snmp {
+            type empty;
+            description
+              "SNMP.";
+          }
+        }
+        container alarm {
+          description
+            "Alaram settings.";
+          container type {
+            description
+              "Alarm type.";
+            leaf discrete {
+              type empty;
+              description
+                "Discrete alarm type.";
+            }
+            leaf group-count {
+              type uint16;
+              units "number of flows";
+              description
+                "Number of flows to reach before 
+                 triggering alarm";
+            }
+            leaf group-percent {
+              type uint16;
+              units "percentage";
+              description
+                "Percent to reach before triggering alarm";
+            }
+          }
+          leaf severity {
+            type Alarm-severity;
+            description
+              "Severity of the alarm.";
+          }
+        }
+        container threshold {
+          description
+            "Alarm threshold settings.";
+          container trigger-value {
+            description
+              "Alarm trigger value settings.";
+            leaf greater-than {
+              type string;
+              description
+                "Greater than";
+            }
+            leaf greater-than-equal {
+              type string;
+              description
+                "Greater than equal";
+            }
+            leaf less-than {
+              type string;
+              description
+                "Less than";
+            }
+            leaf less-than-equal {
+              type string;
+              description
+                "Less than equal";
+            }
+            leaf range {
+              type string;
+              description
+                "Range";
+            }
+          }
+          container trigger-type {
+            description
+              "Alarm trigger type settings.";
+            leaf immediate {
+              type empty;
+              description
+                "Immediate trigger.";
+            }
+            leaf average {
+              type uint32;
+              description
+                "Trigger averaged over N intervals.";
+            }
+          }
+        }
+        leaf criterion-delay-factor {
+          type empty;
+          description
+            "React criterion delay factor.";
+        }
+        leaf criterion-media-stop {
+          type empty;
+          description
+            "React criterion media stop.";
+        }
+        leaf criterion-mrv {
+          type empty;
+          description
+            "React criterion mrv.";
+        }
+        leaf criterion-flow-count {
+          type empty;
+          description
+            "React criterion flow count.";
+        }
+        leaf criterion-packet-rate {
+          type empty;
+          description
+            "React criterion packet rate.";
+        }
+      }
+      leaf http-redirect {
+        type string;
+        description
+          "Policy action http redirect.
+           Redirect to this url.";
+      }
+      leaf pbr-transmit {
+        type empty;
+        description
+          "Policy action PBR transmit.";
+      }
+      leaf pbr-drop {
+        type empty;
+        description
+          "Policy action PBR drop.";
+      }
+      leaf decap-gre {
+        type empty;
+        description
+          "Policy action DECAP GRE.";
+      }
+      container pbr-redirect {
+        description
+          "Policy action redirect";
+        container ipv4 {
+          description
+            "Policy action redirect IPv4";
+          leaf ipv4-next-hop {
+            type inet:ipv4-address-no-zone;
+            description
+              "IPv4 address.";
+          }
+          leaf vrf {
+            type string;
+            description
+              "IPv4 VRF.";
+          }
+        }
+        container ipv6 {
+          description
+            "Policy action redirect IPv6";
+          leaf ipv6-next-hop {
+            type inet:ipv6-address-no-zone;
+            description
+              "IPv6 address.";
+          }
+          leaf vrf {
+            type string;
+            description
+              "IPv6 VRF.";
+          }
+        }
+        container next-hop {
+          description
+            "Next hop address.";
+          container route-target {
+            description
+              "Route Target";
+            container ipv4-address {
+              description
+                "IPv4 address.";
+              leaf address {
+                type inet:ipv4-address-no-zone;
+                description
+                  "IPv4 address.";
+              }
+              leaf netmask {
+                type string;
+                description
+                  "IPv4 netmask.";
+              }
+            }
+            leaf as-number {
+              type uint32 {
+                range "1..4294967295";
+              }
+              description
+                "2-byte/4-byte AS number";
+            }
+            leaf index {
+              type uint32 {
+                range "0..4294967295";
+              }
+              description
+                "ASN2:index 2/4 byte (hex or decimal format)";
+            }
+          }
+        }
+      }
+      container pbr-forward {
+        description
+          "Policy action PBR forward.";
+        leaf default {
+          type empty;
+          description
+            "Use system default routing table.";
+        }
+        container next-hop {
+          description
+            "Use specific next-hop.
+             Here we present 5 different combination 
+             for the pbf next-hop.
+              1. vrf with v6 address
+              2. vrf with v4 address
+              3. vrf 
+              4. v4 address
+              5. v6 address";
+          leaf vrf {
+            type string;
+            description
+              "VRF name.";
+          }
+          leaf ipv4-address {
+            type inet:ipv4-address;
+            description
+              "IPv4 address.";
+          }
+          leaf ipv6-address {
+            type inet:ipv6-address;
+            description
+              "IPv6 address.";
+          }
+        }
+      }
+      leaf service-fragment {
+        type string;
+        description
+          "Policy action service fragment. 
+           Service fragment name";
+      }
+      leaf fragment {
+        type string;
+        description
+          "Policy action fragment. Fragment name";
+      }
+      container service-function-path {
+        presence
+          "This container is present for service-
+           function-path configuration";
+        description
+          "Policy action service function path.";
+        leaf path-id {
+          type uint32 {
+            range "1..16777215";
+          }
+          mandatory true;
+          description
+            "Service function path id.";
+        }
+        leaf index {
+          type uint8 {
+            range "1..255";
+          }
+          mandatory true;
+          description
+            "Service function path index.";
+        }
+        leaf metadata {
+          type string;
+          description
+            "Service function path metadata name.";
+        }
+      }
+    }
+    leaf description {
+      type string;
+      description
+        "Description for this policy-map.";
+    }
+  }
+
+  container policy-manager {
+    description
+      "Global Policy Manager configuration.";
+    container class-maps {
+      description
+        "Class-maps configuration.";
+      list class-map {
+        key "type name";
+        description
+          "Class-map configuration.";
+        leaf type {
+          type Class-map-type;
+          description
+            "Type of class-map.";
+        }
+        leaf name {
+          type string {
+            pattern "[a-zA-Z0-9][a-zA-Z0-9\\._@$%+#:=<>\\-]{0,62}";
+          }
+          description
+            "Name of class-map.";
+        }
+        uses CLASS-MAP-RULE;
+      }
+    }
+    container policy-maps {
+      description
+        "Policy-maps configuration.";
+      list policy-map {
+        key "type name";
+        description
+          "Policy-map configuration.";
+        leaf type {
+          type Policy-map-type;
+          description
+            "Type of policy-map.";
+        }
+        leaf name {
+          type string {
+            pattern "[a-zA-Z0-9][a-zA-Z0-9\\._@$%+#:=<>\\-]{0,62}";
+          }
+          description
+            "Name of policy-map.";
+        }
+        uses POLICY-MAP-RULE;
+      }
+    }
+  }
+}
similarity index 50%
rename from cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ip-static-cfg@2015-09-10.yang
rename to cisco-xrmodels/src/main/yang/Cisco-IOS-XR-ip-static-cfg@2017-05-01.yang
index 50daa3849959c3a38c104c4449fc97dca3f47e4c..e4c2530f9b75f91eb7114a99e8bd18cc7ba92710 100644 (file)
@@ -1,68 +1,61 @@
 module Cisco-IOS-XR-ip-static-cfg {
-
-  /*** NAMESPACE / PREFIX DEFINITION ***/
-
   namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-ip-static-cfg";
+  prefix ip-static-cfg;
 
+  import ietf-inet-types {
+    prefix inet;
+  }
+  import Cisco-IOS-XR-types {
+    prefix xr;
+  }
 
-  prefix "ip-static-cfg";
-
-  /*** LINKAGE (IMPORTS / INCLUDES) ***/
-
-  import ietf-inet-types { prefix "inet";  revision-date 2013-07-15;}
-
-  import Cisco-IOS-XR-types { prefix "xr"; }
-
-  /*** META INFORMATION ***/
-
-  organization "Cisco Systems, Inc.";
-
+  organization
+    "Cisco Systems, Inc.";
   contact
     "Cisco Systems, Inc.
      Customer Service
-
+     
      Postal: 170 West Tasman Drive
      San Jose, CA 95134
-
+     
      Tel: +1 800 553-NETS
-
+     
      E-mail: cs-yang@cisco.com";
-
-  description 
+  description
     "This module contains a collection of YANG definitions
      for Cisco IOS-XR ip-static package configuration.
-
+     
      This module contains definitions
      for the following management objects:
        router-static: This class represents router static
          configuration
-
-     Copyright (c) 2013-2015 by Cisco Systems, Inc.
+     
+     Copyright (c) 2013-2017 by Cisco Systems, Inc.
      All rights reserved.";
 
-  revision "2015-09-10" {
+  revision 2017-05-01 {
+    description
+      "Fixing backward compatibility error in module.";
+  }
+  revision 2015-09-10 {
     description
       "Descriptions updated.";
   }
-
-  revision "2015-01-07" {
+  revision 2015-01-07 {
     description
       "IOS XR 5.3.1 revision.";
   }
 
-
   grouping VRF-ROUTE {
-    description "Common node of vrf-prefix, vrf-prefix-topology";
-
+    description
+      "Common node of vrf-prefix, vrf-prefix-topology";
     container vrf-route {
-      xr:xr-xml-map "ip_static_cfg:VRFRoute";
-      description "A connected or recursive  static route";
-
+      description
+        "A connected or recursive  static route";
       container vrf-next-hop-table {
-        xr:xr-xml-map "ip_static_cfg:VRFNextHopTable";
         description
           "The set of nexthop information configured for
-          this route";
+           this route";
         uses VRF-NEXT-HOP;
       }
     }
@@ -71,205 +64,229 @@ module Cisco-IOS-XR-ip-static-cfg {
   grouping VRF-NEXT-HOP {
     description
       "Common node of vrf-next-hop-table,
-      segment-route-next-hop-table";
+       vrf-recursive-next-hop-table,
+       segment-route-next-hop-table";
 
     grouping VRF-NEXT-HOP-CONTENT {
-      description "VRF NEXT HOP CONTENT";
+      description
+        "VRF NEXT HOP CONTENT";
       leaf bfd-fast-detect {
-        xr:xr-xml-map "ip_static_cfg:BFDFastDetect";
         type boolean;
         default "false";
-        description "If set, bfd is enabled";
+        description
+          "If set, bfd is enabled";
       }
       leaf minimum-interval {
-        xr:xr-xml-map "ip_static_cfg:MinimumInterval";
         type uint32 {
           range "3..30000";
         }
         units "millisecond";
         default "100";
-        description "BFD Hello interval in milliseconds";
+        description
+          "BFD Hello interval in milliseconds";
       }
       leaf detect-multiplier {
-        xr:xr-xml-map "ip_static_cfg:DetectMultiplier";
         type uint32 {
           range "1..10";
         }
         default "3";
-        description "BFD Detect Multiplier";
+        description
+          "BFD Detect Multiplier";
       }
       leaf metric {
-        xr:xr-xml-map "ip_static_cfg:Metric";
         type uint32 {
           range "1..254";
         }
         default "1";
-        description "Distance metric for this path";
+        description
+          "Distance metric for this path";
       }
       leaf tag {
-        xr:xr-xml-map "ip_static_cfg:Tag";
         type uint32 {
           range "1..4294967295";
         }
-        description "Tag for this path";
+        description
+          "Tag for this path";
       }
       leaf permanent {
-        xr:xr-xml-map "ip_static_cfg:Permanent";
         type boolean;
         default "false";
-        description "If set, path is permanent";
+        description
+          "If set, path is permanent";
       }
       leaf vrf-lable {
-        xr:xr-xml-map "ip_static_cfg:VRFLable";
         type uint32 {
           range "0..4294967295";
         }
         default "0";
-        description "VRF LABEL";
+        description
+          "VRF LABEL";
       }
       leaf tunnel-id {
-        xr:xr-xml-map "ip_static_cfg:TunnelID";
         type uint32 {
           range "0..65535";
         }
         default "0";
-        description "Tunnel ID for this path";
+        description
+          "Tunnel ID for this path";
       }
       leaf object-name {
-        xr:xr-xml-map "ip_static_cfg:ObjectName";
         type xr:Cisco-ios-xr-string {
-          length "0..32";
+          length "1..32";
         }
-        description "Name of the object to track";
+        description
+          "Name of the object to track";
       }
       leaf description {
-        xr:xr-xml-map "ip_static_cfg:Description";
         type string;
-        description "Short Description of Static Route";
+        description
+          "Short Description of Static Route";
       }
       leaf load-metric {
-        xr:xr-xml-map "ip_static_cfg:Load_Metric";
         type uint32 {
           range "1..16777214";
         }
         default "1";
-        description "UCMP load metric";
+        description
+          "UCMP load metric";
+      }
+      leaf index {
+        type string;
+        description
+          "Nexthop Identifier for OC Yang model";
       }
     }
-
     list vrf-next-hop-interface-name {
       key "interface-name";
       description
         "A forwarding interface or Segement Routing mpls
-        path name and/or the address of a nexthop router
-        for this route (one of these must be specified)";
+         path name and/or the address of a nexthop router
+         for this route (one of these must be specified)";
       leaf interface-name {
-        xr:xr-xml-map "ip_static_cfg:InterfaceName";
         type xr:Interface-name;
-        description "Forwarding interface";
+        description
+          "Forwarding interface";
       }
       uses VRF-NEXT-HOP-CONTENT;
     }
-
     list vrf-next-hop-interface-name-next-hop-address {
       key "interface-name next-hop-address";
       description
         "A forwarding interface or Segement Routing mpls
-        path name and/or the address of a nexthop router
-        for this route (one of these must be specified)";
+         path name and/or the address of a nexthop router
+         for this route (one of these must be specified)";
       leaf interface-name {
-        xr:xr-xml-map "ip_static_cfg:InterfaceName";
         type xr:Interface-name;
-        description "Forwarding interface";
+        description
+          "Forwarding interface";
       }
       leaf next-hop-address {
-        xr:xr-xml-map "ip_static_cfg:NextHopAddress";
         type inet:ip-address-no-zone;
-        description "Next hop address";
+        description
+          "Next hop address";
       }
       uses VRF-NEXT-HOP-CONTENT;
     }
-
     list vrf-next-hop-next-hop-address {
       key "next-hop-address";
       description
         "A forwarding interface or Segement Routing mpls
-        path name and/or the address of a nexthop router
-        for this route (one of these must be specified)";
+         path name and/or the address of a nexthop router
+         for this route (one of these must be specified)";
       leaf next-hop-address {
-        xr:xr-xml-map "ip_static_cfg:NextHopAddress";
         type inet:ip-address-no-zone;
-        description "Next hop address";
+        description
+          "Next hop address";
       }
       uses VRF-NEXT-HOP-CONTENT;
     }
-
     list vrf-next-hop-next-hop-address-explicit-path-name {
       key "next-hop-address explicit-path-name";
       description
         "A forwarding interface or Segement Routing mpls
-        path name and/or the address of a nexthop router
-        for this route (one of these must be specified)";
+         path name and/or the address of a nexthop router
+         for this route (one of these must be specified)";
       leaf next-hop-address {
-        xr:xr-xml-map "ip_static_cfg:NextHopAddress";
         type inet:ip-address-no-zone;
-        description "Next hop address";
+        description
+          "Next hop address";
       }
       leaf explicit-path-name {
-        xr:xr-xml-map "ip_static_cfg:ExplicitPathName";
         type xr:Cisco-ios-xr-string;
-        description "Segment Routing mpls path name";
+        description
+          "Segment Routing mpls path name";
       }
       uses VRF-NEXT-HOP-CONTENT;
     }
-
     list vrf-next-hop-explicit-path-name {
       key "explicit-path-name";
       description
         "A forwarding interface or Segement Routing mpls
-        path name and/or the address of a nexthop router
-        for this route (one of these must be specified)";
+         path name and/or the address of a nexthop router
+         for this route (one of these must be specified)";
       leaf explicit-path-name {
-        xr:xr-xml-map "ip_static_cfg:ExplicitPathName";
         type xr:Cisco-ios-xr-string;
-        description "Segment Routing mpls path name";
+        description
+          "Segment Routing mpls path name";
       }
       uses VRF-NEXT-HOP-CONTENT;
     }
   }
 
   grouping VRF-SEG-ROUTE {
-    description "Common node of vrf-prefix, vrf-prefix-topology";
-
+    description
+      "Common node of vrf-prefix, vrf-prefix-topology";
     container vrf-seg-route {
-      xr:xr-xml-map "ip_static_cfg:VRFSegRoute";
-      description "A static segment route";
-
+      description
+        "A static segment route";
       container segment-route-next-hop-table {
-        xr:xr-xml-map "ip_static_cfg:SegmentRouteNextHopTable";
         description
           "The set of nexthop information configured for
-          this route";
+           this route";
         uses VRF-NEXT-HOP;
       }
     }
   }
 
-  grouping TOPOLOGY-TABLE {
-    description "Common node of vrf-unicast, vrf-multicast";
+  grouping VRF-RECURSE-ROUTE-TABLE {
+    description
+      "Common node of vrf-prefix, vrf-prefix-topology";
+    container vrf-recurse-routes {
+      description
+        "A recursive next VRF static route";
+      list vrf-recurse-route {
+        key "vrf-name";
+        description
+          "A recursive next vrf static route";
+        container vrf-recursive-next-hop-table {
+          description
+            "The set of nexthop information configured for
+             this route";
+          uses VRF-NEXT-HOP;
+        }
+        leaf vrf-name {
+          type xr:Cisco-ios-xr-string;
+          description
+            "Fallback or recusive VRF name";
+        }
+      }
+    }
+  }
 
+  grouping TOPOLOGY-TABLE {
+    description
+      "Common node of vrf-unicast, vrf-multicast";
     container topologies {
-      xr:xr-xml-map "ip_static_cfg:TopologyTable";
-      description "Topology static configuration container";
-
+      description
+        "Topology static configuration container";
       list topology {
-        xr:xr-xml-map "ip_static_cfg:Topology";
         key "topology-name";
-        description "Topology static configuration";
+        description
+          "Topology static configuration";
         leaf topology-name {
-          xr:xr-xml-map "ip_static_cfg:TopologyName";
           type xr:Cisco-ios-xr-string;
-          description "Topology name";
+          description
+            "Topology name";
         }
         uses VRF-PREFIX-TOPOLOGY-TABLE;
       }
@@ -277,51 +294,49 @@ module Cisco-IOS-XR-ip-static-cfg {
   }
 
   grouping VRF-PREFIX-TABLE {
-    description "Common node of vrf-unicast, vrf-multicast";
-
+    description
+      "Common node of vrf-unicast, vrf-multicast";
     container vrf-prefixes {
-      xr:xr-xml-map "ip_static_cfg:VRFPrefixTable";
-      description "The set of all Static Topologies for this AFI.";
-
+      description
+        "The set of all Static Topologies for this AFI.";
       list vrf-prefix {
-        xr:xr-xml-map "ip_static_cfg:VRFPrefix";
         key "prefix prefix-length";
-        description "A static route";
+        description
+          "A static route";
         leaf prefix {
-          xr:xr-xml-map "ip_static_cfg:Prefix";
           type inet:ip-address-no-zone;
-          description "Destination prefix";
+          description
+            "Destination prefix";
         }
         leaf prefix-length {
-          xr:xr-xml-map "ip_static_cfg:PrefixLength";
           type uint32 {
             range "0..128";
           }
-          description "Destination prefix length";
+          description
+            "Destination prefix length";
         }
         uses VRF-ROUTE;
+        uses VRF-RECURSE-ROUTE-TABLE;
         uses VRF-SEG-ROUTE;
       }
     }
   }
 
   grouping ADDRESS-FAMILY {
-    description "Common node of default-vrf, vrf";
-
+    description
+      "Common node of default-vrf, vrf";
     container address-family {
-      xr:xr-xml-map "ip_static_cfg:AddressFamily";
-      description "Address family configuration";
-
+      description
+        "Address family configuration";
       container vrfipv4 {
-        xr:xr-xml-map "ip_static_cfg:VRFIPV4";
-        description "IPv4 static configuration";
+        description
+          "IPv4 static configuration";
         uses VRF-UNICAST;
         uses VRF-MULTICAST;
       }
-
       container vrfipv6 {
-        xr:xr-xml-map "ip_static_cfg:VRFIPV6";
-        description "IPv6 static configuration";
+        description
+          "IPv6 static configuration";
         uses VRF-UNICAST;
         uses VRF-MULTICAST;
       }
@@ -329,50 +344,50 @@ module Cisco-IOS-XR-ip-static-cfg {
   }
 
   grouping VRF-PREFIX-TOPOLOGY-TABLE {
-    description "Common node of default-topology, topology";
-
+    description
+      "Common node of default-topology, topology";
     container vrf-prefix-topologies {
-      xr:xr-xml-map "ip_static_cfg:VRFPrefixTopologyTable";
-      description "The set of all Static Topologies for this AFI.";
-
+      description
+        "The set of all Static Topologies for this AFI.";
       list vrf-prefix-topology {
-        xr:xr-xml-map "ip_static_cfg:VRFPrefixTopology";
         key "prefix prefix-length";
-        description "A static route";
+        description
+          "A static route";
         leaf prefix {
-          xr:xr-xml-map "ip_static_cfg:Prefix";
           type inet:ip-address-no-zone;
-          description "Destination prefix";
+          description
+            "Destination prefix";
         }
         leaf prefix-length {
-          xr:xr-xml-map "ip_static_cfg:PrefixLength";
           type uint32 {
             range "0..128";
           }
-          description "Destination prefix length";
+          description
+            "Destination prefix length";
         }
         uses VRF-ROUTE;
+        uses VRF-RECURSE-ROUTE-TABLE;
         uses VRF-SEG-ROUTE;
       }
     }
   }
 
   grouping DEFAULT-TOPOLOGY {
-    description "Common node of vrf-unicast, vrf-multicast";
-
+    description
+      "Common node of vrf-unicast, vrf-multicast";
     container default-topology {
-      xr:xr-xml-map "ip_static_cfg:DefaultTopology";
-      description "Default topology configuration";
+      description
+        "Default topology configuration";
       uses VRF-PREFIX-TOPOLOGY-TABLE;
     }
   }
 
   grouping VRF-UNICAST {
-    description "Common node of vrfipv4, vrfipv6";
-
+    description
+      "Common node of vrfipv4, vrfipv6";
     container vrf-unicast {
-      xr:xr-xml-map "ip_static_cfg:VRFUnicast";
-      description "Unicast static configuration";
+      description
+        "Unicast static configuration";
       uses TOPOLOGY-TABLE;
       uses VRF-PREFIX-TABLE;
       uses DEFAULT-TOPOLOGY;
@@ -380,11 +395,11 @@ module Cisco-IOS-XR-ip-static-cfg {
   }
 
   grouping VRF-MULTICAST {
-    description "Common node of vrfipv4, vrfipv6";
-
+    description
+      "Common node of vrfipv4, vrfipv6";
     container vrf-multicast {
-      xr:xr-xml-map "ip_static_cfg:VRFMulticast";
-      description "Multicast static configuration";
+      description
+        "Multicast static configuration";
       uses TOPOLOGY-TABLE;
       uses VRF-PREFIX-TABLE;
       uses DEFAULT-TOPOLOGY;
@@ -392,57 +407,50 @@ module Cisco-IOS-XR-ip-static-cfg {
   }
 
   container router-static {
-    xr:xr-xml-map "ip_static_cfg:RouterStatic";
-    description "This class represents router static configuration";
-
+    description
+      "This class represents router static configuration";
     container vrfs {
-      xr:xr-xml-map "ip_static_cfg:VRFTable";
-      description "VRF static configuration container";
-
+      description
+        "VRF static configuration container";
       list vrf {
-        xr:xr-xml-map "ip_static_cfg:VRF";
         key "vrf-name";
-        description "VRF static configuration";
+        description
+          "VRF static configuration";
         leaf vrf-name {
-          xr:xr-xml-map "ip_static_cfg:VRFName";
           type xr:Cisco-ios-xr-string;
-          description "VRF name";
+          description
+            "VRF name";
         }
         uses ADDRESS-FAMILY;
       }
     }
-
     container default-vrf {
-      xr:xr-xml-map "ip_static_cfg:DefaultVRF";
-      description "Default VRF configuration";
+      description
+        "Default VRF configuration";
       uses ADDRESS-FAMILY;
     }
-
     container maximum-routes {
-      xr:xr-xml-map "ip_static_cfg:MaximumRoutes";
       description
         "The maximum number of static routes that can be
-        configured.";
+         configured.";
       leaf ipv6-routes {
-        xr:xr-xml-map "ip_static_cfg:IPV6Routes";
         type uint32 {
           range "1..140000";
         }
         default "4000";
         description
           "The maximum number of static routes that can be
-          configured for IPv6 AFI.";
+           configured for IPv6 AFI.";
       }
       leaf ipv4-routes {
-        xr:xr-xml-map "ip_static_cfg:IPV4Routes";
         type uint32 {
           range "1..140000";
         }
         default "4000";
         description
           "The maximum number of static routes that can be
-          configured for IPv4 AFI.";
+           configured for IPv4 AFI.";
       }
     }
   }
-}
\ No newline at end of file
+}
similarity index 53%
rename from cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2-eth-infra-cfg@2015-11-09.yang
rename to cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2-eth-infra-cfg@2017-05-01.yang
index dea4db66c3177ee9054b6436b91d09d568c94789..2fd724eaa237273a02f4eb487fb24c9f9f329975 100644 (file)
 module Cisco-IOS-XR-l2-eth-infra-cfg {
-
-  /*** NAMESPACE / PREFIX DEFINITION ***/
-
   namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-l2-eth-infra-cfg";
+  prefix l2-eth-infra-cfg;
 
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import Cisco-IOS-XR-l2-eth-infra-datatypes {
+    prefix dt1;
+  }
+  import Cisco-IOS-XR-ifmgr-cfg {
+    prefix a1;
+  }
+  import Cisco-IOS-XR-l2vpn-cfg {
+    prefix a2;
+  }
 
-  prefix "l2-eth-infra-cfg";
-
-  /*** LINKAGE (IMPORTS / INCLUDES) ***/
-
-  import ietf-yang-types { prefix "yang"; }
-
-  import Cisco-IOS-XR-types { prefix "xr"; }
-
-  import Cisco-IOS-XR-l2-eth-infra-datatypes { prefix "dt1"; }
-
-  import Cisco-IOS-XR-ifmgr-cfg { prefix "a1"; }
-
-  import Cisco-IOS-XR-l2vpn-cfg { prefix "a2"; }
-
-  /*** META INFORMATION ***/
-
-  organization "Cisco Systems, Inc.";
-
+  organization
+    "Cisco Systems, Inc.";
   contact
     "Cisco Systems, Inc.
      Customer Service
-
+     
      Postal: 170 West Tasman Drive
      San Jose, CA 95134
-
+     
      Tel: +1 800 553-NETS
-
+     
      E-mail: cs-yang@cisco.com";
-
-  description 
+  description
     "This module contains a collection of YANG definitions
      for Cisco IOS-XR l2-eth-infra package configuration.
-
+     
      This module contains definitions
      for the following management objects:
        ethernet-features: Ethernet Features Configuration
-
+     
      This YANG module augments the
        Cisco-IOS-XR-ifmgr-cfg,
        Cisco-IOS-XR-l2vpn-cfg
      modules with configuration data.
-
-     Copyright (c) 2013-2015 by Cisco Systems, Inc.
+     
+     Copyright (c) 2013-2017 by Cisco Systems, Inc.
      All rights reserved.";
 
-  revision "2015-11-09" {
+  revision 2017-05-01 {
+    description
+      "Fixing backward compatibility error in module.";
+  }
+  revision 2015-11-09 {
     description
       "IOS XR 6.0 revision.";
   }
 
   typedef L2-protocol-name {
     type enumeration {
-      enum cdp {
+      enum "cdp" {
         value 0;
-        description "CDP";
+        description
+          "CDP";
       }
-      enum stp {
+      enum "stp" {
         value 1;
-        description "STP";
+        description
+          "STP";
       }
-      enum vtp {
+      enum "vtp" {
         value 2;
-        description "VTP";
+        description
+          "VTP";
       }
-      enum pvst {
+      enum "pvst" {
         value 3;
-        description "PVST+";
+        description
+          "PVST+";
       }
-      enum cpsv {
+      enum "cpsv" {
         value 4;
-        description "CDP, PVST+, STP, and VTP";
+        description
+          "CDP, PVST+, STP, and VTP";
       }
     }
-    description "L2 protocol name";
+    description
+      "L2 protocol name";
   }
+
   typedef L2-protocol-mode {
     type enumeration {
-      enum forward {
+      enum "forward" {
         value 0;
-        description "Forward packets transparently";
+        description
+          "Forward packets transparently";
       }
-      enum drop {
+      enum "drop" {
         value 1;
-        description "Drop the protocol's packets";
+        description
+          "Drop the protocol's packets";
       }
-      enum tunnel {
+      enum "tunnel" {
         value 2;
-        description "Tunnel ingress frames, untunnel egress frames";
+        description
+          "Tunnel ingress frames, untunnel egress frames";
       }
-      enum reverse-tunnel {
+      enum "reverse-tunnel" {
         value 3;
-        description "Tunnel egress frames, untunnel ingress frames";
+        description
+          "Tunnel egress frames, untunnel ingress frames";
       }
     }
-    description "L2 protocol mode";
+    description
+      "L2 protocol mode";
   }
+
   typedef Egress-filtering {
     type enumeration {
-      enum egress-filtering-type-strict {
+      enum "egress-filtering-type-strict" {
         value 1;
-        description "Strict Egress Filtering";
+        description
+          "Strict Egress Filtering";
       }
-      enum egress-filtering-type-disable {
+      enum "egress-filtering-type-disable" {
         value 2;
-        description "Egress Filtering Disabled";
+        description
+          "Egress Filtering Disabled";
       }
-      enum egress-filtering-type-default {
+      enum "egress-filtering-type-default" {
         value 3;
-        description "Default Egress Filtering Behavior";
+        description
+          "Default Egress Filtering Behavior";
       }
     }
-    description "Egress filtering";
+    description
+      "Egress filtering";
   }
+
   typedef Filtering {
     type enumeration {
-      enum filtering-type-dot1q {
+      enum "filtering-type-dot1q" {
         value 0;
         description
           "C-Vlan ingress frame filtering (Table 8-1 of
-          802.1ad standard)";
+           802.1ad standard)";
       }
-      enum filtering-type-dot1ad {
+      enum "filtering-type-dot1ad" {
         value 1;
         description
           "S-Vlan ingress frame filtering (Table 8-2 of
-          802.1ad standard)";
+           802.1ad standard)";
       }
     }
-    description "Filtering";
+    description
+      "Filtering";
   }
+
   typedef L2-protocol-mpls-exp-bits-value {
     type uint32 {
       range "0..7";
     }
-    description "L2 protocol mpls exp bits value";
-  }
-
-  container ethernet-features {
-    xr:xr-xml-map "ether_gl_feature_cfg:EthernetFeatures";
-    description "Ethernet Features Configuration";
-
-    container egress-filtering {
-      xr:xr-xml-map "ether_gl_cfg:EgressFiltering";
-      description "Egress Filtering Configuration";
-      leaf egress-filtering-default-on {
-        xr:xr-xml-map "ether_gl_cfg:EgressFilteringDefaultOn";
-        type empty;
-        description "Whether Egress Filtering is on by default";
-      }
-    }
+    description
+      "L2 protocol mpls exp bits value";
   }
 
   augment "/a1:interface-configurations/a1:interface-configuration" {
-
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
     container vlan-sub-configuration {
-      xr:xr-xml-map "vlan_interface_cfg:VLANSubConfiguration";
-      description "IEEE 802.1Q VLAN subinterface configuration";
-
+      description
+        "IEEE 802.1Q VLAN subinterface configuration";
       container vlan-identifier {
-        xr:xr-xml-map "vlan_interface_cfg:VLANIdentifier";
         presence "Indicates a vlan-identifier node is configured.";
         description
           "The VLAN tag stack associated with this
-          sub-interface.";
+           sub-interface.";
         leaf vlan-type {
-          xr:xr-xml-map "vlan_interface_cfg:VlanType";
           type dt1:Vlan;
           mandatory true;
           description
             "Whether this sub-interface is dot1ad or dot1Q";
         }
         leaf first-tag {
-          xr:xr-xml-map "vlan_interface_cfg:FirstTag";
           type dt1:Vlan-tag;
           mandatory true;
-          description "First (outermost) VLAN tag value";
+          description
+            "First (outermost) VLAN tag value";
         }
         leaf second-tag {
-          xr:xr-xml-map "vlan_interface_cfg:SecondTag";
           type dt1:Vlan-tag-or-null;
           description
             "Second VLAN tag value. The any value may only
-            be used for Layer 2 subinterfaces";
+             be used for Layer 2 subinterfaces";
         }
       }
     }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
   }
-
   augment "/a1:interface-configurations/a1:interface-configuration" {
-
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
     container ethernet-service {
-      xr:xr-xml-map "vlan_interface_cfg:EthernetService";
-      description "Ethernet service configuration";
-
+      description
+        "Ethernet service configuration";
       container local-traffic-default-encapsulation {
-        xr:xr-xml-map "vlan_interface_cfg:LocalTrafficDefaultEncaps"+
-          "ulation";
-        presence "Indicates a local-traffic-default-encapsulation"+
-          " node is configured.";
+        presence "Indicates a local-traffic-default-encapsulation node is configured.";
         description
           "The default encapsulation to be used for
-          locally-sourced packets";
+           locally-sourced packets";
         leaf outer-tag-type {
-          xr:xr-xml-map "vlan_interface_cfg:OuterTagType";
           type dt1:Vlan;
           mandatory true;
-          description "Type of outer tag";
+          description
+            "Type of outer tag";
         }
         leaf outer-vlan-id {
-          xr:xr-xml-map "vlan_interface_cfg:OuterVLANId";
           type dt1:Vlan-tag;
           mandatory true;
-          description "VLAN id for outer tag";
+          description
+            "VLAN id for outer tag";
         }
         leaf inner-vlan-id {
-          xr:xr-xml-map "vlan_interface_cfg:InnerVLANId";
           type dt1:Vlan-tag;
-          description "Optional VLAN Id for inner Dot1Q tag";
+          description
+            "Optional VLAN Id for inner Dot1Q tag";
         }
       }
-
       container encapsulation {
-        xr:xr-xml-map "vlan_interface_cfg:Encapsulation";
         presence "Indicates a encapsulation node is configured.";
-        description "The encapsulation of this Ethernet service";
+        description
+          "The encapsulation of this Ethernet service";
         leaf outer-tag-type {
-          xr:xr-xml-map "vlan_interface_cfg:OuterTagType";
           type dt1:Match;
           mandatory true;
           description
             "Whether to match all unmatched packets,
-            untagged packets or tagged packets, and if
-            matching tagged packets, the outer tag type to
-            match";
+             untagged packets or tagged packets, and if
+             matching tagged packets, the outer tag type to
+             match";
         }
         leaf outer-range1-low {
-          xr:xr-xml-map "vlan_interface_cfg:OuterRange1Low";
           type dt1:Vlan-tag-or-any;
           description
             "Low value of first range for outer tag match";
         }
         leaf outer-range1-high {
-          xr:xr-xml-map "vlan_interface_cfg:OuterRange1High";
           type dt1:Vlan-tag-or-native;
           description
             "High value of first range for outer tag match";
         }
         leaf inner-tag-type {
-          xr:xr-xml-map "vlan_interface_cfg:InnerTagType";
           type dt1:Match;
-          description "Type of tag for inner match (if present)";
+          description
+            "Type of tag for inner match (if present)";
         }
         leaf inner-range1-low {
-          xr:xr-xml-map "vlan_interface_cfg:InnerRange1Low";
           type dt1:Vlan-tag-or-any;
           description
             "Low value of first range for inner tag match";
         }
         leaf inner-range1-high {
-          xr:xr-xml-map "vlan_interface_cfg:InnerRange1High";
           type dt1:Vlan-tag;
           description
             "High value of first range for inner tag match";
         }
         leaf additional-range1-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange1Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of first additional range for tag
-            match";
+             match";
         }
         leaf additional-range1-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange1High";
           type dt1:Vlan-tag;
           description
             "High value of first additional range for tag
-            match";
+             match";
         }
         leaf additional-range2-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange2Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of second additional range for tag
-            match";
+             match";
         }
         leaf additional-range2-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange2High";
           type dt1:Vlan-tag;
           description
             "High value of second additional range for tag
-            match";
+             match";
         }
         leaf additional-range3-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange3Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of third additional range for tag
-            match";
+             match";
         }
         leaf additional-range3-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange3High";
           type dt1:Vlan-tag;
           description
             "High value of third additional range for tag
-            match";
+             match";
         }
         leaf additional-range4-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange4Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of forth additional range for tag
-            match";
+             match";
         }
         leaf additional-range4-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange4High";
           type dt1:Vlan-tag;
           description
             "High value of forth additional range for tag
-            match";
+             match";
         }
         leaf additional-range5-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange5Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of fifth additional range for tag
-            match";
+             match";
         }
         leaf additional-range5-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange5High";
           type dt1:Vlan-tag;
           description
             "High value of fifth additional range for tag
-            match";
+             match";
         }
         leaf additional-range6-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange6Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of sixth additional range for tag
-            match";
+             match";
         }
         leaf additional-range6-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange6High";
           type dt1:Vlan-tag;
           description
             "High value of sixth additional range for tag
-            match";
+             match";
         }
         leaf additional-range7-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange7Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of seventh additional range for tag
-            match";
+             match";
         }
         leaf additional-range7-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange7High";
           type dt1:Vlan-tag;
           description
             "High value of seventh additional range for tag
-            match";
+             match";
         }
         leaf additional-range8-low {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange8Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of eighth additional range for tag
-            match";
+             match";
         }
         leaf additional-range8-high {
-          xr:xr-xml-map "vlan_interface_cfg:AdditionalRange8High";
           type dt1:Vlan-tag;
           description
             "High value of eighth additional range for tag
-            match";
+             match";
         }
         leaf outer-class-of-service {
-          xr:xr-xml-map "vlan_interface_cfg:OuterClassOfService";
           type dt1:Class-of-service;
           description
             "Value to match against Class Of Service bits
-            for outer tag";
+             for outer tag";
         }
         leaf inner-class-of-service {
-          xr:xr-xml-map "vlan_interface_cfg:InnerClassOfService";
           type dt1:Class-of-service;
           description
             "Value to match against Class Of Service bits
-            for inner tag";
+             for inner tag";
         }
         leaf payload-ethertype-match {
-          xr:xr-xml-map "vlan_interface_cfg:PayloadEthertypeMatch";
           type dt1:Ethertype-match;
-          description "Which payload ethertype values to match";
+          description
+            "Which payload ethertype values to match";
         }
         leaf ingress-source-mac {
-          xr:xr-xml-map "vlan_interface_cfg:IngressSourceMAC";
           type yang:mac-address;
-          description "Source MAC address to match on ingress";
+          description
+            "Source MAC address to match on ingress";
         }
         leaf ingress-destination-mac {
-          xr:xr-xml-map "vlan_interface_cfg:IngressDestinationMAC";
           type yang:mac-address;
-          description "Destination MAC address to match on egress";
+          description
+            "Destination MAC address to match on egress";
         }
         leaf exact {
-          xr:xr-xml-map "vlan_interface_cfg:Exact";
           type empty;
           description
             "Only match packets with no more tags than
-            explicitly matched";
+             explicitly matched";
         }
       }
-
       container rewrite {
-        xr:xr-xml-map "vlan_interface_cfg:Rewrite";
         presence "Indicates a rewrite node is configured.";
         description
           "The rewrite operation for the Ethernet service";
         leaf rewrite-type {
-          xr:xr-xml-map "vlan_interface_cfg:RewriteType";
           type dt1:Rewrite;
           mandatory true;
-          description "The type of rewrite to perform";
+          description
+            "The type of rewrite to perform";
         }
         leaf outer-tag-type {
-          xr:xr-xml-map "vlan_interface_cfg:OuterTagType";
           type dt1:Match;
-          description "Type of outermost tag to be pushed";
+          description
+            "Type of outermost tag to be pushed";
         }
         leaf outer-tag-value {
-          xr:xr-xml-map "vlan_interface_cfg:OuterTagValue";
           type dt1:Vlan-tag;
-          description "VLAN Id of outermost tag to be pushed";
+          description
+            "VLAN Id of outermost tag to be pushed";
         }
         leaf inner-tag-type {
-          xr:xr-xml-map "vlan_interface_cfg:InnerTagType";
           type dt1:Match;
-          description "Type of innermost tag to be pushed";
+          description
+            "Type of innermost tag to be pushed";
         }
         leaf inner-tag-value {
-          xr:xr-xml-map "vlan_interface_cfg:InnerTagValue";
           type dt1:Vlan-tag;
-          description "VLAN Id of innermost tag to be pushed";
+          description
+            "VLAN Id of innermost tag to be pushed";
         }
       }
     }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
   }
-
   augment "/a1:interface-configurations/a1:interface-configuration" {
-
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
     container ethernet-bng {
-      xr:xr-xml-map "eth_infra_bng_intf_cfg:EthernetBNG";
-      description "Ethernet Infra BNG specific configuration";
-
+      description
+        "Ethernet Infra BNG specific configuration";
       container ambiguous-encapsulation {
-        xr:xr-xml-map "eth_infra_bng_intf_cfg:AmbiguousEncapsulatio"+
-          "n";
-        presence "Indicates a ambiguous-encapsulation node is"+
-          " configured.";
-        description "L3 Ambiguous encapsulation";
+        presence "Indicates a ambiguous-encapsulation node is configured.";
+        description
+          "L3 Ambiguous encapsulation";
         leaf outer-tag-type {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:OuterTagType";
           type dt1:Match;
           mandatory true;
           description
             "Whether to match all unmatched packets,
-            untagged packets or tagged packets, and if
-            matching tagged packets, the outer tag type to
-            match";
+             untagged packets or tagged packets, and if
+             matching tagged packets, the outer tag type to
+             match";
         }
         leaf outer-range1-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:OuterRange1Low";
           type dt1:Vlan-tag-or-any;
           description
             "Low value of first range for outer tag match";
         }
         leaf outer-range1-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:OuterRange1High";
           type dt1:Vlan-tag-or-native;
           description
             "High value of first range for outer tag match";
         }
         leaf inner-tag-type {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:InnerTagType";
           type dt1:Match;
-          description "Type of tag for inner match (if present)";
+          description
+            "Type of tag for inner match (if present)";
         }
         leaf inner-range1-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:InnerRange1Low";
           type dt1:Vlan-tag-or-any;
           description
             "Low value of first range for inner tag match";
         }
         leaf inner-range1-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:InnerRange1High";
           type dt1:Vlan-tag;
           description
             "High value of first range for inner tag match";
         }
         leaf additional-range1-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange1Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of first additional range for tag
-            match";
+             match";
         }
         leaf additional-range1-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange1Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of first additional range for tag
-            match";
+             match";
         }
         leaf additional-range2-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange2Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of second additional range for tag
-            match";
+             match";
         }
         leaf additional-range2-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange2Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of second additional range for tag
-            match";
+             match";
         }
         leaf additional-range3-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange3Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of third additional range for tag
-            match";
+             match";
         }
         leaf additional-range3-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange3Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of third additional range for tag
-            match";
+             match";
         }
         leaf additional-range4-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange4Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of forth additional range for tag
-            match";
+             match";
         }
         leaf additional-range4-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange4Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of forth additional range for tag
-            match";
+             match";
         }
         leaf additional-range5-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange5Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of fifth additional range for tag
-            match";
+             match";
         }
         leaf additional-range5-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange5Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of fifth additional range for tag
-            match";
+             match";
         }
         leaf additional-range6-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange6Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of sixth additional range for tag
-            match";
+             match";
         }
         leaf additional-range6-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange6Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of sixth additional range for tag
-            match";
+             match";
         }
         leaf additional-range7-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange7Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of seventh additional range for tag
-            match";
+             match";
         }
         leaf additional-range7-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange7Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of seventh additional range for tag
-            match";
+             match";
         }
         leaf additional-range8-low {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange8Low";
           type dt1:Vlan-tag-or-cvp;
           description
             "Low value of eighth additional range for tag
-            match";
+             match";
         }
         leaf additional-range8-high {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:AdditionalRange8Hig"+
-            "h";
           type dt1:Vlan-tag;
           description
             "High value of eighth additional range for tag
-            match";
+             match";
         }
         leaf outer-class-of-service {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:OuterClassOfService";
           type dt1:Class-of-service;
           description
             "Value to match against Class Of Service bits
-            for outer tag";
+             for outer tag";
         }
         leaf inner-class-of-service {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:InnerClassOfService";
           type dt1:Class-of-service;
           description
             "Value to match against Class Of Service bits
-            for inner tag";
+             for inner tag";
         }
         leaf payload-ethertype-match {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:PayloadEthertypeMat"+
-            "ch";
           type dt1:Ethertype-match;
-          description "Which payload ethertype values to match";
+          description
+            "Which payload ethertype values to match";
         }
         leaf ingress-source-mac {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:IngressSourceMAC";
           type yang:mac-address;
-          description "Source MAC address to match on ingress";
+          description
+            "Source MAC address to match on ingress";
         }
         leaf ingress-destination-mac {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:IngressDestinationM"+
-            "AC";
           type yang:mac-address;
-          description "Destination MAC address to match on egress";
+          description
+            "Destination MAC address to match on egress";
         }
         leaf exact {
-          xr:xr-xml-map "eth_infra_bng_intf_cfg:Exact";
           type empty;
           description
             "Only match packets with no more tags than
-            explicitly matched";
+             explicitly matched";
         }
       }
     }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
   }
-
   augment "/a1:interface-configurations/a1:interface-configuration" {
-
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
     container mac-accounting {
-      xr:xr-xml-map "ether_mac_acc_cfg:MACAccounting";
-      description "MAC Accounting Configuration";
+      description
+        "MAC Accounting Configuration";
       leaf ingress {
-        xr:xr-xml-map "ether_mac_acc_cfg:Ingress";
         type empty;
-        description "Per MAC address accounting statistics";
+        description
+          "Per MAC address accounting statistics";
       }
       leaf egress {
-        xr:xr-xml-map "ether_mac_acc_cfg:Egress";
         type empty;
-        description "Per MAC address accounting statistics";
+        description
+          "Per MAC address accounting statistics";
       }
     }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
   }
-
   augment "/a1:interface-configurations/a1:interface-configuration" {
-
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
     container ethernet-features {
-      xr:xr-xml-map "ether_intf_feature_cfg:EthernetFeatures";
-      description "Ethernet Features Configuration";
+      description
+        "Ethernet Features Configuration";
       leaf filtering {
-        xr:xr-xml-map "l2protocols_ether_interface_cfg:Filtering";
         type Filtering;
-        description "Ingress Ethernet frame filtering";
+        description
+          "Ingress Ethernet frame filtering";
       }
     }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration" {
     description
       "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
+       'Cisco-IOS-XR-ifmgr-cfg'";
+    container carrier-delay {
+      description
+        "Set the carrier transition delay on an interface
+         in msecs";
+      leaf carrier-delay-up {
+        type uint32 {
+          range "1..65535";
+        }
+        description
+          "Carrier Delay (up) in msecs";
+      }
+      leaf carrier-delay-down {
+        type uint32;
+        description
+          "Carrier Delay down in msecs, must be set to 0";
+      }
+    }
   }
-
   augment "/a1:interface-configurations/a1:interface-configuration" {
-
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
     container vlan-trunk-configuration {
-      xr:xr-xml-map "vlan_interface_cfg:VLANTrunkConfiguration";
-      description "IEEE 802.1Q VLAN trunk interface configuration";
-
+      description
+        "IEEE 802.1Q VLAN trunk interface configuration";
       container native-vlan-identifier {
-        xr:xr-xml-map "vlan_interface_cfg:NativeVLANIdentifier";
-        presence "Indicates a native-vlan-identifier node is"+
-          " configured.";
+        presence "Indicates a native-vlan-identifier node is configured.";
         description
           "The Native VLAN identifier associated with this
-          trunk interface";
+           trunk interface";
         leaf vlan-type {
-          xr:xr-xml-map "vlan_interface_cfg:VlanType";
           type dt1:Vlan;
           mandatory true;
-          description "Whether this interface is dot1ad or dot1Q";
+          description
+            "Whether this interface is dot1ad or dot1Q";
         }
         leaf vlan-identifier {
-          xr:xr-xml-map "vlan_interface_cfg:VLANIdentifier";
           type dt1:Vlan-tag;
           mandatory true;
-          description "VLAN identifier";
+          description
+            "VLAN identifier";
         }
       }
       leaf tunneling-ethertype {
-        xr:xr-xml-map "vlan_interface_cfg:TunnelingEthertype";
         type enumeration {
-          enum 0x9100 {
+          enum "0x9100" {
             value 37120;
-            description "0x9100";
+            description
+              "0x9100";
           }
-          enum 0x9200 {
+          enum "0x9200" {
             value 37376;
-            description "0x9200";
+            description
+              "0x9200";
           }
         }
         description
           "The outer ethertype used in Q-in-Q frames. The
-          default value is 0x8100";
+           default value is 0x8100";
       }
     }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration/a2:l2-transport" {
     description
       "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
-  }
-
-  augment "/a1:interface-configurations/a1:interface-configuration"+
-    "/a2:l2-transport" {
-
+       'Cisco-IOS-XR-l2vpn-cfg'";
     container l2-protocols {
-      xr:xr-xml-map "ether_l2pt_cfg:L2ProtocolTable";
-      description "Interface specific Layer 2 protocol handling";
-
+      description
+        "Interface specific Layer 2 protocol handling";
       list l2-protocol {
-        xr:xr-xml-map "ether_l2pt_cfg:L2Protocol";
         key "l2-protocol-name";
-        description "Handling of a specific Layer 2 protocol";
+        description
+          "Handling of a specific Layer 2 protocol";
         leaf l2-protocol-name {
-          xr:xr-xml-map "ether_l2pt_cfg:L2ProtocolName";
           type L2-protocol-name;
-          description "Protocol name";
+          description
+            "Protocol name";
         }
         leaf mode {
-          xr:xr-xml-map "ether_l2pt_cfg:Mode";
           type L2-protocol-mode;
           mandatory true;
-          description "How to handle the protocol's packets";
+          description
+            "How to handle the protocol's packets";
         }
         leaf mpls-exp-bits-value {
-          xr:xr-xml-map "ether_l2pt_cfg:MPLSExpBitsValue";
           type L2-protocol-mpls-exp-bits-value;
           description
             "The value to set the MPLS Exp bits to within
-            the PW.This value may be specified if the mode
-            is forward or tunnel and must not be specified
-            if the mode is drop";
+             the PW.This value may be specified if the mode
+             is forward or tunnel and must not be specified
+             if the mode is drop";
         }
       }
     }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration/a2:l2-transport" {
     description
       "This augment extends the configuration data of
-      'Cisco-IOS-XR-l2vpn-cfg'";
-  }
-
-  augment "/a1:interface-configurations/a1:interface-configuration"+
-    "/a2:l2-transport" {
+       'Cisco-IOS-XR-l2vpn-cfg'";
     leaf propagate-remote-status {
-      xr:xr-xml-map "l2protocols_ether_interface_cfg:PropagateRemot"+
-        "eStatus";
       type empty;
       description
         "Enable propagation of the remote
-        attachment-circuit link state to the
-        localattachment-circuit link state";
+         attachment-circuit link state to the
+         localattachment-circuit link state";
     }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration/a2:l2-transport" {
     description
       "This augment extends the configuration data of
-      'Cisco-IOS-XR-l2vpn-cfg'";
-  }
-
-  augment "/a1:interface-configurations/a1:interface-configuration"+
-    "/a2:l2-transport" {
-
+       'Cisco-IOS-XR-l2vpn-cfg'";
     container l2-ethernet-features {
-      xr:xr-xml-map "ether_intf_feature_cfg:L2EthernetFeatures";
-      description "L2 Ethernet Features Configuration";
+      description
+        "L2 Ethernet Features Configuration";
       leaf egress-filtering {
-        xr:xr-xml-map "l2protocols_ether_interface_cfg:EgressFilter"+
-          "ing";
         type Egress-filtering;
         default "egress-filtering-type-default";
-        description "Egress Ethernet filtering";
+        description
+          "Egress Ethernet filtering";
       }
       leaf source-bypass-egress-filtering {
-        xr:xr-xml-map "l2protocols_ether_interface_cfg:SourceBypass"+
-          "EgressFiltering";
         type empty;
         description
           "Mark all ingress packets to bypass any egress
-          VLAN filter";
+           VLAN filter";
       }
     }
+  }
+  container ethernet-features {
     description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-l2vpn-cfg'";
+      "Ethernet Features Configuration";
+    container egress-filtering {
+      description
+        "Egress Filtering Configuration";
+      leaf egress-filtering-default-on {
+        type empty;
+        description
+          "Whether Egress Filtering is on by default";
+      }
+    }
   }
-}
\ No newline at end of file
+}
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2vpn-cfg@2015-11-09.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2vpn-cfg@2015-11-09.yang
deleted file mode 100644 (file)
index 90eb2b3..0000000
+++ /dev/null
@@ -1,4892 +0,0 @@
-module Cisco-IOS-XR-l2vpn-cfg {
-
-  /*** NAMESPACE / PREFIX DEFINITION ***/
-
-  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg";
-
-
-  prefix "l2vpn-cfg";
-
-  /*** LINKAGE (IMPORTS / INCLUDES) ***/
-
-  import ietf-inet-types { prefix "inet"; }
-
-  import ietf-yang-types { prefix "yang"; }
-
-  import Cisco-IOS-XR-types { prefix "xr"; }
-
-  import Cisco-IOS-XR-ifmgr-cfg { prefix "a1"; }
-
-  import Cisco-IOS-XR-snmp-agent-cfg { prefix "a2"; }
-
-  /*** META INFORMATION ***/
-
-  organization "Cisco Systems, Inc.";
-
-  contact
-    "Cisco Systems, Inc.
-     Customer Service
-
-     Postal: 170 West Tasman Drive
-     San Jose, CA 95134
-
-     Tel: +1 800 553-NETS
-
-     E-mail: cs-yang@cisco.com";
-
-  description 
-    "This module contains a collection of YANG definitions
-     for Cisco IOS-XR l2vpn package configuration.
-
-     This module contains definitions
-     for the following management objects:
-       l2vpn: L2VPN configuration
-       generic-interface-lists: generic interface lists
-       evpn: evpn
-
-     This YANG module augments the
-       Cisco-IOS-XR-ifmgr-cfg,
-       Cisco-IOS-XR-snmp-agent-cfg
-     modules with configuration data.
-
-     Copyright (c) 2013-2015 by Cisco Systems, Inc.
-     All rights reserved.";
-
-  revision "2015-11-09" {
-    description
-      "IOS XR 6.0 revision.";
-  }
-
-  typedef Interworking {
-    type enumeration {
-      enum ethernet {
-        value 1;
-        description "Ethernet interworking";
-      }
-      enum ipv4 {
-        value 3;
-        description "IPv4 interworking";
-      }
-    }
-    description "Interworking";
-  }
-  typedef L2vpn-capability-mode {
-    type enumeration {
-      enum high-mode {
-        value 1;
-        description
-          "Compute global capability as the highest node
-          capability";
-      }
-      enum single-mode {
-        value 2;
-        description "Disable global capability re-computation";
-      }
-    }
-    description "L2vpn capability mode";
-  }
-  typedef Vpls-id-addr-index {
-    type uint32 {
-      range "0..32767";
-    }
-    description "Vpls id addr index";
-  }
-  typedef Tag-rewrite-range {
-    type uint32 {
-      range "1..4094";
-    }
-    description "Tag rewrite range";
-  }
-  typedef Evpnvpnid-range {
-    type uint32 {
-      range "1..65534";
-    }
-    description "Evpnvpnid range";
-  }
-  typedef Pseudowire-label-range {
-    type uint32 {
-      range "16..1048575";
-    }
-    description "Pseudowire label range";
-  }
-  typedef Bridge-domain-transport-mode {
-    type enumeration {
-      enum vlan-passthrough {
-        value 3;
-        description "Vlan tagged passthrough mode";
-      }
-    }
-    description "Bridge domain transport mode";
-  }
-  typedef Preferred-path {
-    type enumeration {
-      enum te-tunnel {
-        value 2;
-        description "TE Tunnel";
-      }
-      enum ip-tunnel {
-        value 3;
-        description "IP Tunnel";
-      }
-      enum tp-tunnel {
-        value 4;
-        description "TP Tunnel";
-      }
-    }
-    description "Preferred path";
-  }
-  typedef Rd-addr-index {
-    type uint32 {
-      range "0..65535";
-    }
-    description "Rd addr index";
-  }
-  typedef Vccv-verification {
-    type enumeration {
-      enum none {
-        value 0;
-        description "No connectivity verification over VCCV";
-      }
-      enum lsp-ping {
-        value 2;
-        description "LSP Ping over VCCV";
-      }
-    }
-    description "Vccv verification";
-  }
-  typedef L2vpn-mtu-range {
-    type uint32 {
-      range "64..65535";
-    }
-    description "L2vpn mtu range";
-  }
-  typedef Mac-withdraw-behavior {
-    type enumeration {
-      enum legacy {
-        value 1;
-        description "MAC Withdrawal sent on state-down (legacy)";
-      }
-      enum optimized {
-        value 2;
-        description "Optimized MAC Withdrawal";
-      }
-    }
-    description "Mac withdraw behavior";
-  }
-  typedef Port-down-flush {
-    type enumeration {
-      enum port-down-flush {
-        value 0;
-        description "MAC Port Down Flush";
-      }
-      enum enable-port-down-flush {
-        value 1;
-        description "Enable Port Down Flush";
-      }
-      enum disable-port-down-flush {
-        value 2;
-        description "Disable Port Down Flush";
-      }
-    }
-    description "Port down flush";
-  }
-  typedef Storm-control-pps-range {
-    type uint32 {
-      range "1..160000";
-    }
-    description "Storm control pps range";
-  }
-  typedef Type-of-service-mode {
-    type enumeration {
-      enum none {
-        value 0;
-        description "Do not reflect the type of service";
-      }
-      enum reflect {
-        value 1;
-        description "Reflect the type of service";
-      }
-    }
-    description "Type of service mode";
-  }
-  typedef Pseudowire-tag-range {
-    type uint32 {
-      range "1..4094";
-    }
-    description "Pseudowire tag range";
-  }
-  typedef Multicast-p2mp-signaling {
-    type string {
-      pattern "(BGP)";
-    }
-    description "BGP:BGP Signaling";
-  }
-  typedef Cedge-range {
-    type uint32 {
-      range "11..100";
-    }
-    description "Cedge range";
-  }
-  typedef Mpls-signaling-protocol {
-    type enumeration {
-      enum none {
-        value 1;
-        description "No signaling";
-      }
-      enum ldp {
-        value 4;
-        description "LDP";
-      }
-    }
-    description "Mpls signaling protocol";
-  }
-  typedef Erpaps {
-    type enumeration {
-      enum interface {
-        value 1;
-        description "ERP APS type interface";
-      }
-      enum bridge-domain {
-        value 2;
-        description "ERP APS type bridge domain";
-      }
-      enum xconnect {
-        value 3;
-        description "ERP APS type xconnect";
-      }
-      enum none {
-        value 4;
-        description "ERP APS type none";
-      }
-    }
-    description "Erpaps";
-  }
-  typedef Mac-secure-action {
-    type enumeration {
-      enum restrict {
-        value 1;
-        description "MAC Secure Action Restrict";
-      }
-      enum none {
-        value 2;
-        description "No Action";
-      }
-      enum shutdown {
-        value 3;
-        description "MAC Secure Action Shutdown";
-      }
-    }
-    description "Mac secure action";
-  }
-  typedef Erp-port {
-    type enumeration {
-      enum none {
-        value 1;
-        description "ERP port type none";
-      }
-      enum virtual {
-        value 2;
-        description "ERP port type virtual";
-      }
-      enum interface {
-        value 3;
-        description "ERP port type interface";
-      }
-    }
-    description "Erp port";
-  }
-  typedef Resync-threshold-range {
-    type uint32 {
-      range "5..65535";
-    }
-    description "Resync threshold range";
-  }
-  typedef Bgp-route-target-role {
-    type enumeration {
-      enum both {
-        value 0;
-        description "Both Import and export roles";
-      }
-      enum import {
-        value 1;
-        description "Import role";
-      }
-      enum export {
-        value 2;
-        description "Export role";
-      }
-    }
-    description "Bgp route target role";
-  }
-  typedef Backup-disable {
-    type enumeration {
-      enum never {
-        value 0;
-        description "Never";
-      }
-      enum delay {
-        value 1;
-        description "Delay seconds";
-      }
-    }
-    description "Backup disable";
-  }
-  typedef Time-to-live-range {
-    type uint32 {
-      range "1..255";
-    }
-    description "Time to live range";
-  }
-  typedef Multicast-p2mp-transport {
-    type string {
-      pattern "(RSVP_TE)";
-    }
-    description "RSVP_TE:RSVP-TE Transport";
-  }
-  typedef Transport-mode {
-    type enumeration {
-      enum ethernet {
-        value 1;
-        description "Ethernet port mode";
-      }
-      enum vlan {
-        value 2;
-        description "Vlan tagged mode";
-      }
-      enum vlan-passthrough {
-        value 3;
-        description "Vlan tagged passthrough mode";
-      }
-    }
-    description "Transport mode";
-  }
-  typedef Flow-label-tlv-code {
-    type enumeration {
-      enum 17 {
-        value 4;
-        description "Set Flow Label Legacy TLV code (DEPRECATED)";
-      }
-      enum disable {
-        value 8;
-        description "Disable Sending Flow Label Legacy TLV";
-      }
-    }
-    description "Flow label tlv code";
-  }
-  typedef Pseudowire-acid-range {
-    type uint32 {
-      range "1..4294967295";
-    }
-    description "Pseudowire acid range";
-  }
-  typedef Pseudowire-id-range {
-    type uint32 {
-      range "1..4294967295";
-    }
-    description "Pseudowire id range";
-  }
-  typedef Interface-profile {
-    type enumeration {
-      enum snoop {
-        value 1;
-        description "Set the snooping";
-      }
-      enum dhcp-protocol {
-        value 2;
-        description "disable DHCP protocol";
-      }
-    }
-    description "Interface profile";
-  }
-  typedef Rpl-role {
-    type enumeration {
-      enum owner {
-        value 1;
-        description "ERP RPL owner";
-      }
-      enum neighbor {
-        value 2;
-        description "ERP RPL neighbor";
-      }
-      enum next-neighbor {
-        value 3;
-        description "ERP RPL next neighbor";
-      }
-    }
-    description "Rpl role";
-  }
-  typedef Pw-switching-point-tlv {
-    type enumeration {
-      enum hide {
-        value 2;
-        description "Hide TLV";
-      }
-    }
-    description "Pw switching point tlv";
-  }
-  typedef Erpaps-level-range {
-    type uint32 {
-      range "0..7";
-    }
-    description "Erpaps level range";
-  }
-  typedef Storm-control {
-    type enumeration {
-      enum unicast {
-        value 1;
-        description "Unknown-unicast Storm Control";
-      }
-      enum multicast {
-        value 2;
-        description "Multicast Storm Control";
-      }
-      enum broadcast {
-        value 4;
-        description "Broadcast Storm Control";
-      }
-    }
-    description "Storm control";
-  }
-  typedef L2tp-session-id-range {
-    type uint32 {
-      range "1..65535";
-    }
-    description "L2tp session id range";
-  }
-  typedef Mac-learn {
-    type enumeration {
-      enum default-learning {
-        value 0;
-        description "Mac Learning";
-      }
-      enum enable-learning {
-        value 1;
-        description "Enable Learning";
-      }
-      enum disable-learning {
-        value 2;
-        description "Disable Learning";
-      }
-    }
-    description "Mac learn";
-  }
-  typedef L2tpv3-sequencing {
-    type enumeration {
-      enum off {
-        value 0;
-        description "Sequencing is off";
-      }
-      enum both {
-        value 4;
-        description "Sequencing on both transmit and receive side";
-      }
-    }
-    description "L2tpv3 sequencing";
-  }
-  typedef Veid-range {
-    type uint32 {
-      range "1..16384";
-    }
-    description "Veid range";
-  }
-  typedef Load-balance {
-    type enumeration {
-      enum source-dest-mac {
-        value 1;
-        description "Source and Destination MAC hashing";
-      }
-      enum source-dest-ip {
-        value 2;
-        description "Source and Destination IP hashing";
-      }
-      enum pseudowire-label {
-        value 4;
-        description "PW Label hashing";
-      }
-    }
-    description "Load balance";
-  }
-  typedef L2tp-signaling-protocol {
-    type enumeration {
-      enum none {
-        value 1;
-        description "No signaling";
-      }
-      enum l2tpv3 {
-        value 2;
-        description "L2TPv3";
-      }
-    }
-    description "L2tp signaling protocol";
-  }
-  typedef L2vpn-verification {
-    type enumeration {
-      enum enable {
-        value 1;
-        description "enable verification";
-      }
-      enum disable {
-        value 2;
-        description "disable verification";
-      }
-    }
-    description "L2vpn verification";
-  }
-  typedef Max-path-mtu-range {
-    type uint32 {
-      range "68..65535";
-    }
-    description "Max path mtu range";
-  }
-  typedef Interface-traffic-flood {
-    type enumeration {
-      enum traffic-flooding {
-        value 0;
-        description "Traffic flooding";
-      }
-      enum enable-flooding {
-        value 1;
-        description "Enable Flooding";
-      }
-      enum disable-flooding {
-        value 2;
-        description "Disable flooding";
-      }
-    }
-    description "Interface traffic flood";
-  }
-  typedef Pbbvid-range {
-    type uint32 {
-      range "1..4094";
-    }
-    description "Pbbvid range";
-  }
-  typedef L2tp-cookie-value-range {
-    type uint32 {
-      range "0..4294967295";
-    }
-    description "L2tp cookie value range";
-  }
-  typedef L2-encapsulation {
-    type enumeration {
-      enum vlan {
-        value 4;
-        description "Vlan tagged mode";
-      }
-      enum ethernet {
-        value 5;
-        description "Ethernet port mode";
-      }
-    }
-    description "L2 encapsulation";
-  }
-  typedef L2vpn-logging {
-    type enumeration {
-      enum enable {
-        value 1;
-        description "enable logging";
-      }
-      enum disable {
-        value 2;
-        description "disable logging";
-      }
-    }
-    description "L2vpn logging";
-  }
-  typedef Mac-aging-range {
-    type uint32 {
-      range "300..30000";
-    }
-    description "Mac aging range";
-  }
-  typedef Vpls-id-as-index {
-    type uint32 {
-      range "0..4294967295";
-    }
-    description "Vpls id as index";
-  }
-  typedef Pseudowire-gbl-id-range {
-    type uint32 {
-      range "1..4294967295";
-    }
-    description "Pseudowire gbl id range";
-  }
-  typedef Rdas-index {
-    type uint32 {
-      range "0..4294967295";
-    }
-    description "Rdas index";
-  }
-  typedef L2tp-cookie-size {
-    type enumeration {
-      enum zero {
-        value 0;
-        description "Cookie size is zero bytes";
-      }
-      enum four {
-        value 4;
-        description "Cookie size is four bytes";
-      }
-      enum eight {
-        value 8;
-        description "Cookie size is eight bytes";
-      }
-    }
-    description "L2tp cookie size";
-  }
-  typedef Mpls-sequencing {
-    type enumeration {
-      enum off {
-        value 0;
-        description "Sequencing is off";
-      }
-      enum transmit {
-        value 1;
-        description "Sequencing on transmit side";
-      }
-      enum receive {
-        value 2;
-        description "Sequencing on receive side";
-      }
-      enum both {
-        value 4;
-        description "Sequencing on both transmit and receive side";
-      }
-    }
-    description "Mpls sequencing";
-  }
-  typedef Erp-instance-range {
-    type uint32 {
-      range "1..2";
-    }
-    description "Erp instance range";
-  }
-  typedef Pw-redundancy-initial-delay-range {
-    type uint32 {
-      range "0..120";
-    }
-    description "Pw redundancy initial delay range";
-  }
-  typedef Vpls-id-as-range {
-    type uint32 {
-      range "1..65535";
-    }
-    description "Vpls id as range";
-  }
-  typedef Rdas-range {
-    type uint32 {
-      range "1..4294967295";
-    }
-    description "Rdas range";
-  }
-  typedef Bridge-bd-mtu-range {
-    type uint32 {
-      range "46..65535";
-    }
-    description "Bridge bd mtu range";
-  }
-  typedef Backup-disable-delay-range {
-    type uint32 {
-      range "0..180";
-    }
-    description "Backup disable delay range";
-  }
-  typedef Storm-control-kbps-range {
-    type uint32 {
-      range "64..1280000";
-    }
-    description "Storm control kbps range";
-  }
-  typedef Mac-limit-action {
-    type enumeration {
-      enum none {
-        value 0;
-        description "No action";
-      }
-      enum flood {
-        value 1;
-        description "Flood Mac Limit Action";
-      }
-      enum no-flood {
-        value 2;
-        description "NoFlood Mac Limit Action";
-      }
-      enum shutdown {
-        value 3;
-        description "Shutdown Mac Limit Action";
-      }
-    }
-    description "Mac limit action";
-  }
-  typedef Erp-port1 {
-    type enumeration {
-      enum port0 {
-        value 0;
-        description "ERP main port 0";
-      }
-      enum port1 {
-        value 1;
-        description "ERP main port 1";
-      }
-    }
-    description "Erp port1";
-  }
-  typedef Mac-notification {
-    type enumeration {
-      enum no-notif {
-        value 0;
-        description "No_Notification Trap";
-      }
-      enum syslog {
-        value 1;
-        description "syslog message";
-      }
-      enum trap {
-        value 2;
-        description "Snmp Trap";
-      }
-      enum syslog-snmp {
-        value 3;
-        description "Syslog_snmp Trap";
-      }
-    }
-    description "Mac notification";
-  }
-  typedef Control-word {
-    type enumeration {
-      enum enable {
-        value 1;
-        description "Enable control word";
-      }
-      enum disable {
-        value 2;
-        description "Disable control word";
-      }
-    }
-    description "Control word";
-  }
-  typedef Bgp-route-distinguisher {
-    type enumeration {
-      enum auto {
-        value 1;
-        description "RD automatically assigned";
-      }
-      enum two-byte-as {
-        value 2;
-        description "RD in 2 byte AS:nn format";
-      }
-      enum four-byte-as {
-        value 3;
-        description "RD in 4 byte AS:nn format";
-      }
-      enum ipv4-address {
-        value 4;
-        description "RD in IpV4address";
-      }
-    }
-    description "Bgp route distinguisher";
-  }
-  typedef Bgp-route-target-format {
-    type enumeration {
-      enum none {
-        value 0;
-        description "No route target";
-      }
-      enum two-byte-as {
-        value 1;
-        description "2 Byte AS:nn format";
-      }
-      enum four-byte-as {
-        value 2;
-        description "4 byte AS:nn format";
-      }
-      enum ipv4-address {
-        value 3;
-        description "IP:nn format";
-      }
-    }
-    description "Bgp route target format";
-  }
-  typedef Vedge-range {
-    type uint32 {
-      range "11..100";
-    }
-    description "Vedge range";
-  }
-  typedef Vpnid-range {
-    type uint32 {
-      range "1..4294967295";
-    }
-    description "Vpnid range";
-  }
-  typedef Ldp-vpls-id {
-    type enumeration {
-      enum two-byte-as {
-        value 10;
-        description "VPLS-ID in 2 byte AS:nn format";
-      }
-      enum ipv4-address {
-        value 266;
-        description "VPLS-ID in IPv4 IP:nn format";
-      }
-    }
-    description "Ldp vpls id";
-  }
-  typedef Ce-id-range {
-    type uint32 {
-      range "1..16384";
-    }
-    description "Ce id range";
-  }
-  typedef Mac-aging {
-    type enumeration {
-      enum absolute {
-        value 1;
-        description "Absolute aging type";
-      }
-      enum inactivity {
-        value 2;
-        description "Inactivity aging type";
-      }
-    }
-    description "Mac aging";
-  }
-  typedef Mac-limit-range {
-    type uint32 {
-      range "0..4294967295";
-    }
-    description "Mac limit range";
-  }
-  typedef Pbbisid-range {
-    type uint32 {
-      range "256..16777214";
-    }
-    description "Pbbisid range";
-  }
-  typedef Type-of-service-range {
-    type uint32 {
-      range "0..255";
-    }
-    description "Type of service range";
-  }
-  typedef Flow-label-load-balance {
-    type enumeration {
-      enum off {
-        value 0;
-        description "Flow Label load balance is off";
-      }
-      enum receive {
-        value 1;
-        description "Delete Flow Label on receive side";
-      }
-      enum transmit {
-        value 2;
-        description "Insert Flow Label on transmit side";
-      }
-      enum both {
-        value 3;
-        description
-          "Insert/Delete  Flow Label on transmit/receive
-          side";
-      }
-    }
-    description "Flow label load balance";
-  }
-
-  grouping STORM-CONTROL-UNIT {
-    description
-      "Common node of bd-storm-control,
-      bdac-storm-control-type, bdpw-storm-control-type";
-
-    container storm-control-unit {
-      xr:xr-xml-map "l2vpn_cfg:StormControlUnit";
-      description "Specify units for Storm Control Configuration";
-      leaf kbits-per-sec {
-        xr:xr-xml-map "l2vpn_cfg:KbitsPerSec";
-        type Storm-control-kbps-range;
-        units "kbit/s";
-        description
-          "Kilobits Per Second, PktsPerSec and KbitsPerSec
-          cannot be configured together";
-      }
-      leaf pkts-per-sec {
-        xr:xr-xml-map "l2vpn_cfg:PktsPerSec";
-        type Storm-control-pps-range;
-        units "packet/s";
-        description
-          "Packets Per Second, PktsPerSec and KbitsPerSec
-          cannot be configured together";
-      }
-    }
-  }
-
-  grouping EVPN-ROUTE-DISTINGUISHER {
-    description
-      "Common node of evpnbgp-auto-discovery,
-      evpnevibgp-auto-discovery, pw-routing-bgp";
-
-    container evpn-route-distinguisher {
-      xr:xr-xml-map "l2vpn_cfg:EVPNRouteDistinguisher";
-      description "Route Distinguisher";
-      leaf type {
-        xr:xr-xml-map "l2vpn_cfg:Type";
-        type Bgp-route-distinguisher;
-        description "Router Distinguisher Type";
-      }
-      leaf as {
-        xr:xr-xml-map "l2vpn_cfg:AS";
-        when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
-          description "../Type = TwoByteAS or ../Type = FourByteAS";
-        }
-        type Rdas-range;
-        description "Two byte or 4 byte AS number";
-      }
-      leaf as-index {
-        xr:xr-xml-map "l2vpn_cfg:ASIndex";
-        when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
-          description "../Type = TwoByteAS or ../Type = FourByteAS";
-        }
-        type Rdas-index;
-        description "AS:nn (hex or decimal format)";
-      }
-      leaf address {
-        xr:xr-xml-map "l2vpn_cfg:Address";
-        when "../type = 'ipv4-address'" {
-          description "../Type = IPV4Address";
-        }
-        type inet:ipv4-address-no-zone;
-        description "IPV4 address";
-      }
-      leaf addr-index {
-        xr:xr-xml-map "l2vpn_cfg:AddrIndex";
-        when "../type = 'ipv4-address'" {
-          description "../Type = IPV4Address";
-        }
-        type Rd-addr-index;
-        description "Addr index";
-      }
-    }
-  }
-
-  container l2vpn {
-    xr:xr-xml-map "l2vpn_cfg:L2VPN";
-    description "L2VPN configuration";
-
-    container pw-routing {
-      xr:xr-xml-map "l2vpn_cfg:PWRouting";
-      description "Pseudowire-routing attributes";
-
-      container pw-routing-bgp {
-        xr:xr-xml-map "l2vpn_cfg:PWRoutingBGP";
-        description
-          "Enable Autodiscovery BGP Pseudowire-routing BGP";
-        leaf enable {
-          xr:xr-xml-map "l2vpn_cfg:Enable";
-          type empty;
-          description "Enable Autodiscovery BGP";
-        }
-        uses EVPN-ROUTE-DISTINGUISHER;
-      }
-      leaf pw-routing-global-id {
-        xr:xr-xml-map "l2vpn_cfg:PWRoutingGlobalID";
-        xr:xr-cli-map "l2vpn pw-routing global-id <number> ";
-        type Pseudowire-gbl-id-range;
-        description "Pseudowire-routing Global ID";
-      }
-    }
-
-    container neighbor {
-      xr:xr-xml-map "l2vpn_cfg:Neighbor";
-      description "L2VPN neighbor submode";
-      leaf ldp-flap {
-        xr:xr-xml-map "l2vpn_cfg:LDPFlap";
-        xr:xr-cli-map "l2vpn neighbor all ldp flap ";
-        type empty;
-        description "Enable targetted LDP session flap action";
-      }
-    }
-
-    container database {
-      xr:xr-xml-map "l2vpn_cfg:Database";
-      description "L2VPN databases";
-
-      container g8032-rings {
-        xr:xr-xml-map "l2vpn_cfg:G8032RingTable";
-        description "List of G8032 Ring";
-
-        list g8032-ring {
-          xr:xr-xml-map "l2vpn_cfg:G8032Ring";
-          key "g8032-ring-name";
-          description "G8032 Ring";
-
-          container erp-port0s {
-            xr:xr-xml-map "l2vpn_cfg:ERPPort0Table";
-            description "Ethernet ring protection port0";
-
-            list erp-port0 {
-              xr:xr-xml-map "l2vpn_cfg:ERPPort0";
-              key "interface-name";
-              description "Configure ERP main port0";
-              leaf monitor {
-                xr:xr-xml-map "l2vpn_cfg:Monitor";
-                xr:xr-cli-map "l2vpn ethernet ring g8032 <string> p"+
-                  "ort0 interface <interface> monitor interface <in"+
-                  "terface> ";
-                type xr:Interface-name;
-                description
-                  "Ethernet ring protection port0 monitor";
-              }
-              leaf interface-name {
-                xr:xr-xml-map "l2vpn_cfg:InterfaceName";
-                type xr:Interface-name;
-                description "Port0 interface";
-              }
-            }
-          }
-
-          container erp-instances {
-            xr:xr-xml-map "l2vpn_cfg:ERPInstanceTable";
-            description "List of ethernet ring protection instance";
-
-            list erp-instance {
-              xr:xr-xml-map "l2vpn_cfg:ERPInstance";
-              key "erp-instance-id";
-              description "Ethernet ring protection instance";
-
-              container rpl {
-                xr:xr-xml-map "l2vpn_cfg:RPL";
-                description "Ring protection link";
-                leaf port {
-                  xr:xr-xml-map "l2vpn_cfg:Port";
-                  type Erp-port1;
-                  description "ERP main port number";
-                }
-                leaf role {
-                  xr:xr-xml-map "l2vpn_cfg:Role";
-                  type Rpl-role;
-                  description "RPL role";
-                }
-              }
-
-              container aps {
-                xr:xr-xml-map "l2vpn_cfg:APS";
-                description "Automatic protection switching";
-
-                container port1 {
-                  xr:xr-xml-map "l2vpn_cfg:Port1";
-                  description "APS channel for ERP port1";
-                  leaf aps-type {
-                    xr:xr-xml-map "l2vpn_cfg:APSType";
-                    type Erpaps;
-                    description "Port1 APS type";
-                  }
-                  leaf aps-channel {
-                    xr:xr-xml-map "l2vpn_cfg:APSChannel";
-                    type string;
-                    description
-                      "Port1 APS channel in the format of
-                      InterfaceName, BDName or XconnectName";
-                  }
-                }
-                leaf port0 {
-                  xr:xr-xml-map "l2vpn_cfg:Port0";
-                  xr:xr-cli-map "port0 interface <interface> ";
-                  type string;
-                  description
-                    "Port0 APS channel in the format of
-                    InterfaceName";
-                }
-                leaf enable {
-                  xr:xr-xml-map "l2vpn_cfg:Enable";
-                  type empty;
-                  description
-                    "Enable automatic protection switching";
-                }
-                leaf level {
-                  xr:xr-xml-map "l2vpn_cfg:Level";
-                  xr:xr-cli-map "level <number> ";
-                  type Erpaps-level-range;
-                  description
-                    "Automatic protection switching level";
-                }
-              }
-              leaf description {
-                xr:xr-xml-map "l2vpn_cfg:Description";
-                xr:xr-cli-map "description <string> ";
-                type string {
-                  length "0..32";
-                }
-                description
-                  "Ethernet ring protection instance
-                  description";
-              }
-              leaf inclusion-list {
-                xr:xr-xml-map "l2vpn_cfg:InclusionList";
-                xr:xr-cli-map "inclusion-list vlan-ids <string> ";
-                type string;
-                description
-                  "Associates a set of VLAN IDs with the G
-                  .8032 instance";
-              }
-              leaf profile {
-                xr:xr-xml-map "l2vpn_cfg:Profile";
-                xr:xr-cli-map "profile <string> ";
-                type string {
-                  length "0..32";
-                }
-                description
-                  "Ethernet ring protection instance profile";
-              }
-              leaf erp-instance-id {
-                xr:xr-xml-map "l2vpn_cfg:ERPInstanceID";
-                type Erp-instance-range;
-                description "ERP instance number";
-              }
-            }
-          }
-
-          container erp-port1s {
-            xr:xr-xml-map "l2vpn_cfg:ERPPort1Table";
-            description "Ethernet ring protection port0";
-
-            list erp-port1 {
-              xr:xr-xml-map "l2vpn_cfg:ERPPort1";
-              must "none or virtual-or-interface" {
-                description
-                  "None or Virtual-or-Interface must be
-                  present.";
-              }
-              key "erp-port-type";
-              description "Ethernet ring protection port1";
-
-              grouping ERP-PORT1-CONTENT {
-                description "ERP PORT1 CONTENT";
-                leaf monitor {
-                  type xr:Interface-name;
-                  description
-                    "Ethernet ring protection port1 monitor";
-                }
-              }
-
-              container none {
-                xr:xr-xml-map "l2vpn_cfg:Monitor";
-                when "../erp-port-type = 'none'" {
-                  description "../ERPPortType = None";
-                }
-                presence "Indicates that this node is configured.";
-                description "none";
-                uses ERP-PORT1-CONTENT;
-              }
-              leaf erp-port-type {
-                xr:xr-xml-map "l2vpn_cfg:ERPPortType";
-                type Erp-port;
-                description "Port1 type";
-              }
-
-              list virtual-or-interface {
-                xr:xr-xml-map "l2vpn_cfg:Monitor";
-                when "../erp-port-type = 'virtual' or"+
-                  " ../erp-port-type = 'interface'" {
-                    description
-                      "../ERPPortType = Virtual or .
-                      ./ERPPortType = Interface";
-                }
-                key "interface-name";
-                description "virtual or interface";
-                leaf interface-name {
-                  xr:xr-xml-map "l2vpn_cfg:InterfaceName";
-                  type xr:Interface-name;
-                  description "Port1 interface";
-                }
-                uses ERP-PORT1-CONTENT;
-              }
-            }
-          }
-          leaf open-ring {
-            xr:xr-xml-map "l2vpn_cfg:OpenRing";
-            xr:xr-cli-map "l2vpn ethernet ring g8032 <string> open-"+
-              "ring ";
-            type empty;
-            description "Specify the G.8032 instance as open ring";
-          }
-          leaf exclusion-list {
-            xr:xr-xml-map "l2vpn_cfg:ExclusionList";
-            xr:xr-cli-map "l2vpn ethernet ring g8032 <string> exclu"+
-              "sion-list vlan-ids <string> ";
-            type string;
-            description
-              "Vlan IDs in the format of a-b,c,d,e-f,g
-              ,untagged";
-          }
-          leaf erp-provider-bridge {
-            xr:xr-xml-map "l2vpn_cfg:ERPProviderBridge";
-            type empty;
-            description "Ethernet ring protection provider bridge";
-          }
-          leaf g8032-ring-name {
-            xr:xr-xml-map "l2vpn_cfg:G8032RingName";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of the G8032 ring";
-          }
-        }
-      }
-
-      container xconnect-groups {
-        xr:xr-xml-map "l2vpn_cfg:XConnectGroupTable";
-        description "List of xconnect groups";
-
-        list xconnect-group {
-          xr:xr-xml-map "l2vpn_cfg:XConnectGroup";
-          key "name";
-          description "Xconnect group";
-
-          container p2p-xconnects {
-            xr:xr-xml-map "l2vpn_cfg:P2PXConnectTable";
-            description "List of point to point xconnects";
-
-            list p2p-xconnect {
-              xr:xr-xml-map "l2vpn_cfg:P2PXConnect";
-              key "name";
-              description "Point to point xconnect";
-
-              container backup-attachment-circuits {
-                xr:xr-xml-map "l2vpn_cfg:BackupAttachmentCircuitTab"+
-                  "le";
-                description "List of backup attachment circuits";
-
-                list backup-attachment-circuit {
-                  xr:xr-xml-map "l2vpn_cfg:BackupAttachmentCircuit";
-                  key "interface-name";
-                  description "Backup attachment circuit";
-                  leaf interface-name {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceName";
-                    type xr:Interface-name;
-                    description
-                      "Name of the attachment circuit interface";
-                  }
-                }
-              }
-
-              container pseudowire-evpns {
-                xr:xr-xml-map "l2vpn_cfg:PseudowireEvpnTable";
-                description "List of EVPN Services";
-
-                list pseudowire-evpn {
-                  xr:xr-xml-map "l2vpn_cfg:PseudowireEvpn";
-                  key "eviid remote-acid source-acid";
-                  description "EVPN P2P Service Configuration";
-                  leaf eviid {
-                    xr:xr-xml-map "l2vpn_cfg:EVIID";
-                    type Evpnvpnid-range;
-                    description "Ethernet VPN ID";
-                  }
-                  leaf remote-acid {
-                    xr:xr-xml-map "l2vpn_cfg:RemoteACID";
-                    type Pseudowire-acid-range;
-                    description "Remote AC ID";
-                  }
-                  leaf source-acid {
-                    xr:xr-xml-map "l2vpn_cfg:SourceACID";
-                    type Pseudowire-acid-range;
-                    description "Source AC ID";
-                  }
-                }
-              }
-
-              container pseudowires {
-                xr:xr-xml-map "l2vpn_cfg:PseudowireTable";
-                description "List of pseudowires";
-
-                list pseudowire {
-                  must "pseudowire-address or neighbor" {
-                    description
-                      "pseudowire-address or neighbor must be
-                      present.";
-                  }
-                  key "pseudowire-id";
-                  description "Pseudowire configuration";
-
-                  grouping PSEUDOWIRE-CONTENT {
-                    description "Content grouping.";
-
-                    container mpls-static-labels {
-                      xr:xr-xml-map "l2vpn_cfg:MPLSStaticLabels";
-                      description "MPLS static labels";
-                      leaf local-static-label {
-                        xr:xr-xml-map "l2vpn_cfg:LocalStaticLabel";
-                        type Pseudowire-label-range;
-                        description "Pseudowire local static label";
-                      }
-                      leaf remote-static-label {
-                        xr:xr-xml-map "l2vpn_cfg:RemoteStaticLabel";
-                        type Pseudowire-label-range;
-                        description
-                          "Pseudowire remote static label";
-                      }
-                    }
-
-                    container backup-pseudowires {
-                      xr:xr-xml-map "l2vpn_cfg:BackupPseudowireTabl"+
-                        "e";
-                      description "List of pseudowires";
-
-                      list backup-pseudowire {
-                        xr:xr-xml-map "l2vpn_cfg:BackupPseudowire";
-                        key "neighbor pseudowire-id";
-                        description
-                          "Backup pseudowire for the cross connect";
-
-                        container backup-mpls-static-labels {
-                          xr:xr-xml-map "l2vpn_cfg:BackupMPLSStatic"+
-                            "Labels";
-                          description "MPLS static labels";
-                          leaf local-static-label {
-                            xr:xr-xml-map "l2vpn_cfg:LocalStaticLab"+
-                              "el";
-                            type Pseudowire-label-range;
-                            description
-                              "Pseudowire local static label";
-                          }
-                          leaf remote-static-label {
-                            xr:xr-xml-map "l2vpn_cfg:RemoteStaticLa"+
-                              "bel";
-                            type Pseudowire-label-range;
-                            description
-                              "Pseudowire remote static label";
-                          }
-                        }
-                        leaf backup-pw-class {
-                          xr:xr-xml-map "l2vpn_cfg:BackupPWClass";
-                          type xr:Cisco-ios-xr-string {
-                            length "0..32";
-                          }
-                          description
-                            "PW class template name to use for the
-                            backup PW";
-                        }
-                        leaf neighbor {
-                          xr:xr-xml-map "l2vpn_cfg:Neighbor";
-                          type inet:ipv4-address-no-zone;
-                          description "Neighbor IP address";
-                        }
-                        leaf pseudowire-id {
-                          xr:xr-xml-map "l2vpn_cfg:PseudowireID";
-                          type Pseudowire-id-range;
-                          description "Pseudowire ID";
-                        }
-                      }
-                    }
-
-                    container l2tp-static-attributes {
-                      xr:xr-xml-map "l2vpn_cfg:L2TPStaticAttributes";
-                      description "L2TP Static Attributes";
-
-                      container l2tp-remote-cookie {
-                        xr:xr-xml-map "l2vpn_cfg:L2TPRemoteCookie";
-                        description "L2TP remote cookie";
-                        leaf size {
-                          xr:xr-xml-map "l2vpn_cfg:Size";
-                          type L2tp-cookie-size;
-                          description "Remote cookie size";
-                        }
-                        leaf lower-value {
-                          xr:xr-xml-map "l2vpn_cfg:LowerValue";
-                          type L2tp-cookie-value-range;
-                          description "Lower remote cookie value";
-                        }
-                        leaf higher-value {
-                          xr:xr-xml-map "l2vpn_cfg:HigherValue";
-                          type L2tp-cookie-value-range;
-                          description "Higher remote cookie value";
-                        }
-                      }
-
-                      container l2tp-secondary-local-cookie {
-                        xr:xr-xml-map "l2vpn_cfg:L2TPSecondaryLocal"+
-                          "Cookie";
-                        description "L2TP secondary local cookie";
-                        leaf size {
-                          xr:xr-xml-map "l2vpn_cfg:Size";
-                          type L2tp-cookie-size;
-                          description "Local cookie size";
-                        }
-                        leaf lower-value {
-                          xr:xr-xml-map "l2vpn_cfg:LowerValue";
-                          type L2tp-cookie-value-range;
-                          description "Lower local cookie value";
-                        }
-                        leaf higher-value {
-                          xr:xr-xml-map "l2vpn_cfg:HigherValue";
-                          type L2tp-cookie-value-range;
-                          description "Higher local cookie value";
-                        }
-                      }
-
-                      container l2tp-local-cookie {
-                        xr:xr-xml-map "l2vpn_cfg:L2TPLocalCookie";
-                        description "L2TP local cookie";
-                        leaf size {
-                          xr:xr-xml-map "l2vpn_cfg:Size";
-                          type L2tp-cookie-size;
-                          description "Local cookie size";
-                        }
-                        leaf lower-value {
-                          xr:xr-xml-map "l2vpn_cfg:LowerValue";
-                          type L2tp-cookie-value-range;
-                          description "Lower local cookie value";
-                        }
-                        leaf higher-value {
-                          xr:xr-xml-map "l2vpn_cfg:HigherValue";
-                          type L2tp-cookie-value-range;
-                          description "Higher local cookie value";
-                        }
-                      }
-                      leaf l2tp-remote-session-id {
-                        xr:xr-xml-map "l2vpn_cfg:L2TPRemoteSessionI"+
-                          "D";
-                        type L2tp-session-id-range;
-                        description "L2TP remote session ID";
-                      }
-                      leaf l2tp-local-session-id {
-                        xr:xr-xml-map "l2vpn_cfg:L2TPLocalSessionID";
-                        type L2tp-session-id-range;
-                        description "L2TP local session ID";
-                      }
-                    }
-
-                    container l2tp-static {
-                      xr:xr-xml-map "l2vpn_cfg:L2TPStatic";
-                      description
-                        "Pseudowire L2TPv3 static configuration";
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        type empty;
-                        description
-                          "Enable pseudowire L2TPv3 static
-                          configuration";
-                      }
-                    }
-                    leaf tag-impose {
-                      xr:xr-xml-map "l2vpn_cfg:TagImpose";
-                      type Pseudowire-tag-range;
-                      description "Tag Impose vlan tagged mode";
-                    }
-                    leaf class {
-                      xr:xr-xml-map "l2vpn_cfg:Class";
-                      type xr:Cisco-ios-xr-string {
-                        length "0..32";
-                      }
-                      description "Name of the pseudowire class";
-                    }
-                    leaf source-address {
-                      xr:xr-xml-map "l2vpn_cfg:SourceAddress";
-                      type inet:ip-address-no-zone;
-                      description
-                        "Value of the Pseudowire source address.
-                        Must be IPv6 only.";
-                    }
-                    leaf bandwidth {
-                      xr:xr-xml-map "l2vpn_cfg:Bandwidth";
-                      type uint32 {
-                        range "0..4294967295";
-                      }
-                      description "Pseudowire Bandwidth";
-                    }
-                  }
-                  leaf pseudowire-id {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireID";
-                    type Pseudowire-id-range;
-                    description "Pseudowire ID";
-                  }
-
-                  list neighbor {
-                    xr:xr-xml-map "l2vpn_cfg:Pseudowire";
-                    key "neighbor";
-                    description "keys: neighbor";
-                    leaf neighbor {
-                      xr:xr-xml-map "l2vpn_cfg:Neighbor";
-                      type inet:ipv4-address-no-zone;
-                      description "Pseudowire IPv4 address";
-                    }
-                    uses PSEUDOWIRE-CONTENT;
-                  }
-
-                  list pseudowire-address {
-                    xr:xr-xml-map "l2vpn_cfg:Pseudowire";
-                    key "pseudowire-address";
-                    description "keys: pseudowire-address";
-                    leaf pseudowire-address {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireAddress";
-                      type inet:ipv6-address-no-zone;
-                      description
-                        "Pseudowire IPv6 address. A pseudowire
-                        can have only one address: IPv4 or IPv6";
-                    }
-                    uses PSEUDOWIRE-CONTENT;
-                  }
-                }
-              }
-
-              container monitor-sessions {
-                xr:xr-xml-map "l2vpn_cfg:MonitorSessionTable";
-                description "List of Monitor session segments";
-
-                list monitor-session {
-                  xr:xr-xml-map "l2vpn_cfg:MonitorSession";
-                  key "name";
-                  description "Monitor session segment";
-                  leaf enable {
-                    xr:xr-xml-map "l2vpn_cfg:Enable";
-                    xr:xr-cli-map "l2vpn xconnect group <string> p2"+
-                      "p <string> monitor-session <string> ";
-                    type empty;
-                    description "Enable monitor session segment ";
-                  }
-                  leaf name {
-                    xr:xr-xml-map "l2vpn_cfg:Name";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..64";
-                    }
-                    description "Name of the monitor session";
-                  }
-                }
-              }
-
-              container pseudowire-routeds {
-                xr:xr-xml-map "l2vpn_cfg:PseudowireRoutedTable";
-                description "List of pseudowire-routed";
-
-                list pseudowire-routed {
-                  xr:xr-xml-map "l2vpn_cfg:PseudowireRouted";
-                  key "global-id prefix acid sacid";
-                  description "Pseudowire configuration";
-                  leaf tag-impose {
-                    xr:xr-xml-map "l2vpn_cfg:TagImpose";
-                    xr:xr-cli-map "tag-impose [vlan <number>] ";
-                    type Pseudowire-tag-range;
-                    description "Tag Impose vlan tagged mode";
-                  }
-                  leaf class {
-                    xr:xr-xml-map "l2vpn_cfg:Class";
-                    xr:xr-cli-map "pw-class <string> ";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description "Name of the pseudowire class";
-                  }
-                  leaf global-id {
-                    xr:xr-xml-map "l2vpn_cfg:GlobalID";
-                    type Pseudowire-gbl-id-range;
-                    description "Target Global ID";
-                  }
-                  leaf prefix {
-                    xr:xr-xml-map "l2vpn_cfg:Prefix";
-                    type inet:ipv4-address-no-zone;
-                    description "Target Prefix";
-                  }
-                  leaf acid {
-                    xr:xr-xml-map "l2vpn_cfg:ACID";
-                    type Pseudowire-acid-range;
-                    description "Target AC ID";
-                  }
-                  leaf sacid {
-                    xr:xr-xml-map "l2vpn_cfg:SACID";
-                    type Pseudowire-acid-range;
-                    description "Source AC ID";
-                  }
-                }
-              }
-
-              container attachment-circuits {
-                xr:xr-xml-map "l2vpn_cfg:AttachmentCircuitTable";
-                description "List of attachment circuits";
-
-                list attachment-circuit {
-                  xr:xr-xml-map "l2vpn_cfg:AttachmentCircuit";
-                  key "name";
-                  description "Attachment circuit interface";
-                  leaf enable {
-                    xr:xr-xml-map "l2vpn_cfg:Enable";
-                    xr:xr-cli-map "l2vpn xconnect group <string> p2"+
-                      "p <string> interface (<interface>)|(<interfa"+
-                      "ce>) ";
-                    type empty;
-                    description
-                      "Enable attachment circuit interface";
-                  }
-                  leaf name {
-                    xr:xr-xml-map "l2vpn_cfg:Name";
-                    type xr:Interface-name;
-                    description
-                      "Name of the attachment circuit interface";
-                  }
-                }
-              }
-              leaf p2p-description {
-                xr:xr-xml-map "l2vpn_cfg:P2PDescription";
-                xr:xr-cli-map "l2vpn xconnect group <string> p2p <s"+
-                  "tring> description <string> ";
-                type xr:Cisco-ios-xr-string {
-                  length "0..64";
-                }
-                description "cross connect description Name";
-              }
-              leaf interworking {
-                xr:xr-xml-map "l2vpn_cfg:Interworking";
-                xr:xr-cli-map "l2vpn xconnect group <string> p2p <s"+
-                  "tring> interworking (ipv4)|(ethernet) ";
-                type Interworking;
-                description "Interworking";
-              }
-              leaf name {
-                xr:xr-xml-map "l2vpn_cfg:Name";
-                type xr:Cisco-ios-xr-string {
-                  length "0..38";
-                }
-                description "Name of the point to point xconnect";
-              }
-            }
-          }
-
-          container mp2mp-xconnects {
-            xr:xr-xml-map "l2vpn_cfg:MP2MPXConnectTable";
-            description
-              "List of multi point to multi point xconnects";
-
-            list mp2mp-xconnect {
-              xr:xr-xml-map "l2vpn_cfg:MP2MPXConnect";
-              key "name";
-              description "Multi point to multi point xconnect";
-
-              container mp2mp-auto-discovery {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPAutoDiscovery";
-                description "auto-discovery in this MP2MP";
-
-                container route-distinguisher {
-                  xr:xr-xml-map "l2vpn_cfg:RouteDistinguisher";
-                  description "Route Distinguisher";
-                  leaf type {
-                    xr:xr-xml-map "l2vpn_cfg:Type";
-                    type Bgp-route-distinguisher;
-                    description "Router distinguisher type";
-                  }
-                  leaf as {
-                    xr:xr-xml-map "l2vpn_cfg:AS";
-                    when "../type = 'two-byte-as' or ../type ="+
-                      " 'four-byte-as'" {
-                        description
-                          "../Type = TwoByteAS or ../Type =
-                          FourByteAS";
-                    }
-                    type Rdas-range;
-                    description "Two byte or 4 byte AS number";
-                  }
-                  leaf as-index {
-                    xr:xr-xml-map "l2vpn_cfg:ASIndex";
-                    when "../type = 'two-byte-as' or ../type ="+
-                      " 'four-byte-as'" {
-                        description
-                          "../Type = TwoByteAS or ../Type =
-                          FourByteAS";
-                    }
-                    type Rdas-index;
-                    description "AS:nn (hex or decimal format)";
-                  }
-                  leaf address {
-                    xr:xr-xml-map "l2vpn_cfg:Address";
-                    when "../type = 'ipv4-address'" {
-                      description "../Type = IPV4Address";
-                    }
-                    type inet:ipv4-address-no-zone;
-                    description "IPV4 address";
-                  }
-                  leaf addr-index {
-                    xr:xr-xml-map "l2vpn_cfg:AddrIndex";
-                    when "../type = 'ipv4-address'" {
-                      description "../Type = IPV4Address";
-                    }
-                    type Rd-addr-index;
-                    description "Addr index";
-                  }
-                }
-
-                container mp2mp-route-targets {
-                  xr:xr-xml-map "l2vpn_cfg:MP2MPRouteTargetTable";
-                  description "Route Target";
-
-                  list mp2mp-route-target {
-                    xr:xr-xml-map "l2vpn_cfg:MP2MPRouteTarget";
-                    must "two-byte-as-or-four-byte-as or"+
-                      " ipv4-address" {
-                      description
-                        "TwoByteAS-or-FourbyteAS or IPV4Address
-                        must be present.";
-                    }
-                    key "role format";
-                    description "Name of the Route Target";
-                    leaf role {
-                      xr:xr-xml-map "l2vpn_cfg:Role";
-                      type Bgp-route-target-role;
-                      description "Role of the router target type";
-                    }
-                    leaf format {
-                      xr:xr-xml-map "l2vpn_cfg:Format";
-                      type Bgp-route-target-format;
-                      description "Format of the route target";
-                    }
-
-                    list two-byte-as-or-four-byte-as {
-                      when "../format = 'two-byte-as' or"+
-                        " ../format = 'four-byte-as'" {
-                          description
-                            "../Format = TwoByteAS or ../Format =
-                            FourbyteAS";
-                      }
-                      key "as as-index";
-                      description "two byte as or four byte as";
-                      leaf as {
-                        xr:xr-xml-map "l2vpn_cfg:AS";
-                        type Rdas-range;
-                        description "Two byte or 4 byte AS number";
-                      }
-                      leaf as-index {
-                        xr:xr-xml-map "l2vpn_cfg:ASIndex";
-                        type Rdas-index;
-                        description "AS:nn (hex or decimal format)";
-                      }
-                    }
-
-                    list ipv4-address {
-                      when "../format = 'ipv4-address'" {
-                        description "../Format = IPV4Address";
-                      }
-                      key "address addr-index";
-                      description "ipv4 address";
-                      leaf address {
-                        xr:xr-xml-map "l2vpn_cfg:Address";
-                        type inet:ipv4-address-no-zone;
-                        description "IPV4 address";
-                      }
-                      leaf addr-index {
-                        xr:xr-xml-map "l2vpn_cfg:AddrIndex";
-                        type Rd-addr-index;
-                        description "Addr index";
-                      }
-                    }
-                  }
-                }
-
-                container mp2mp-signaling-protocol {
-                  xr:xr-xml-map "l2vpn_cfg:MP2MPSignalingProtocol";
-                  description "signaling protocol in this MP2MP";
-
-                  container flow-label-load-balance {
-                    xr:xr-xml-map "l2vpn_cfg:FlowLabelLoadBalance";
-                    description
-                      "Enable Flow Label based load balancing";
-                    leaf flow-label {
-                      xr:xr-xml-map "l2vpn_cfg:FlowLabel";
-                      type Flow-label-load-balance;
-                      description "Flow Label load balance type";
-                    }
-                    leaf static {
-                      xr:xr-xml-map "l2vpn_cfg:Static";
-                      type empty;
-                      description "Static Flow Label";
-                    }
-                  }
-
-                  container ceids {
-                    xr:xr-xml-map "l2vpn_cfg:CEIDTable";
-                    description
-                      "Local Customer Edge Identifier Table";
-
-                    list ceid {
-                      xr:xr-xml-map "l2vpn_cfg:CEID";
-                      key "ce-id";
-                      description "Local Customer Edge Identifier ";
-
-                      container remote-ceid-attachment-circuits {
-                        xr:xr-xml-map "l2vpn_cfg:RemoteCEIDAttachme"+
-                          "ntCircuitTable";
-                        description
-                          "AC And Remote Customer Edge Identifier
-                          Table";
-
-                        list remote-ceid-attachment-circuit {
-                          xr:xr-xml-map "l2vpn_cfg:RemoteCEIDAttach"+
-                            "mentCircuit";
-                          key "name remote-ce-id";
-                          description
-                            "AC And Remote Customer Edge Identifier";
-                          leaf name {
-                            xr:xr-xml-map "l2vpn_cfg:Name";
-                            type xr:Interface-name;
-                            description
-                              "The name of the Attachment Circuit";
-                          }
-                          leaf remote-ce-id {
-                            xr:xr-xml-map "l2vpn_cfg:RemoteCeId";
-                            type Ce-id-range;
-                            description
-                              "Remote Customer Edge Identifier";
-                          }
-                        }
-                      }
-                      leaf ce-id {
-                        xr:xr-xml-map "l2vpn_cfg:CEId";
-                        type Ce-id-range;
-                        description
-                          "Local Customer Edge Identifier";
-                      }
-                    }
-                  }
-                  leaf ce-range {
-                    xr:xr-xml-map "l2vpn_cfg:CERange";
-                    xr:xr-cli-map "ce-range <number> ";
-                    type Cedge-range;
-                    description "Local Customer Edge Identifier";
-                  }
-                  leaf enable {
-                    xr:xr-xml-map "l2vpn_cfg:Enable";
-                    type empty;
-                    description "Enable signaling protocol";
-                  }
-                }
-                leaf enable {
-                  xr:xr-xml-map "l2vpn_cfg:Enable";
-                  type empty;
-                  description "Enable auto-discovery";
-                }
-              }
-              leaf mp2mpmtu {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPMTU";
-                xr:xr-cli-map "l2vpn xconnect group <string> mp2mp "+
-                  "<string> mtu <number> ";
-                type L2vpn-mtu-range;
-                units "byte";
-                description
-                  "Maximum transmission unit for this MP2MP
-                  VPWS instance";
-              }
-              leaf mp2mp-control-word {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPControlWord";
-                xr:xr-cli-map "l2vpn xconnect group <string> mp2mp "+
-                  "<string> control-word disable ";
-                type empty;
-                description "Disable control word";
-              }
-              leaf mp2mpl2-encapsulation {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPL2Encapsulation";
-                xr:xr-cli-map "l2vpn xconnect group <string> mp2mp "+
-                  "<string> l2-encapsulation <enum> ";
-                type L2-encapsulation;
-                description "Configure Layer 2 Encapsulation";
-              }
-              leaf mp2mp-interworking {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPInterworking";
-                xr:xr-cli-map "l2vpn xconnect group <string> mp2mp "+
-                  "<string> interworking <enum> ";
-                type Interworking;
-                description "Interworking";
-              }
-              leaf mp2mp-shutdown {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPShutdown";
-                xr:xr-cli-map "l2vpn xconnect group <string> mp2mp "+
-                  "<string> shutdown ";
-                type empty;
-                description "shutdown this MP2MP VPWS instance";
-              }
-              leaf mp2mpvpn-id {
-                xr:xr-xml-map "l2vpn_cfg:MP2MPVPNId";
-                xr:xr-cli-map "l2vpn xconnect group <string> mp2mp "+
-                  "<string> vpn-id <number> ";
-                type Vpnid-range;
-                description "VPN Identifier";
-              }
-              leaf name {
-                xr:xr-xml-map "l2vpn_cfg:Name";
-                type xr:Cisco-ios-xr-string {
-                  length "0..26";
-                }
-                description
-                  "Name of the multi point to multi point
-                  xconnect";
-              }
-            }
-          }
-          leaf name {
-            xr:xr-xml-map "l2vpn_cfg:Name";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of the xconnect group";
-          }
-        }
-      }
-
-      container bridge-domain-groups {
-        xr:xr-xml-map "l2vpn_cfg:BridgeDomainGroupTable";
-        description "List of bridge  groups";
-
-        list bridge-domain-group {
-          xr:xr-xml-map "l2vpn_cfg:BridgeDomainGroup";
-          key "name";
-          description "Bridge group";
-
-          container bridge-domains {
-            xr:xr-xml-map "l2vpn_cfg:BridgeDomainTable";
-            description "List of Bridge Domain";
-
-            list bridge-domain {
-              xr:xr-xml-map "l2vpn_cfg:BridgeDomain";
-              key "name";
-              description "bridge domain";
-
-              container bd-storm-controls {
-                xr:xr-xml-map "l2vpn_cfg:BDStormControlTable";
-                description "Storm Control";
-
-                list bd-storm-control {
-                  xr:xr-xml-map "l2vpn_cfg:BDStormControl";
-                  key "sctype";
-                  description "Storm Control Type";
-                  leaf sctype {
-                    xr:xr-xml-map "l2vpn_cfg:SCType";
-                    type Storm-control;
-                    description "Storm Control Type";
-                  }
-                  uses STORM-CONTROL-UNIT;
-                }
-              }
-
-              container member-vnis {
-                xr:xr-xml-map "l2vpn_cfg:MemberVNITable";
-                description
-                  "Bridge Domain VxLAN Network Identifier
-                  Table";
-
-                list member-vni {
-                  xr:xr-xml-map "l2vpn_cfg:MemberVNI";
-                  key "vni";
-                  description
-                    "Bridge Domain Member VxLAN Network
-                    Identifier ";
-                  leaf vni {
-                    xr:xr-xml-map "l2vpn_cfg:VNI";
-                    type uint32 {
-                      range "1..16777215";
-                    }
-                    description "VxLAN Network Identifier number";
-                  }
-                }
-              }
-
-              container bridge-domain-mac {
-                xr:xr-xml-map "l2vpn_cfg:BridgeDomainMAC";
-                description "MAC configuration commands";
-
-                container bd-mac-limit {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACLimit";
-                  description "MAC-Limit configuration commands";
-                  leaf bd-mac-limit-action {
-                    xr:xr-xml-map "l2vpn_cfg:BD_MACLimitAction";
-                    xr:xr-cli-map "action (flood)|(no-flood)|(shutd"+
-                      "own) ";
-                    type Mac-limit-action;
-                    description
-                      "MAC address limit enforcement action";
-                  }
-                  leaf bd-mac-limit-notif {
-                    xr:xr-xml-map "l2vpn_cfg:BD_MACLimitNotif";
-                    xr:xr-cli-map "notification (trap)|(both)|(none"+
-                      ") ";
-                    type Mac-notification;
-                    description "Mac Address Limit Notification";
-                  }
-                  leaf bd-mac-limit-max {
-                    xr:xr-xml-map "l2vpn_cfg:BD_MACLimitMax";
-                    xr:xr-cli-map "maximum <number> ";
-                    type Mac-limit-range;
-                    description
-                      "Number of MAC addresses after which MAC
-                      limit action is taken";
-                  }
-                }
-
-                container bd-mac-filters {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACFilterTable";
-                  description "Filter Mac Address";
-
-                  list bd-mac-filter {
-                    xr:xr-xml-map "l2vpn_cfg:BD_MACFilter";
-                    key "address";
-                    description "Static MAC address";
-                    leaf drop {
-                      xr:xr-xml-map "l2vpn_cfg:Drop";
-                      xr:xr-cli-map "static-address <MAC address> d"+
-                        "rop ";
-                      type empty;
-                      description "MAC address for filtering";
-                    }
-                    leaf address {
-                      xr:xr-xml-map "l2vpn_cfg:Address";
-                      type yang:mac-address;
-                      description "Static MAC address";
-                    }
-                  }
-                }
-
-                container mac-secure {
-                  xr:xr-xml-map "l2vpn_cfg:MACSecure";
-                  description "MAC Secure";
-                  leaf logging {
-                    xr:xr-xml-map "l2vpn_cfg:Logging";
-                    xr:xr-cli-map "logging ";
-                    type empty;
-                    description "MAC Secure Logging";
-                  }
-                  leaf action {
-                    xr:xr-xml-map "l2vpn_cfg:Action";
-                    xr:xr-cli-map "action (none)|(shutdown) ";
-                    type Mac-secure-action;
-                    description "MAC secure enforcement action";
-                  }
-                  leaf enable {
-                    xr:xr-xml-map "l2vpn_cfg:Enable";
-                    type empty;
-                    description "Enable MAC Secure";
-                  }
-                }
-
-                container bd-mac-aging {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACAging";
-                  description "MAC-Aging configuration commands";
-                  leaf bd-mac-aging-type {
-                    xr:xr-xml-map "l2vpn_cfg:BD_MACAgingType";
-                    xr:xr-cli-map "aging type absolute ";
-                    type Mac-aging;
-                    description "MAC address aging type";
-                  }
-                  leaf bd-mac-aging-time {
-                    xr:xr-xml-map "l2vpn_cfg:BD_MACAgingTime";
-                    xr:xr-cli-map "aging time <number> ";
-                    type Mac-aging-range;
-                    description "Mac Aging Time";
-                  }
-                }
-                leaf bd-mac-withdraw-relay {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACWithdrawRelay";
-                  xr:xr-cli-map "withdraw relay ";
-                  type empty;
-                  description
-                    "Mac withdraw sent from access PW to access
-                    PW";
-                }
-                leaf bd-mac-withdraw-access-pw-disable {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACWithdrawAccessPWDi"+
-                    "sable";
-                  xr:xr-cli-map "withdraw access-pw disable ";
-                  type empty;
-                  description "MAC withdraw on Access PW";
-                }
-                leaf bd-mac-port-down-flush {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACPortDownFlush";
-                  xr:xr-cli-map "port-down flush [disable] ";
-                  type empty;
-                  description
-                    "Disable MAC Flush when Port goes Down";
-                }
-                leaf bd-mac-withdraw {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACWithdraw";
-                  xr:xr-cli-map "withdraw disable ";
-                  type empty;
-                  description "Disable Mac Withdraw";
-                }
-                leaf bd-mac-withdraw-behavior {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACWithdrawBehavior";
-                  xr:xr-cli-map "withdraw state-down ";
-                  type Mac-withdraw-behavior;
-                  description
-                    "MAC withdraw sent on bridge port down";
-                }
-                leaf bd-mac-learn {
-                  xr:xr-xml-map "l2vpn_cfg:BD_MACLearn";
-                  xr:xr-cli-map "learning [disable] ";
-                  type Mac-learn;
-                  description "Enable Mac Learning";
-                }
-              }
-
-              container nv-satellite {
-                xr:xr-xml-map "l2vpn_cfg:nVSatellite";
-                description "nV Satellite";
-                leaf offload-ipv4-multicast-enable {
-                  xr:xr-xml-map "l2vpn_cfg:OffloadIPv4MulticastEnab"+
-                    "le";
-                  xr:xr-cli-map "l2vpn bridge group <string> bridge"+
-                    "-domain <string> nv satellite offload ipv4 mul"+
-                    "ticast enable ";
-                  type empty;
-                  description
-                    "Enable IPv4 Multicast Offload to Satellite
-                    Nodes";
-                }
-                leaf enable {
-                  xr:xr-xml-map "l2vpn_cfg:Enable";
-                  type empty;
-                  description "Enable nV Satellite Settings";
-                }
-              }
-
-              container bridge-domain-pbb {
-                xr:xr-xml-map "l2vpn_cfg:BridgeDomainPBB";
-                description "Bridge Domain PBB";
-
-                container pbb-edges {
-                  xr:xr-xml-map "l2vpn_cfg:PBBEdgeTable";
-                  description "PBB Edge";
-
-                  list pbb-edge {
-                    xr:xr-xml-map "l2vpn_cfg:PBBEdge";
-                    key "isid core-bd-name";
-                    description
-                      "Configure BD as PBB Edge with ISID and
-                      associated PBB Core BD";
-
-                    container pbb-static-mac-mappings {
-                      xr:xr-xml-map "l2vpn_cfg:PBBStaticMACMappingT"+
-                        "able";
-                      description
-                        "PBB Static Mac Address Mapping Table";
-
-                      list pbb-static-mac-mapping {
-                        xr:xr-xml-map "l2vpn_cfg:PBBStaticMACMappin"+
-                          "g";
-                        key "address";
-                        description
-                          "PBB Static Mac Address Mapping
-                          Configuration";
-                        leaf address {
-                          xr:xr-xml-map "l2vpn_cfg:Address";
-                          type yang:mac-address;
-                          description "Static MAC address";
-                        }
-                        leaf bmac {
-                          xr:xr-xml-map "l2vpn_cfg:BMAC";
-                          type yang:mac-address;
-                          mandatory true;
-                          description "Backbone MAC address";
-                        }
-                      }
-                    }
-
-                    container pbb-edge-dhcp-profile {
-                      xr:xr-xml-map "l2vpn_cfg:PBBEdgeDHCPProfile";
-                      description "Attach a DHCP profile";
-                      leaf profile-id {
-                        xr:xr-xml-map "l2vpn_cfg:ProfileId";
-                        type Interface-profile;
-                        description "Set the snooping profile";
-                      }
-                      leaf dhcp-snooping-id {
-                        xr:xr-xml-map "l2vpn_cfg:DhcpSnoopingID";
-                        type string;
-                        description "Disable DHCP snooping";
-                      }
-                    }
-
-                    container pbb-edge-mac {
-                      xr:xr-xml-map "l2vpn_cfg:PBBEdgeMAC";
-                      description "MAC configuration commands";
-
-                      container pbb-edge-mac-limit {
-                        xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACLimit";
-                        description
-                          "MAC-Limit configuration commands";
-                        leaf pbb-edge-mac-limit-action {
-                          xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACLimitA"+
-                            "ction";
-                          xr:xr-cli-map "action (flood)|(no-flood)|"+
-                            "(shutdown)|(none) ";
-                          type Mac-limit-action;
-                          description
-                            "MAC address limit enforcement action";
-                        }
-                        leaf pbb-edge-mac-limit-max {
-                          xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACLimitM"+
-                            "ax";
-                          xr:xr-cli-map "maximum <number> ";
-                          type Mac-limit-range;
-                          description
-                            "Number of MAC addresses after which
-                            MAC limit action is taken";
-                        }
-                        leaf pbb-edge-mac-limit-notif {
-                          xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACLimitN"+
-                            "otif";
-                          xr:xr-cli-map "notification (trap)|(both)"+
-                            "|(none)|(syslog) ";
-                          type Mac-notification;
-                          description
-                            "MAC address limit notification action";
-                        }
-                      }
-
-                      container pbb-edge-mac-aging {
-                        xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACAging";
-                        description
-                          "MAC-Aging configuration commands";
-                        leaf pbb-edge-mac-aging-type {
-                          xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACAgingT"+
-                            "ype";
-                          xr:xr-cli-map "aging type (absolute)|(ina"+
-                            "ctivity) ";
-                          type Mac-aging;
-                          description "MAC address aging type";
-                        }
-                        leaf pbb-edge-mac-aging-time {
-                          xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACAgingT"+
-                            "ime";
-                          xr:xr-cli-map "aging time <number> ";
-                          type Mac-aging-range;
-                          description "Mac Aging Time";
-                        }
-                      }
-
-                      container pbb-edge-mac-secure {
-                        xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACSecure";
-                        description "MAC Secure";
-                        leaf logging {
-                          xr:xr-xml-map "l2vpn_cfg:Logging";
-                          xr:xr-cli-map "logging (disable) ";
-                          type L2vpn-logging;
-                          description "MAC Secure Logging";
-                        }
-                        leaf disable {
-                          xr:xr-xml-map "l2vpn_cfg:Disable";
-                          xr:xr-cli-map "disable ";
-                          type empty;
-                          description
-                            "Disable Virtual instance port MAC
-                            Secure";
-                        }
-                        leaf action {
-                          xr:xr-xml-map "l2vpn_cfg:Action";
-                          xr:xr-cli-map "action (none)|(shutdown)|("+
-                            "restrict) ";
-                          type Mac-secure-action;
-                          description
-                            "MAC secure enforcement action";
-                        }
-                        leaf enable {
-                          xr:xr-xml-map "l2vpn_cfg:Enable";
-                          type empty;
-                          description "Enable MAC Secure";
-                        }
-                        leaf accept-shutdown {
-                          xr:xr-xml-map "l2vpn_cfg:AcceptShutdown";
-                          xr:xr-cli-map "accept-shutdown ";
-                          type empty;
-                          description
-                            "Accept Virtual instance port to be
-                            shutdown on mac violation";
-                        }
-                      }
-                      leaf pbb-edge-mac-learning {
-                        xr:xr-xml-map "l2vpn_cfg:PBBEdgeMACLearning";
-                        xr:xr-cli-map "learning (disable) ";
-                        type Mac-learn;
-                        description "Enable Mac Learning";
-                      }
-                    }
-                    leaf pbb-edge-igmp-profile {
-                      xr:xr-xml-map "l2vpn_cfg:PBBEdgeIGMPProfile";
-                      xr:xr-cli-map "igmp snooping profile <string>"+
-                        " ";
-                      type xr:Cisco-ios-xr-string {
-                        length "0..32";
-                      }
-                      description "Attach a IGMP Snooping profile";
-                    }
-                    leaf unknown-unicast-bmac {
-                      xr:xr-xml-map "l2vpn_cfg:UnknownUnicastBMAC";
-                      type yang:mac-address;
-                      description
-                        "Configure Unknown Unicast BMAC address
-                        for PBB Edge Port";
-                    }
-                    leaf isid {
-                      xr:xr-xml-map "l2vpn_cfg:ISID";
-                      type Pbbisid-range;
-                      description "ISID";
-                    }
-                    leaf core-bd-name {
-                      xr:xr-xml-map "l2vpn_cfg:CoreBDName";
-                      type xr:Cisco-ios-xr-string {
-                        length "0..27";
-                      }
-                      description "Core BD Name";
-                    }
-                  }
-                }
-
-                container pbb-core {
-                  xr:xr-xml-map "l2vpn_cfg:PBBCore";
-                  description "PBB Core";
-
-                  container pbb-core-mac {
-                    xr:xr-xml-map "l2vpn_cfg:PBBCoreMAC";
-                    description "MAC configuration commands";
-
-                    container pbb-core-mac-aging {
-                      xr:xr-xml-map "l2vpn_cfg:PBBCoreMACAging";
-                      description
-                        "MAC-Aging configuration commands";
-                      leaf pbb-core-mac-aging-type {
-                        xr:xr-xml-map "l2vpn_cfg:PBBCoreMACAgingTyp"+
-                          "e";
-                        xr:xr-cli-map "aging type (absolute)|(inact"+
-                          "ivity) ";
-                        type Mac-aging;
-                        description "MAC address aging type";
-                      }
-                      leaf pbb-core-mac-aging-time {
-                        xr:xr-xml-map "l2vpn_cfg:PBBCoreMACAgingTim"+
-                          "e";
-                        xr:xr-cli-map "aging time <number> ";
-                        type Mac-aging-range;
-                        description "Mac Aging Time";
-                      }
-                    }
-
-                    container pbb-core-mac-limit {
-                      xr:xr-xml-map "l2vpn_cfg:PBBCoreMACLimit";
-                      description
-                        "MAC-Limit configuration commands";
-                      leaf pbb-core-mac-limit-max {
-                        xr:xr-xml-map "l2vpn_cfg:PBBCoreMACLimitMax";
-                        xr:xr-cli-map "maximum <number> ";
-                        type Mac-limit-range;
-                        description
-                          "Number of MAC addresses after which MAC
-                          limit action is taken";
-                      }
-                      leaf pbb-core-mac-limit-notif {
-                        xr:xr-xml-map "l2vpn_cfg:PBBCoreMACLimitNot"+
-                          "if";
-                        xr:xr-cli-map "notification (trap)|(both)|("+
-                          "none)|(syslog) ";
-                        type Mac-notification;
-                        description
-                          "MAC address limit notification action";
-                      }
-                      leaf pbb-core-mac-limit-action {
-                        xr:xr-xml-map "l2vpn_cfg:PBBCoreMACLimitAct"+
-                          "ion";
-                        xr:xr-cli-map "action (flood)|(no-flood)|(s"+
-                          "hutdown)|(none) ";
-                        type Mac-limit-action;
-                        description
-                          "MAC address limit enforcement action";
-                      }
-                    }
-                    leaf pbb-core-mac-learning {
-                      xr:xr-xml-map "l2vpn_cfg:PBBCoreMACLearning";
-                      xr:xr-cli-map "learning (disable) ";
-                      type Mac-learn;
-                      description "Enable Mac Learning";
-                    }
-                  }
-
-                  container pbb-core-dhcp-profile {
-                    xr:xr-xml-map "l2vpn_cfg:PBBCoreDHCPProfile";
-                    description "Attach a DHCP profile";
-                    leaf profile-id {
-                      xr:xr-xml-map "l2vpn_cfg:ProfileId";
-                      type Interface-profile;
-                      description "Set the snooping profile";
-                    }
-                    leaf dhcp-snooping-id {
-                      xr:xr-xml-map "l2vpn_cfg:DhcpSnoopingID";
-                      type string;
-                      description "Disable DHCP snooping";
-                    }
-                  }
-                  leaf pbb-core-mmrp-flood-optimization {
-                    xr:xr-xml-map "l2vpn_cfg:PBBCoreMMRPFloodOptimi"+
-                      "zation";
-                    xr:xr-cli-map "l2vpn bridge group <string> brid"+
-                      "ge-domain <string> pbb core mmrp-flood-optim"+
-                      "ization ";
-                    type empty;
-                    description
-                      "Enabling MMRP PBB-VPLS Flood Optimization";
-                  }
-                  leaf vlan-id {
-                    xr:xr-xml-map "l2vpn_cfg:VLAN_ID";
-                    xr:xr-cli-map "l2vpn bridge group <string> brid"+
-                      "ge-domain <string> pbb core rewrite ingress "+
-                      "tag push dot1ad <number> symmetric ";
-                    type Pbbvid-range;
-                    description "VLAN ID to push";
-                  }
-                  leaf pbb-core-igmp-profile {
-                    xr:xr-xml-map "l2vpn_cfg:PBBCoreIGMPProfile";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description "Attach a IGMP Snooping profile";
-                  }
-                  leaf enable {
-                    xr:xr-xml-map "l2vpn_cfg:Enable";
-                    type empty;
-                    description
-                      "Enable Bridge Domain PBB Core
-                      Configuration";
-                  }
-                  leaf evpn-attribute {
-                    xr:xr-xml-map "l2vpn_cfg:EVPNAttribute";
-                    xr:xr-cli-map "l2vpn bridge group <string> brid"+
-                      "ge-domain <string> pbb core evpn evi <number"+
-                      "> ";
-                    type Evpnvpnid-range;
-                    description "Configure EVPN EVI";
-                  }
-                }
-              }
-
-              container bd-pseudowires {
-                xr:xr-xml-map "l2vpn_cfg:BDPseudowireTable";
-                description "List of pseudowires";
-
-                list bd-pseudowire {
-                  xr:xr-xml-map "l2vpn_cfg:BDPseudowire";
-                  key "neighbor pseudowire-id";
-                  description "Pseudowire configuration";
-
-                  container pseudowire-dai {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireDAI";
-                    description
-                      "Access Pseudowire Dynamic ARP Inspection";
-
-                    container pseudowire-dai-address-validation {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireDAIAddress"+
-                        "Validation";
-                      description "Address Validation";
-                      leaf ipv4-verification {
-                        xr:xr-xml-map "l2vpn_cfg:IPv4Verification";
-                        type L2vpn-verification;
-                        description "IPv4 Verification";
-                      }
-                      leaf destination-mac-verification {
-                        xr:xr-xml-map "l2vpn_cfg:DestinationMACVeri"+
-                          "fication";
-                        type L2vpn-verification;
-                        description "Destination MAC Verification";
-                      }
-                      leaf source-mac-verification {
-                        xr:xr-xml-map "l2vpn_cfg:SourceMACVerificat"+
-                          "ion";
-                        type L2vpn-verification;
-                        description "Source MAC Verification";
-                      }
-                    }
-                    leaf logging {
-                      xr:xr-xml-map "l2vpn_cfg:Logging";
-                      type L2vpn-logging;
-                      description "Logging Type";
-                    }
-                    leaf disable {
-                      xr:xr-xml-map "l2vpn_cfg:Disable";
-                      type empty;
-                      description "Disable Dynamic ARP Inspection";
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description
-                        "Enable Access Pseudowire Dynamic ARP
-                        Inspection";
-                    }
-                  }
-
-                  container bdpw-storm-control-types {
-                    xr:xr-xml-map "l2vpn_cfg:BDPWStormControlTable";
-                    description "Storm Control";
-
-                    list bdpw-storm-control-type {
-                      xr:xr-xml-map "l2vpn_cfg:BDPWStormControlType";
-                      key "sctype";
-                      description "Storm Control Type";
-                      leaf sctype {
-                        xr:xr-xml-map "l2vpn_cfg:SCType";
-                        type Storm-control;
-                        description "Storm Control Type";
-                      }
-                      uses STORM-CONTROL-UNIT;
-                    }
-                  }
-
-                  container pseudowire-profile {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireProfile";
-                    description "Attach a DHCP profile";
-                    leaf profile-id {
-                      xr:xr-xml-map "l2vpn_cfg:ProfileId";
-                      type Interface-profile;
-                      description "Set the snooping profile";
-                    }
-                    leaf dhcp-snooping-id {
-                      xr:xr-xml-map "l2vpn_cfg:DhcpSnoopingID";
-                      type string;
-                      description "Disable DHCP snooping";
-                    }
-                  }
-
-                  container bd-pw-static-mac-addresses {
-                    xr:xr-xml-map "l2vpn_cfg:BD_PWStaticMACAddressT"+
-                      "able";
-                    description "Static Mac Address Table";
-
-                    list bd-pw-static-mac-address {
-                      xr:xr-xml-map "l2vpn_cfg:BD_PWStaticMacAddres"+
-                        "s";
-                      key "address";
-                      description
-                        "Static Mac Address Configuration";
-                      leaf address {
-                        xr:xr-xml-map "l2vpn_cfg:Address";
-                        type yang:mac-address;
-                        description "Static MAC address";
-                      }
-                    }
-                  }
-
-                  container pseudowire-ip-source-guard {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireIPSourceGuar"+
-                      "d";
-                    description "IP Source Guard";
-                    leaf logging {
-                      xr:xr-xml-map "l2vpn_cfg:Logging";
-                      type L2vpn-logging;
-                      description "Logging Type";
-                    }
-                    leaf disable {
-                      xr:xr-xml-map "l2vpn_cfg:Disable";
-                      type empty;
-                      description "Disable Dynamic IP source guard";
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description "Enable IP Source Guard";
-                    }
-                  }
-
-                  container pseudowire-mac {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireMAC";
-                    description
-                      "Bridge-domain Pseudowire MAC
-                      configuration commands";
-
-                    container pseudowire-mac-secure {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireMACSecure";
-                      description "MAC Secure";
-                      leaf logging {
-                        xr:xr-xml-map "l2vpn_cfg:Logging";
-                        xr:xr-cli-map "logging (disable) ";
-                        type L2vpn-logging;
-                        description "MAC Secure Logging";
-                      }
-                      leaf disable {
-                        xr:xr-xml-map "l2vpn_cfg:Disable";
-                        xr:xr-cli-map "disable ";
-                        type empty;
-                        description
-                          "Disable L2 Pseudowire MAC Secure";
-                      }
-                      leaf action {
-                        xr:xr-xml-map "l2vpn_cfg:Action";
-                        xr:xr-cli-map "action (none)|(shutdown)|(re"+
-                          "strict) ";
-                        type Mac-secure-action;
-                        description "MAC secure enforcement action";
-                      }
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        type empty;
-                        description "Enable MAC Secure";
-                      }
-                    }
-
-                    container pseudowire-mac-aging {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireMACAging";
-                      description
-                        "MAC-Aging configuration commands";
-                      leaf pseudowire-mac-aging-type {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireMACAging"+
-                          "Type";
-                        xr:xr-cli-map "aging type (absolute)|(inact"+
-                          "ivity) ";
-                        type Mac-aging;
-                        description "MAC address aging type";
-                      }
-                      leaf pseudowire-mac-aging-time {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireMACAging"+
-                          "Time";
-                        xr:xr-cli-map "aging time <number> ";
-                        type Mac-aging-range;
-                        description "MAC Aging Time";
-                      }
-                    }
-
-                    container pseudowire-mac-limit {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireMACLimit";
-                      description
-                        "MAC-Limit configuration commands";
-                      leaf pseudowire-mac-limit-action {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireMACLimit"+
-                          "Action";
-                        xr:xr-cli-map "action (flood)|(no-flood)|(s"+
-                          "hutdown)|(none) ";
-                        type Mac-limit-action;
-                        description
-                          "Bridge Access Pseudowire MAC address
-                          limit enforcement action";
-                      }
-                      leaf pseudowire-mac-limit-notif {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireMACLimit"+
-                          "Notif";
-                        xr:xr-cli-map "notification (trap)|(both)|("+
-                          "none)|(syslog) ";
-                        type Mac-notification;
-                        description
-                          "MAC address limit notification action
-                          in a Bridge Access Pseudowire";
-                      }
-                      leaf pseudowire-mac-limit-max {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireMACLimit"+
-                          "Max";
-                        xr:xr-cli-map "maximum <number> ";
-                        type Mac-limit-range;
-                        description
-                          "Number of MAC addresses on a Bridge
-                          Access Pseudowire after which MAC limit
-                          action is taken";
-                      }
-                    }
-                    leaf pseudowire-mac-port-down-flush {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireMACPortDow"+
-                        "nFlush";
-                      xr:xr-cli-map "port-down flush (disable) ";
-                      type Port-down-flush;
-                      description
-                        "Enable/Disable MAC Flush When Port goes
-                        down";
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description
-                        "Bridge-domain Pseudowire MAC
-                        configuration mode";
-                    }
-                    leaf pseudowire-mac-learning {
-                      xr:xr-xml-map "l2vpn_cfg:PseudowireMACLearnin"+
-                        "g";
-                      xr:xr-cli-map "learning (disable) ";
-                      type Mac-learn;
-                      description "Enable MAC Learning";
-                    }
-                  }
-
-                  container bd-pw-split-horizon {
-                    xr:xr-xml-map "l2vpn_cfg:BD_PWSplitHorizon";
-                    description "Split Horizon";
-
-                    container bd-pw-split-horizon-group {
-                      xr:xr-xml-map "l2vpn_cfg:BD_PWSplitHorizonGro"+
-                        "up";
-                      description "Split Horizon Group";
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        xr:xr-cli-map "split-horizon group ";
-                        type empty;
-                        description "Enable split horizon group";
-                      }
-                    }
-                  }
-
-                  container bd-pw-mpls-static-labels {
-                    xr:xr-xml-map "l2vpn_cfg:BD_PW_MPLSStaticLabels";
-                    description "MPLS static labels";
-                    leaf local-static-label {
-                      xr:xr-xml-map "l2vpn_cfg:LocalStaticLabel";
-                      type Pseudowire-label-range;
-                      description "Pseudowire local static label";
-                    }
-                    leaf remote-static-label {
-                      xr:xr-xml-map "l2vpn_cfg:RemoteStaticLabel";
-                      type Pseudowire-label-range;
-                      description "Pseudowire remote static label";
-                    }
-                  }
-
-                  container bridge-domain-backup-pseudowires {
-                    xr:xr-xml-map "l2vpn_cfg:BridgeDomainBackupPseu"+
-                      "dowireTable";
-                    description "List of pseudowires";
-
-                    list bridge-domain-backup-pseudowire {
-                      xr:xr-xml-map "l2vpn_cfg:BridgeDomainBackupPs"+
-                        "eudowire";
-                      key "neighbor pseudowire-id";
-                      description "Backup pseudowire configuration";
-                      leaf bridge-domain-backup-pw-class {
-                        xr:xr-xml-map "l2vpn_cfg:BridgeDomainBackup"+
-                          "PWClass";
-                        xr:xr-cli-map "backup neighbor <IPv4 addres"+
-                          "s> pw-id <number> pw-class <string> ";
-                        type xr:Cisco-ios-xr-string {
-                          length "0..32";
-                        }
-                        description
-                          "PW class template name to use for this
-                          pseudowire";
-                      }
-                      leaf neighbor {
-                        xr:xr-xml-map "l2vpn_cfg:Neighbor";
-                        type inet:ipv4-address-no-zone;
-                        description "Neighbor IP address";
-                      }
-                      leaf pseudowire-id {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireID";
-                        type Pseudowire-id-range;
-                        description "Pseudowire ID";
-                      }
-                    }
-                  }
-                  leaf pseudowire-mld-snoop {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireMLDSnoop";
-                    xr:xr-cli-map "mld snooping profile <string> ";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description "Attach a MLD Snooping profile";
-                  }
-                  leaf pseudowire-igmp-snoop {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireIGMPSnoop";
-                    xr:xr-cli-map "igmp snooping profile <string> ";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description "Attach a IGMP Snooping profile";
-                  }
-                  leaf pseudowire-flooding {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireFlooding";
-                    xr:xr-cli-map "flooding (disable) ";
-                    type Interface-traffic-flood;
-                    description "Bridge-domain Pseudowire flooding";
-                  }
-                  leaf bd-pw-class {
-                    xr:xr-xml-map "l2vpn_cfg:BD_PWClass";
-                    xr:xr-cli-map "pw-class <string> ";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description
-                      "PW class template name to use for this
-                      pseudowire";
-                  }
-                  leaf pseudowire-flooding-unknown-unicast {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireFloodingUnkn"+
-                      "ownUnicast";
-                    xr:xr-cli-map "flooding unknown-unicast (disabl"+
-                      "e) ";
-                    type Interface-traffic-flood;
-                    description
-                      "Bridge-domain Pseudowire flooding Unknown
-                      Unicast";
-                  }
-                  leaf neighbor {
-                    xr:xr-xml-map "l2vpn_cfg:Neighbor";
-                    type inet:ipv4-address-no-zone;
-                    description "Neighbor IP address";
-                  }
-                  leaf pseudowire-id {
-                    xr:xr-xml-map "l2vpn_cfg:PseudowireID";
-                    type Pseudowire-id-range;
-                    description "Pseudowire ID";
-                  }
-                }
-              }
-
-              container vfis {
-                xr:xr-xml-map "l2vpn_cfg:VFITable";
-                description
-                  "Specify the virtual forwarding interface
-                  name";
-
-                list vfi {
-                  xr:xr-xml-map "l2vpn_cfg:VFI";
-                  key "name";
-                  description
-                    "Name of the Virtual Forwarding Interface";
-
-                  container multicast-p2mp {
-                    xr:xr-xml-map "l2vpn_cfg:MulticastP2MP";
-                    description "Enable Multicast P2MP in this VFI";
-
-                    container transports {
-                      xr:xr-xml-map "l2vpn_cfg:TransportTable";
-                      description "Multicast P2MP Transport";
-
-                      list transport {
-                        xr:xr-xml-map "l2vpn_cfg:Transport";
-                        key "transport-name";
-                        description "Multicast P2MP Transport Type";
-                        leaf attribute-set-name {
-                          xr:xr-xml-map "l2vpn_cfg:AttributeSetName";
-                          type xr:Cisco-ios-xr-string {
-                            length "0..64";
-                          }
-                          description
-                            "Multicast P2MP TE Attribute Set Name";
-                        }
-                        leaf transport-name {
-                          xr:xr-xml-map "l2vpn_cfg:TransportName";
-                          type Multicast-p2mp-transport;
-                          description "Transport Type";
-                        }
-                      }
-                    }
-
-                    container signalings {
-                      xr:xr-xml-map "l2vpn_cfg:SignalingTable";
-                      description "Multicast P2MP Signaling Type";
-
-                      list signaling {
-                        xr:xr-xml-map "l2vpn_cfg:Signaling";
-                        key "signaling-name";
-                        description "Multicast P2MP Signaling Type";
-                        leaf signaling-name {
-                          xr:xr-xml-map "l2vpn_cfg:SignalingName";
-                          type Multicast-p2mp-signaling;
-                          description "Signaling Type";
-                        }
-                      }
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description "Enable Autodiscovery P2MP";
-                    }
-                  }
-
-                  container vfi-pseudowires {
-                    xr:xr-xml-map "l2vpn_cfg:VFIPseudowireTable";
-                    description "List of pseudowires";
-
-                    list vfi-pseudowire {
-                      xr:xr-xml-map "l2vpn_cfg:VFIPseudowire";
-                      key "neighbor pseudowire-id";
-                      description "Pseudowire configuration";
-
-                      container vfi-pw-dhcp-snoop {
-                        xr:xr-xml-map "l2vpn_cfg:VFI_PW_DHCPSnoop";
-                        description
-                          "Attach a DHCP Snooping profile";
-                        leaf profile-id {
-                          xr:xr-xml-map "l2vpn_cfg:ProfileId";
-                          type Interface-profile;
-                          description "Set the snooping profile";
-                        }
-                        leaf dhcp-snooping-id {
-                          xr:xr-xml-map "l2vpn_cfg:DhcpSnoopingID";
-                          type string;
-                          description "Disable DHCP snooping";
-                        }
-                      }
-
-                      container vfi-pw-mpls-static-labels {
-                        xr:xr-xml-map "l2vpn_cfg:VFI_PW_MPLSStaticL"+
-                          "abels";
-                        description "MPLS static labels";
-                        leaf local-static-label {
-                          xr:xr-xml-map "l2vpn_cfg:LocalStaticLabel";
-                          type Pseudowire-label-range;
-                          description
-                            "Pseudowire local static label";
-                        }
-                        leaf remote-static-label {
-                          xr:xr-xml-map "l2vpn_cfg:RemoteStaticLabe"+
-                            "l";
-                          type Pseudowire-label-range;
-                          description
-                            "Pseudowire remote static label";
-                        }
-                      }
-
-                      container pseudowire-static-mac-addresses {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireStaticMA"+
-                          "CAddressTable";
-                        description "Static Mac Address Table";
-
-                        list pseudowire-static-mac-address {
-                          xr:xr-xml-map "l2vpn_cfg:PseudowireStatic"+
-                            "MACAddress";
-                          key "address";
-                          description
-                            "Static Mac Address Configuration";
-                          leaf address {
-                            xr:xr-xml-map "l2vpn_cfg:Address";
-                            type yang:mac-address;
-                            description "Static MAC address";
-                          }
-                        }
-                      }
-                      leaf vfi-pw-class {
-                        xr:xr-xml-map "l2vpn_cfg:VFI_PWClass";
-                        xr:xr-cli-map "neighbor <IPv4 address> pw-i"+
-                          "d <number> pw-class <string> ";
-                        type xr:Cisco-ios-xr-string {
-                          length "0..32";
-                        }
-                        description
-                          "PW class template name to use for this
-                          pseudowire";
-                      }
-                      leaf vfi-pw-igmp-snoop {
-                        xr:xr-xml-map "l2vpn_cfg:VFI_PW_IGMPSnoop";
-                        xr:xr-cli-map "neighbor <IPv4 address> pw-i"+
-                          "d <number> igmp snooping profile <string"+
-                          "> ";
-                        type xr:Cisco-ios-xr-string {
-                          length "0..32";
-                        }
-                        description
-                          "Attach a IGMP Snooping profile";
-                      }
-                      leaf vfi-pw-mld-snoop {
-                        xr:xr-xml-map "l2vpn_cfg:VFI_PW_MLDSnoop";
-                        xr:xr-cli-map "neighbor <IPv4 address> pw-i"+
-                          "d <number> mld snooping profile <string>"+
-                          " ";
-                        type xr:Cisco-ios-xr-string {
-                          length "0..32";
-                        }
-                        description "Attach a MLD Snooping profile";
-                      }
-                      leaf neighbor {
-                        xr:xr-xml-map "l2vpn_cfg:Neighbor";
-                        type inet:ipv4-address-no-zone;
-                        description "Neighbor IP address";
-                      }
-                      leaf pseudowire-id {
-                        xr:xr-xml-map "l2vpn_cfg:PseudowireID";
-                        type Pseudowire-id-range;
-                        description "Pseudowire ID";
-                      }
-                    }
-                  }
-
-                  container bgp-auto-discovery {
-                    xr:xr-xml-map "l2vpn_cfg:BGPAutoDiscovery";
-                    description
-                      "Enable Autodiscovery BGP in this VFI";
-
-                    container ldp-signaling-protocol {
-                      xr:xr-xml-map "l2vpn_cfg:LDPSignalingProtocol";
-                      description
-                        "Signaling Protocol LDP in this VFI
-                        configuration";
-
-                      container vplsid {
-                        xr:xr-xml-map "l2vpn_cfg:VPLSID";
-                        description "VPLS ID";
-                        leaf type {
-                          xr:xr-xml-map "l2vpn_cfg:Type";
-                          type Ldp-vpls-id;
-                          description "VPLS-ID Type";
-                        }
-                        leaf as {
-                          xr:xr-xml-map "l2vpn_cfg:AS";
-                          when "../type = 'two-byte-as'" {
-                            description "../Type = TwoByteAS";
-                          }
-                          type Vpls-id-as-range;
-                          description "Two byte AS number";
-                        }
-                        leaf as-index {
-                          xr:xr-xml-map "l2vpn_cfg:ASIndex";
-                          when "../type = 'two-byte-as'" {
-                            description "../Type = TwoByteAS";
-                          }
-                          type Vpls-id-as-index;
-                          description "AS index";
-                        }
-                        leaf address {
-                          xr:xr-xml-map "l2vpn_cfg:Address";
-                          when "../type = 'ipv4-address'" {
-                            description "../Type = IPV4Address";
-                          }
-                          type inet:ipv4-address-no-zone;
-                          description "IPV4 address";
-                        }
-                        leaf address-index {
-                          xr:xr-xml-map "l2vpn_cfg:AddressIndex";
-                          when "../type = 'ipv4-address'" {
-                            description "../Type = IPV4Address";
-                          }
-                          type Vpls-id-addr-index;
-                          description "Address index";
-                        }
-                      }
-
-                      container flow-label-load-balance {
-                        xr:xr-xml-map "l2vpn_cfg:FlowLabelLoadBalan"+
-                          "ce";
-                        description
-                          "Enable Flow Label based load balancing";
-                        leaf flow-label {
-                          xr:xr-xml-map "l2vpn_cfg:FlowLabel";
-                          type Flow-label-load-balance;
-                          description
-                            "Flow Label load balance type";
-                        }
-                        leaf static {
-                          xr:xr-xml-map "l2vpn_cfg:Static";
-                          type empty;
-                          description "Static Flow Label";
-                        }
-                      }
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        type empty;
-                        description
-                          "Enable LDP as Signaling Protocol
-                          .Deletion of this object also causes
-                          deletion of all objects under
-                          LDPSignalingProtocol.";
-                      }
-                    }
-
-                    container route-distinguisher {
-                      xr:xr-xml-map "l2vpn_cfg:RouteDistinguisher";
-                      description "Route Distinguisher";
-                      leaf type {
-                        xr:xr-xml-map "l2vpn_cfg:Type";
-                        type Bgp-route-distinguisher;
-                        description "Router Distinguisher Type";
-                      }
-                      leaf as {
-                        xr:xr-xml-map "l2vpn_cfg:AS";
-                        when "../type = 'two-byte-as' or ../type"+
-                          " = 'four-byte-as'" {
-                            description
-                              "../Type = TwoByteAS or ../Type =
-                              FourByteAS";
-                        }
-                        type Rdas-range;
-                        description "Two byte or 4 byte AS number";
-                      }
-                      leaf as-index {
-                        xr:xr-xml-map "l2vpn_cfg:ASIndex";
-                        when "../type = 'two-byte-as' or ../type"+
-                          " = 'four-byte-as'" {
-                            description
-                              "../Type = TwoByteAS or ../Type =
-                              FourByteAS";
-                        }
-                        type Rdas-index;
-                        description "AS:nn (hex or decimal format)";
-                      }
-                      leaf address {
-                        xr:xr-xml-map "l2vpn_cfg:Address";
-                        when "../type = 'ipv4-address'" {
-                          description "../Type = IPV4Address";
-                        }
-                        type inet:ipv4-address-no-zone;
-                        description "IPV4 address";
-                      }
-                      leaf addr-index {
-                        xr:xr-xml-map "l2vpn_cfg:AddrIndex";
-                        when "../type = 'ipv4-address'" {
-                          description "../Type = IPV4Address";
-                        }
-                        type Rd-addr-index;
-                        description "Addr index";
-                      }
-                    }
-
-                    container bgp-signaling-protocol {
-                      xr:xr-xml-map "l2vpn_cfg:BGPSignalingProtocol";
-                      description
-                        "Enable Signaling Protocol BGP in this
-                        VFI";
-
-                      container flow-label-load-balance {
-                        xr:xr-xml-map "l2vpn_cfg:FlowLabelLoadBalan"+
-                          "ce";
-                        description
-                          "Enable Flow Label based load balancing";
-                        leaf flow-label {
-                          xr:xr-xml-map "l2vpn_cfg:FlowLabel";
-                          type Flow-label-load-balance;
-                          description
-                            "Flow Label load balance type";
-                        }
-                        leaf static {
-                          xr:xr-xml-map "l2vpn_cfg:Static";
-                          type empty;
-                          description "Static Flow Label";
-                        }
-                      }
-                      leaf ve-range {
-                        xr:xr-xml-map "l2vpn_cfg:VERange";
-                        xr:xr-cli-map "ve-range <number> ";
-                        type Vedge-range;
-                        description
-                          "Local Virtual Edge Block Configurable
-                          Range";
-                      }
-                      leaf veid {
-                        xr:xr-xml-map "l2vpn_cfg:VEID";
-                        xr:xr-cli-map "ve-id <number> ";
-                        type Veid-range;
-                        description "Local Virtual Edge Identifier";
-                      }
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        type empty;
-                        description
-                          "Enable BGP as Signaling Protocol";
-                      }
-                    }
-
-                    container route-targets {
-                      xr:xr-xml-map "l2vpn_cfg:RouteTargetTable";
-                      description "Route Target";
-
-                      list route-target {
-                        xr:xr-xml-map "l2vpn_cfg:RouteTarget";
-                        must "two-byte-as-or-four-byte-as or"+
-                          " ipv4-address" {
-                          description
-                            "TwoByteAS-or-FourbyteAS or IPV4Address
-                            must be present.";
-                        }
-                        key "role format";
-                        description "Name of the Route Target";
-                        leaf role {
-                          xr:xr-xml-map "l2vpn_cfg:Role";
-                          type Bgp-route-target-role;
-                          description
-                            "Role of the router target type";
-                        }
-                        leaf format {
-                          xr:xr-xml-map "l2vpn_cfg:Format";
-                          type Bgp-route-target-format;
-                          description "Format of the route target";
-                        }
-
-                        list two-byte-as-or-four-byte-as {
-                          when "../format = 'two-byte-as' or"+
-                            " ../format = 'four-byte-as'" {
-                              description
-                                "../Format = TwoByteAS or ../Format =
-                                FourbyteAS";
-                          }
-                          key "as as-index";
-                          description "two byte as or four byte as";
-                          leaf as {
-                            xr:xr-xml-map "l2vpn_cfg:AS";
-                            type Rdas-range;
-                            description
-                              "Two byte or 4 byte AS number";
-                          }
-                          leaf as-index {
-                            xr:xr-xml-map "l2vpn_cfg:ASIndex";
-                            type Rdas-index;
-                            description
-                              "AS:nn (hex or decimal format)";
-                          }
-                        }
-
-                        list ipv4-address {
-                          when "../format = 'ipv4-address'" {
-                            description "../Format = IPV4Address";
-                          }
-                          key "address addr-index";
-                          description "ipv4 address";
-                          leaf address {
-                            xr:xr-xml-map "l2vpn_cfg:Address";
-                            type inet:ipv4-address-no-zone;
-                            description "IPV4 address";
-                          }
-                          leaf addr-index {
-                            xr:xr-xml-map "l2vpn_cfg:AddrIndex";
-                            type Rd-addr-index;
-                            description "Addr index";
-                          }
-                        }
-                      }
-                    }
-                    leaf ad-control-word {
-                      xr:xr-xml-map "l2vpn_cfg:ADControlWord";
-                      xr:xr-cli-map "control-word ";
-                      type empty;
-                      description
-                        "Enable control-word for this VFI";
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description "Enable Autodiscovery BGP";
-                    }
-                  }
-                  leaf vfi-shutdown {
-                    xr:xr-xml-map "l2vpn_cfg:VFIShutdown";
-                    xr:xr-cli-map "shutdown ";
-                    type empty;
-                    description "Enabling Shutdown";
-                  }
-                  leaf vpnid {
-                    xr:xr-xml-map "l2vpn_cfg:VPNID";
-                    xr:xr-cli-map "vpn-id <number> ";
-                    type Vpnid-range;
-                    description "VPN Identifier";
-                  }
-                  leaf name {
-                    xr:xr-xml-map "l2vpn_cfg:Name";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description
-                      "Name of the Virtual Forwarding Interface";
-                  }
-                }
-              }
-
-              container bd-attachment-circuits {
-                xr:xr-xml-map "l2vpn_cfg:BDAttachmentCircuitTable";
-                description "Attachment Circuit table";
-
-                list bd-attachment-circuit {
-                  xr:xr-xml-map "l2vpn_cfg:BDAttachmentCircuit";
-                  key "name";
-                  description "Name of the Attachment Circuit";
-
-                  container interface-ip-source-guard {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceIPSourceGuard";
-                    description "IP Source Guard";
-                    leaf logging {
-                      xr:xr-xml-map "l2vpn_cfg:Logging";
-                      xr:xr-cli-map "logging (disable) ";
-                      type L2vpn-logging;
-                      description "Logging Type";
-                    }
-                    leaf disable {
-                      xr:xr-xml-map "l2vpn_cfg:Disable";
-                      xr:xr-cli-map "disable ";
-                      type empty;
-                      description
-                        "Disable L2 Interface Dynamic IP source
-                        guard";
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description "Enable IP Source Guard";
-                    }
-                  }
-
-                  container interface-dai {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceDAI";
-                    description
-                      "L2 Interface Dynamic ARP Inspection";
-
-                    container interface-dai-address-validation {
-                      xr:xr-xml-map "l2vpn_cfg:InterfaceDAIAddressV"+
-                        "alidation";
-                      description "Address Validation";
-                      leaf ipv4-verification {
-                        xr:xr-xml-map "l2vpn_cfg:IPv4Verification";
-                        xr:xr-cli-map "ipv4 (disable) ";
-                        type L2vpn-verification;
-                        description "IPv4 Verification";
-                      }
-                      leaf destination-mac-verification {
-                        xr:xr-xml-map "l2vpn_cfg:DestinationMACVeri"+
-                          "fication";
-                        xr:xr-cli-map "dst-mac (disable) ";
-                        type L2vpn-verification;
-                        description "Destination MAC Verification";
-                      }
-                      leaf source-mac-verification {
-                        xr:xr-xml-map "l2vpn_cfg:SourceMACVerificat"+
-                          "ion";
-                        xr:xr-cli-map "src-mac (disable) ";
-                        type L2vpn-verification;
-                        description "Source MAC Verification";
-                      }
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        type empty;
-                        description "Enable Address Validation";
-                      }
-                    }
-                    leaf logging {
-                      xr:xr-xml-map "l2vpn_cfg:Logging";
-                      xr:xr-cli-map "logging (disable) ";
-                      type L2vpn-logging;
-                      description "Logging Type";
-                    }
-                    leaf disable {
-                      xr:xr-xml-map "l2vpn_cfg:Disable";
-                      xr:xr-cli-map "disable ";
-                      type empty;
-                      description
-                        "Disable L2 Interface Dynamic ARP
-                        Inspection";
-                    }
-                    leaf enable {
-                      xr:xr-xml-map "l2vpn_cfg:Enable";
-                      type empty;
-                      description
-                        "Enable L2 Interface Dynamic ARP
-                        Inspection";
-                    }
-                  }
-
-                  container interface-profile {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceProfile";
-                    description "Attach a DHCP profile";
-                    leaf profile-id {
-                      xr:xr-xml-map "l2vpn_cfg:ProfileId";
-                      type Interface-profile;
-                      description "Set the snooping profile";
-                    }
-                    leaf dhcp-snooping-id {
-                      xr:xr-xml-map "l2vpn_cfg:DhcpSnoopingID";
-                      type string;
-                      description "Disable DHCP snooping";
-                    }
-                  }
-
-                  container bdac-storm-control-types {
-                    xr:xr-xml-map "l2vpn_cfg:BDACStormControlTable";
-                    description "Storm Control";
-
-                    list bdac-storm-control-type {
-                      xr:xr-xml-map "l2vpn_cfg:BDACStormControlType";
-                      key "sctype";
-                      description "Storm Control Type";
-                      leaf sctype {
-                        xr:xr-xml-map "l2vpn_cfg:SCType";
-                        type Storm-control;
-                        description "Storm Control Type";
-                      }
-                      uses STORM-CONTROL-UNIT;
-                    }
-                  }
-
-                  container split-horizon {
-                    xr:xr-xml-map "l2vpn_cfg:SplitHorizon";
-                    description "Split Horizon";
-
-                    container split-horizon-group-id {
-                      xr:xr-xml-map "l2vpn_cfg:SplitHorizonGroupID";
-                      description "Split Horizon Group ID";
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        xr:xr-cli-map "split-horizon group ";
-                        type empty;
-                        description "Enable split horizon group";
-                      }
-                    }
-                  }
-
-                  container static-mac-addresses {
-                    xr:xr-xml-map "l2vpn_cfg:StaticMACAddressTable";
-                    description "Static Mac Address Table";
-
-                    list static-mac-address {
-                      xr:xr-xml-map "l2vpn_cfg:StaticMACAddress";
-                      key "address";
-                      description
-                        "Static Mac Address Configuration";
-                      leaf address {
-                        xr:xr-xml-map "l2vpn_cfg:Address";
-                        type yang:mac-address;
-                        description "Static MAC address";
-                      }
-                    }
-                  }
-
-                  container interface-mac {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceMAC";
-                    description "MAC configuration commands";
-
-                    container interface-mac-aging {
-                      xr:xr-xml-map "l2vpn_cfg:InterfaceMACAging";
-                      description
-                        "MAC-Aging configuration commands";
-                      leaf interface-mac-aging-time {
-                        xr:xr-xml-map "l2vpn_cfg:InterfaceMACAgingT"+
-                          "ime";
-                        xr:xr-cli-map "aging time <number> ";
-                        type Mac-aging-range;
-                        description "Mac Aging Time";
-                      }
-                      leaf interface-mac-aging-type {
-                        xr:xr-xml-map "l2vpn_cfg:InterfaceMACAgingT"+
-                          "ype";
-                        xr:xr-cli-map "aging type (absolute)|(inact"+
-                          "ivity) ";
-                        type Mac-aging;
-                        description "MAC address aging type";
-                      }
-                    }
-
-                    container interface-mac-secure {
-                      xr:xr-xml-map "l2vpn_cfg:InterfaceMACSecure";
-                      description "MAC Secure";
-                      leaf logging {
-                        xr:xr-xml-map "l2vpn_cfg:Logging";
-                        xr:xr-cli-map "logging (disable) ";
-                        type L2vpn-logging;
-                        description "MAC Secure Logging";
-                      }
-                      leaf disable {
-                        xr:xr-xml-map "l2vpn_cfg:Disable";
-                        xr:xr-cli-map "disable ";
-                        type empty;
-                        description
-                          "Disable L2 Interface MAC Secure";
-                      }
-                      leaf action {
-                        xr:xr-xml-map "l2vpn_cfg:Action";
-                        xr:xr-cli-map "action (none)|(shutdown)|(re"+
-                          "strict) ";
-                        type Mac-secure-action;
-                        description "MAC secure enforcement action";
-                      }
-                      leaf enable {
-                        xr:xr-xml-map "l2vpn_cfg:Enable";
-                        type empty;
-                        description "Enable MAC Secure";
-                      }
-                    }
-
-                    container interface-mac-limit {
-                      xr:xr-xml-map "l2vpn_cfg:InterfaceMACLimit";
-                      description
-                        "MAC-Limit configuration commands";
-                      leaf interface-mac-limit-max {
-                        xr:xr-xml-map "l2vpn_cfg:InterfaceMACLimitM"+
-                          "ax";
-                        xr:xr-cli-map "maximum <number> ";
-                        type Mac-limit-range;
-                        description
-                          "Number of MAC addresses on an Interface
-                          after which MAC limit action is taken";
-                      }
-                      leaf interface-mac-limit-notif {
-                        xr:xr-xml-map "l2vpn_cfg:InterfaceMACLimitN"+
-                          "otif";
-                        xr:xr-cli-map "notification (trap)|(both)|("+
-                          "none)|(syslog) ";
-                        type Mac-notification;
-                        description
-                          "MAC address limit notification action
-                          in a Interface";
-                      }
-                      leaf interface-mac-limit-action {
-                        xr:xr-xml-map "l2vpn_cfg:InterfaceMACLimitA"+
-                          "ction";
-                        xr:xr-cli-map "action (flood)|(no-flood)|(s"+
-                          "hutdown)|(none) ";
-                        type Mac-limit-action;
-                        description
-                          "Interface MAC address limit enforcement
-                          action";
-                      }
-                    }
-                    leaf interface-mac-port-down-flush {
-                      xr:xr-xml-map "l2vpn_cfg:InterfaceMACPortDown"+
-                        "Flush";
-                      xr:xr-cli-map "port-down flush (disable) ";
-                      type Port-down-flush;
-                      description
-                        "Enable/Disable MAC Flush When Port goes
-                        down";
-                    }
-                    leaf interface-mac-learning {
-                      xr:xr-xml-map "l2vpn_cfg:InterfaceMACLearning";
-                      xr:xr-cli-map "learning (disable) ";
-                      type Mac-learn;
-                      description "Enable Mac Learning";
-                    }
-                  }
-                  leaf interface-flooding {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceFlooding";
-                    xr:xr-cli-map "flooding (disable) ";
-                    type Interface-traffic-flood;
-                    description "Enable or Disable Flooding";
-                  }
-                  leaf interface-igmp-snoop {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceIGMPSnoop";
-                    xr:xr-cli-map "igmp snooping profile <string> ";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description "Attach a IGMP Snooping profile";
-                  }
-                  leaf interface-flooding-unknown-unicast {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceFloodingUnkno"+
-                      "wnUnicast";
-                    xr:xr-cli-map "flooding unknown-unicast (disabl"+
-                      "e) ";
-                    type Interface-traffic-flood;
-                    description
-                      "Enable or Disable Unknown Unicast
-                      Flooding";
-                  }
-                  leaf interface-mld-snoop {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceMLDSnoop";
-                    xr:xr-cli-map "mld snooping profile <string> ";
-                    type xr:Cisco-ios-xr-string {
-                      length "0..32";
-                    }
-                    description "Attach a MLD Snooping profile";
-                  }
-                  leaf name {
-                    xr:xr-xml-map "l2vpn_cfg:Name";
-                    type xr:Interface-name;
-                    description
-                      "The name of the Attachment Circuit";
-                  }
-                }
-              }
-
-              container ip-source-guard {
-                xr:xr-xml-map "l2vpn_cfg:IPSourceGuard";
-                description "IP Source Guard";
-                leaf logging {
-                  xr:xr-xml-map "l2vpn_cfg:Logging";
-                  xr:xr-cli-map "logging ";
-                  type empty;
-                  description "Enable Logging";
-                }
-                leaf enable {
-                  xr:xr-xml-map "l2vpn_cfg:Enable";
-                  type empty;
-                  description "Enable IP Source Guard";
-                }
-              }
-
-              container dai {
-                xr:xr-xml-map "l2vpn_cfg:DAI";
-                description "Dynamic ARP Inspection";
-
-                container dai-address-validation {
-                  xr:xr-xml-map "l2vpn_cfg:DAIAddressValidation";
-                  description "Address Validation";
-                  leaf ipv4-verification {
-                    xr:xr-xml-map "l2vpn_cfg:IPv4Verification";
-                    xr:xr-cli-map "ipv4 ";
-                    type empty;
-                    description "Enable IPv4 Verification";
-                  }
-                  leaf destination-mac-verification {
-                    xr:xr-xml-map "l2vpn_cfg:DestinationMACVerifica"+
-                      "tion";
-                    xr:xr-cli-map "dst-mac ";
-                    type empty;
-                    description
-                      "Enable Destination MAC Verification";
-                  }
-                  leaf source-mac-verification {
-                    xr:xr-xml-map "l2vpn_cfg:SourceMACVerification";
-                    xr:xr-cli-map "src-mac ";
-                    type empty;
-                    description "Enable Source MAC Verification";
-                  }
-                  leaf enable {
-                    xr:xr-xml-map "l2vpn_cfg:Enable";
-                    type empty;
-                    description "Enable Address Validation";
-                  }
-                }
-                leaf logging {
-                  xr:xr-xml-map "l2vpn_cfg:Logging";
-                  xr:xr-cli-map "logging ";
-                  type empty;
-                  description "Enable Logging";
-                }
-                leaf enable {
-                  xr:xr-xml-map "l2vpn_cfg:Enable";
-                  type empty;
-                  description "Enable Dynamic ARP Inspection";
-                }
-              }
-
-              container routed-interfaces {
-                xr:xr-xml-map "l2vpn_cfg:RoutedInterfaceTable";
-                description "Bridge Domain Routed Interface Table";
-
-                list routed-interface {
-                  xr:xr-xml-map "l2vpn_cfg:RoutedInterface";
-                  key "interface-name";
-                  description "Bridge Domain Routed Interface";
-                  leaf interface-name {
-                    xr:xr-xml-map "l2vpn_cfg:InterfaceName";
-                    type xr:Interface-name;
-                    description "The name of the Routed Interface";
-                  }
-                }
-              }
-              leaf coupled-mode {
-                xr:xr-xml-map "l2vpn_cfg:CoupledMode";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> coupled-mode ";
-                type empty;
-                description "Coupled-mode configuration";
-              }
-              leaf shutdown {
-                xr:xr-xml-map "l2vpn_cfg:Shutdown";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> shutdown ";
-                type empty;
-                description "shutdown the Bridge Domain";
-              }
-              leaf flooding-unknown-unicast {
-                xr:xr-xml-map "l2vpn_cfg:FloodingUnknownUnicast";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> flooding unknown-unicast [disable"+
-                  "] ";
-                type empty;
-                description "Disable Unknown Unicast flooding";
-              }
-              leaf igmp-snooping-disable {
-                xr:xr-xml-map "l2vpn_cfg:IGMPSnoopingDisable";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> igmp snooping disable ";
-                type empty;
-                description "Disable IGMP Snooping";
-              }
-              leaf transport-mode {
-                xr:xr-xml-map "l2vpn_cfg:TransportMode";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> transport-mode vlan passthrough ";
-                type Bridge-domain-transport-mode;
-                description "Bridge Domain Transport mode";
-              }
-              leaf mld-snooping {
-                xr:xr-xml-map "l2vpn_cfg:MLDSnooping";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> mld snooping profile <string> ";
-                type xr:Cisco-ios-xr-string {
-                  length "0..32";
-                }
-                description "Attach MLD Snooping Profile Name";
-              }
-              leaf bridge-domain-mtu {
-                xr:xr-xml-map "l2vpn_cfg:BridgeDomainMTU";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> mtu <number> ";
-                type Bridge-bd-mtu-range;
-                units "byte";
-                description
-                  "Maximum transmission unit for this Bridge
-                  Domain";
-              }
-              leaf dhcp {
-                xr:xr-xml-map "l2vpn_cfg:DHCP";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> dhcp ipv4 snoop profile <string> ";
-                type string {
-                  length "0..32";
-                }
-                description "DHCPv4 Snooping profile name";
-              }
-              leaf igmp-snooping {
-                xr:xr-xml-map "l2vpn_cfg:IGMPSnooping";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> igmp snooping profile <string> ";
-                type xr:Cisco-ios-xr-string {
-                  length "0..32";
-                }
-                description "Attach IGMP Snooping Profile Name";
-              }
-              leaf flooding {
-                xr:xr-xml-map "l2vpn_cfg:Flooding";
-                xr:xr-cli-map "l2vpn bridge group <string> bridge-d"+
-                  "omain <string> flooding [disable] ";
-                type empty;
-                description "Disable flooding";
-              }
-              leaf name {
-                xr:xr-xml-map "l2vpn_cfg:Name";
-                type xr:Cisco-ios-xr-string {
-                  length "0..27";
-                }
-                description "Name of the bridge domain";
-              }
-            }
-          }
-          leaf name {
-            xr:xr-xml-map "l2vpn_cfg:Name";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of the Bridge group";
-          }
-        }
-      }
-
-      container pseudowire-classes {
-        xr:xr-xml-map "l2vpn_cfg:PseudowireClassTable";
-        description "List of pseudowire classes";
-
-        list pseudowire-class {
-          xr:xr-xml-map "l2vpn_cfg:PseudowireClass";
-          key "name";
-          description "Pseudowire class";
-
-          container l2tpv3-encapsulation {
-            xr:xr-xml-map "l2vpn_cfg:L2TPv3Encapsulation";
-            description "L2TPv3 encapsulation";
-
-            container sequencing {
-              xr:xr-xml-map "l2vpn_cfg:Sequencing";
-              description "Sequencing";
-              leaf sequencing {
-                xr:xr-xml-map "l2vpn_cfg:Sequencing";
-                type L2tpv3-sequencing;
-                default "off";
-                description "Sequencing";
-              }
-              leaf resync-threshold {
-                xr:xr-xml-map "l2vpn_cfg:ResyncThreshold";
-                type Resync-threshold-range;
-                default "5";
-                description "Out of sequence threshold";
-              }
-            }
-
-            container type-of-service {
-              xr:xr-xml-map "l2vpn_cfg:TypeOfService";
-              description "Type of service";
-              leaf type-of-service-value {
-                xr:xr-xml-map "l2vpn_cfg:TypeOfServiceValue";
-                type Type-of-service-range;
-                description "Type of service value";
-              }
-              leaf type-of-service-mode {
-                xr:xr-xml-map "l2vpn_cfg:TypeOfServiceMode";
-                type Type-of-service-mode;
-                description "Type of service mode";
-              }
-            }
-
-            container signaling-protocol {
-              xr:xr-xml-map "l2vpn_cfg:SignalingProtocol";
-              description "L2TPv3 signaling protocol";
-              leaf protocol {
-                xr:xr-xml-map "l2vpn_cfg:Protocol";
-                type L2tp-signaling-protocol;
-                default "l2tpv3";
-                description "L2TPv3 signaling protocol";
-              }
-              leaf l2tpv3-class-name {
-                xr:xr-xml-map "l2vpn_cfg:L2TPv3ClassName";
-                type xr:Cisco-ios-xr-string {
-                  length "0..32";
-                }
-                description "Name of the L2TPv3 class name";
-              }
-            }
-
-            container path-mtu {
-              xr:xr-xml-map "l2vpn_cfg:PathMTU";
-              description "Path maximum transmission unit";
-              leaf enable {
-                xr:xr-xml-map "l2vpn_cfg:Enable";
-                type empty;
-                description "Enable path MTU";
-              }
-              leaf max-path-mtu {
-                xr:xr-xml-map "l2vpn_cfg:MaxPathMTU";
-                type Max-path-mtu-range;
-                description
-                  "Maximum path maximum transmission unit";
-              }
-            }
-            leaf df-bit-set {
-              xr:xr-xml-map "l2vpn_cfg:DFBitSet";
-              xr:xr-cli-map "dfbit set ";
-              type empty;
-              description "Set the do not fragment bit to 1";
-            }
-            leaf cookie-size {
-              xr:xr-xml-map "l2vpn_cfg:CookieSize";
-              xr:xr-cli-map "cookie size (0)|(4)|(8) ";
-              type L2tp-cookie-size;
-              default "zero";
-              description "Cookie size";
-            }
-            leaf source-address {
-              xr:xr-xml-map "l2vpn_cfg:SourceAddress";
-              xr:xr-cli-map "ipv4 source <IPv4 address> ";
-              type inet:ipv4-address-no-zone;
-              description "Source IP address";
-            }
-            leaf transport-mode {
-              xr:xr-xml-map "l2vpn_cfg:TransportMode";
-              xr:xr-cli-map "transport-mode (ethernet)|(vlan) ";
-              type Transport-mode;
-              description "Transport mode";
-            }
-            leaf enable {
-              xr:xr-xml-map "l2vpn_cfg:Enable";
-              type empty;
-              description "Enable L2TPv3 encapsulation";
-            }
-            leaf time-to-live {
-              xr:xr-xml-map "l2vpn_cfg:TimeToLive";
-              xr:xr-cli-map "ttl <number> ";
-              type Time-to-live-range;
-              description "Time to live";
-            }
-          }
-
-          container backup-disable-delay {
-            xr:xr-xml-map "l2vpn_cfg:BackupDisableDelay";
-            description "Back Up Pseudowire class";
-            leaf type {
-              xr:xr-xml-map "l2vpn_cfg:Type";
-              type Backup-disable;
-              description "Delay or Never";
-            }
-            leaf disable-backup {
-              xr:xr-xml-map "l2vpn_cfg:DisableBackup";
-              when "../type = 'delay'" {
-                description "../Type = Delay";
-              }
-              type Backup-disable-delay-range;
-              description "Disable backup delay";
-            }
-          }
-
-          container mpls-encapsulation {
-            xr:xr-xml-map "l2vpn_cfg:MPLSEncapsulation";
-            description "MPLS encapsulation";
-
-            container sequencing {
-              xr:xr-xml-map "l2vpn_cfg:Sequencing";
-              description "Sequencing";
-              leaf sequencing {
-                xr:xr-xml-map "l2vpn_cfg:Sequencing";
-                type Mpls-sequencing;
-                default "off";
-                description "Sequencing";
-              }
-              leaf resync-threshold {
-                xr:xr-xml-map "l2vpn_cfg:ResyncThreshold";
-                type Resync-threshold-range;
-                default "5";
-                description "Out of sequence threshold";
-              }
-            }
-
-            container mpls-redundancy {
-              xr:xr-xml-map "l2vpn_cfg:MPLSRedundancy";
-              description
-                "Redundancy options for MPLS encapsulation";
-              leaf redundancy-one-way {
-                xr:xr-xml-map "l2vpn_cfg:RedundancyOneWay";
-                xr:xr-cli-map "one-way ";
-                type empty;
-                description
-                  "Force one-way PW redundancy behavior in
-                  Redundancy Group";
-              }
-              leaf redundancy-initial-delay {
-                xr:xr-xml-map "l2vpn_cfg:RedundancyInitialDelay";
-                xr:xr-cli-map "initial-delay <number> ";
-                type Pw-redundancy-initial-delay-range;
-                units "second";
-                description
-                  "Initial delay before activating the
-                  redundant PW, in seconds";
-              }
-            }
-
-            container preferred-path {
-              xr:xr-xml-map "l2vpn_cfg:PreferredPath";
-              description "Preferred path";
-              leaf type {
-                xr:xr-xml-map "l2vpn_cfg:Type";
-                type Preferred-path;
-                description "Preferred Path Type";
-              }
-              leaf interface-tunnel-number {
-                xr:xr-xml-map "l2vpn_cfg:InterfaceTunnelNumber";
-                type uint32 {
-                  range "0..65535";
-                }
-                description
-                  "Interface Tunnel number for preferred path";
-              }
-              leaf fallback-disable {
-                xr:xr-xml-map "l2vpn_cfg:FallbackDisable";
-                type empty;
-                description "Fallback disable";
-              }
-            }
-
-            container load-balance-group {
-              xr:xr-xml-map "l2vpn_cfg:LoadBalanceGroup";
-              description "Load Balancing";
-
-              container flow-label-load-balance {
-                xr:xr-xml-map "l2vpn_cfg:FlowLabelLoadBalance";
-                description
-                  "Enable Flow Label based load balancing";
-                leaf flow-label {
-                  xr:xr-xml-map "l2vpn_cfg:FlowLabel";
-                  type Flow-label-load-balance;
-                  description "Flow Label load balance type";
-                }
-                leaf static {
-                  xr:xr-xml-map "l2vpn_cfg:Static";
-                  type empty;
-                  description "Static Flow Label";
-                }
-              }
-              leaf flow-label-load-balance-code {
-                xr:xr-xml-map "l2vpn_cfg:FlowLabelLoadBalanceCode";
-                xr:xr-cli-map "flow-label code 17 (disable) ";
-                type Flow-label-tlv-code;
-                description "Enable Legacy Flow Label TLV code";
-              }
-              leaf pw-label-load-balance {
-                xr:xr-xml-map "l2vpn_cfg:PWLabelLoadBalance";
-                xr:xr-cli-map "pw-label ";
-                type Load-balance;
-                description "Enable PW Label based Load Balancing";
-              }
-            }
-            leaf pw-switching-tlv {
-              xr:xr-xml-map "l2vpn_cfg:PWSwitchingTlv";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls switching-tlv hide ";
-              type Pw-switching-point-tlv;
-              description "Pseudowire Switching Point Tlv";
-            }
-            leaf static-tag-rewrite {
-              xr:xr-xml-map "l2vpn_cfg:StaticTagRewrite";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls tag-rewrite [ingress [vlan <number>]] ";
-              type Tag-rewrite-range;
-              description "Static Tag rewrite";
-            }
-            leaf signaling-protocol {
-              xr:xr-xml-map "l2vpn_cfg:SignalingProtocol";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls protocol ldp ";
-              type Mpls-signaling-protocol;
-              default "ldp";
-              description "MPLS signaling protocol";
-            }
-            leaf vccv-type {
-              xr:xr-xml-map "l2vpn_cfg:VCCVType";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls vccv verification-type none ";
-              type Vccv-verification;
-              default "lsp-ping";
-              description "VCCV verification type";
-            }
-            leaf source-address {
-              xr:xr-xml-map "l2vpn_cfg:SourceAddress";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls ipv4 source <IPv4 address> ";
-              type inet:ipv4-address-no-zone;
-              description "Source IP address";
-            }
-            leaf transport-mode {
-              xr:xr-xml-map "l2vpn_cfg:TransportMode";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls transport-mode (ethernet)|(vlan (passthrough)"+
-                ") ";
-              type Transport-mode;
-              description "Transport mode";
-            }
-            leaf enable {
-              xr:xr-xml-map "l2vpn_cfg:Enable";
-              type empty;
-              description "Enable MPLS encapsulation";
-            }
-            leaf control-word {
-              xr:xr-xml-map "l2vpn_cfg:ControlWord";
-              xr:xr-cli-map "l2vpn pw-class <string> encapsulation "+
-                "mpls control-word disable ";
-              type Control-word;
-              description "Enable control word";
-            }
-          }
-          leaf mac-withdraw {
-            xr:xr-xml-map "l2vpn_cfg:MACWithdraw";
-            xr:xr-cli-map "l2vpn pw-class <string> mac-withdraw ";
-            type empty;
-            description "Enable backup MAC withdraw";
-          }
-          leaf enable {
-            xr:xr-xml-map "l2vpn_cfg:Enable";
-            type empty;
-            description "Enable pseudowire class";
-          }
-          leaf name {
-            xr:xr-xml-map "l2vpn_cfg:Name";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of the pseudowire class";
-          }
-        }
-      }
-
-      container redundancy {
-        xr:xr-xml-map "l2vpn_cfg:Redundancy";
-        description "Redundancy groups";
-
-        container iccp-redundancy-groups {
-          xr:xr-xml-map "l2vpn_cfg:ICCPGroupTable";
-          description
-            "List of Inter-Chassis Communication Protocol
-            redundancy groups";
-
-          list iccp-redundancy-group {
-            xr:xr-xml-map "l2vpn_cfg:ICCPRedundancyGroup";
-            key "group-id";
-            description "ICCP Redundancy group";
-
-            container iccp-interfaces {
-              xr:xr-xml-map "l2vpn_cfg:ICCPInterfaceTable";
-              description "List of interfaces";
-
-              list iccp-interface {
-                xr:xr-xml-map "l2vpn_cfg:ICCPInterface";
-                key "interface-name";
-                description "Interface name";
-                leaf secondary-vlan-range {
-                  xr:xr-xml-map "l2vpn_cfg:SecondaryVLANRange";
-                  xr:xr-cli-map "l2vpn redundancy iccp group <numbe"+
-                    "r> interface <interface> secondary vlan <strin"+
-                    "g> ";
-                  type string;
-                  description
-                    "Secondary VLAN range, in the form of 1-3,5
-                    ,8-11";
-                }
-                leaf recovery-delay {
-                  xr:xr-xml-map "l2vpn_cfg:RecoveryDelay";
-                  xr:xr-cli-map "l2vpn redundancy iccp group <numbe"+
-                    "r> interface <interface> recovery delay <numbe"+
-                    "r> ";
-                  type uint32 {
-                    range "30..3600";
-                  }
-                  default "180";
-                  description "Failure clear recovery delay";
-                }
-                leaf primary-vlan-range {
-                  xr:xr-xml-map "l2vpn_cfg:PrimaryVLANRange";
-                  xr:xr-cli-map "l2vpn redundancy iccp group <numbe"+
-                    "r> interface <interface> primary vlan <string>"+
-                    " ";
-                  type string;
-                  description
-                    "Primary VLAN range, in the form of 1-3,5
-                    ,8-11";
-                }
-                leaf mac-flush-tcn {
-                  xr:xr-xml-map "l2vpn_cfg:MACFlushTCN";
-                  xr:xr-cli-map "l2vpn redundancy iccp group <numbe"+
-                    "r> interface <interface> mac-flush stp-tcn ";
-                  type empty;
-                  description "Enable STP-TCN MAC flushing";
-                }
-                leaf interface-name {
-                  xr:xr-xml-map "l2vpn_cfg:InterfaceName";
-                  type xr:Interface-name;
-                  description "Interface name";
-                }
-              }
-            }
-            leaf multi-homing-node-id {
-              xr:xr-xml-map "l2vpn_cfg:MultiHomingNodeID";
-              xr:xr-cli-map "l2vpn redundancy iccp group <number> m"+
-                "ulti-homing node-id <number> ";
-              type uint32 {
-                range "0..254";
-              }
-              description "ICCP-based service multi-homing node ID";
-            }
-            leaf group-id {
-              xr:xr-xml-map "l2vpn_cfg:GroupID";
-              type int32;
-              description "Group ID";
-            }
-          }
-        }
-        leaf enable {
-          xr:xr-xml-map "l2vpn_cfg:Enable";
-          type empty;
-          description "Enable redundancy groups";
-        }
-      }
-    }
-
-    container pbb {
-      xr:xr-xml-map "l2vpn_cfg:PBB";
-      description "L2VPN PBB Global";
-      leaf backbone-source-mac {
-        xr:xr-xml-map "l2vpn_cfg:BackboneSourceMAC";
-        type yang:mac-address;
-        description "Backbone Source MAC";
-      }
-    }
-
-    container auto-discovery {
-      xr:xr-xml-map "l2vpn_cfg:AutoDiscovery";
-      description "Global auto-discovery attributes";
-
-      container bgp-signaling {
-        xr:xr-xml-map "l2vpn_cfg:BGPSignaling";
-        description "Global bgp signaling attributes";
-        leaf mtu-mismatch-ignore {
-          xr:xr-xml-map "l2vpn_cfg:MTUMismatchIgnore";
-          xr:xr-cli-map "l2vpn autodiscovery bgp signaling-protocol"+
-            " bgp mtu mismatch ignore ";
-          type empty;
-          description
-            "Ignore MTU mismatch for auto-discovered
-            pseudowires";
-        }
-      }
-    }
-
-    container utility {
-      xr:xr-xml-map "l2vpn_cfg:Utility";
-      description "L2VPN utilities";
-
-      container logging {
-        xr:xr-xml-map "l2vpn_cfg:Logging";
-        description "L2VPN logging utility";
-        leaf bridge-domain-state-change {
-          xr:xr-xml-map "l2vpn_cfg:BridgeDomainStateChange";
-          xr:xr-cli-map "l2vpn logging bridge-domain [status] ";
-          type empty;
-          description "Enable Bridge Domain state change logging";
-        }
-        leaf pseudowire-state-change {
-          xr:xr-xml-map "l2vpn_cfg:PseudowireStateChange";
-          xr:xr-cli-map "l2vpn logging pseudowire [status] ";
-          type empty;
-          description "Enable pseudowire state change logging";
-        }
-        leaf vfi {
-          xr:xr-xml-map "l2vpn_cfg:VFI";
-          xr:xr-cli-map "l2vpn logging vfi [status] ";
-          type empty;
-          description "Enable VFI state change logging";
-        }
-        leaf nsr-state-change {
-          xr:xr-xml-map "l2vpn_cfg:NSRStateChange";
-          xr:xr-cli-map "l2vpn logging nsr ";
-          type empty;
-          description
-            "Enable Non Stop Routing state change logging";
-        }
-        leaf pwhe-replication-state-change {
-          xr:xr-xml-map "l2vpn_cfg:PWHEReplicationStateChange";
-          xr:xr-cli-map "l2vpn logging pwhe-replication disable ";
-          type empty;
-          description
-            "Enable PW-HE Replication state change logging";
-        }
-      }
-    }
-
-    container snmp {
-      xr:xr-xml-map "l2vpn_cfg:SNMP";
-      description "SNMP related configuration";
-
-      container mib {
-        xr:xr-xml-map "l2vpn_cfg:MIB";
-        description "MIB related configuration";
-
-        container mib-interface {
-          xr:xr-xml-map "l2vpn_cfg:MIBInterface";
-          description "Interface related configuration for MIB";
-
-          container format {
-            xr:xr-xml-map "l2vpn_cfg:Format";
-            description "MIB interface name output format";
-            leaf external-interface-format {
-              xr:xr-xml-map "l2vpn_cfg:ExternalInterfaceFormat";
-              xr:xr-cli-map "l2vpn snmp mib interface format extern"+
-                "al ";
-              type empty;
-              description
-                "Set MIB interface name output in slash
-                format (/)";
-            }
-          }
-        }
-
-        container mib-pseudowire {
-          xr:xr-xml-map "l2vpn_cfg:MIBPseudowire";
-          description "Pseudowire related configuration for MIB";
-          leaf statistics {
-            xr:xr-xml-map "l2vpn_cfg:Statistics";
-            xr:xr-cli-map "l2vpn snmp mib pseudowire statistics ";
-            type empty;
-            description
-              "Enable pseudowire statistics in MIB output";
-          }
-        }
-      }
-    }
-    leaf nsr {
-      xr:xr-xml-map "l2vpn_cfg:NSR";
-      xr:xr-cli-map "l2vpn nsr ";
-      type empty;
-      description "Enable Non-Stop Routing";
-    }
-    leaf mtu-mismatch-ignore {
-      xr:xr-xml-map "l2vpn_cfg:MTUMismatchIgnore";
-      xr:xr-cli-map "l2vpn ignore-mtu-mismatch ";
-      type empty;
-      description "Ignore MTU Mismatch for XCs";
-    }
-    leaf tcn-propagation {
-      xr:xr-xml-map "l2vpn_cfg:TCNPropagation";
-      xr:xr-cli-map "l2vpn tcn-propagation ";
-      type empty;
-      description "Topology change notification propagation";
-    }
-    leaf pwoam-refresh {
-      xr:xr-xml-map "l2vpn_cfg:PWOAMRefresh";
-      xr:xr-cli-map "l2vpn pw-oam refresh transmit <number> ";
-      type uint32 {
-        range "1..4095";
-      }
-      units "second";
-      description "Configure PW OAM refresh interval";
-    }
-    leaf load-balance {
-      xr:xr-xml-map "l2vpn_cfg:LoadBalance";
-      xr:xr-cli-map "l2vpn load-balancing [flow (src-dst-mac)|(src-"+
-        "dst-ip)] ";
-      type Load-balance;
-      description "Enable flow load balancing on l2vpn bridges";
-    }
-    leaf mspw-description {
-      xr:xr-xml-map "l2vpn_cfg:MSPWDescription";
-      xr:xr-cli-map "l2vpn description <string> ";
-      type xr:Cisco-ios-xr-string {
-        length "0..64";
-      }
-      description "MS-PW global description";
-    }
-    leaf pw-status-disable {
-      xr:xr-xml-map "l2vpn_cfg:PWStatusDisable";
-      xr:xr-cli-map "l2vpn pw-status disable ";
-      type empty;
-      description "Disable PW status";
-    }
-    leaf enable {
-      xr:xr-xml-map "l2vpn_cfg:Enable";
-      type empty;
-      description "Enable L2VPN feature";
-    }
-    leaf pw-grouping {
-      xr:xr-xml-map "l2vpn_cfg:PWGrouping";
-      xr:xr-cli-map "l2vpn pw-grouping ";
-      type empty;
-      description "Enable PW grouping";
-    }
-    leaf capability {
-      xr:xr-xml-map "l2vpn_cfg:Capability";
-      xr:xr-cli-map "l2vpn capability (single-mode)|(high-mode) ";
-      type L2vpn-capability-mode;
-      description "L2VPN Capability Mode";
-    }
-    leaf l2vpn-router-id {
-      xr:xr-xml-map "l2vpn_cfg:L2VPNRouterID";
-      xr:xr-cli-map "l2vpn router-id <IPv4 address> ";
-      type inet:ipv4-address-no-zone;
-      description "Global L2VPN Router ID";
-    }
-  }
-
-  container generic-interface-lists {
-    xr:xr-xml-map "iflist_cfg:GenericInterfaceListTable";
-    description "generic interface lists";
-
-    list generic-interface {
-      xr:xr-xml-map "iflist_cfg:GenericInterfaceList";
-      key "generic-interface-list-name";
-      description "Bridge group";
-
-      container interfaces {
-        xr:xr-xml-map "iflist_cfg:InterfaceTable";
-        description "Interface table";
-
-        list interface {
-          xr:xr-xml-map "iflist_cfg:Interface";
-          key "interface-name";
-          description "Interface";
-          leaf enable {
-            xr:xr-xml-map "iflist_cfg:Enable";
-            xr:xr-cli-map "generic-interface-list <string> interfac"+
-              "e (<interface>)|(<interface>) ";
-            type empty;
-            description "Enable interface";
-          }
-          leaf interface-name {
-            xr:xr-xml-map "iflist_cfg:InterfaceName";
-            type xr:Interface-name;
-            description "Name of the interface";
-          }
-        }
-      }
-      leaf enable {
-        xr:xr-xml-map "iflist_cfg:Enable";
-        type empty;
-        description "Enable interface list";
-      }
-      leaf generic-interface-list-name {
-        xr:xr-xml-map "iflist_cfg:GenericInterfaceListName";
-        type xr:Cisco-ios-xr-string {
-          length "0..32";
-        }
-        description "Name of the interface list";
-      }
-    }
-  }
-
-  container evpn {
-    xr:xr-xml-map "l2vpn_cfg:EVPN";
-    description "evpn";
-
-    container evpn-tables {
-      xr:xr-xml-map "l2vpn_cfg:EVPNTables";
-      description "EVPN submodes";
-
-      container evpn-timers {
-        xr:xr-xml-map "l2vpn_cfg:EVPNTimers";
-        description "Enter EVPN timers configuration submode";
-        leaf evpn-programming {
-          xr:xr-xml-map "l2vpn_cfg:EVPNProgramming";
-          type uint32 {
-            range "0..100000";
-          }
-          default "1500";
-          description "Global Programming timer";
-        }
-        leaf evpn-flush-again {
-          xr:xr-xml-map "l2vpn_cfg:EVPNFlushAgain";
-          type uint32 {
-            range "0..120";
-          }
-          default "60";
-          description "Global MAC Flush again timer";
-        }
-        leaf evpn-recovery {
-          xr:xr-xml-map "l2vpn_cfg:EVPNRecovery";
-          xr:xr-cli-map "recovery <number> ";
-          type uint32 {
-            range "20..3600";
-          }
-          default "30";
-          description "Global Recovery timer";
-        }
-        leaf enable {
-          xr:xr-xml-map "l2vpn_cfg:Enable";
-          type empty;
-          description "Enable EVPN timers";
-        }
-        leaf evpn-peering {
-          xr:xr-xml-map "l2vpn_cfg:EVPNPeering";
-          xr:xr-cli-map "peering <number> ";
-          type uint32 {
-            range "0..300";
-          }
-          default "3";
-          description "Global Peering timer";
-        }
-      }
-
-      container evpnevis {
-        xr:xr-xml-map "l2vpn_cfg:EVPNEVIMode";
-        description "Enter EVPN EVI configuration submode";
-
-        list evpnevi {
-          xr:xr-xml-map "l2vpn_cfg:EVPNEVI";
-          key "eviid";
-          description "Enter EVPN EVI configuration submode";
-
-          container evi-load-balancing {
-            xr:xr-xml-map "l2vpn_cfg:EVILoadBalancing";
-            description
-              "Enter EVI Loadbalancing configuration submode";
-            leaf evi-flow-label {
-              xr:xr-xml-map "l2vpn_cfg:EVIFlowLabel";
-              xr:xr-cli-map "flow-label static ";
-              type empty;
-              description "Enable Flow Label based load balancing";
-            }
-            leaf enable {
-              xr:xr-xml-map "l2vpn_cfg:Enable";
-              type empty;
-              description "Enable EVI Loadbalancing";
-            }
-          }
-
-          container evpnevibgp-auto-discovery {
-            xr:xr-xml-map "l2vpn_cfg:EVPNEVIBGPAutoDiscovery";
-            description "Enable Autodiscovery BGP in EVPN EVI";
-
-            container evpn-route-targets {
-              xr:xr-xml-map "l2vpn_cfg:EVPNRouteTargetTable";
-              description "Route Target";
-
-              list evpn-route-target {
-                xr:xr-xml-map "l2vpn_cfg:EVPNRouteTarget";
-                must "two-byte-as-or-four-byte-as or ipv4-address" {
-                  description
-                    "TwoByteAS-or-FourbyteAS or IPV4Address
-                    must be present.";
-                }
-                key "role format";
-                description "Name of the Route Target";
-                leaf role {
-                  xr:xr-xml-map "l2vpn_cfg:Role";
-                  type Bgp-route-target-role;
-                  description "Role of the router target type";
-                }
-                leaf format {
-                  xr:xr-xml-map "l2vpn_cfg:Format";
-                  type Bgp-route-target-format;
-                  description "Format of the route target";
-                }
-
-                list two-byte-as-or-four-byte-as {
-                  when "../format = 'two-byte-as' or ../format ="+
-                    " 'four-byte-as'" {
-                      description
-                        "../Format = TwoByteAS or ../Format =
-                        FourbyteAS";
-                  }
-                  key "as as-index";
-                  description "two byte as or four byte as";
-                  leaf as {
-                    xr:xr-xml-map "l2vpn_cfg:AS";
-                    type Rdas-range;
-                    description "Two byte or 4 byte AS number";
-                  }
-                  leaf as-index {
-                    xr:xr-xml-map "l2vpn_cfg:ASIndex";
-                    type Rdas-index;
-                    description "AS:nn (hex or decimal format)";
-                  }
-                }
-
-                list ipv4-address {
-                  when "../format = 'ipv4-address'" {
-                    description "../Format = IPV4Address";
-                  }
-                  key "address addr-index";
-                  description "ipv4 address";
-                  leaf address {
-                    xr:xr-xml-map "l2vpn_cfg:Address";
-                    type inet:ipv4-address-no-zone;
-                    description "IPV4 address";
-                  }
-                  leaf addr-index {
-                    xr:xr-xml-map "l2vpn_cfg:AddrIndex";
-                    type Rd-addr-index;
-                    description "Addr index";
-                  }
-                }
-              }
-            }
-            leaf enable {
-              xr:xr-xml-map "l2vpn_cfg:Enable";
-              type empty;
-              description "Enable Autodiscovery BGP";
-            }
-            uses EVPN-ROUTE-DISTINGUISHER;
-          }
-          leaf eviid {
-            xr:xr-xml-map "l2vpn_cfg:EVIID";
-            type Vpnid-range;
-            description "EVI ID";
-          }
-        }
-      }
-
-      container evpn-load-balancing {
-        xr:xr-xml-map "l2vpn_cfg:EVPNLoadBalancing";
-        description
-          "Enter EVPN Loadbalancing configuration submode";
-        leaf evpn-flow-label {
-          xr:xr-xml-map "l2vpn_cfg:EVPNFlowLabel";
-          xr:xr-cli-map "flow-label static ";
-          type empty;
-          description "Enable Flow Label based load balancing";
-        }
-        leaf enable {
-          xr:xr-xml-map "l2vpn_cfg:Enable";
-          type empty;
-          description "Enable EVPN Loadbalancing";
-        }
-      }
-
-      container evpnbgp-auto-discovery {
-        xr:xr-xml-map "l2vpn_cfg:EVPNBGPAutoDiscovery";
-        description "Enable Autodiscovery BGP in EVPN";
-        leaf enable {
-          xr:xr-xml-map "l2vpn_cfg:Enable";
-          type empty;
-          description "Enable Autodiscovery BGP";
-        }
-        uses EVPN-ROUTE-DISTINGUISHER;
-      }
-
-      container evpn-interfaces {
-        xr:xr-xml-map "l2vpn_cfg:EVPNInterfaceTable";
-        description "Attachment Circuit interfaces";
-
-        list evpn-interface {
-          xr:xr-xml-map "l2vpn_cfg:EVPNInterface";
-          key "interface-name";
-          description "Attachment circuit interface";
-
-          container evpnac-timers {
-            xr:xr-xml-map "l2vpn_cfg:EVPNACTimers";
-            description
-              "Enter Interface-specific timers configuration
-              submode";
-            leaf evpnac-flush-again {
-              xr:xr-xml-map "l2vpn_cfg:EVPNACFlushAgain";
-              type uint32 {
-                range "0..120";
-              }
-              default "60";
-              description
-                "Interface-specific MAC Flush again timer";
-            }
-            leaf enable {
-              xr:xr-xml-map "l2vpn_cfg:Enable";
-              type empty;
-              description "Enable Interface-specific timers";
-            }
-            leaf evpnac-recovery {
-              xr:xr-xml-map "l2vpn_cfg:EVPNACRecovery";
-              xr:xr-cli-map "recovery <number> ";
-              type uint32 {
-                range "20..3600";
-              }
-              default "30";
-              description "Interface-specific Recovery timer";
-            }
-          }
-
-          container ethernet-segment {
-            xr:xr-xml-map "l2vpn_cfg:EthernetSegment";
-            description
-              "Enter Ethernet Segment configuration submode";
-
-            container identifier-type0 {
-              xr:xr-xml-map "l2vpn_cfg:IdentifierType0";
-              description "Ethernet segment identifier (Type 0)";
-              leaf bytes1 {
-                xr:xr-xml-map "l2vpn_cfg:Bytes1";
-                type xr:Hex-integer;
-                description "Type 0's 1st Byte";
-              }
-              leaf bytes23 {
-                xr:xr-xml-map "l2vpn_cfg:Bytes23";
-                type xr:Hex-integer;
-                units "byte";
-                description "Type 0's 2nd and 3rd Bytes";
-              }
-              leaf bytes45 {
-                xr:xr-xml-map "l2vpn_cfg:Bytes45";
-                type xr:Hex-integer;
-                units "byte";
-                description "Type 0's 4th and 5th Bytes";
-              }
-              leaf bytes67 {
-                xr:xr-xml-map "l2vpn_cfg:Bytes67";
-                type xr:Hex-integer;
-                units "byte";
-                description "Type 0's 6th and 7th Bytes";
-              }
-              leaf bytes89 {
-                xr:xr-xml-map "l2vpn_cfg:Bytes89";
-                type xr:Hex-integer;
-                units "byte";
-                description "Type 0's 8th and 9th Bytes";
-              }
-            }
-
-            container manual-service-carving {
-              xr:xr-xml-map "l2vpn_cfg:ManualServiceCarving";
-              description
-                "Enter Manual service carving configuration
-                submode";
-
-              container service-list {
-                xr:xr-xml-map "l2vpn_cfg:ServiceList";
-                description
-                  "Manual service carving primary,secondary
-                  lists";
-                leaf primary {
-                  xr:xr-xml-map "l2vpn_cfg:Primary";
-                  type string {
-                    length "0..150";
-                  }
-                  description "Primary services list";
-                }
-                leaf secondary {
-                  xr:xr-xml-map "l2vpn_cfg:Secondary";
-                  type string {
-                    length "0..150";
-                  }
-                  description "Secondary services list";
-                }
-              }
-              leaf enable {
-                xr:xr-xml-map "l2vpn_cfg:Enable";
-                type empty;
-                description "Enable Manual service carving";
-              }
-            }
-            leaf force-single-homed {
-              xr:xr-xml-map "l2vpn_cfg:ForceSingleHomed";
-              xr:xr-cli-map "force single-homed ";
-              type empty;
-              description
-                "Force ethernet segment to remain
-                single-homed";
-            }
-            leaf load-balancing-per-service {
-              xr:xr-xml-map "l2vpn_cfg:LoadBalancingPerService";
-              xr:xr-cli-map "load-balancing-mode (per-service)|(sin"+
-                "gle-active) ";
-              type empty;
-              description "Enable per service load balancing mode";
-            }
-            leaf es-import-route-target {
-              xr:xr-xml-map "l2vpn_cfg:ESImportRouteTarget";
-              type yang:mac-address;
-              description "ES-Import Route Target";
-            }
-            leaf enable {
-              xr:xr-xml-map "l2vpn_cfg:Enable";
-              type empty;
-              description "Enable Ethernet Segment";
-            }
-            leaf backbone-source-mac {
-              xr:xr-xml-map "l2vpn_cfg:BackboneSourceMAC";
-              type yang:mac-address;
-              description "Backbone Source MAC";
-            }
-          }
-          leaf mac-flush {
-            xr:xr-xml-map "l2vpn_cfg:MACFlush";
-            xr:xr-cli-map "evpn interface (<interface>)|(<interface"+
-              ">) mac-flush mvrp ";
-            type empty;
-            description "Enable MVRP MAC Flush mode";
-          }
-          leaf interface-name {
-            xr:xr-xml-map "l2vpn_cfg:InterfaceName";
-            type xr:Interface-name;
-            description "Name of the attachment circuit interface";
-          }
-        }
-      }
-    }
-
-    container standard-version {
-      xr:xr-xml-map "l2vpn_cfg:StandardVersion";
-      description "Set Standard EVPN Version";
-      leaf draft-04 {
-        xr:xr-xml-map "l2vpn_cfg:Draft-04";
-        xr:xr-cli-map "evpn standard-version draft-04 ";
-        type empty;
-        description "Set IETF Draft version to 04";
-      }
-    }
-    leaf enable {
-      xr:xr-xml-map "l2vpn_cfg:Enable";
-      type empty;
-      description "Enable EVPN feature";
-    }
-  }
-
-  augment "/a1:interface-configurations/a1:interface-configuration" {
-
-    container pseudowire-ether {
-      xr:xr-xml-map "l2vpn_pw_ether_cfg:PseudowireEther";
-      description "PW-Ether attributes";
-      leaf generic-interface-list {
-        xr:xr-xml-map "l2vpn_pw_ether_cfg:GenericInterfaceList";
-        type xr:Cisco-ios-xr-string {
-          length "0..32";
-        }
-        description "Name of the interface list";
-      }
-      leaf l2-overhead {
-        xr:xr-xml-map "l2vpn_pw_ether_cfg:L2Overhead";
-        type uint32 {
-          range "1..64";
-        }
-        description "PW Ether L2 overhead requirement";
-      }
-    }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
-  }
-
-  augment "/a1:interface-configurations/a1:interface-configuration" {
-
-    container pseudowire-iw {
-      xr:xr-xml-map "l2vpn_pw_iw_cfg:PseudowireIW";
-      description "PW-IW attributes";
-      leaf l2-overhead {
-        xr:xr-xml-map "l2vpn_pw_iw_cfg:L2Overhead";
-        type uint32 {
-          range "1..64";
-        }
-        units "byte";
-        description "L2 overhead size in bytes";
-      }
-      leaf generic-interface-list {
-        xr:xr-xml-map "l2vpn_pw_iw_cfg:GenericInterfaceList";
-        type xr:Cisco-ios-xr-string {
-          length "0..32";
-        }
-        description "Name of the interface list";
-      }
-    }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
-  }
-
-  augment "/a1:interface-configurations/a1:interface-configuration" {
-
-    container l2-transport {
-      xr:xr-xml-map "l2vpn_ac_l2transport_cfg:L2Transport";
-      description
-        "Interface Layer 2 Transport service
-        configuration data";
-      leaf enabled {
-        xr:xr-xml-map "l2vpn_ac_l2transport_cfg:Enabled";
-        type empty;
-        description
-          "This object is only valid on physical
-          interfaces and it controls whether that
-          interface is a port mode Layer 2 attachment
-          circuit (note that for subinterfaces, the Layer
-          2 property is specified when the subinterface
-          is created).The object must be set before any
-          other L2Transport configuration is supplied for
-          the interface, and must be the last
-          per-interface configuration object to be
-          removed.";
-      }
-    }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-ifmgr-cfg'";
-  }
-
-  augment "/a2:snmp/a2:notification" {
-
-    container vpls {
-      xr:xr-xml-map "vplsmib_cfg:VPLS";
-      description
-        "CISCO-IETF-VPLS-GENERIC-MIB notification
-        configuration";
-      leaf full-clear {
-        xr:xr-xml-map "vplsmib_cfg:FullClear";
-        type empty;
-        description "Enable cvplsFwdFullAlarmCleared notification";
-      }
-      leaf status {
-        xr:xr-xml-map "vplsmib_cfg:Status";
-        type empty;
-        description "Enable cvplsStatusChanged notification";
-      }
-      leaf enable {
-        xr:xr-xml-map "vplsmib_cfg:Enable";
-        type empty;
-        description
-          "Enable CISCO-IETF-VPLS-GENERIC-MIB
-          notifications";
-      }
-      leaf full-raise {
-        xr:xr-xml-map "vplsmib_cfg:FullRaise";
-        type empty;
-        description "Enable cvplsFwdFullAlarmRaised notification";
-      }
-    }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-snmp-agent-cfg'";
-  }
-
-  augment "/a2:snmp/a2:notification" {
-
-    container l2vpn {
-      xr:xr-xml-map "pwmib_cfg:L2VPN";
-      description "CISCO-IETF-PW-MIB notification configuration";
-      leaf cisco {
-        xr:xr-xml-map "pwmib_cfg:Cisco";
-        type empty;
-        description "Enable Cisco format including extra varbinds";
-      }
-      leaf enable {
-        xr:xr-xml-map "pwmib_cfg:Enable";
-        type empty;
-        description "Enable CISCO-IETF-PW-MIB notifications";
-      }
-      leaf vc-down {
-        xr:xr-xml-map "pwmib_cfg:VCDown";
-        type empty;
-        description "Enable cpwVcDown notification";
-      }
-      leaf vc-up {
-        xr:xr-xml-map "pwmib_cfg:VCUp";
-        type empty;
-        description "Enable cpwVcUp notification";
-      }
-    }
-    description
-      "This augment extends the configuration data of
-      'Cisco-IOS-XR-snmp-agent-cfg'";
-  }
-}
\ No newline at end of file
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2vpn-cfg@2017-06-26.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-l2vpn-cfg@2017-06-26.yang
new file mode 100644 (file)
index 0000000..71b7fb4
--- /dev/null
@@ -0,0 +1,5521 @@
+module Cisco-IOS-XR-l2vpn-cfg {
+  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg";
+  prefix l2vpn-cfg;
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import Cisco-IOS-XR-types {
+    prefix xr;
+  }
+  import Cisco-IOS-XR-ifmgr-cfg {
+    prefix a1;
+  }
+  import Cisco-IOS-XR-snmp-agent-cfg {
+    prefix a2;
+  }
+
+  organization
+    "Cisco Systems, Inc.";
+  contact
+    "Cisco Systems, Inc.
+     Customer Service
+     
+     Postal: 170 West Tasman Drive
+     San Jose, CA 95134
+     
+     Tel: +1 800 553-NETS
+     
+     E-mail: cs-yang@cisco.com";
+  description
+    "This module contains a collection of YANG definitions
+     for Cisco IOS-XR l2vpn package configuration.
+     
+     This module contains definitions
+     for the following management objects:
+       l2vpn: L2VPN configuration
+       generic-interface-lists: generic interface lists
+       evpn: evpn
+     
+     This YANG module augments the
+       Cisco-IOS-XR-ifmgr-cfg,
+       Cisco-IOS-XR-snmp-agent-cfg
+     modules with configuration data.
+     
+     Copyright (c) 2013-2017 by Cisco Systems, Inc.
+     All rights reserved.";
+
+  revision 2017-06-26 {
+    description
+      "Change identifiers to be more readable.";
+  }
+  revision 2017-05-01 {
+    description
+      "Fixing backward compatibility error in module.";
+  }
+  revision 2015-11-09 {
+    description
+      "IOS XR 6.0 revision.";
+  }
+
+  typedef Evpn-encapsulation {
+    type enumeration {
+      enum "evpn-encapsulationvxlan" {
+        value 8;
+        description
+          "VXLAN Encapsulation";
+      }
+      enum "evpn-encapsulation-mpls" {
+        value 10;
+        description
+          "MPLS Encapsulation";
+      }
+    }
+    description
+      "Evpn encapsulation";
+  }
+
+  typedef Interworking {
+    type enumeration {
+      enum "ethernet" {
+        value 1;
+        description
+          "Ethernet interworking";
+      }
+      enum "ipv4" {
+        value 3;
+        description
+          "IPv4 interworking";
+      }
+    }
+    description
+      "Interworking";
+  }
+
+  typedef L2vpn-capability-mode {
+    type enumeration {
+      enum "high-mode" {
+        value 1;
+        description
+          "Compute global capability as the highest node
+           capability";
+      }
+      enum "single-mode" {
+        value 2;
+        description
+          "Disable global capability re-computation";
+      }
+    }
+    description
+      "L2vpn capability mode";
+  }
+
+  typedef Evpn-side {
+    type enumeration {
+      enum "evpn-side-stitching" {
+        value 2;
+        description
+          "EVPN Instance side defined as stitching";
+      }
+    }
+    description
+      "Evpn side";
+  }
+
+  typedef Move-interval-range {
+    type uint32 {
+      range "5..3600";
+    }
+    description
+      "Move interval range";
+  }
+
+  typedef Vpls-id-addr-index {
+    type uint32 {
+      range "0..32767";
+    }
+    description
+      "Vpls id addr index";
+  }
+
+  typedef Evpn-core-group-id-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Evpn core group id range";
+  }
+
+  typedef Tag-rewrite-range {
+    type uint32 {
+      range "1..4094";
+    }
+    description
+      "Tag rewrite range";
+  }
+
+  typedef Pseudowire-evpnacid-range {
+    type uint32 {
+      range "1..16777215";
+    }
+    description
+      "Pseudowire evpnacid range";
+  }
+
+  typedef Evpnvpnid-range {
+    type uint32 {
+      range "1..65534";
+    }
+    description
+      "Evpnvpnid range";
+  }
+
+  typedef Pseudowire-label-range {
+    type uint32 {
+      range "16..1048575";
+    }
+    description
+      "Pseudowire label range";
+  }
+
+  typedef Bridge-domain-transport-mode {
+    type enumeration {
+      enum "vlan-passthrough" {
+        value 3;
+        description
+          "Vlan tagged passthrough mode";
+      }
+    }
+    description
+      "Bridge domain transport mode";
+  }
+
+  typedef Preferred-path {
+    type enumeration {
+      enum "te-tunnel" {
+        value 2;
+        description
+          "TE Tunnel";
+      }
+      enum "ip-tunnel" {
+        value 3;
+        description
+          "IP Tunnel";
+      }
+      enum "tp-tunnel" {
+        value 4;
+        description
+          "TP Tunnel";
+      }
+      enum "sr-te-policy" {
+        value 5;
+        description
+          "SR TE Policy";
+      }
+    }
+    description
+      "Preferred path";
+  }
+
+  typedef Rd-addr-index {
+    type uint32 {
+      range "0..65535";
+    }
+    description
+      "Rd addr index";
+  }
+
+  typedef Vccv-verification {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "No connectivity verification over VCCV";
+      }
+      enum "lsp-ping" {
+        value 2;
+        description
+          "LSP Ping over VCCV";
+      }
+    }
+    description
+      "Vccv verification";
+  }
+
+  typedef L2vpn-mtu-range {
+    type uint32 {
+      range "64..65535";
+    }
+    description
+      "L2vpn mtu range";
+  }
+
+  typedef Mac-withdraw-behavior {
+    type enumeration {
+      enum "legacy" {
+        value 1;
+        description
+          "MAC Withdrawal sent on state-down (legacy)";
+      }
+      enum "optimized" {
+        value 2;
+        description
+          "Optimized MAC Withdrawal";
+      }
+    }
+    description
+      "Mac withdraw behavior";
+  }
+
+  typedef Port-down-flush {
+    type enumeration {
+      enum "port-down-flush" {
+        value 0;
+        description
+          "MAC Port Down Flush";
+      }
+      enum "enable-port-down-flush" {
+        value 1;
+        description
+          "Enable Port Down Flush";
+      }
+      enum "disable-port-down-flush" {
+        value 2;
+        description
+          "Disable Port Down Flush";
+      }
+    }
+    description
+      "Port down flush";
+  }
+
+  typedef Storm-control-pps-range {
+    type uint32 {
+      range "1..160000";
+    }
+    description
+      "Storm control pps range";
+  }
+
+  typedef Type-of-service-mode {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "Do not reflect the type of service";
+      }
+      enum "reflect" {
+        value 1;
+        description
+          "Reflect the type of service";
+      }
+    }
+    description
+      "Type of service mode";
+  }
+
+  typedef Pseudowire-tag-range {
+    type uint32 {
+      range "1..4094";
+    }
+    description
+      "Pseudowire tag range";
+  }
+
+  typedef Multicast-p2mp-signaling {
+    type string {
+      pattern "(BGP)";
+    }
+    description
+      "BGP:BGP Signaling";
+  }
+
+  typedef Cedge-range {
+    type uint32 {
+      range "11..100";
+    }
+    description
+      "Cedge range";
+  }
+
+  typedef Ethernet-segment-load-balance {
+    type enumeration {
+      enum "single-active" {
+        value 1;
+        description
+          "Single Active";
+      }
+      enum "port-active" {
+        value 2;
+        description
+          "Port Active";
+      }
+    }
+    description
+      "Ethernet segment load balance";
+  }
+
+  typedef Mpls-signaling-protocol {
+    type enumeration {
+      enum "none" {
+        value 1;
+        description
+          "No signaling";
+      }
+      enum "ldp" {
+        value 4;
+        description
+          "LDP";
+      }
+    }
+    description
+      "Mpls signaling protocol";
+  }
+
+  typedef Erpaps {
+    type enumeration {
+      enum "interface" {
+        value 1;
+        description
+          "ERP APS type interface";
+      }
+      enum "bridge-domain" {
+        value 2;
+        description
+          "ERP APS type bridge domain";
+      }
+      enum "xconnect" {
+        value 3;
+        description
+          "ERP APS type xconnect";
+      }
+      enum "none" {
+        value 4;
+        description
+          "ERP APS type none";
+      }
+    }
+    description
+      "Erpaps";
+  }
+
+  typedef Mac-secure-action {
+    type enumeration {
+      enum "restrict" {
+        value 1;
+        description
+          "MAC Secure Action Restrict";
+      }
+      enum "none" {
+        value 2;
+        description
+          "No Action";
+      }
+      enum "shutdown" {
+        value 3;
+        description
+          "MAC Secure Action Shutdown";
+      }
+    }
+    description
+      "Mac secure action";
+  }
+
+  typedef Erp-port {
+    type enumeration {
+      enum "none" {
+        value 1;
+        description
+          "ERP port type none";
+      }
+      enum "virtual" {
+        value 2;
+        description
+          "ERP port type virtual";
+      }
+      enum "interface" {
+        value 3;
+        description
+          "ERP port type interface";
+      }
+    }
+    description
+      "Erp port";
+  }
+
+  typedef Resync-threshold-range {
+    type uint32 {
+      range "5..65535";
+    }
+    description
+      "Resync threshold range";
+  }
+
+  typedef Bgp-route-target-role {
+    type enumeration {
+      enum "both" {
+        value 0;
+        description
+          "Both Import and export roles";
+      }
+      enum "import" {
+        value 1;
+        description
+          "Import role";
+      }
+      enum "export" {
+        value 2;
+        description
+          "Export role";
+      }
+    }
+    description
+      "Bgp route target role";
+  }
+
+  typedef Backup-disable {
+    type enumeration {
+      enum "never" {
+        value 0;
+        description
+          "Never";
+      }
+      enum "delay" {
+        value 1;
+        description
+          "Delay seconds";
+      }
+    }
+    description
+      "Backup disable";
+  }
+
+  typedef Time-to-live-range {
+    type uint32 {
+      range "1..255";
+    }
+    description
+      "Time to live range";
+  }
+
+  typedef Multicast-p2mp-transport {
+    type string {
+      pattern "(RSVP_TE)";
+    }
+    description
+      "RSVP_TE:RSVP-TE Transport";
+  }
+
+  typedef Transport-mode {
+    type enumeration {
+      enum "ethernet" {
+        value 1;
+        description
+          "Ethernet port mode";
+      }
+      enum "vlan" {
+        value 2;
+        description
+          "Vlan tagged mode";
+      }
+      enum "vlan-passthrough" {
+        value 3;
+        description
+          "Vlan tagged passthrough mode";
+      }
+    }
+    description
+      "Transport mode";
+  }
+
+  typedef Flow-label-tlv-code {
+    type enumeration {
+      enum "17" {
+        value 4;
+        description
+          "Set Flow Label Legacy TLV code (DEPRECATED)";
+      }
+      enum "disable" {
+        value 8;
+        description
+          "Disable Sending Flow Label Legacy TLV";
+      }
+    }
+    description
+      "Flow label tlv code";
+  }
+
+  typedef Bgp-route-target {
+    type enumeration {
+      enum "no-stitching" {
+        value 0;
+        description
+          "RT is default type";
+      }
+      enum "stitching" {
+        value 1;
+        description
+          "RT is for stitching (Golf-L2)";
+      }
+    }
+    description
+      "Bgp route target";
+  }
+
+  typedef Pseudowire-acid-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Pseudowire acid range";
+  }
+
+  typedef Pseudowire-id-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Pseudowire id range";
+  }
+
+  typedef Interface-profile {
+    type enumeration {
+      enum "snoop" {
+        value 1;
+        description
+          "Set the snooping";
+      }
+      enum "dhcp-protocol" {
+        value 2;
+        description
+          "disable DHCP protocol";
+      }
+    }
+    description
+      "Interface profile";
+  }
+
+  typedef Ethernet-segment-identifier {
+    type enumeration {
+      enum "type0" {
+        value 0;
+        description
+          "ESI type 0";
+      }
+      enum "legacy" {
+        value 128;
+        description
+          "Legacy ESI type";
+      }
+      enum "override" {
+        value 129;
+        description
+          "Override ESI type";
+      }
+    }
+    description
+      "Ethernet segment identifier";
+  }
+
+  typedef Rpl-role {
+    type enumeration {
+      enum "owner" {
+        value 1;
+        description
+          "ERP RPL owner";
+      }
+      enum "neighbor" {
+        value 2;
+        description
+          "ERP RPL neighbor";
+      }
+      enum "next-neighbor" {
+        value 3;
+        description
+          "ERP RPL next neighbor";
+      }
+    }
+    description
+      "Rpl role";
+  }
+
+  typedef Pw-switching-point-tlv {
+    type enumeration {
+      enum "hide" {
+        value 2;
+        description
+          "Hide TLV";
+      }
+    }
+    description
+      "Pw switching point tlv";
+  }
+
+  typedef Erpaps-level-range {
+    type uint32 {
+      range "0..7";
+    }
+    description
+      "Erpaps level range";
+  }
+
+  typedef Evpn-esi-type-range {
+    type uint32;
+    description
+      "Evpn esi type range";
+  }
+
+  typedef Storm-control {
+    type enumeration {
+      enum "unicast" {
+        value 1;
+        description
+          "Unknown-unicast Storm Control";
+      }
+      enum "multicast" {
+        value 2;
+        description
+          "Multicast Storm Control";
+      }
+      enum "broadcast" {
+        value 4;
+        description
+          "Broadcast Storm Control";
+      }
+    }
+    description
+      "Storm control";
+  }
+
+  typedef L2tp-session-id-range {
+    type uint32 {
+      range "1..65535";
+    }
+    description
+      "L2tp session id range";
+  }
+
+  typedef Mac-learn {
+    type enumeration {
+      enum "default-learning" {
+        value 0;
+        description
+          "Mac Learning";
+      }
+      enum "enable-learning" {
+        value 1;
+        description
+          "Enable Learning";
+      }
+      enum "disable-learning" {
+        value 2;
+        description
+          "Disable Learning";
+      }
+    }
+    description
+      "Mac learn";
+  }
+
+  typedef L2tpv3-sequencing {
+    type enumeration {
+      enum "off" {
+        value 0;
+        description
+          "Sequencing is off";
+      }
+      enum "both" {
+        value 4;
+        description
+          "Sequencing on both transmit and receive side";
+      }
+    }
+    description
+      "L2tpv3 sequencing";
+  }
+
+  typedef Veid-range {
+    type uint32 {
+      range "1..16384";
+    }
+    description
+      "Veid range";
+  }
+
+  typedef Load-balance {
+    type enumeration {
+      enum "source-dest-mac" {
+        value 1;
+        description
+          "Source and Destination MAC hashing";
+      }
+      enum "source-dest-ip" {
+        value 2;
+        description
+          "Source and Destination IP hashing";
+      }
+      enum "pseudowire-label" {
+        value 4;
+        description
+          "PW Label hashing";
+      }
+    }
+    description
+      "Load balance";
+  }
+
+  typedef L2tp-signaling-protocol {
+    type enumeration {
+      enum "none" {
+        value 1;
+        description
+          "No signaling";
+      }
+      enum "l2tpv3" {
+        value 2;
+        description
+          "L2TPv3";
+      }
+    }
+    description
+      "L2tp signaling protocol";
+  }
+
+  typedef Move-count-range {
+    type uint32 {
+      range "1..1000";
+    }
+    description
+      "Move count range";
+  }
+
+  typedef Retry-count-range {
+    type uint32 {
+      range "0..1000";
+    }
+    description
+      "Retry count range";
+  }
+
+  typedef Bdmac-learn {
+    type enumeration {
+      enum "disable-learning" {
+        value 2;
+        description
+          "Disable Learning";
+      }
+    }
+    description
+      "Bdmac learn";
+  }
+
+  typedef L2vpn-verification {
+    type enumeration {
+      enum "enable" {
+        value 1;
+        description
+          "enable verification";
+      }
+      enum "disable" {
+        value 2;
+        description
+          "disable verification";
+      }
+    }
+    description
+      "L2vpn verification";
+  }
+
+  typedef Max-path-mtu-range {
+    type uint32 {
+      range "68..65535";
+    }
+    description
+      "Max path mtu range";
+  }
+
+  typedef Interface-traffic-flood {
+    type enumeration {
+      enum "traffic-flooding" {
+        value 0;
+        description
+          "Traffic flooding";
+      }
+      enum "enable-flooding" {
+        value 1;
+        description
+          "Enable Flooding";
+      }
+      enum "disable-flooding" {
+        value 2;
+        description
+          "Disable flooding";
+      }
+    }
+    description
+      "Interface traffic flood";
+  }
+
+  typedef Pbbvid-range {
+    type uint32 {
+      range "1..4094";
+    }
+    description
+      "Pbbvid range";
+  }
+
+  typedef L2tp-cookie-value-range {
+    type uint32 {
+      range "0..4294967295";
+    }
+    description
+      "L2tp cookie value range";
+  }
+
+  typedef L2-encapsulation {
+    type enumeration {
+      enum "vlan" {
+        value 4;
+        description
+          "Vlan tagged mode";
+      }
+      enum "ethernet" {
+        value 5;
+        description
+          "Ethernet port mode";
+      }
+    }
+    description
+      "L2 encapsulation";
+  }
+
+  typedef L2vpn-logging {
+    type enumeration {
+      enum "enable" {
+        value 1;
+        description
+          "enable logging";
+      }
+      enum "disable" {
+        value 2;
+        description
+          "disable logging";
+      }
+    }
+    description
+      "L2vpn logging";
+  }
+
+  typedef Mac-aging-range {
+    type uint32 {
+      range "300..30000";
+    }
+    description
+      "Mac aging range";
+  }
+
+  typedef Vpls-id-as-index {
+    type uint32 {
+      range "0..4294967295";
+    }
+    description
+      "Vpls id as index";
+  }
+
+  typedef Pseudowire-gbl-id-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Pseudowire gbl id range";
+  }
+
+  typedef Rdas-index {
+    type uint32 {
+      range "0..4294967295";
+    }
+    description
+      "Rdas index";
+  }
+
+  typedef Mac-flush-mode {
+    type enumeration {
+      enum "mvrp" {
+        value 1;
+        description
+          "MVRP MAC Flushing";
+      }
+    }
+    description
+      "Mac flush mode";
+  }
+
+  typedef L2tp-cookie-size {
+    type enumeration {
+      enum "zero" {
+        value 0;
+        description
+          "Cookie size is zero bytes";
+      }
+      enum "four" {
+        value 4;
+        description
+          "Cookie size is four bytes";
+      }
+      enum "eight" {
+        value 8;
+        description
+          "Cookie size is eight bytes";
+      }
+    }
+    description
+      "L2tp cookie size";
+  }
+
+  typedef Mpls-sequencing {
+    type enumeration {
+      enum "off" {
+        value 0;
+        description
+          "Sequencing is off";
+      }
+      enum "transmit" {
+        value 1;
+        description
+          "Sequencing on transmit side";
+      }
+      enum "receive" {
+        value 2;
+        description
+          "Sequencing on receive side";
+      }
+      enum "both" {
+        value 4;
+        description
+          "Sequencing on both transmit and receive side";
+      }
+    }
+    description
+      "Mpls sequencing";
+  }
+
+  typedef Erp-instance-range {
+    type uint32 {
+      range "1..2";
+    }
+    description
+      "Erp instance range";
+  }
+
+  typedef Pw-redundancy-initial-delay-range {
+    type uint32 {
+      range "0..120";
+    }
+    description
+      "Pw redundancy initial delay range";
+  }
+
+  typedef Vpls-id-as-range {
+    type uint32 {
+      range "1..65535";
+    }
+    description
+      "Vpls id as range";
+  }
+
+  typedef Rdas-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Rdas range";
+  }
+
+  typedef Bridge-bd-mtu-range {
+    type uint32 {
+      range "46..65535";
+    }
+    description
+      "Bridge bd mtu range";
+  }
+
+  typedef Backup-disable-delay-range {
+    type uint32 {
+      range "0..180";
+    }
+    description
+      "Backup disable delay range";
+  }
+
+  typedef Storm-control-kbps-range {
+    type uint32 {
+      range "64..1280000";
+    }
+    description
+      "Storm control kbps range";
+  }
+
+  typedef Mac-limit-action {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "No action";
+      }
+      enum "flood" {
+        value 1;
+        description
+          "Flood Mac Limit Action";
+      }
+      enum "no-flood" {
+        value 2;
+        description
+          "NoFlood Mac Limit Action";
+      }
+      enum "shutdown" {
+        value 3;
+        description
+          "Shutdown Mac Limit Action";
+      }
+    }
+    description
+      "Mac limit action";
+  }
+
+  typedef Erp-port1 {
+    type enumeration {
+      enum "port0" {
+        value 0;
+        description
+          "ERP main port 0";
+      }
+      enum "port1" {
+        value 1;
+        description
+          "ERP main port 1";
+      }
+    }
+    description
+      "Erp port1";
+  }
+
+  typedef Mac-notification {
+    type enumeration {
+      enum "no-notif" {
+        value 0;
+        description
+          "No_Notification Trap";
+      }
+      enum "syslog" {
+        value 1;
+        description
+          "syslog message";
+      }
+      enum "trap" {
+        value 2;
+        description
+          "Snmp Trap";
+      }
+      enum "syslog-snmp" {
+        value 3;
+        description
+          "Syslog_snmp Trap";
+      }
+    }
+    description
+      "Mac notification";
+  }
+
+  typedef Control-word {
+    type enumeration {
+      enum "enable" {
+        value 1;
+        description
+          "Enable control word";
+      }
+      enum "disable" {
+        value 2;
+        description
+          "Disable control word";
+      }
+    }
+    description
+      "Control word";
+  }
+
+  typedef Bgp-route-distinguisher {
+    type enumeration {
+      enum "auto" {
+        value 1;
+        description
+          "RD automatically assigned";
+      }
+      enum "two-byte-as" {
+        value 2;
+        description
+          "RD in 2 byte AS:nn format";
+      }
+      enum "four-byte-as" {
+        value 3;
+        description
+          "RD in 4 byte AS:nn format";
+      }
+      enum "ipv4-address" {
+        value 4;
+        description
+          "RD in IpV4address";
+      }
+    }
+    description
+      "Bgp route distinguisher";
+  }
+
+  typedef Bgp-route-target-format {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "No route target";
+      }
+      enum "two-byte-as" {
+        value 1;
+        description
+          "2 Byte AS:nn format";
+      }
+      enum "four-byte-as" {
+        value 2;
+        description
+          "4 byte AS:nn format";
+      }
+      enum "ipv4-address" {
+        value 3;
+        description
+          "IP:nn format";
+      }
+      enum "es-import" {
+        value 1538;
+        description
+          "a.a.i format";
+      }
+    }
+    description
+      "Bgp route target format";
+  }
+
+  typedef Evpn-group-id-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Evpn group id range";
+  }
+
+  typedef Mac-limit-threshold-range {
+    type uint32 {
+      range "1..100";
+    }
+    description
+      "Mac limit threshold range";
+  }
+
+  typedef Vedge-range {
+    type uint32 {
+      range "11..100";
+    }
+    description
+      "Vedge range";
+  }
+
+  typedef Vpnid-range {
+    type uint32 {
+      range "1..4294967295";
+    }
+    description
+      "Vpnid range";
+  }
+
+  typedef Freeze-time-range {
+    type uint32 {
+      range "5..3600";
+    }
+    description
+      "Freeze time range";
+  }
+
+  typedef Ldp-vpls-id {
+    type enumeration {
+      enum "two-byte-as" {
+        value 10;
+        description
+          "VPLS-ID in 2 byte AS:nn format";
+      }
+      enum "ipv4-address" {
+        value 266;
+        description
+          "VPLS-ID in IPv4 IP:nn format";
+      }
+    }
+    description
+      "Ldp vpls id";
+  }
+
+  typedef Ce-id-range {
+    type uint32 {
+      range "1..16384";
+    }
+    description
+      "Ce id range";
+  }
+
+  typedef Mac-aging {
+    type enumeration {
+      enum "absolute" {
+        value 1;
+        description
+          "Absolute aging type";
+      }
+      enum "inactivity" {
+        value 2;
+        description
+          "Inactivity aging type";
+      }
+    }
+    description
+      "Mac aging";
+  }
+
+  typedef Mac-limit-range {
+    type uint32 {
+      range "0..4294967295";
+    }
+    description
+      "Mac limit range";
+  }
+
+  typedef Pbbisid-range {
+    type uint32 {
+      range "256..16777214";
+    }
+    description
+      "Pbbisid range";
+  }
+
+  typedef Type-of-service-range {
+    type uint32 {
+      range "0..255";
+    }
+    description
+      "Type of service range";
+  }
+
+  typedef Flow-label-load-balance {
+    type enumeration {
+      enum "off" {
+        value 0;
+        description
+          "Flow Label load balance is off";
+      }
+      enum "receive" {
+        value 1;
+        description
+          "Delete Flow Label on receive side";
+      }
+      enum "transmit" {
+        value 2;
+        description
+          "Insert Flow Label on transmit side";
+      }
+      enum "both" {
+        value 3;
+        description
+          "Insert/Delete  Flow Label on transmit/receive
+           side";
+      }
+    }
+    description
+      "Flow label load balance";
+  }
+
+  grouping EVI-ADVERTISE-MAC-DEPRECATED {
+    description
+      "Common node of evpn-evi, evpn-instance";
+    leaf evi-advertise-mac-deprecated {
+      type empty;
+      description
+        "DEPRECATED: Advertise local MAC-only and BVI MAC
+         routes";
+    }
+  }
+
+  grouping TABLE-POLICY {
+    description
+      "Common node of evpn-evi-bgp-auto-discovery,
+       evpn-instance-bgp-auto-discovery";
+    leaf table-policy {
+      type string;
+      description
+        "Table Policy for installation of forwarding data
+         to L2FIB";
+    }
+  }
+
+  grouping STORM-CONTROL-UNIT {
+    description
+      "Common node of bd-storm-control,
+       bdac-storm-control-type, bdpw-storm-control-type";
+    container storm-control-unit {
+      must "kbits-per-sec or pkts-per-sec";
+      description
+        "Specify units for Storm Control Configuration";
+      leaf kbits-per-sec {
+        type Storm-control-kbps-range;
+        units "kbit/s";
+        description
+          "Kilobits Per Second, PktsPerSec and KbitsPerSec
+           cannot be configured together";
+      }
+      leaf pkts-per-sec {
+        type Storm-control-pps-range;
+        units "packet/s";
+        description
+          "Packets Per Second, PktsPerSec and KbitsPerSec
+           cannot be configured together";
+      }
+    }
+  }
+
+  grouping EVI-ECMP-DISABLE {
+    description
+      "Common node of evpn-evi, evpn-instance";
+    leaf evi-ecmp-disable {
+      type empty;
+      description
+        "Disable ECMP on the EVI";
+    }
+  }
+
+  grouping MANUAL-SERVICE-CARVING {
+    description
+      "Common node of ethernet-segment,
+       evpn-virtual-ethernet-segment";
+    container manual-service-carving {
+      description
+        "Enter Manual service carving configuration
+         submode";
+      container service-list {
+        description
+          "Manual service carving primary,secondary lists";
+        leaf primary {
+          type string {
+            length "1..150";
+          }
+          description
+            "Primary services list";
+        }
+        leaf secondary {
+          type string {
+            length "1..150";
+          }
+          description
+            "Secondary services list";
+        }
+      }
+      leaf enable {
+        type empty;
+        description
+          "Enable Manual service carving";
+      }
+    }
+  }
+
+  grouping EVPN-ROUTE-DISTINGUISHER {
+    description
+      "Common node of evpn-bgp-auto-discovery,
+       evpn-evi-bgp-auto-discovery,
+       evpn-instance-bgp-auto-discovery, pw-routing-bgp";
+    container evpn-route-distinguisher {
+      description
+        "Route Distinguisher";
+      leaf type {
+        type Bgp-route-distinguisher;
+        description
+          "Router Distinguisher Type";
+      }
+      leaf as {
+        when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
+          description
+            "../Type = TwoByteAS or ../Type = FourByteAS";
+        }
+        type Rdas-range;
+        description
+          "Two byte or 4 byte AS number";
+      }
+      leaf as-index {
+        when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
+          description
+            "../Type = TwoByteAS or ../Type = FourByteAS";
+        }
+        type Rdas-index;
+        description
+          "AS:nn (hex or decimal format)";
+      }
+      leaf address {
+        when "../type = 'ipv4-address'" {
+          description
+            "../Type = IPV4Address";
+        }
+        type inet:ipv4-address-no-zone;
+        description
+          "IPV4 address";
+      }
+      leaf addr-index {
+        when "../type = 'ipv4-address'" {
+          description
+            "../Type = IPV4Address";
+        }
+        type Rd-addr-index;
+        description
+          "Addr index";
+      }
+    }
+  }
+
+  grouping EVPN-VIRTUAL-ETHERNET-SEGMENT {
+    description
+      "Common node of evpn-virtual-access-pw,
+       evpn-virtual-access-vfi";
+    container evpn-virtual-ethernet-segment {
+      description
+        "Enter Ethernet Segment configuration submode";
+      leaf enable {
+        type empty;
+        description
+          "Enable Ethernet Segment";
+      }
+      uses ES-IMPORT-ROUTE-TARGET;
+      uses IDENTIFIER;
+      uses MANUAL-SERVICE-CARVING;
+    }
+  }
+
+  grouping ES-IMPORT-ROUTE-TARGET {
+    description
+      "Common node of ethernet-segment,
+       evpn-virtual-ethernet-segment";
+    leaf es-import-route-target {
+      type yang:mac-address;
+      description
+        "ES-Import Route Target";
+    }
+  }
+
+  grouping IDENTIFIER {
+    description
+      "Common node of ethernet-segment,
+       evpn-virtual-ethernet-segment";
+    container identifier {
+      presence "Indicates a identifier node is configured.";
+      description
+        "Ethernet segment identifier";
+      leaf bytes01 {
+        type xr:Hex-integer;
+        mandatory true;
+        description
+          "Type 0's 1st Byte or Type Byte and 1st Byte";
+      }
+      leaf bytes23 {
+        type xr:Hex-integer;
+        units "byte";
+        mandatory true;
+        description
+          "2nd and 3rd Bytes";
+      }
+      leaf bytes45 {
+        type xr:Hex-integer;
+        units "byte";
+        mandatory true;
+        description
+          "4th and 5th Bytes";
+      }
+      leaf bytes67 {
+        type xr:Hex-integer;
+        units "byte";
+        mandatory true;
+        description
+          "6th and 7th Bytes";
+      }
+      leaf bytes89 {
+        type xr:Hex-integer;
+        units "byte";
+        mandatory true;
+        description
+          "8th and 9th Bytes";
+      }
+      leaf type {
+        type Ethernet-segment-identifier;
+        mandatory true;
+        description
+          "Ethernet segment identifier type";
+      }
+    }
+  }
+
+  grouping EVPN-ROUTE-TARGET-TABLE {
+    description
+      "Common node of evpn-evi-bgp-auto-discovery,
+       evpn-instance-bgp-auto-discovery";
+    container evpn-route-targets {
+      description
+        "Route Target";
+      list evpn-route-target-as {
+        must "format = 'two-byte-as' or format = 'four-byte-as'" {
+          description
+            "path for evpn-route-target when format is 2 or 4 byte AS";
+        }
+        key "format role as as-index stitching";
+        description
+          "Name of the Route Target";
+        xr:xr-xml-map "l2vpn_cfg:EVPNRouteTarget";
+        leaf format {
+          type Bgp-route-target-format;
+          description
+            "Format of the route target";
+          xr:xr-xml-map "l2vpn_cfg:Format";
+        }
+        leaf role {
+          type Bgp-route-target-role;
+          description
+            "Role of the router target type";
+          xr:xr-xml-map "l2vpn_cfg:Role";
+        }
+        leaf as {
+          type Rdas-range;
+          description
+            "Two byte or 4 byte AS number";
+          xr:xr-xml-map "l2vpn_cfg:AS";
+        }
+        leaf as-index {
+          type Rdas-index;
+          description
+            "AS:nn (hex or decimal format)";
+          xr:xr-xml-map "l2vpn_cfg:ASIndex";
+        }
+        leaf stitching {
+          type Bgp-route-target;
+          description
+            "whether RT is Stitching RT";
+          xr:xr-xml-map "l2vpn_cfg:Stitching";
+        }
+      }
+      list evpn-route-target-none {
+        must "format = 'none'" {
+          description
+            "path for evpn-route-target when format is none";
+        }
+        key "format role stitching";
+        description
+          "Name of the Route Target";
+        xr:xr-xml-map "l2vpn_cfg:EVPNRouteTarget";
+        leaf format {
+          type Bgp-route-target-format;
+          description
+            "Format of the route target";
+          xr:xr-xml-map "l2vpn_cfg:Format";
+        }
+        leaf role {
+          type Bgp-route-target-role;
+          description
+            "Role of the router target type";
+          xr:xr-xml-map "l2vpn_cfg:Role";
+        }
+        leaf stitching {
+          type Bgp-route-target;
+          description
+            "whether RT is Stitching RT";
+          xr:xr-xml-map "l2vpn_cfg:Stitching";
+        }
+      }
+      list evpn-route-target-ipv4-address {
+        must "format = 'ipv4-address'" {
+          description
+            "path for evpn-route-target when format is an ipv4 address";
+        }
+        key "format role address addr-index stitching";
+        description
+          "Name of the Route Target";
+        xr:xr-xml-map "l2vpn_cfg:EVPNRouteTarget";
+        leaf format {
+          type Bgp-route-target-format;
+          description
+            "Format of the route target";
+          xr:xr-xml-map "l2vpn_cfg:Format";
+        }
+        leaf role {
+          type Bgp-route-target-role;
+          description
+            "Role of the router target type";
+          xr:xr-xml-map "l2vpn_cfg:Role";
+        }
+        leaf address {
+          type inet:ipv4-address-no-zone;
+          description
+            "IPV4 address";
+          xr:xr-xml-map "l2vpn_cfg:Address";
+        }
+        leaf addr-index {
+          type Rd-addr-index;
+          description
+            "Addr index";
+          xr:xr-xml-map "l2vpn_cfg:AddrIndex";
+        }
+        leaf stitching {
+          type Bgp-route-target;
+          description
+            "whether RT is Stitching RT";
+          xr:xr-xml-map "l2vpn_cfg:Stitching";
+        }
+      }
+    }
+  }
+
+  grouping EVI-REORIG-DISABLE {
+    description
+      "Common node of evpn-evi, evpn-instance";
+    leaf evi-reorig-disable {
+      type empty;
+      description
+        "Disable route re-origination";
+    }
+  }
+
+  grouping EVI-STATIC-FLOW-LABEL {
+    description
+      "Common node of evi-load-balancing,
+       evpn-instance-load-balancing";
+    leaf evi-static-flow-label {
+      type empty;
+      description
+        "Enable Static Flow Label based load balancing";
+    }
+  }
+
+  grouping EVI-ADVERTISE-MAC-BVI {
+    description
+      "Common node of evi-advertise-mac,
+       evpn-instance-advertise-mac";
+    leaf evi-advertise-mac-bvi {
+      type empty;
+      description
+        "Advertise local MAC-only and BVI MAC routes";
+    }
+  }
+
+  grouping EVPN-EVI-DESCRIPTION {
+    description
+      "Common node of evpn-evi, evpn-instance";
+    leaf evpn-evi-description {
+      type string {
+        length "1..64";
+      }
+      description
+        "EVPN Instance description";
+    }
+  }
+
+  grouping EVI-UNKNOWN-UNICAST-FLOODING-DISABLE {
+    description
+      "Common node of evpn-evi, evpn-instance";
+    leaf evi-unknown-unicast-flooding-disable {
+      type empty;
+      description
+        "Disable Unknown Unicast Flooding on this EVI";
+    }
+  }
+
+  grouping EVPN-EVI-CW-DISABLE {
+    description
+      "Common node of evpn-evi, evpn-instance";
+    leaf evpn-evi-cw-disable {
+      type empty;
+      description
+        "CW disable for EVPN EVI";
+    }
+  }
+
+  augment "/a1:interface-configurations/a1:interface-configuration" {
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
+    container pseudowire-ether {
+      description
+        "PW-Ether attributes";
+      leaf generic-interface-list {
+        type xr:Cisco-ios-xr-string {
+          length "1..32";
+        }
+        description
+          "Name of the interface list";
+      }
+      leaf l2-overhead {
+        type uint32 {
+          range "1..64";
+        }
+        description
+          "PW Ether L2 overhead requirement";
+      }
+    }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration" {
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
+    container pseudowire-iw {
+      description
+        "PW-IW attributes";
+      leaf l2-overhead {
+        type uint32 {
+          range "1..64";
+        }
+        units "byte";
+        description
+          "L2 overhead size in bytes";
+      }
+      leaf generic-interface-list {
+        type xr:Cisco-ios-xr-string {
+          length "1..32";
+        }
+        description
+          "Name of the interface list";
+      }
+    }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration" {
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
+    container bvi {
+      description
+        "BVI attributes";
+      leaf host-routing {
+        type empty;
+        description
+          "Enable host-routing on this BVI";
+      }
+    }
+  }
+  augment "/a1:interface-configurations/a1:interface-configuration" {
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-ifmgr-cfg'";
+    container l2-transport {
+      description
+        "Interface Layer 2 Transport service
+         configuration data";
+      leaf enabled {
+        type empty;
+        description
+          "This object is only valid on physical
+           interfaces and it controls whether that
+           interface is a port mode Layer 2 attachment
+           circuit (note that for subinterfaces, the Layer
+           2 property is specified when the subinterface
+           is created).The object must be set before any
+           other L2Transport configuration is supplied for
+           the interface, and must be the last
+           per-interface configuration object to be
+           removed.";
+      }
+    }
+  }
+  augment "/a2:snmp/a2:notification" {
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-snmp-agent-cfg'";
+    container vpls {
+      description
+        "CISCO-IETF-VPLS-GENERIC-MIB notification
+         configuration";
+      leaf full-clear {
+        type empty;
+        description
+          "Enable cvplsFwdFullAlarmCleared notification";
+      }
+      leaf status {
+        type empty;
+        description
+          "Enable cvplsStatusChanged notification";
+      }
+      leaf enable {
+        type empty;
+        description
+          "Enable CISCO-IETF-VPLS-GENERIC-MIB
+           notifications";
+      }
+      leaf full-raise {
+        type empty;
+        description
+          "Enable cvplsFwdFullAlarmRaised notification";
+      }
+    }
+  }
+  augment "/a2:snmp/a2:notification" {
+    description
+      "This augment extends the configuration data of
+       'Cisco-IOS-XR-snmp-agent-cfg'";
+    container l2vpn {
+      description
+        "CISCO-IETF-PW-MIB notification configuration";
+      leaf cisco {
+        type empty;
+        description
+          "Enable Cisco format including extra varbinds";
+      }
+      leaf enable {
+        type empty;
+        description
+          "Enable CISCO-IETF-PW-MIB notifications";
+      }
+      leaf vc-down {
+        type empty;
+        description
+          "Enable cpwVcDown notification";
+      }
+      leaf vc-up {
+        type empty;
+        description
+          "Enable cpwVcUp notification";
+      }
+    }
+  }
+  container l2vpn {
+    description
+      "L2VPN configuration";
+    container pw-routing {
+      description
+        "Pseudowire-routing attributes";
+      container pw-routing-bgp {
+        description
+          "Enable Autodiscovery BGP Pseudowire-routing BGP";
+        leaf enable {
+          type empty;
+          description
+            "Enable Autodiscovery BGP";
+        }
+        uses EVPN-ROUTE-DISTINGUISHER;
+      }
+      leaf pw-routing-global-id {
+        type Pseudowire-gbl-id-range;
+        description
+          "Pseudowire-routing Global ID";
+      }
+    }
+    container neighbor {
+      description
+        "L2VPN neighbor submode";
+      leaf ldp-flap {
+        type empty;
+        description
+          "Enable targetted LDP session flap action";
+      }
+    }
+    container database {
+      description
+        "L2VPN databases";
+      container g8032-rings {
+        description
+          "List of G8032 Ring";
+        list g8032-ring {
+          key "g8032-ring-name";
+          description
+            "G8032 Ring";
+          container erp-port0s {
+            description
+              "Ethernet ring protection port0";
+            list erp-port0 {
+              key "interface-name";
+              description
+                "Configure ERP main port0";
+              leaf monitor {
+                type xr:Interface-name;
+                description
+                  "Ethernet ring protection port0 monitor";
+              }
+              leaf interface-name {
+                type xr:Interface-name;
+                description
+                  "Port0 interface";
+              }
+            }
+          }
+          container erp-instances {
+            description
+              "List of ethernet ring protection instance";
+            list erp-instance {
+              key "erp-instance-id";
+              description
+                "Ethernet ring protection instance";
+              container rpl {
+                description
+                  "Ring protection link";
+                leaf port {
+                  type Erp-port1;
+                  description
+                    "ERP main port number";
+                }
+                leaf role {
+                  type Rpl-role;
+                  description
+                    "RPL role";
+                }
+              }
+              container aps {
+                description
+                  "Automatic protection switching";
+                container port1 {
+                  description
+                    "APS channel for ERP port1";
+                  leaf aps-type {
+                    type Erpaps;
+                    description
+                      "Port1 APS type";
+                  }
+                  leaf aps-channel {
+                    type string;
+                    description
+                      "Port1 APS channel in the format of
+                       InterfaceName, BDName or XconnectName";
+                  }
+                }
+                leaf port0 {
+                  type string;
+                  description
+                    "Port0 APS channel in the format of
+                     InterfaceName";
+                }
+                leaf enable {
+                  type empty;
+                  description
+                    "Enable automatic protection switching";
+                }
+                leaf level {
+                  type Erpaps-level-range;
+                  description
+                    "Automatic protection switching level";
+                }
+              }
+              leaf description {
+                type string {
+                  length "1..32";
+                }
+                description
+                  "Ethernet ring protection instance
+                   description";
+              }
+              leaf inclusion-list {
+                type string;
+                description
+                  "Associates a set of VLAN IDs with the G
+                   .8032 instance";
+              }
+              leaf profile {
+                type string {
+                  length "1..32";
+                }
+                description
+                  "Ethernet ring protection instance profile";
+              }
+              leaf erp-instance-id {
+                type Erp-instance-range;
+                description
+                  "ERP instance number";
+              }
+            }
+          }
+          container erp-port1s {
+            description
+              "Ethernet ring protection port0";
+            list erp-port1 {
+              must "none-or-virtual or interface" {
+                description
+                  "None-or-Virtual or Interface must be
+                   present.";
+              }
+              key "erp-port-type";
+              description
+                "Ethernet ring protection port1";
+
+              grouping ERP-PORT1-CONTENT {
+                description
+                  "ERP PORT1 CONTENT";
+                leaf monitor {
+                  type xr:Interface-name;
+                  description
+                    "Ethernet ring protection port1 monitor";
+                }
+              }
+              container none-or-virtual {
+                when "../erp-port-type = 'none' or ../erp-port-type = 'virtual'" {
+                  description
+                    "../ERPPortType = None or ../ERPPortType =
+                     Virtual";
+                }
+                presence "Indicates that this node is configured.";
+                description
+                  "none or virtual";
+                uses ERP-PORT1-CONTENT;
+              }
+              leaf erp-port-type {
+                type Erp-port;
+                description
+                  "Port1 type";
+              }
+              list interface {
+                when "../erp-port-type = 'interface'" {
+                  description
+                    "../ERPPortType = Interface";
+                }
+                key "interface-name";
+                description
+                  "interface";
+                leaf interface-name {
+                  type xr:Interface-name;
+                  description
+                    "Port1 interface";
+                }
+                uses ERP-PORT1-CONTENT;
+              }
+            }
+          }
+          leaf open-ring {
+            type empty;
+            description
+              "Specify the G.8032 instance as open ring";
+          }
+          leaf exclusion-list {
+            type string;
+            description
+              "Vlan IDs in the format of a-b,c,d,e-f,g
+               ,untagged";
+          }
+          leaf erp-provider-bridge {
+            type empty;
+            description
+              "Ethernet ring protection provider bridge";
+          }
+          leaf g8032-ring-name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of the G8032 ring";
+          }
+        }
+      }
+      container xconnect-groups {
+        description
+          "List of xconnect groups";
+        list xconnect-group {
+          key "name";
+          description
+            "Xconnect group";
+          container p2p-xconnects {
+            description
+              "List of point to point xconnects";
+            list p2p-xconnect {
+              key "name";
+              description
+                "Point to point xconnect";
+              container backup-attachment-circuits {
+                description
+                  "List of backup attachment circuits";
+                list backup-attachment-circuit {
+                  key "interface-name";
+                  description
+                    "Backup attachment circuit";
+                  leaf interface-name {
+                    type xr:Interface-name;
+                    description
+                      "Name of the attachment circuit interface";
+                  }
+                }
+              }
+              container pseudowire-evpns {
+                description
+                  "List of EVPN Services";
+                list pseudowire-evpn {
+                  key "eviid remote-acid source-acid";
+                  description
+                    "EVPN P2P Service Configuration";
+                  leaf class {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Name of the pseudowire class";
+                  }
+                  leaf eviid {
+                    type Evpnvpnid-range;
+                    description
+                      "Ethernet VPN ID";
+                  }
+                  leaf remote-acid {
+                    type Pseudowire-evpnacid-range;
+                    description
+                      "Remote AC ID";
+                  }
+                  leaf source-acid {
+                    type Pseudowire-evpnacid-range;
+                    description
+                      "Source AC ID";
+                  }
+                }
+              }
+              container pseudowires {
+                description
+                  "List of pseudowires";
+                list pseudowire {
+                  must "pseudowire-address or neighbor" {
+                    description
+                      "pseudowire-address or neighbor must be
+                       present.";
+                  }
+                  key "pseudowire-id";
+                  description
+                    "Pseudowire configuration";
+
+                  grouping PSEUDOWIRE-CONTENT {
+                    description
+                      "Content grouping.";
+                    container mpls-static-labels {
+                      description
+                        "MPLS static labels";
+                      leaf local-static-label {
+                        type Pseudowire-label-range;
+                        description
+                          "Pseudowire local static label";
+                      }
+                      leaf remote-static-label {
+                        type Pseudowire-label-range;
+                        description
+                          "Pseudowire remote static label";
+                      }
+                    }
+                    container backup-pseudowires {
+                      description
+                        "List of pseudowires";
+                      list backup-pseudowire {
+                        key "neighbor pseudowire-id";
+                        description
+                          "Backup pseudowire for the cross connect";
+                        container backup-mpls-static-labels {
+                          description
+                            "MPLS static labels";
+                          leaf local-static-label {
+                            type Pseudowire-label-range;
+                            description
+                              "Pseudowire local static label";
+                          }
+                          leaf remote-static-label {
+                            type Pseudowire-label-range;
+                            description
+                              "Pseudowire remote static label";
+                          }
+                        }
+                        leaf backup-pw-class {
+                          type xr:Cisco-ios-xr-string {
+                            length "1..32";
+                          }
+                          description
+                            "PW class template name to use for the
+                             backup PW";
+                        }
+                        leaf neighbor {
+                          type inet:ipv4-address-no-zone;
+                          description
+                            "Neighbor IP address";
+                        }
+                        leaf pseudowire-id {
+                          type Pseudowire-id-range;
+                          description
+                            "Pseudowire ID";
+                        }
+                      }
+                    }
+                    container l2tp-static-attributes {
+                      description
+                        "L2TP Static Attributes";
+                      container l2tp-remote-cookie {
+                        description
+                          "L2TP remote cookie";
+                        leaf size {
+                          type L2tp-cookie-size;
+                          description
+                            "Remote cookie size";
+                        }
+                        leaf lower-value {
+                          type L2tp-cookie-value-range;
+                          description
+                            "Lower remote cookie value";
+                        }
+                        leaf higher-value {
+                          type L2tp-cookie-value-range;
+                          description
+                            "Higher remote cookie value";
+                        }
+                      }
+                      container l2tp-secondary-local-cookie {
+                        description
+                          "L2TP secondary local cookie";
+                        leaf size {
+                          type L2tp-cookie-size;
+                          description
+                            "Local cookie size";
+                        }
+                        leaf lower-value {
+                          type L2tp-cookie-value-range;
+                          description
+                            "Lower local cookie value";
+                        }
+                        leaf higher-value {
+                          type L2tp-cookie-value-range;
+                          description
+                            "Higher local cookie value";
+                        }
+                      }
+                      container l2tp-local-cookie {
+                        description
+                          "L2TP local cookie";
+                        leaf size {
+                          type L2tp-cookie-size;
+                          description
+                            "Local cookie size";
+                        }
+                        leaf lower-value {
+                          type L2tp-cookie-value-range;
+                          description
+                            "Lower local cookie value";
+                        }
+                        leaf higher-value {
+                          type L2tp-cookie-value-range;
+                          description
+                            "Higher local cookie value";
+                        }
+                      }
+                      leaf l2tp-remote-session-id {
+                        type L2tp-session-id-range;
+                        description
+                          "L2TP remote session ID";
+                      }
+                      leaf l2tp-local-session-id {
+                        type L2tp-session-id-range;
+                        description
+                          "L2TP local session ID";
+                      }
+                    }
+                    container l2tp-static {
+                      description
+                        "Pseudowire L2TPv3 static configuration";
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable pseudowire L2TPv3 static
+                           configuration";
+                      }
+                    }
+                    leaf tag-impose {
+                      type Pseudowire-tag-range;
+                      description
+                        "Tag Impose vlan tagged mode";
+                    }
+                    leaf class {
+                      type xr:Cisco-ios-xr-string {
+                        length "1..32";
+                      }
+                      description
+                        "Name of the pseudowire class";
+                    }
+                    leaf source-address {
+                      type inet:ip-address-no-zone;
+                      description
+                        "Value of the Pseudowire source address.
+                         Must be IPv6 only.";
+                    }
+                    leaf bandwidth {
+                      type uint32 {
+                        range "0..4294967295";
+                      }
+                      description
+                        "Pseudowire Bandwidth";
+                    }
+                  }
+                  leaf pseudowire-id {
+                    type Pseudowire-id-range;
+                    description
+                      "Pseudowire ID";
+                  }
+                  list neighbor {
+                    key "neighbor";
+                    description
+                      "keys: neighbor";
+                    leaf neighbor {
+                      type inet:ipv4-address-no-zone;
+                      description
+                        "Pseudowire IPv4 address";
+                    }
+                    uses PSEUDOWIRE-CONTENT;
+                  }
+                  list pseudowire-address {
+                    key "pseudowire-address";
+                    description
+                      "keys: pseudowire-address";
+                    leaf pseudowire-address {
+                      type inet:ipv6-address-no-zone;
+                      description
+                        "Pseudowire IPv6 address. A pseudowire
+                         can have only one address: IPv4 or IPv6";
+                    }
+                    uses PSEUDOWIRE-CONTENT;
+                  }
+                }
+              }
+              container monitor-sessions {
+                description
+                  "List of Monitor session segments";
+                list monitor-session {
+                  key "name";
+                  description
+                    "Monitor session segment";
+                  leaf enable {
+                    type empty;
+                    description
+                      "Enable monitor session segment ";
+                  }
+                  leaf name {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..64";
+                    }
+                    description
+                      "Name of the monitor session";
+                  }
+                }
+              }
+              container pseudowire-routeds {
+                description
+                  "List of pseudowire-routed";
+                list pseudowire-routed {
+                  key "global-id prefix acid sacid";
+                  description
+                    "Pseudowire configuration";
+                  leaf tag-impose {
+                    type Pseudowire-tag-range;
+                    description
+                      "Tag Impose vlan tagged mode";
+                  }
+                  leaf class {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Name of the pseudowire class";
+                  }
+                  leaf global-id {
+                    type Pseudowire-gbl-id-range;
+                    description
+                      "Target Global ID";
+                  }
+                  leaf prefix {
+                    type inet:ipv4-address-no-zone;
+                    description
+                      "Target Prefix";
+                  }
+                  leaf acid {
+                    type Pseudowire-acid-range;
+                    description
+                      "Target AC ID";
+                  }
+                  leaf sacid {
+                    type Pseudowire-acid-range;
+                    description
+                      "Source AC ID";
+                  }
+                }
+              }
+              container attachment-circuits {
+                description
+                  "List of attachment circuits";
+                list attachment-circuit {
+                  key "name";
+                  description
+                    "Attachment circuit interface";
+                  leaf enable {
+                    type empty;
+                    description
+                      "Enable attachment circuit interface";
+                  }
+                  leaf name {
+                    type xr:Interface-name;
+                    description
+                      "Name of the attachment circuit interface";
+                  }
+                }
+              }
+              leaf p2p-description {
+                type string {
+                  length "1..64";
+                }
+                description
+                  "cross connect description Name";
+              }
+              leaf interworking {
+                type Interworking;
+                description
+                  "Interworking";
+              }
+              leaf name {
+                type xr:Cisco-ios-xr-string {
+                  length "1..38";
+                }
+                description
+                  "Name of the point to point xconnect";
+              }
+            }
+          }
+          container mp2mp-xconnects {
+            description
+              "List of multi point to multi point xconnects";
+            list mp2mp-xconnect {
+              key "name";
+              description
+                "Multi point to multi point xconnect";
+              container mp2mp-auto-discovery {
+                description
+                  "auto-discovery in this MP2MP";
+                container route-distinguisher {
+                  description
+                    "Route Distinguisher";
+                  leaf type {
+                    type Bgp-route-distinguisher;
+                    description
+                      "Router distinguisher type";
+                  }
+                  leaf as {
+                    when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
+                      description
+                        "../Type = TwoByteAS or ../Type =
+                         FourByteAS";
+                    }
+                    type Rdas-range;
+                    description
+                      "Two byte or 4 byte AS number";
+                  }
+                  leaf as-index {
+                    when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
+                      description
+                        "../Type = TwoByteAS or ../Type =
+                         FourByteAS";
+                    }
+                    type Rdas-index;
+                    description
+                      "AS:nn (hex or decimal format)";
+                  }
+                  leaf address {
+                    when "../type = 'ipv4-address'" {
+                      description
+                        "../Type = IPV4Address";
+                    }
+                    type inet:ipv4-address-no-zone;
+                    description
+                      "IPV4 address";
+                  }
+                  leaf addr-index {
+                    when "../type = 'ipv4-address'" {
+                      description
+                        "../Type = IPV4Address";
+                    }
+                    type Rd-addr-index;
+                    description
+                      "Addr index";
+                  }
+                }
+                container mp2mp-route-policy {
+                  description
+                    "Route policy";
+                  leaf export {
+                    type string;
+                    description
+                      "Export route policy";
+                  }
+                }
+                container mp2mp-route-targets {
+                  description
+                    "Route Target";
+                  list mp2mp-route-target {
+                    must "two-byte-as-or-four-byte-as or ipv4-address" {
+                      description
+                        "TwoByteAS-or-FourbyteAS or IPV4Address
+                         must be present.";
+                    }
+                    key "role format";
+                    description
+                      "Name of the Route Target";
+                    leaf role {
+                      type Bgp-route-target-role;
+                      description
+                        "Role of the router target type";
+                    }
+                    leaf format {
+                      type Bgp-route-target-format;
+                      description
+                        "Format of the route target";
+                    }
+                    list two-byte-as-or-four-byte-as {
+                      when "../format = 'two-byte-as' or ../format = 'four-byte-as'" {
+                        description
+                          "../Format = TwoByteAS or ../Format =
+                           FourbyteAS";
+                      }
+                      key "as as-index";
+                      description
+                        "two byte as or four byte as";
+                      leaf as {
+                        type Rdas-range;
+                        description
+                          "Two byte or 4 byte AS number";
+                      }
+                      leaf as-index {
+                        type Rdas-index;
+                        description
+                          "AS:nn (hex or decimal format)";
+                      }
+                    }
+                    list ipv4-address {
+                      when "../format = 'ipv4-address'" {
+                        description
+                          "../Format = IPV4Address";
+                      }
+                      key "address addr-index";
+                      description
+                        "ipv4 address";
+                      leaf address {
+                        type inet:ipv4-address-no-zone;
+                        description
+                          "IPV4 address";
+                      }
+                      leaf addr-index {
+                        type Rd-addr-index;
+                        description
+                          "Addr index";
+                      }
+                    }
+                  }
+                }
+                container mp2mp-signaling-protocol {
+                  description
+                    "signaling protocol in this MP2MP";
+                  container flow-label-load-balance {
+                    description
+                      "Enable Flow Label based load balancing";
+                    leaf flow-label {
+                      type Flow-label-load-balance;
+                      description
+                        "Flow Label load balance type";
+                    }
+                    leaf static {
+                      type empty;
+                      description
+                        "Static Flow Label";
+                    }
+                  }
+                  container ceids {
+                    description
+                      "Local Customer Edge Identifier Table";
+                    list ceid {
+                      key "ce-id";
+                      description
+                        "Local Customer Edge Identifier ";
+                      container remote-ceid-attachment-circuits {
+                        description
+                          "AC And Remote Customer Edge Identifier
+                           Table";
+                        list remote-ceid-attachment-circuit {
+                          key "name remote-ce-id";
+                          description
+                            "AC And Remote Customer Edge Identifier";
+                          leaf name {
+                            type xr:Interface-name;
+                            description
+                              "The name of the Attachment Circuit";
+                          }
+                          leaf remote-ce-id {
+                            type Ce-id-range;
+                            description
+                              "Remote Customer Edge Identifier";
+                          }
+                        }
+                      }
+                      leaf ce-id {
+                        type Ce-id-range;
+                        description
+                          "Local Customer Edge Identifier";
+                      }
+                    }
+                  }
+                  leaf ce-range {
+                    type Cedge-range;
+                    description
+                      "Local Customer Edge Identifier";
+                  }
+                  leaf enable {
+                    type empty;
+                    description
+                      "Enable signaling protocol";
+                  }
+                }
+                leaf enable {
+                  type empty;
+                  description
+                    "Enable auto-discovery";
+                }
+              }
+              leaf mp2mpmtu {
+                type L2vpn-mtu-range;
+                units "byte";
+                description
+                  "Maximum transmission unit for this MP2MP
+                   VPWS instance";
+              }
+              leaf mp2mp-control-word {
+                type empty;
+                description
+                  "Disable control word";
+              }
+              leaf mp2mpl2-encapsulation {
+                type L2-encapsulation;
+                description
+                  "Configure Layer 2 Encapsulation";
+              }
+              leaf mp2mp-interworking {
+                type Interworking;
+                description
+                  "Interworking";
+              }
+              leaf mp2mp-shutdown {
+                type empty;
+                description
+                  "shutdown this MP2MP VPWS instance";
+              }
+              leaf mp2mpvpn-id {
+                type Vpnid-range;
+                description
+                  "VPN Identifier";
+              }
+              leaf name {
+                type xr:Cisco-ios-xr-string {
+                  length "1..26";
+                }
+                description
+                  "Name of the multi point to multi point
+                   xconnect";
+              }
+            }
+          }
+          leaf name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of the xconnect group";
+          }
+        }
+      }
+      container bridge-domain-groups {
+        description
+          "List of bridge  groups";
+        list bridge-domain-group {
+          key "name";
+          description
+            "Bridge group";
+          container bridge-domains {
+            description
+              "List of Bridge Domain";
+            list bridge-domain {
+              key "name";
+              description
+                "bridge domain";
+              container bd-storm-controls {
+                description
+                  "Storm Control";
+                list bd-storm-control {
+                  must "storm-control-unit";
+                  key "sctype";
+                  description
+                    "Storm Control Type";
+                  leaf sctype {
+                    type Storm-control;
+                    description
+                      "Storm Control Type";
+                  }
+                  uses STORM-CONTROL-UNIT;
+                }
+              }
+              container member-vnis {
+                description
+                  "Bridge Domain VxLAN Network Identifier
+                   Table";
+                list member-vni {
+                  key "vni";
+                  description
+                    "Bridge Domain Member VxLAN Network
+                     Identifier ";
+                  container member-vni-static-mac-addresses {
+                    description
+                      "Static Mac Address Table";
+                    list member-vni-static-mac-address {
+                      key "mac-address";
+                      description
+                        "Static Mac Address Configuration";
+                      leaf next-hop-ip {
+                        type inet:ipv4-address-no-zone;
+                        description
+                          "Enable Static Mac Address Configuration";
+                      }
+                      leaf mac-address {
+                        type yang:mac-address;
+                        description
+                          "Static MAC address";
+                      }
+                    }
+                  }
+                  leaf vni {
+                    type uint32 {
+                      range "1..16777215";
+                    }
+                    description
+                      "VxLAN Network Identifier number";
+                  }
+                }
+              }
+              container bridge-domain-mac {
+                description
+                  "MAC configuration commands";
+                container bd-mac-limit {
+                  description
+                    "MAC-Limit configuration commands";
+                  leaf bd-mac-limit-action {
+                    type Mac-limit-action;
+                    description
+                      "MAC address limit enforcement action";
+                  }
+                  leaf bd-mac-limit-notif {
+                    type Mac-notification;
+                    description
+                      "Mac Address Limit Notification";
+                  }
+                  leaf bd-mac-limit-max {
+                    type Mac-limit-range;
+                    description
+                      "Number of MAC addresses after which MAC
+                       limit action is taken";
+                  }
+                }
+                container bd-mac-filters {
+                  description
+                    "Filter Mac Address";
+                  list bd-mac-filter {
+                    key "address";
+                    description
+                      "Static MAC address";
+                    leaf drop {
+                      type empty;
+                      description
+                        "MAC address for filtering";
+                    }
+                    leaf address {
+                      type yang:mac-address;
+                      description
+                        "Static MAC address";
+                    }
+                  }
+                }
+                container mac-secure {
+                  description
+                    "MAC Secure";
+                  leaf logging {
+                    type empty;
+                    description
+                      "MAC Secure Logging";
+                  }
+                  leaf action {
+                    type Mac-secure-action;
+                    description
+                      "MAC secure enforcement action";
+                  }
+                  leaf enable {
+                    type empty;
+                    description
+                      "Enable MAC Secure";
+                  }
+                  leaf threshold {
+                    type empty;
+                    description
+                      "MAC Secure Threshold";
+                  }
+                }
+                container bd-mac-aging {
+                  description
+                    "MAC-Aging configuration commands";
+                  leaf bd-mac-aging-type {
+                    type Mac-aging;
+                    description
+                      "MAC address aging type";
+                  }
+                  leaf bd-mac-aging-time {
+                    type Mac-aging-range;
+                    description
+                      "Mac Aging Time";
+                  }
+                }
+                leaf bd-mac-withdraw-relay {
+                  type empty;
+                  description
+                    "Mac withdraw sent from access PW to access
+                     PW";
+                }
+                leaf bd-mac-withdraw-access-pw-disable {
+                  type empty;
+                  description
+                    "MAC withdraw on Access PW";
+                }
+                leaf bd-mac-port-down-flush {
+                  type empty;
+                  description
+                    "Disable MAC Flush when Port goes Down";
+                }
+                leaf bd-mac-withdraw {
+                  type empty;
+                  description
+                    "Disable Mac Withdraw";
+                }
+                leaf bd-mac-withdraw-behavior {
+                  type Mac-withdraw-behavior;
+                  description
+                    "MAC withdraw sent on bridge port down";
+                }
+                leaf bd-mac-learn {
+                  type Bdmac-learn;
+                  description
+                    "Mac Learning Type";
+                }
+              }
+              container nv-satellite {
+                description
+                  "nV Satellite";
+                leaf offload-ipv4-multicast-enable {
+                  type empty;
+                  description
+                    "Enable IPv4 Multicast Offload to Satellite
+                     Nodes";
+                }
+                leaf enable {
+                  type empty;
+                  description
+                    "Enable nV Satellite Settings";
+                }
+              }
+              container bridge-domain-pbb {
+                description
+                  "Bridge Domain PBB";
+                container pbb-edges {
+                  description
+                    "PBB Edge";
+                  list pbb-edge {
+                    key "isid core-bd-name";
+                    description
+                      "Configure BD as PBB Edge with ISID and
+                       associated PBB Core BD";
+                    container pbb-edge-split-horizon-group {
+                      description
+                        "Split Horizon Group";
+                      leaf disable {
+                        type empty;
+                        description
+                          "Disable split horizon group";
+                      }
+                    }
+                    container pbb-static-mac-mappings {
+                      description
+                        "PBB Static Mac Address Mapping Table";
+                      list pbb-static-mac-mapping {
+                        key "address";
+                        description
+                          "PBB Static Mac Address Mapping
+                           Configuration";
+                        leaf pbb-static-mac-mapping-bmac {
+                          type yang:mac-address;
+                          description
+                            "Static backbone MAC address to map
+                             with";
+                        }
+                        leaf address {
+                          type yang:mac-address;
+                          description
+                            "Static MAC address";
+                        }
+                      }
+                    }
+                    container pbb-edge-dhcp-profile {
+                      description
+                        "Attach a DHCP profile";
+                      leaf profile-id {
+                        type Interface-profile;
+                        description
+                          "Set the snooping profile";
+                      }
+                      leaf dhcp-snooping-id {
+                        type string;
+                        description
+                          "Disable DHCP snooping";
+                      }
+                    }
+                    container pbb-edge-mac {
+                      description
+                        "MAC configuration commands";
+                      container pbb-edge-mac-limit {
+                        description
+                          "MAC-Limit configuration commands";
+                        leaf pbb-edge-mac-limit-action {
+                          type Mac-limit-action;
+                          description
+                            "MAC address limit enforcement action";
+                        }
+                        leaf pbb-edge-mac-limit-max {
+                          type Mac-limit-range;
+                          description
+                            "Number of MAC addresses after which
+                             MAC limit action is taken";
+                        }
+                        leaf pbb-edge-mac-limit-notif {
+                          type Mac-notification;
+                          description
+                            "MAC address limit notification action";
+                        }
+                      }
+                      container pbb-edge-mac-aging {
+                        description
+                          "MAC-Aging configuration commands";
+                        leaf pbb-edge-mac-aging-type {
+                          type Mac-aging;
+                          description
+                            "MAC address aging type";
+                        }
+                        leaf pbb-edge-mac-aging-time {
+                          type Mac-aging-range;
+                          description
+                            "Mac Aging Time";
+                        }
+                      }
+                      container pbb-edge-mac-secure {
+                        description
+                          "MAC Secure";
+                        leaf logging {
+                          type L2vpn-logging;
+                          description
+                            "MAC Secure Logging";
+                        }
+                        leaf disable {
+                          type empty;
+                          description
+                            "Disable Virtual instance port MAC
+                             Secure";
+                        }
+                        leaf action {
+                          type Mac-secure-action;
+                          description
+                            "MAC secure enforcement action";
+                        }
+                        leaf enable {
+                          type empty;
+                          description
+                            "Enable MAC Secure";
+                        }
+                        leaf accept-shutdown {
+                          type empty;
+                          description
+                            "Accept Virtual instance port to be
+                             shutdown on mac violation";
+                        }
+                      }
+                      leaf pbb-edge-mac-learning {
+                        type Mac-learn;
+                        description
+                          "Enable Mac Learning";
+                      }
+                    }
+                    leaf pbb-edge-igmp-profile {
+                      type xr:Cisco-ios-xr-string {
+                        length "1..32";
+                      }
+                      description
+                        "Attach a IGMP Snooping profile";
+                    }
+                    leaf unknown-unicast-bmac {
+                      type yang:mac-address;
+                      description
+                        "Configure Unknown Unicast BMAC address
+                         for PBB Edge Port";
+                    }
+                    leaf isid {
+                      type Pbbisid-range;
+                      description
+                        "ISID";
+                    }
+                    leaf core-bd-name {
+                      type xr:Cisco-ios-xr-string {
+                        length "1..27";
+                      }
+                      description
+                        "Core BD Name";
+                    }
+                  }
+                }
+                container pbb-core {
+                  description
+                    "PBB Core";
+                  container pbb-core-mac {
+                    description
+                      "MAC configuration commands";
+                    container pbb-core-mac-aging {
+                      description
+                        "MAC-Aging configuration commands";
+                      leaf pbb-core-mac-aging-type {
+                        type Mac-aging;
+                        description
+                          "MAC address aging type";
+                      }
+                      leaf pbb-core-mac-aging-time {
+                        type Mac-aging-range;
+                        description
+                          "Mac Aging Time";
+                      }
+                    }
+                    container pbb-core-mac-limit {
+                      description
+                        "MAC-Limit configuration commands";
+                      leaf pbb-core-mac-limit-max {
+                        type Mac-limit-range;
+                        description
+                          "Number of MAC addresses after which MAC
+                           limit action is taken";
+                      }
+                      leaf pbb-core-mac-limit-notif {
+                        type Mac-notification;
+                        description
+                          "MAC address limit notification action";
+                      }
+                      leaf pbb-core-mac-limit-action {
+                        type Mac-limit-action;
+                        description
+                          "MAC address limit enforcement action";
+                      }
+                    }
+                    leaf pbb-core-mac-learning {
+                      type Mac-learn;
+                      description
+                        "Enable Mac Learning";
+                    }
+                  }
+                  container pbb-core-evis {
+                    description
+                      "PBB Core EVI Table";
+                    list pbb-core-evi {
+                      key "eviid";
+                      description
+                        "PBB Core EVI";
+                      leaf eviid {
+                        type Vpnid-range;
+                        description
+                          "Ethernet VPN ID";
+                      }
+                    }
+                  }
+                  container pbb-core-dhcp-profile {
+                    description
+                      "Attach a DHCP profile";
+                    leaf profile-id {
+                      type Interface-profile;
+                      description
+                        "Set the snooping profile";
+                    }
+                    leaf dhcp-snooping-id {
+                      type string;
+                      description
+                        "Disable DHCP snooping";
+                    }
+                  }
+                  leaf pbb-core-mmrp-flood-optimization {
+                    type empty;
+                    description
+                      "Enabling MMRP PBB-VPLS Flood Optimization";
+                  }
+                  leaf vlan-id {
+                    type Pbbvid-range;
+                    description
+                      "VLAN ID to push";
+                  }
+                  leaf pbb-core-igmp-profile {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Attach a IGMP Snooping profile";
+                  }
+                  leaf enable {
+                    type empty;
+                    description
+                      "Enable Bridge Domain PBB Core
+                       Configuration";
+                  }
+                }
+              }
+              container bridge-domain-evis {
+                description
+                  "Bridge Domain EVI Table";
+                list bridge-domain-evi {
+                  key "eviid";
+                  description
+                    "Bridge Domain EVI";
+                  leaf eviid {
+                    type Evpnvpnid-range;
+                    description
+                      "Ethernet VPN ID";
+                  }
+                }
+              }
+              container access-vfis {
+                description
+                  "Specify the access virtual forwarding
+                   interface name";
+                list access-vfi {
+                  key "name";
+                  description
+                    "Name of the Acess Virtual Forwarding
+                     Interface";
+                  container access-vfi-pseudowires {
+                    description
+                      "List of pseudowires";
+                    list access-vfi-pseudowire {
+                      key "neighbor pseudowire-id";
+                      description
+                        "Pseudowire configuration";
+                      container access-vfi-pseudowire-static-mac-addresses {
+                        description
+                          "Static Mac Address Table";
+                        list access-vfi-pseudowire-static-mac-address {
+                          key "address";
+                          description
+                            "Static Mac Address Configuration";
+                          leaf address {
+                            type yang:mac-address;
+                            description
+                              "Static MAC address";
+                          }
+                        }
+                      }
+                      leaf access-vfi-pw-class {
+                        type xr:Cisco-ios-xr-string {
+                          length "1..32";
+                        }
+                        description
+                          "Pseudowire class template name to use
+                           for this pseudowire";
+                      }
+                      leaf neighbor {
+                        type inet:ipv4-address-no-zone;
+                        description
+                          "Neighbor IP address";
+                      }
+                      leaf pseudowire-id {
+                        type Pseudowire-id-range;
+                        description
+                          "Pseudowire ID";
+                      }
+                    }
+                  }
+                  leaf access-vfi-shutdown {
+                    type empty;
+                    description
+                      "shutdown the AccessVfi";
+                  }
+                  leaf name {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Name of the AccessVirtual Forwarding
+                       Interface";
+                  }
+                }
+              }
+              container bd-pseudowires {
+                description
+                  "List of pseudowires";
+                list bd-pseudowire {
+                  key "neighbor pseudowire-id";
+                  description
+                    "Pseudowire configuration";
+                  container pseudowire-dai {
+                    description
+                      "Access Pseudowire Dynamic ARP Inspection";
+                    container pseudowire-dai-address-validation {
+                      description
+                        "Address Validation";
+                      leaf ipv4-verification {
+                        type L2vpn-verification;
+                        description
+                          "IPv4 Verification";
+                      }
+                      leaf destination-mac-verification {
+                        type L2vpn-verification;
+                        description
+                          "Destination MAC Verification";
+                      }
+                      leaf source-mac-verification {
+                        type L2vpn-verification;
+                        description
+                          "Source MAC Verification";
+                      }
+                    }
+                    leaf logging {
+                      type L2vpn-logging;
+                      description
+                        "Logging Type";
+                    }
+                    leaf disable {
+                      type empty;
+                      description
+                        "Disable Dynamic ARP Inspection";
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Enable Access Pseudowire Dynamic ARP
+                         Inspection";
+                    }
+                  }
+                  container bdpw-storm-control-types {
+                    description
+                      "Storm Control";
+                    list bdpw-storm-control-type {
+                      must "storm-control-unit";
+                      key "sctype";
+                      description
+                        "Storm Control Type";
+                      leaf sctype {
+                        type Storm-control;
+                        description
+                          "Storm Control Type";
+                      }
+                      uses STORM-CONTROL-UNIT;
+                    }
+                  }
+                  container pseudowire-profile {
+                    description
+                      "Attach a DHCP profile";
+                    leaf profile-id {
+                      type Interface-profile;
+                      description
+                        "Set the snooping profile";
+                    }
+                    leaf dhcp-snooping-id {
+                      type string;
+                      description
+                        "Disable DHCP snooping";
+                    }
+                  }
+                  container bd-pw-static-mac-addresses {
+                    description
+                      "Static Mac Address Table";
+                    list bd-pw-static-mac-address {
+                      key "address";
+                      description
+                        "Static Mac Address Configuration";
+                      leaf address {
+                        type yang:mac-address;
+                        description
+                          "Static MAC address";
+                      }
+                    }
+                  }
+                  container pseudowire-ip-source-guard {
+                    description
+                      "IP Source Guard";
+                    leaf logging {
+                      type L2vpn-logging;
+                      description
+                        "Logging Type";
+                    }
+                    leaf disable {
+                      type empty;
+                      description
+                        "Disable Dynamic IP source guard";
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Enable IP Source Guard";
+                    }
+                  }
+                  container pseudowire-mac {
+                    description
+                      "Bridge-domain Pseudowire MAC
+                       configuration commands";
+                    container pseudowire-mac-secure {
+                      description
+                        "MAC Secure";
+                      leaf logging {
+                        type L2vpn-logging;
+                        description
+                          "MAC Secure Logging";
+                      }
+                      leaf disable {
+                        type empty;
+                        description
+                          "Disable L2 Pseudowire MAC Secure";
+                      }
+                      leaf action {
+                        type Mac-secure-action;
+                        description
+                          "MAC secure enforcement action";
+                      }
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable MAC Secure";
+                      }
+                    }
+                    container pseudowire-mac-aging {
+                      description
+                        "MAC-Aging configuration commands";
+                      leaf pseudowire-mac-aging-type {
+                        type Mac-aging;
+                        description
+                          "MAC address aging type";
+                      }
+                      leaf pseudowire-mac-aging-time {
+                        type Mac-aging-range;
+                        description
+                          "MAC Aging Time";
+                      }
+                    }
+                    container pseudowire-mac-limit {
+                      description
+                        "MAC-Limit configuration commands";
+                      leaf pseudowire-mac-limit-action {
+                        type Mac-limit-action;
+                        description
+                          "Bridge Access Pseudowire MAC address
+                           limit enforcement action";
+                      }
+                      leaf pseudowire-mac-limit-notif {
+                        type Mac-notification;
+                        description
+                          "MAC address limit notification action
+                           in a Bridge Access Pseudowire";
+                      }
+                      leaf pseudowire-mac-limit-max {
+                        type Mac-limit-range;
+                        description
+                          "Number of MAC addresses on a Bridge
+                           Access Pseudowire after which MAC limit
+                           action is taken";
+                      }
+                    }
+                    leaf pseudowire-mac-port-down-flush {
+                      type Port-down-flush;
+                      description
+                        "Enable/Disable MAC Flush When Port goes
+                         down";
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Bridge-domain Pseudowire MAC
+                         configuration mode";
+                    }
+                    leaf pseudowire-mac-learning {
+                      type Mac-learn;
+                      description
+                        "Enable MAC Learning";
+                    }
+                  }
+                  container bd-pw-split-horizon {
+                    description
+                      "Split Horizon";
+                    container bd-pw-split-horizon-group {
+                      description
+                        "Split Horizon Group";
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable split horizon group";
+                      }
+                    }
+                  }
+                  container bd-pw-mpls-static-labels {
+                    description
+                      "MPLS static labels";
+                    leaf local-static-label {
+                      type Pseudowire-label-range;
+                      description
+                        "Pseudowire local static label";
+                    }
+                    leaf remote-static-label {
+                      type Pseudowire-label-range;
+                      description
+                        "Pseudowire remote static label";
+                    }
+                  }
+                  container bridge-domain-backup-pseudowires {
+                    description
+                      "List of pseudowires";
+                    list bridge-domain-backup-pseudowire {
+                      key "neighbor pseudowire-id";
+                      description
+                        "Backup pseudowire configuration";
+                      leaf bridge-domain-backup-pw-class {
+                        type xr:Cisco-ios-xr-string {
+                          length "1..32";
+                        }
+                        description
+                          "PW class template name to use for this
+                           pseudowire";
+                      }
+                      leaf neighbor {
+                        type inet:ipv4-address-no-zone;
+                        description
+                          "Neighbor IP address";
+                      }
+                      leaf pseudowire-id {
+                        type Pseudowire-id-range;
+                        description
+                          "Pseudowire ID";
+                      }
+                    }
+                  }
+                  leaf pseudowire-mld-snoop {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Attach a MLD Snooping profile";
+                  }
+                  leaf pseudowire-igmp-snoop {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Attach a IGMP Snooping profile";
+                  }
+                  leaf pseudowire-flooding {
+                    type Interface-traffic-flood;
+                    description
+                      "Bridge-domain Pseudowire flooding";
+                  }
+                  leaf bd-pw-class {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "PW class template name to use for this
+                       pseudowire";
+                  }
+                  leaf pseudowire-flooding-unknown-unicast {
+                    type Interface-traffic-flood;
+                    description
+                      "Bridge-domain Pseudowire flooding Unknown
+                       Unicast";
+                  }
+                  leaf neighbor {
+                    type inet:ipv4-address-no-zone;
+                    description
+                      "Neighbor IP address";
+                  }
+                  leaf pseudowire-id {
+                    type Pseudowire-id-range;
+                    description
+                      "Pseudowire ID";
+                  }
+                }
+              }
+              container vfis {
+                description
+                  "Specify the virtual forwarding interface
+                   name";
+                list vfi {
+                  key "name";
+                  description
+                    "Name of the Virtual Forwarding Interface";
+                  container multicast-p2mp {
+                    description
+                      "Enable Multicast P2MP in this VFI";
+                    container transports {
+                      description
+                        "Multicast P2MP Transport";
+                      list transport {
+                        key "transport-name";
+                        description
+                          "Multicast P2MP Transport Type";
+                        leaf attribute-set-name {
+                          type xr:Cisco-ios-xr-string {
+                            length "1..64";
+                          }
+                          description
+                            "Multicast P2MP TE Attribute Set Name";
+                        }
+                        leaf transport-name {
+                          type Multicast-p2mp-transport;
+                          description
+                            "Transport Type";
+                        }
+                      }
+                    }
+                    container signalings {
+                      description
+                        "Multicast P2MP Signaling Type";
+                      list signaling {
+                        key "signaling-name";
+                        description
+                          "Multicast P2MP Signaling Type";
+                        leaf signaling-name {
+                          type Multicast-p2mp-signaling;
+                          description
+                            "Signaling Type";
+                        }
+                      }
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Enable Autodiscovery P2MP";
+                    }
+                  }
+                  container vfi-pseudowires {
+                    description
+                      "List of pseudowires";
+                    list vfi-pseudowire {
+                      key "neighbor pseudowire-id";
+                      description
+                        "Pseudowire configuration";
+                      container vfi-pw-dhcp-snoop {
+                        description
+                          "Attach a DHCP Snooping profile";
+                        leaf profile-id {
+                          type Interface-profile;
+                          description
+                            "Set the snooping profile";
+                        }
+                        leaf dhcp-snooping-id {
+                          type string;
+                          description
+                            "Disable DHCP snooping";
+                        }
+                      }
+                      container vfi-pw-mpls-static-labels {
+                        description
+                          "MPLS static labels";
+                        leaf local-static-label {
+                          type Pseudowire-label-range;
+                          description
+                            "Pseudowire local static label";
+                        }
+                        leaf remote-static-label {
+                          type Pseudowire-label-range;
+                          description
+                            "Pseudowire remote static label";
+                        }
+                      }
+                      container pseudowire-static-mac-addresses {
+                        description
+                          "Static Mac Address Table";
+                        list pseudowire-static-mac-address {
+                          key "address";
+                          description
+                            "Static Mac Address Configuration";
+                          leaf address {
+                            type yang:mac-address;
+                            description
+                              "Static MAC address";
+                          }
+                        }
+                      }
+                      leaf vfi-pw-class {
+                        type xr:Cisco-ios-xr-string {
+                          length "1..32";
+                        }
+                        description
+                          "PW class template name to use for this
+                           pseudowire";
+                      }
+                      leaf vfi-pw-igmp-snoop {
+                        type xr:Cisco-ios-xr-string {
+                          length "1..32";
+                        }
+                        description
+                          "Attach a IGMP Snooping profile";
+                      }
+                      leaf vfi-pw-mld-snoop {
+                        type xr:Cisco-ios-xr-string {
+                          length "1..32";
+                        }
+                        description
+                          "Attach a MLD Snooping profile";
+                      }
+                      leaf neighbor {
+                        type inet:ipv4-address-no-zone;
+                        description
+                          "Neighbor IP address";
+                      }
+                      leaf pseudowire-id {
+                        type Pseudowire-id-range;
+                        description
+                          "Pseudowire ID";
+                      }
+                    }
+                  }
+                  container bgp-auto-discovery {
+                    description
+                      "Enable Autodiscovery BGP in this VFI";
+                    container ldp-signaling-protocol {
+                      description
+                        "Signaling Protocol LDP in this VFI
+                         configuration";
+                      container vpls-id {
+                        description
+                          "VPLS ID";
+                        leaf type {
+                          type Ldp-vpls-id;
+                          description
+                            "VPLS-ID Type";
+                        }
+                        leaf as {
+                          when "../type = 'two-byte-as'" {
+                            description
+                              "../Type = TwoByteAS";
+                          }
+                          type Vpls-id-as-range;
+                          description
+                            "Two byte AS number";
+                        }
+                        leaf as-index {
+                          when "../type = 'two-byte-as'" {
+                            description
+                              "../Type = TwoByteAS";
+                          }
+                          type Vpls-id-as-index;
+                          description
+                            "AS index";
+                        }
+                        leaf address {
+                          when "../type = 'ipv4-address'" {
+                            description
+                              "../Type = IPV4Address";
+                          }
+                          type inet:ipv4-address-no-zone;
+                          description
+                            "IPV4 address";
+                        }
+                        leaf address-index {
+                          when "../type = 'ipv4-address'" {
+                            description
+                              "../Type = IPV4Address";
+                          }
+                          type Vpls-id-addr-index;
+                          description
+                            "Address index";
+                        }
+                      }
+                      container flow-label-load-balance {
+                        description
+                          "Enable Flow Label based load balancing";
+                        leaf flow-label {
+                          type Flow-label-load-balance;
+                          description
+                            "Flow Label load balance type";
+                        }
+                        leaf static {
+                          type empty;
+                          description
+                            "Static Flow Label";
+                        }
+                      }
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable LDP as Signaling Protocol
+                           .Deletion of this object also causes
+                           deletion of all objects under
+                           LDPSignalingProtocol.";
+                      }
+                    }
+                    container bgp-route-policy {
+                      description
+                        "Route policy";
+                      leaf export {
+                        type string;
+                        description
+                          "Export route policy";
+                      }
+                    }
+                    container route-distinguisher {
+                      description
+                        "Route Distinguisher";
+                      leaf type {
+                        type Bgp-route-distinguisher;
+                        description
+                          "Router Distinguisher Type";
+                      }
+                      leaf as {
+                        when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
+                          description
+                            "../Type = TwoByteAS or ../Type =
+                             FourByteAS";
+                        }
+                        type Rdas-range;
+                        description
+                          "Two byte or 4 byte AS number";
+                      }
+                      leaf as-index {
+                        when "../type = 'two-byte-as' or ../type = 'four-byte-as'" {
+                          description
+                            "../Type = TwoByteAS or ../Type =
+                             FourByteAS";
+                        }
+                        type Rdas-index;
+                        description
+                          "AS:nn (hex or decimal format)";
+                      }
+                      leaf address {
+                        when "../type = 'ipv4-address'" {
+                          description
+                            "../Type = IPV4Address";
+                        }
+                        type inet:ipv4-address-no-zone;
+                        description
+                          "IPV4 address";
+                      }
+                      leaf addr-index {
+                        when "../type = 'ipv4-address'" {
+                          description
+                            "../Type = IPV4Address";
+                        }
+                        type Rd-addr-index;
+                        description
+                          "Addr index";
+                      }
+                    }
+                    container bgp-signaling-protocol {
+                      description
+                        "Enable Signaling Protocol BGP in this
+                         VFI";
+                      container flow-label-load-balance {
+                        description
+                          "Enable Flow Label based load balancing";
+                        leaf flow-label {
+                          type Flow-label-load-balance;
+                          description
+                            "Flow Label load balance type";
+                        }
+                        leaf static {
+                          type empty;
+                          description
+                            "Static Flow Label";
+                        }
+                      }
+                      leaf ve-range {
+                        type Vedge-range;
+                        description
+                          "Local Virtual Edge Block Configurable
+                           Range";
+                      }
+                      leaf veid {
+                        type Veid-range;
+                        description
+                          "Local Virtual Edge Identifier";
+                      }
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable BGP as Signaling Protocol";
+                      }
+                    }
+                    container route-targets {
+                      description
+                        "Route Target";
+                      list route-target {
+                        must "two-byte-as-or-four-byte-as or ipv4-address" {
+                          description
+                            "TwoByteAS-or-FourbyteAS or IPV4Address
+                             must be present.";
+                        }
+                        key "role format";
+                        description
+                          "Name of the Route Target";
+                        leaf role {
+                          type Bgp-route-target-role;
+                          description
+                            "Role of the router target type";
+                        }
+                        leaf format {
+                          type Bgp-route-target-format;
+                          description
+                            "Format of the route target";
+                        }
+                        list two-byte-as-or-four-byte-as {
+                          when "../format = 'two-byte-as' or ../format = 'four-byte-as'" {
+                            description
+                              "../Format = TwoByteAS or ../Format =
+                               FourbyteAS";
+                          }
+                          key "as as-index";
+                          description
+                            "two byte as or four byte as";
+                          leaf as {
+                            type Rdas-range;
+                            description
+                              "Two byte or 4 byte AS number";
+                          }
+                          leaf as-index {
+                            type Rdas-index;
+                            description
+                              "AS:nn (hex or decimal format)";
+                          }
+                        }
+                        list ipv4-address {
+                          when "../format = 'ipv4-address'" {
+                            description
+                              "../Format = IPV4Address";
+                          }
+                          key "address addr-index";
+                          description
+                            "ipv4 address";
+                          leaf address {
+                            type inet:ipv4-address-no-zone;
+                            description
+                              "IPV4 address";
+                          }
+                          leaf addr-index {
+                            type Rd-addr-index;
+                            description
+                              "Addr index";
+                          }
+                        }
+                      }
+                    }
+                    leaf table-policy {
+                      type string;
+                      description
+                        "Table Policy for installation of
+                         forwarding data to L2FIB";
+                    }
+                    leaf ad-control-word {
+                      type empty;
+                      description
+                        "Enable control-word for this VFI";
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Enable Autodiscovery BGP";
+                    }
+                  }
+                  leaf vfi-shutdown {
+                    type empty;
+                    description
+                      "Enabling Shutdown";
+                  }
+                  leaf vpnid {
+                    type Vpnid-range;
+                    description
+                      "VPN Identifier";
+                  }
+                  leaf name {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Name of the Virtual Forwarding Interface";
+                  }
+                }
+              }
+              container bd-attachment-circuits {
+                description
+                  "Attachment Circuit table";
+                list bd-attachment-circuit {
+                  key "name";
+                  description
+                    "Name of the Attachment Circuit";
+                  container interface-ip-source-guard {
+                    description
+                      "IP Source Guard";
+                    leaf logging {
+                      type L2vpn-logging;
+                      description
+                        "Logging Type";
+                    }
+                    leaf disable {
+                      type empty;
+                      description
+                        "Disable L2 Interface Dynamic IP source
+                         guard";
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Enable IP Source Guard";
+                    }
+                  }
+                  container interface-dai {
+                    description
+                      "L2 Interface Dynamic ARP Inspection";
+                    container interface-dai-address-validation {
+                      description
+                        "Address Validation";
+                      leaf ipv4-verification {
+                        type L2vpn-verification;
+                        description
+                          "IPv4 Verification";
+                      }
+                      leaf destination-mac-verification {
+                        type L2vpn-verification;
+                        description
+                          "Destination MAC Verification";
+                      }
+                      leaf source-mac-verification {
+                        type L2vpn-verification;
+                        description
+                          "Source MAC Verification";
+                      }
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable Address Validation";
+                      }
+                    }
+                    leaf logging {
+                      type L2vpn-logging;
+                      description
+                        "Logging Type";
+                    }
+                    leaf disable {
+                      type empty;
+                      description
+                        "Disable L2 Interface Dynamic ARP
+                         Inspection";
+                    }
+                    leaf enable {
+                      type empty;
+                      description
+                        "Enable L2 Interface Dynamic ARP
+                         Inspection";
+                    }
+                  }
+                  container interface-profile {
+                    description
+                      "Attach a DHCP profile";
+                    leaf profile-id {
+                      type Interface-profile;
+                      description
+                        "Set the snooping profile";
+                    }
+                    leaf dhcp-snooping-id {
+                      type string;
+                      description
+                        "Disable DHCP snooping";
+                    }
+                  }
+                  container bdac-storm-control-types {
+                    description
+                      "Storm Control";
+                    list bdac-storm-control-type {
+                      must "storm-control-unit";
+                      key "sctype";
+                      description
+                        "Storm Control Type";
+                      leaf sctype {
+                        type Storm-control;
+                        description
+                          "Storm Control Type";
+                      }
+                      uses STORM-CONTROL-UNIT;
+                    }
+                  }
+                  container split-horizon {
+                    description
+                      "Split Horizon";
+                    container split-horizon-group-id {
+                      description
+                        "Split Horizon Group ID";
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable split horizon group";
+                      }
+                    }
+                  }
+                  container static-mac-addresses {
+                    description
+                      "Static Mac Address Table";
+                    list static-mac-address {
+                      key "address";
+                      description
+                        "Static Mac Address Configuration";
+                      leaf address {
+                        type yang:mac-address;
+                        description
+                          "Static MAC address";
+                      }
+                    }
+                  }
+                  container interface-mac {
+                    description
+                      "MAC configuration commands";
+                    container interface-mac-aging {
+                      description
+                        "MAC-Aging configuration commands";
+                      leaf interface-mac-aging-time {
+                        type Mac-aging-range;
+                        description
+                          "Mac Aging Time";
+                      }
+                      leaf interface-mac-aging-type {
+                        type Mac-aging;
+                        description
+                          "MAC address aging type";
+                      }
+                    }
+                    container interface-mac-secure {
+                      description
+                        "MAC Secure";
+                      leaf logging {
+                        type L2vpn-logging;
+                        description
+                          "MAC Secure Logging";
+                      }
+                      leaf disable {
+                        type empty;
+                        description
+                          "Disable L2 Interface MAC Secure";
+                      }
+                      leaf action {
+                        type Mac-secure-action;
+                        description
+                          "MAC secure enforcement action";
+                      }
+                      leaf enable {
+                        type empty;
+                        description
+                          "Enable MAC Secure";
+                      }
+                    }
+                    container interface-mac-limit {
+                      description
+                        "MAC-Limit configuration commands";
+                      leaf interface-mac-limit-max {
+                        type Mac-limit-range;
+                        description
+                          "Number of MAC addresses on an Interface
+                           after which MAC limit action is taken";
+                      }
+                      leaf interface-mac-limit-notif {
+                        type Mac-notification;
+                        description
+                          "MAC address limit notification action
+                           in a Interface";
+                      }
+                      leaf interface-mac-limit-action {
+                        type Mac-limit-action;
+                        description
+                          "Interface MAC address limit enforcement
+                           action";
+                      }
+                    }
+                    leaf interface-mac-port-down-flush {
+                      type Port-down-flush;
+                      description
+                        "Enable/Disable MAC Flush When Port goes
+                         down";
+                    }
+                    leaf interface-mac-learning {
+                      type Mac-learn;
+                      description
+                        "Enable Mac Learning";
+                    }
+                  }
+                  leaf interface-flooding {
+                    type Interface-traffic-flood;
+                    description
+                      "Enable or Disable Flooding";
+                  }
+                  leaf interface-igmp-snoop {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Attach a IGMP Snooping profile";
+                  }
+                  leaf interface-flooding-unknown-unicast {
+                    type Interface-traffic-flood;
+                    description
+                      "Enable or Disable Unknown Unicast
+                       Flooding";
+                  }
+                  leaf interface-mld-snoop {
+                    type xr:Cisco-ios-xr-string {
+                      length "1..32";
+                    }
+                    description
+                      "Attach a MLD Snooping profile";
+                  }
+                  leaf name {
+                    type xr:Interface-name;
+                    description
+                      "The name of the Attachment Circuit";
+                  }
+                }
+              }
+              container bd-pseudowire-evpns {
+                description
+                  "List of EVPN pseudowires";
+                list bd-pseudowire-evpn {
+                  key "eviid acid";
+                  description
+                    "EVPN Pseudowire configuration";
+                  leaf eviid {
+                    type Evpnvpnid-range;
+                    description
+                      "Ethernet VPN ID";
+                  }
+                  leaf acid {
+                    type Pseudowire-acid-range;
+                    description
+                      "AC ID";
+                  }
+                }
+              }
+              container ip-source-guard {
+                description
+                  "IP Source Guard";
+                leaf logging {
+                  type empty;
+                  description
+                    "Enable Logging";
+                }
+                leaf enable {
+                  type empty;
+                  description
+                    "Enable IP Source Guard";
+                }
+              }
+              container dai {
+                description
+                  "Dynamic ARP Inspection";
+                container dai-address-validation {
+                  description
+                    "Address Validation";
+                  leaf ipv4-verification {
+                    type empty;
+                    description
+                      "Enable IPv4 Verification";
+                  }
+                  leaf destination-mac-verification {
+                    type empty;
+                    description
+                      "Enable Destination MAC Verification";
+                  }
+                  leaf source-mac-verification {
+                    type empty;
+                    description
+                      "Enable Source MAC Verification";
+                  }
+                  leaf enable {
+                    type empty;
+                    description
+                      "Enable Address Validation";
+                  }
+                }
+                leaf logging {
+                  type empty;
+                  description
+                    "Enable Logging";
+                }
+                leaf enable {
+                  type empty;
+                  description
+                    "Enable Dynamic ARP Inspection";
+                }
+              }
+              container routed-interfaces {
+                description
+                  "Bridge Domain Routed Interface Table";
+                list routed-interface {
+                  key "interface-name";
+                  description
+                    "Bridge Domain Routed Interface";
+                  container routed-interface-split-horizon-group {
+                    description
+                      "Routed interface split horizon group";
+                    leaf routed-interface-split-horizon-group-core {
+                      type empty;
+                      description
+                        "Configure BVI under SHG 1";
+                    }
+                  }
+                  leaf interface-name {
+                    type xr:Interface-name;
+                    description
+                      "The name of the Routed Interface";
+                  }
+                }
+              }
+              leaf coupled-mode {
+                type empty;
+                description
+                  "Coupled-mode configuration";
+              }
+              leaf shutdown {
+                type empty;
+                description
+                  "shutdown the Bridge Domain";
+              }
+              leaf flooding-unknown-unicast {
+                type empty;
+                description
+                  "Disable Unknown Unicast flooding";
+              }
+              leaf igmp-snooping-disable {
+                type empty;
+                description
+                  "Disable IGMP Snooping";
+              }
+              leaf transport-mode {
+                type Bridge-domain-transport-mode;
+                description
+                  "Bridge Domain Transport mode";
+              }
+              leaf mld-snooping {
+                type xr:Cisco-ios-xr-string {
+                  length "1..32";
+                }
+                description
+                  "Attach MLD Snooping Profile Name";
+              }
+              leaf bridge-domain-mtu {
+                type Bridge-bd-mtu-range;
+                units "byte";
+                description
+                  "Maximum transmission unit for this Bridge
+                   Domain";
+              }
+              leaf dhcp {
+                type string {
+                  length "1..32";
+                }
+                description
+                  "DHCPv4 Snooping profile name";
+              }
+              leaf bridge-description {
+                type string {
+                  length "1..64";
+                }
+                description
+                  "Bridge-domain description Name";
+              }
+              leaf igmp-snooping {
+                type xr:Cisco-ios-xr-string {
+                  length "1..32";
+                }
+                description
+                  "Attach IGMP Snooping Profile Name";
+              }
+              leaf flooding {
+                type empty;
+                description
+                  "Disable flooding";
+              }
+              leaf name {
+                type xr:Cisco-ios-xr-string {
+                  length "1..27";
+                }
+                description
+                  "Name of the bridge domain";
+              }
+            }
+          }
+          leaf name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of the Bridge group";
+          }
+        }
+      }
+      container pseudowire-classes {
+        description
+          "List of pseudowire classes";
+        list pseudowire-class {
+          key "name";
+          description
+            "Pseudowire class";
+          container l2tpv3-encapsulation {
+            description
+              "L2TPv3 encapsulation";
+            container sequencing {
+              description
+                "Sequencing";
+              leaf sequencing {
+                type L2tpv3-sequencing;
+                default "off";
+                description
+                  "Sequencing";
+              }
+              leaf resync-threshold {
+                type Resync-threshold-range;
+                default "5";
+                description
+                  "Out of sequence threshold";
+              }
+            }
+            container type-of-service {
+              description
+                "Type of service";
+              leaf type-of-service-value {
+                type Type-of-service-range;
+                description
+                  "Type of service value";
+              }
+              leaf type-of-service-mode {
+                type Type-of-service-mode;
+                description
+                  "Type of service mode";
+              }
+            }
+            container signaling-protocol {
+              description
+                "L2TPv3 signaling protocol";
+              leaf protocol {
+                type L2tp-signaling-protocol;
+                default "l2tpv3";
+                description
+                  "L2TPv3 signaling protocol";
+              }
+              leaf l2tpv3-class-name {
+                type xr:Cisco-ios-xr-string {
+                  length "1..32";
+                }
+                description
+                  "Name of the L2TPv3 class name";
+              }
+            }
+            container path-mtu {
+              description
+                "Path maximum transmission unit";
+              leaf enable {
+                type empty;
+                description
+                  "Enable path MTU";
+              }
+              leaf max-path-mtu {
+                type Max-path-mtu-range;
+                description
+                  "Maximum path maximum transmission unit";
+              }
+            }
+            leaf df-bit-set {
+              type empty;
+              description
+                "Set the do not fragment bit to 1";
+            }
+            leaf cookie-size {
+              type L2tp-cookie-size;
+              default "zero";
+              description
+                "Cookie size";
+            }
+            leaf source-address {
+              type inet:ipv4-address-no-zone;
+              description
+                "Source IP address";
+            }
+            leaf transport-mode {
+              type Transport-mode;
+              description
+                "Transport mode";
+            }
+            leaf enable {
+              type empty;
+              description
+                "Enable L2TPv3 encapsulation";
+            }
+            leaf time-to-live {
+              type Time-to-live-range;
+              description
+                "Time to live";
+            }
+          }
+          container backup-disable-delay {
+            description
+              "Back Up Pseudowire class";
+            leaf type {
+              type Backup-disable;
+              description
+                "Delay or Never";
+            }
+            leaf disable-backup {
+              when "../type = 'delay'" {
+                description
+                  "../Type = Delay";
+              }
+              type Backup-disable-delay-range;
+              description
+                "Disable backup delay";
+            }
+          }
+          container mpls-encapsulation {
+            description
+              "MPLS encapsulation";
+            container sequencing {
+              description
+                "Sequencing";
+              leaf sequencing {
+                type Mpls-sequencing;
+                default "off";
+                description
+                  "Sequencing";
+              }
+              leaf resync-threshold {
+                type Resync-threshold-range;
+                default "5";
+                description
+                  "Out of sequence threshold";
+              }
+            }
+            container mpls-redundancy {
+              description
+                "Redundancy options for MPLS encapsulation";
+              leaf redundancy-one-way {
+                type empty;
+                description
+                  "Force one-way PW redundancy behavior in
+                   Redundancy Group";
+              }
+              leaf redundancy-initial-delay {
+                type Pw-redundancy-initial-delay-range;
+                units "second";
+                description
+                  "Initial delay before activating the
+                   redundant PW, in seconds";
+              }
+            }
+            container preferred-path {
+              description
+                "Preferred path";
+              leaf type {
+                type Preferred-path;
+                description
+                  "Preferred Path Type";
+              }
+              leaf interface-tunnel-number {
+                when "../type = 'te-tunnel' or ../type = 'ip-tunnel' or ../type = 'tp-tunnel'" {
+                  description
+                    "../Type = TE-Tunnel or ../Type =
+                     IP-Tunnel or ../Type = TP-Tunnel";
+                }
+                type uint32 {
+                  range "0..65535";
+                }
+                description
+                  "Interface Tunnel number for preferred path";
+              }
+              leaf fallback-disable {
+                when "../type = 'te-tunnel' or ../type = 'ip-tunnel' or ../type = 'tp-tunnel' or ../type = 'sr-te-policy'" {
+                  description
+                    "../Type = TE-Tunnel or ../Type =
+                     IP-Tunnel or ../Type = TP-Tunnel or .
+                     ./Type = SR-TE-Policy";
+                }
+                type empty;
+                description
+                  "Fallback disable";
+              }
+              leaf srte-policy {
+                when "../type = 'sr-te-policy'" {
+                  description
+                    "../Type = SR-TE-Policy";
+                }
+                type string {
+                  length "1..60";
+                }
+                description
+                  "Name of the SR TE Policy";
+              }
+            }
+            container load-balance-group {
+              description
+                "Load Balancing";
+              container flow-label-load-balance {
+                description
+                  "Enable Flow Label based load balancing";
+                leaf flow-label {
+                  type Flow-label-load-balance;
+                  description
+                    "Flow Label load balance type";
+                }
+                leaf static {
+                  type empty;
+                  description
+                    "Static Flow Label";
+                }
+              }
+              leaf flow-label-load-balance-code {
+                type Flow-label-tlv-code;
+                description
+                  "Enable Legacy Flow Label TLV code";
+              }
+              leaf pw-label-load-balance {
+                type Load-balance;
+                description
+                  "Enable PW Label based Load Balancing";
+              }
+            }
+            leaf pw-switching-tlv {
+              type Pw-switching-point-tlv;
+              description
+                "Pseudowire Switching Point Tlv";
+            }
+            leaf static-tag-rewrite {
+              type Tag-rewrite-range;
+              description
+                "Static Tag rewrite";
+            }
+            leaf signaling-protocol {
+              type Mpls-signaling-protocol;
+              default "ldp";
+              description
+                "MPLS signaling protocol";
+            }
+            leaf vccv-type {
+              type Vccv-verification;
+              default "lsp-ping";
+              description
+                "VCCV verification type";
+            }
+            leaf source-address {
+              type inet:ipv4-address-no-zone;
+              description
+                "Source IP address";
+            }
+            leaf transport-mode {
+              type Transport-mode;
+              description
+                "Transport mode";
+            }
+            leaf enable {
+              type empty;
+              description
+                "Enable MPLS encapsulation";
+            }
+            leaf control-word {
+              type Control-word;
+              description
+                "Enable control word";
+            }
+          }
+          leaf mac-withdraw {
+            type empty;
+            description
+              "Enable backup MAC withdraw";
+          }
+          leaf enable {
+            type empty;
+            description
+              "Enable pseudowire class";
+          }
+          leaf name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of the pseudowire class";
+          }
+        }
+      }
+      container flexible-xconnect-service-table {
+        description
+          "List of Flexible XConnect Services";
+        container vlan-unaware-flexible-xconnect-services {
+          description
+            "List of Vlan-Unaware Flexible XConnect
+             Services";
+          list vlan-unaware-flexible-xconnect-service {
+            key "name";
+            description
+              "Flexible XConnect Service";
+            container vlan-unaware-fxc-attachment-circuits {
+              description
+                "List of attachment circuits";
+              list vlan-unaware-fxc-attachment-circuit {
+                key "name";
+                description
+                  "Attachment circuit interface";
+                leaf name {
+                  type xr:Interface-name;
+                  description
+                    "Name of the attachment circuit interface";
+                }
+              }
+            }
+            container vlan-unaware-fxc-pseudowire-evpns {
+              description
+                "List of EVPN Services";
+              list vlan-unaware-fxc-pseudowire-evpn {
+                key "eviid acid";
+                description
+                  "EVPN FXC Service Configuration";
+                leaf eviid {
+                  type Evpnvpnid-range;
+                  description
+                    "Ethernet VPN ID";
+                }
+                leaf acid {
+                  type Pseudowire-acid-range;
+                  description
+                    "AC ID";
+                }
+              }
+            }
+            leaf name {
+              type xr:Cisco-ios-xr-string {
+                length "1..23";
+              }
+              description
+                "Name of the Flexible XConnect Service";
+            }
+          }
+        }
+        container vlan-aware-flexible-xconnect-services {
+          description
+            "List of Vlan-Aware Flexible XConnect Services";
+          list vlan-aware-flexible-xconnect-service {
+            key "eviid";
+            description
+              "Flexible XConnect Service";
+            container vlan-aware-fxc-attachment-circuits {
+              description
+                "List of attachment circuits";
+              list vlan-aware-fxc-attachment-circuit {
+                key "name";
+                description
+                  "Attachment circuit interface";
+                leaf name {
+                  type xr:Interface-name;
+                  description
+                    "Name of the attachment circuit interface";
+                }
+              }
+            }
+            leaf eviid {
+              type Evpnvpnid-range;
+              description
+                "Ethernet VPN ID";
+            }
+          }
+        }
+      }
+      container redundancy {
+        description
+          "Redundancy groups";
+        container iccp-redundancy-groups {
+          description
+            "List of Inter-Chassis Communication Protocol
+             redundancy groups";
+          list iccp-redundancy-group {
+            key "group-id";
+            description
+              "ICCP Redundancy group";
+            container iccp-interfaces {
+              description
+                "List of interfaces";
+              list iccp-interface {
+                key "interface-name";
+                description
+                  "Interface name";
+                leaf secondary-vlan-range {
+                  type string;
+                  description
+                    "Secondary VLAN range, in the form of 1-3,5
+                     ,8-11";
+                }
+                leaf recovery-delay {
+                  type uint32 {
+                    range "30..3600";
+                  }
+                  default "180";
+                  description
+                    "Failure clear recovery delay";
+                }
+                leaf primary-vlan-range {
+                  type string;
+                  description
+                    "Primary VLAN range, in the form of 1-3,5
+                     ,8-11";
+                }
+                leaf mac-flush-tcn {
+                  type empty;
+                  description
+                    "Enable STP-TCN MAC flushing";
+                }
+                leaf interface-name {
+                  type xr:Interface-name;
+                  description
+                    "Interface name";
+                }
+              }
+            }
+            leaf multi-homing-node-id {
+              type uint32 {
+                range "0..254";
+              }
+              description
+                "ICCP-based service multi-homing node ID";
+            }
+            leaf group-id {
+              type uint32 {
+                range "1..4294967295";
+              }
+              description
+                "Group ID";
+            }
+          }
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable redundancy groups";
+        }
+      }
+    }
+    container pbb {
+      description
+        "L2VPN PBB Global";
+      leaf backbone-source-mac {
+        type yang:mac-address;
+        description
+          "Backbone Source MAC";
+      }
+    }
+    container auto-discovery {
+      description
+        "Global auto-discovery attributes";
+      container bgp-signaling {
+        description
+          "Global bgp signaling attributes";
+        leaf mtu-mismatch-ignore {
+          type empty;
+          description
+            "Ignore MTU mismatch for auto-discovered
+             pseudowires";
+        }
+      }
+    }
+    container utility {
+      description
+        "L2VPN utilities";
+      container logging {
+        description
+          "L2VPN logging utility";
+        leaf bridge-domain-state-change {
+          type empty;
+          description
+            "Enable Bridge Domain state change logging";
+        }
+        leaf pseudowire-state-change {
+          type empty;
+          description
+            "Enable pseudowire state change logging";
+        }
+        leaf vfi {
+          type empty;
+          description
+            "Enable VFI state change logging";
+        }
+        leaf nsr-state-change {
+          type empty;
+          description
+            "Enable Non Stop Routing state change logging";
+        }
+        leaf pwhe-replication-state-change {
+          type empty;
+          description
+            "Enable PW-HE Replication state change logging";
+        }
+      }
+    }
+    container snmp {
+      description
+        "SNMP related configuration";
+      container mib {
+        description
+          "MIB related configuration";
+        container mib-interface {
+          description
+            "Interface related configuration for MIB";
+          container format {
+            description
+              "MIB interface name output format";
+            leaf external-interface-format {
+              type empty;
+              description
+                "Set MIB interface name output in slash
+                 format (/)";
+            }
+          }
+        }
+        container mib-pseudowire {
+          description
+            "Pseudowire related configuration for MIB";
+          leaf statistics {
+            type empty;
+            description
+              "Enable pseudowire statistics in MIB output";
+          }
+        }
+      }
+    }
+    leaf nsr {
+      type empty;
+      description
+        "Enable Non-Stop Routing";
+    }
+    leaf mtu-mismatch-ignore {
+      type empty;
+      description
+        "Ignore MTU Mismatch for XCs";
+    }
+    leaf tcn-propagation {
+      type empty;
+      description
+        "Topology change notification propagation";
+    }
+    leaf pwoam-refresh {
+      type uint32 {
+        range "1..4095";
+      }
+      units "second";
+      description
+        "Configure PW OAM refresh interval";
+    }
+    leaf load-balance {
+      type Load-balance;
+      description
+        "Enable flow load balancing on l2vpn bridges";
+    }
+    leaf mspw-description {
+      type string {
+        length "1..64";
+      }
+      description
+        "MS-PW global description";
+    }
+    leaf mac-limit-threshold {
+      type Mac-limit-threshold-range;
+      units "percentage";
+      description
+        "Configure MAC limit threshold percent";
+    }
+    leaf pw-status-disable {
+      type empty;
+      description
+        "Disable PW status";
+    }
+    leaf enable {
+      type empty;
+      description
+        "Enable L2VPN feature";
+    }
+    leaf pw-grouping {
+      type empty;
+      description
+        "Enable PW grouping";
+    }
+    leaf capability {
+      type L2vpn-capability-mode;
+      description
+        "L2VPN Capability Mode";
+    }
+    leaf l2vpn-router-id {
+      type inet:ipv4-address-no-zone;
+      description
+        "Global L2VPN Router ID";
+    }
+  }
+  container generic-interface-lists {
+    description
+      "generic interface lists";
+    list generic-interface-list {
+      key "generic-interface-list-name";
+      description
+        "Generic interface list";
+      container interfaces {
+        description
+          "Interface table";
+        list interface {
+          key "interface-name";
+          description
+            "Interface";
+          leaf enable {
+            type empty;
+            description
+              "Enable interface";
+          }
+          leaf interface-name {
+            type xr:Interface-name;
+            description
+              "Name of the interface";
+          }
+        }
+      }
+      leaf enable {
+        type empty;
+        description
+          "Enable interface list";
+      }
+      leaf generic-interface-list-name {
+        type xr:Cisco-ios-xr-string {
+          length "1..32";
+        }
+        description
+          "Name of the interface list";
+      }
+    }
+  }
+  container evpn {
+    description
+      "evpn";
+    container evpn-tables {
+      description
+        "EVPN submodes";
+      container evpn-timers {
+        description
+          "Enter EVPN timers configuration submode";
+        leaf evpn-carving {
+          type uint32 {
+            range "0..10";
+          }
+          default "0";
+          description
+            "Global Carving timer";
+        }
+        leaf evpn-recovery {
+          type uint32 {
+            range "20..3600";
+          }
+          default "30";
+          description
+            "Global Recovery timer";
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable EVPN timers";
+        }
+        leaf evpn-peering {
+          type uint32 {
+            range "0..300";
+          }
+          default "3";
+          description
+            "Global Peering timer";
+        }
+      }
+      container evpnmac {
+        description
+          "EVPN MAC Configuration";
+        container evpnmac-secure {
+          description
+            "EVPN MAC Secure Configuration";
+          leaf evpnmac-secure-freeze-time {
+            type Freeze-time-range;
+            description
+              "Length of time to lock the MAC after a MAC
+               security violation";
+          }
+          leaf enable {
+            type empty;
+            description
+              "Enable EVPN MAC Secure Configuration";
+          }
+          leaf evpnmac-secure-retry-count {
+            type Retry-count-range;
+            description
+              "Number of times to unfreeze a MAC before
+               permanently freezing it";
+          }
+          leaf evpnmac-secure-move-count {
+            type Move-count-range;
+            description
+              "Number of moves to occur within the move
+               interval before locking the MAC";
+          }
+          leaf evpnmac-secure-move-interval {
+            type Move-interval-range;
+            description
+              "Interval to watch for subsequent MAC moves
+               before locking the MAC";
+          }
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable EVPN MAC Configuration";
+        }
+      }
+      container evpn-evis {
+        description
+          "Enter EVPN Instance configuration submode";
+        list evpn-evi {
+          key "eviid";
+          description
+            "Enter EVPN Instance configuration submode";
+          container evi-load-balancing {
+            description
+              "Enter Loadbalancing configuration submode";
+            leaf enable {
+              type empty;
+              description
+                "Enable Loadbalancing";
+            }
+            uses EVI-STATIC-FLOW-LABEL;
+          }
+          container evpn-evi-bgp-auto-discovery {
+            description
+              "Enable Autodiscovery BGP in EVPN Instance";
+            leaf enable {
+              type empty;
+              description
+                "Enable Autodiscovery BGP";
+            }
+            uses TABLE-POLICY;
+            uses EVPN-ROUTE-DISTINGUISHER;
+            uses EVPN-ROUTE-TARGET-TABLE;
+          }
+          container evi-advertise-mac {
+            description
+              "Enter Advertise local MAC-only routes
+               configuration submode";
+            leaf enable {
+              type empty;
+              description
+                "Enable Advertise local MAC-only routes";
+            }
+            uses EVI-ADVERTISE-MAC-BVI;
+          }
+          leaf eviid {
+            type Evpnvpnid-range;
+            description
+              "EVI ID";
+          }
+          uses EVI-REORIG-DISABLE;
+          uses EVI-ADVERTISE-MAC-DEPRECATED;
+          uses EVPN-EVI-DESCRIPTION;
+          uses EVI-ECMP-DISABLE;
+          uses EVI-UNKNOWN-UNICAST-FLOODING-DISABLE;
+          uses EVPN-EVI-CW-DISABLE;
+        }
+      }
+      container evpn-virtual-access-vfis {
+        description
+          "Virtual Access VFI interfaces";
+        list evpn-virtual-access-vfi {
+          key "name";
+          description
+            "Virtual Access VFI";
+          container evpn-virtual-access-vfi-timers {
+            description
+              "Enter Virtual Forwarding Interface timers
+               configuration submode";
+            leaf evpn-virtual-access-vfi-recovery {
+              type uint32 {
+                range "20..3600";
+              }
+              default "30";
+              description
+                "Virtual Forwarding Interface-specific
+                 Recovery timer";
+            }
+            leaf evpn-virtual-access-vfi-peering {
+              type uint32 {
+                range "0..300";
+              }
+              default "3";
+              description
+                "Virtual Forwarding Interface-specific
+                 Peering timer";
+            }
+            leaf evpn-virtual-access-vfi-carving {
+              type uint32 {
+                range "0..10";
+              }
+              default "0";
+              description
+                "Virtual Forwarding Interface-specific
+                 Carving timer";
+            }
+            leaf enable {
+              type empty;
+              description
+                "Enable Virtual Forwarding Interface timers";
+            }
+          }
+          leaf name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of the Virtual Access VFI";
+          }
+          uses EVPN-VIRTUAL-ETHERNET-SEGMENT;
+        }
+      }
+      container evpn-load-balancing {
+        description
+          "Enter EVPN Loadbalancing configuration submode";
+        leaf evpn-static-flow-label {
+          type empty;
+          description
+            "Enable Static Flow Label based load balancing";
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable EVPN Loadbalancing";
+        }
+      }
+      container evpn-bgp-auto-discovery {
+        description
+          "Enable Autodiscovery BGP in EVPN";
+        leaf enable {
+          type empty;
+          description
+            "Enable Autodiscovery BGP";
+        }
+        uses EVPN-ROUTE-DISTINGUISHER;
+      }
+      container evpn-groups {
+        description
+          "Enter EVPN Group Table submode";
+        list evpn-group {
+          key "group-id";
+          description
+            "Enter EVPN Group submode";
+          container evpn-group-core-interfaces {
+            description
+              "EVPN Group core interfaces";
+            list evpn-group-core-interface {
+              key "interface-name";
+              description
+                "EVPN Group Core interface";
+              leaf interface-name {
+                type xr:Interface-name;
+                description
+                  "Name of the EVPN Group core interface";
+              }
+            }
+          }
+          leaf group-id {
+            type Evpn-group-id-range;
+            description
+              "Group ID";
+          }
+        }
+      }
+      container evpn-instances {
+        description
+          "Enter EVPN Instance configuration submode";
+        list evpn-instance {
+          key "eviid encapsulation side";
+          description
+            "Enter EVPN Instance configuration submode";
+          container evpn-instance-bgp-auto-discovery {
+            description
+              "Enable Autodiscovery BGP in EVPN Instance";
+            leaf enable {
+              type empty;
+              description
+                "Enable Autodiscovery BGP";
+            }
+            uses TABLE-POLICY;
+            uses EVPN-ROUTE-DISTINGUISHER;
+            uses EVPN-ROUTE-TARGET-TABLE;
+          }
+          container evpn-instance-advertise-mac {
+            description
+              "Enter Advertise local MAC-only routes
+               configuration submode";
+            leaf enable {
+              type empty;
+              description
+                "Enable Advertise local MAC-only routes";
+            }
+            uses EVI-ADVERTISE-MAC-BVI;
+          }
+          container evpn-instance-load-balancing {
+            description
+              "Enter Loadbalancing configuration submode";
+            leaf enable {
+              type empty;
+              description
+                "Enable Loadbalancing";
+            }
+            uses EVI-STATIC-FLOW-LABEL;
+          }
+          leaf eviid {
+            type Evpnvpnid-range;
+            description
+              "EVPN Instance ID";
+          }
+          leaf encapsulation {
+            type Evpn-encapsulation;
+            description
+              "EVPN Instance Encapsulation";
+          }
+          leaf side {
+            type Evpn-side;
+            description
+              "EVPN Instance Side";
+          }
+          uses EVI-REORIG-DISABLE;
+          uses EVI-ADVERTISE-MAC-DEPRECATED;
+          uses EVPN-EVI-DESCRIPTION;
+          uses EVI-ECMP-DISABLE;
+          uses EVI-UNKNOWN-UNICAST-FLOODING-DISABLE;
+          uses EVPN-EVI-CW-DISABLE;
+        }
+      }
+      container evpn-logging {
+        description
+          "Enter EVPN Logging configuration submode";
+        leaf evpn-df-election {
+          type empty;
+          description
+            "Enable Designated Forwarder election logging";
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable EVPN Logging";
+        }
+      }
+      container evpn-interfaces {
+        description
+          "Attachment Circuit interfaces";
+        list evpn-interface {
+          key "interface-name";
+          description
+            "Attachment circuit interface";
+          container evpnac-timers {
+            description
+              "Enter Interface-specific timers configuration
+               submode";
+            leaf evpnac-peering {
+              type uint32 {
+                range "0..300";
+              }
+              default "3";
+              description
+                "Interface-specific Peering timer";
+            }
+            leaf evpnac-carving {
+              type uint32 {
+                range "0..10";
+              }
+              default "0";
+              description
+                "Interface-specific Carving timer";
+            }
+            leaf enable {
+              type empty;
+              description
+                "Enable Interface-specific timers";
+            }
+            leaf evpnac-recovery {
+              type uint32 {
+                range "20..3600";
+              }
+              default "30";
+              description
+                "Interface-specific Recovery timer";
+            }
+          }
+          container ethernet-segment {
+            description
+              "Enter Ethernet Segment configuration submode";
+            leaf force-single-homed {
+              type empty;
+              description
+                "Force ethernet segment to remain
+                 single-homed";
+            }
+            leaf load-balancing-mode {
+              type Ethernet-segment-load-balance;
+              description
+                "Ethernet-Segment Load Balancing mode";
+            }
+            leaf enable {
+              type empty;
+              description
+                "Enable Ethernet Segment";
+            }
+            leaf backbone-source-mac {
+              type yang:mac-address;
+              description
+                "Backbone Source MAC";
+            }
+            uses ES-IMPORT-ROUTE-TARGET;
+            uses IDENTIFIER;
+            uses MANUAL-SERVICE-CARVING;
+          }
+          leaf evpn-core-isolation-group {
+            type Evpn-core-group-id-range;
+            description
+              "Enter EVPN Core Isolation Group ID";
+          }
+          leaf mac-flush {
+            type Mac-flush-mode;
+            description
+              "Enable MAC Flushing";
+          }
+          leaf interface-name {
+            type xr:Interface-name;
+            description
+              "Name of the attachment circuit interface";
+          }
+        }
+      }
+      container evpn-virtual-access-pws {
+        description
+          "Virtual Access Pseudowire interfaces";
+        list evpn-virtual-access-pw {
+          key "neighbor pseudowire-id";
+          description
+            "Virtual Access Pseudowire";
+          container evpn-virtual-access-pw-timers {
+            description
+              "Enter Virtual Access Pseudowire-specific
+               timers configuration submode";
+            leaf evpn-virtual-access-pw-recovery {
+              type uint32 {
+                range "20..3600";
+              }
+              default "30";
+              description
+                "Virtual Access Pseudowire-specific Recovery
+                 timer";
+            }
+            leaf evpn-virtual-access-pw-peering {
+              type uint32 {
+                range "0..300";
+              }
+              default "3";
+              description
+                "Virtual Access Pseudowire-specific Peering
+                 timer";
+            }
+            leaf enable {
+              type empty;
+              description
+                "Enable Virtual Access Pseudowire-specific
+                 timers";
+            }
+            leaf evpn-virtual-access-pw-carving {
+              type uint32 {
+                range "0..10";
+              }
+              default "0";
+              description
+                "Virtual Access Pseudowire-specific Carving
+                 timer";
+            }
+          }
+          leaf neighbor {
+            type inet:ipv4-address-no-zone;
+            description
+              "Neighbor IP address";
+          }
+          leaf pseudowire-id {
+            type Pseudowire-id-range;
+            description
+              "Pseudowire ID";
+          }
+          uses EVPN-VIRTUAL-ETHERNET-SEGMENT;
+        }
+      }
+      container evpn-ethernet-segment {
+        description
+          "EVPN Global Ethernet Segment submode";
+        container evpn-esi-types {
+          description
+            "EVPN ESI type table";
+          list evpn-esi-type {
+            key "esi-type";
+            description
+              "ESI type";
+            leaf disable-auto-generation {
+              type empty;
+              description
+                "Disable ESI Autogeneration";
+            }
+            leaf esi-type {
+              type Evpn-esi-type-range;
+              description
+                "ESI type";
+            }
+          }
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable EVPN Global Ethernet Segment submode";
+        }
+      }
+      leaf evi-cost-out {
+        type empty;
+        description
+          "Configure node to cost-out";
+      }
+      leaf evpn-source-interface {
+        type xr:Interface-name;
+        description
+          "Configure EVPN router-id implicitly through
+           Loopback Interface";
+      }
+      leaf evpn-cost-in-startup {
+        type uint32 {
+          range "30..86400";
+        }
+        units "second";
+        description
+          "Cost-in node after given time (seconds) on
+           startup timer";
+      }
+    }
+    leaf enable {
+      type empty;
+      description
+        "Enable EVPN feature";
+    }
+  }
+}
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-snmp-agent-cfg@2015-10-27.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-snmp-agent-cfg@2015-10-27.yang
deleted file mode 100644 (file)
index b6e0748..0000000
+++ /dev/null
@@ -1,2142 +0,0 @@
-module Cisco-IOS-XR-snmp-agent-cfg {
-
-  /*** NAMESPACE / PREFIX DEFINITION ***/
-
-  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-snmp-agent-cfg";
-
-
-  prefix "snmp-agent-cfg";
-
-  /*** LINKAGE (IMPORTS / INCLUDES) ***/
-
-  import ietf-inet-types { prefix "inet"; }
-
-  import Cisco-IOS-XR-types { prefix "xr"; }
-
-  /*** META INFORMATION ***/
-
-  organization "Cisco Systems, Inc.";
-
-  contact
-    "Cisco Systems, Inc.
-     Customer Service
-
-     Postal: 170 West Tasman Drive
-     San Jose, CA 95134
-
-     Tel: +1 800 553-NETS
-
-     E-mail: cs-yang@cisco.com";
-
-  description 
-    "This module contains a collection of YANG definitions
-     for Cisco IOS-XR snmp-agent package configuration.
-
-     This module contains definitions
-     for the following management objects:
-       snmp: The heirarchy point for all the SNMP configurations
-       mib: mib
-
-     Copyright (c) 2013-2015 by Cisco Systems, Inc.
-     All rights reserved.";
-
-  revision "2015-10-27" {
-    description
-      "IOS XR 5.3.2 revision.";
-  }
-
-  revision "2015-01-07" {
-    description
-      "IOS XR 5.3.1 revision.";
-  }
-
-  typedef Snmp-tos {
-    type enumeration {
-      enum precedence {
-        value 0;
-        description "SNMP TOS type Precedence";
-      }
-      enum dscp {
-        value 1;
-        description "SNMP TOS type DSCP";
-      }
-    }
-    description "Snmp tos";
-  }
-  typedef Snmp-hash-algorithm {
-    type enumeration {
-      enum none {
-        value 0;
-        description "No authentication required";
-      }
-      enum md5 {
-        value 1;
-        description "Standard Message Digest algorithm";
-      }
-      enum sha {
-        value 2;
-        description "SHA algorithm";
-      }
-    }
-    description "Snmp hash algorithm";
-  }
-  typedef Snmp-priv-algorithm {
-    type enumeration {
-      enum none {
-        value 0;
-        description "No Privacy";
-      }
-      enum des {
-        value 1;
-        description "Des algorithm";
-      }
-      enum 3des {
-        value 2;
-        description "3des algorithm";
-      }
-      enum aes128 {
-        value 3;
-        description "aes128 algorithm";
-      }
-      enum aes192 {
-        value 4;
-        description "aes192 algorithm";
-      }
-      enum aes256 {
-        value 5;
-        description "aes256 algorithm";
-      }
-    }
-    description "Snmp priv algorithm";
-  }
-  typedef Snmp-owner-access {
-    type enumeration {
-      enum sdr-owner {
-        value 0;
-        description "Secure Domain Router Owner permissions";
-      }
-      enum system-owner {
-        value 1;
-        description "System owner permissions";
-      }
-    }
-    description "Snmp owner access";
-  }
-  typedef Snmp-bulkstat-schema {
-    type enumeration {
-      enum exact-interface {
-        value 1;
-        description "Exact Interface";
-      }
-      enum exact-oid {
-        value 2;
-        description "Exact OID";
-      }
-      enum wild-interface {
-        value 3;
-        description "Wild Interface";
-      }
-      enum wild-oid {
-        value 4;
-        description "Wild OID";
-      }
-      enum range-oid {
-        value 5;
-        description "Range of OID";
-      }
-      enum repeat-oid {
-        value 6;
-        description "Repeated the instance";
-      }
-    }
-    description "Snmp bulkstat schema";
-  }
-  typedef Snmpacl {
-    type enumeration {
-      enum ipv4 {
-        value 1;
-        description "Ipv4 Access-list";
-      }
-      enum ipv6 {
-        value 2;
-        description "Ipv6 Access-list";
-      }
-    }
-    description "Snmpacl";
-  }
-  typedef Snmp-dscp-value {
-    type union {
-      type enumeration {
-        enum default {
-          value 0;
-          description "Applicable to DSCP: bits 000000";
-        }
-        enum af11 {
-          value 10;
-          description "Applicable to DSCP: bits 001010";
-        }
-        enum af12 {
-          value 12;
-          description "Applicable to DSCP: bits 001100";
-        }
-        enum af13 {
-          value 14;
-          description "Applicable to DSCP: bits 001110";
-        }
-        enum af21 {
-          value 18;
-          description "Applicable to DSCP: bits 010010";
-        }
-        enum af22 {
-          value 20;
-          description "Applicable to DSCP: bits 010100";
-        }
-        enum af23 {
-          value 22;
-          description "Applicable to DSCP: bits 010110";
-        }
-        enum af31 {
-          value 26;
-          description "Applicable to DSCP: bits 011010";
-        }
-        enum af32 {
-          value 28;
-          description "Applicable to DSCP: bits 011100";
-        }
-        enum af33 {
-          value 30;
-          description "Applicable to DSCP: bits 011110";
-        }
-        enum af41 {
-          value 34;
-          description "Applicable to DSCP: bits 100010";
-        }
-        enum af42 {
-          value 36;
-          description "Applicable to DSCP: bits 100100";
-        }
-        enum af43 {
-          value 38;
-          description "Applicable to DSCP: bits 100110";
-        }
-        enum ef {
-          value 46;
-          description "Applicable to DSCP: bits 101110";
-        }
-        enum cs1 {
-          value 8;
-          description "Applicable to DSCP: bits 001000";
-        }
-        enum cs2 {
-          value 16;
-          description "Applicable to DSCP: bits 010000";
-        }
-        enum cs3 {
-          value 24;
-          description "Applicable to DSCP: bits 011000";
-        }
-        enum cs4 {
-          value 32;
-          description "Applicable to DSCP: bits 100000";
-        }
-        enum cs5 {
-          value 40;
-          description "Applicable to DSCP: bits 101000";
-        }
-        enum cs6 {
-          value 48;
-          description "Applicable to DSCP: bits 110000";
-        }
-        enum cs7 {
-          value 56;
-          description "Applicable to DSCP: bits 111000";
-        }
-      }
-      type uint32 {
-        range "0..63";
-      }
-    }
-    description "Snmp dscp value";
-  }
-  typedef Snmp-precedence-value1 {
-    type union {
-      type enumeration {
-        enum routine {
-          value 0;
-          description "Applicable to Precedence: value 0";
-        }
-        enum priority {
-          value 1;
-          description "Applicable to Precedence: value 1";
-        }
-        enum immediate {
-          value 2;
-          description "Applicable to Precedence: value 2";
-        }
-        enum flash {
-          value 3;
-          description "Applicable to Precedence: value 3";
-        }
-        enum flash-override {
-          value 4;
-          description "Applicable to Precedence: value 4";
-        }
-        enum critical {
-          value 5;
-          description "Applicable to Precedence: value 5";
-        }
-        enum internet {
-          value 6;
-          description "Applicable to Precedence: value 6";
-        }
-        enum network {
-          value 7;
-          description "Applicable to Precedence: value 7";
-        }
-      }
-      type uint32 {
-        range "0..7";
-      }
-    }
-    description "Snmp precedence value1";
-  }
-  typedef Snmp-security-model {
-    type enumeration {
-      enum no-authentication {
-        value 0;
-        description "No Authentication required";
-      }
-      enum authentication {
-        value 1;
-        description
-          "Authentication password alone required for
-          access";
-      }
-      enum privacy {
-        value 2;
-        description
-          "Authentication and privacy password required
-          for access";
-      }
-    }
-    description "Snmp security model";
-  }
-  typedef Snmp-mib-view-inclusion {
-    type enumeration {
-      enum included {
-        value 1;
-        description "MIB View to be included";
-      }
-      enum excluded {
-        value 2;
-        description "MIB View to be excluded";
-      }
-    }
-    description "Snmp mib view inclusion";
-  }
-  typedef Snmp-bulkstat-file-format {
-    type enumeration {
-      enum schema-ascii {
-        value 1;
-        description "Tranfer file in schema Ascii format";
-      }
-      enum bulk-ascii {
-        value 2;
-        description "Tranfer file in Bulk Ascii format";
-      }
-      enum bulk-binary {
-        value 3;
-        description "Tranfer file in Bulk binary format";
-      }
-    }
-    description "Snmp bulkstat file format";
-  }
-  typedef Snmp-access-level {
-    type enumeration {
-      enum read-only {
-        value 0;
-        description "Read Only Access for a community string";
-      }
-      enum read-write {
-        value 1;
-        description "Read Write Access for a community string";
-      }
-    }
-    description "Snmp access level";
-  }
-  typedef Snmp-context {
-    type enumeration {
-      enum vrf {
-        value 1;
-        description "VRF feature";
-      }
-      enum bridge {
-        value 4;
-        description "BRIDGE feature";
-      }
-      enum ospf {
-        value 5;
-        description "OSPF feature";
-      }
-      enum ospfv3 {
-        value 6;
-        description "OSPFv3 feature";
-      }
-    }
-    description "Snmp context";
-  }
-  typedef Group-snmp-version {
-    type enumeration {
-      enum v1 {
-        value 0;
-        description "SNMP version 1";
-      }
-      enum v2c {
-        value 1;
-        description "SNMP version 2";
-      }
-      enum v3 {
-        value 2;
-        description "SNMP version 3";
-      }
-    }
-    description "Group snmp version";
-  }
-  typedef User-snmp-version {
-    type enumeration {
-      enum v1 {
-        value 1;
-        description "SNMP version 1";
-      }
-      enum v2c {
-        value 2;
-        description "SNMP version 2";
-      }
-      enum v3 {
-        value 3;
-        description "SNMP version 3";
-      }
-    }
-    description "User snmp version";
-  }
-
-  grouping APPLIED-TO {
-    description "Common node of rule, rule-set";
-
-    container applied-to {
-      xr:xr-xml-map "snmp_corr_cfg:AppliedTo";
-      description "Applied to the Rule or Ruleset";
-
-      container hosts {
-        xr:xr-xml-map "snmp_corr_cfg:HostTable";
-        description "Table of configured hosts to apply rules to";
-
-        list host {
-          xr:xr-xml-map "snmp_corr_cfg:Host";
-          key "ip-address port";
-          description "A destination host";
-          leaf ip-address {
-            xr:xr-xml-map "snmp_corr_cfg:IPAddress";
-            type inet:ip-address-no-zone;
-            description "IP address";
-          }
-          leaf port {
-            xr:xr-xml-map "snmp_corr_cfg:Port";
-            type xr:Cisco-ios-xr-port-number;
-            description "Port (specify 162 for default)";
-          }
-        }
-      }
-      leaf all {
-        xr:xr-xml-map "snmp_corr_cfg:All";
-        type empty;
-        description "Apply to all of the device";
-      }
-    }
-  }
-
-  grouping CONTEXT-TABLE {
-    description "Common node of snmp, vrf";
-
-    container contexts {
-      xr:xr-xml-map "snmp_cfg:ContextTable";
-      description "List of Context Names";
-
-      list context {
-        xr:xr-xml-map "snmp_cfg:Context";
-        xr:xr-cli-map "vrf <string> context <string> ";
-        xr:xr-cli-map "context <string> ";
-        key "context-name";
-        description "Context Name";
-        leaf context-name {
-          xr:xr-xml-map "snmp_cfg:ContextName";
-          type xr:Cisco-ios-xr-string;
-          description "Context Name";
-        }
-      }
-    }
-  }
-
-  grouping VAR-BIND-TABLE {
-    description "Common node of root-cause, non-root-cause";
-
-    container var-binds {
-      xr:xr-xml-map "snmp_corr_cfg:VarBindTable";
-      description "Varbinds to match";
-
-      list var-bind {
-        xr:xr-xml-map "snmp_corr_cfg:VarBind";
-        key "oid";
-        description "Varbind match conditions";
-
-        container match {
-          xr:xr-xml-map "snmp_corr_cfg:Match";
-          description "VarBind match conditions";
-          leaf value {
-            xr:xr-xml-map "snmp_corr_cfg:Value";
-            type string;
-            description "Regular Expression to match value";
-          }
-          leaf index {
-            xr:xr-xml-map "snmp_corr_cfg:Index";
-            type string;
-            description "Regular Expression to match index";
-          }
-        }
-        leaf oid {
-          xr:xr-xml-map "snmp_corr_cfg:OID";
-          type string;
-          description "OID of varbind (dotted decimal)";
-        }
-      }
-    }
-  }
-
-  grouping TRAP-HOST-TABLE {
-    description "Common node of snmp, vrf";
-
-    container trap-hosts {
-      xr:xr-xml-map "snmp_cfg:TrapHostTable";
-      description "Specify hosts to receive SNMP notifications";
-
-      list trap-host {
-        xr:xr-xml-map "snmp_cfg:TrapHost";
-        key "ip-address";
-        description "Specify hosts to receive SNMP notifications";
-
-        container encrypted-user-communities {
-          xr:xr-xml-map "snmp_cfg:EncryptedUserCommunityTable";
-          description
-            "Container class for defining Clear/encrypt
-            communities for a trap host";
-
-          list encrypted-user-community {
-            xr:xr-xml-map "snmp_cfg:EncryptedUserCommunity";
-            key "community-name";
-            description
-              "Clear/Encrypt Community name associated with
-              a trap host";
-            leaf community-name {
-              xr:xr-xml-map "snmp_cfg:CommunityName";
-              type xr:Cisco-ios-xr-string;
-              description
-                "SNMPv1/v2c community string or SNMPv3 user";
-            }
-            leaf port {
-              xr:xr-xml-map "snmp_cfg:Port";
-              type xr:Cisco-ios-xr-port-number;
-              description "UDP port number";
-            }
-            leaf version {
-              xr:xr-xml-map "snmp_cfg:Version";
-              type string;
-              mandatory true;
-              description "SNMP Version to be used v1/v2c/v3";
-            }
-            leaf security-level {
-              xr:xr-xml-map "snmp_cfg:SecurityLevel";
-              type Snmp-security-model;
-              description
-                "Security level to be used noauth/auth/priv";
-            }
-            leaf basic-trap-types {
-              xr:xr-xml-map "snmp_cfg:BasicTrapTypes";
-              type int32;
-              mandatory true;
-              description
-                "Number to signify the feature traps that
-                needs to be setBasicTrapTypes is used for
-                all traps except copy-completeSet this value
-                to an integer corresponding to the trapBGP
-                8192, CONFIG 4096,SYSLOG 131072,SNMP_TRAP
-                1COPY_COMPLETE_TRAP 64To provide a
-                combination of trap Add the respective
-                numbersValue must be set to 0 for all traps";
-            }
-            leaf advanced-trap-types1 {
-              xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes1";
-              type int32;
-              mandatory true;
-              description
-                "Number to signify the feature traps that
-                needs to be setUse this for providing
-                copy-complete trapValue must be set to 0 if
-                not used";
-            }
-            leaf advanced-trap-types2 {
-              xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes2";
-              type int32;
-              mandatory true;
-              description
-                "Number to signify the feature traps that
-                needs to be setvalue should always to set as
-                0";
-            }
-          }
-        }
-
-        container inform-host {
-          xr:xr-xml-map "snmp_cfg:InformHost";
-          description
-            "Container class for defining notification type
-            for a Inform host";
-
-          container inform-user-communities {
-            xr:xr-xml-map "snmp_cfg:InformUserCommunityTable";
-            description
-              "Container class for defining communities for
-              a inform host";
-
-            list inform-user-community {
-              xr:xr-xml-map "snmp_cfg:InformUserCommunity";
-              key "community-name";
-              description
-                "Unencrpted Community name associated with a
-                inform host";
-              leaf community-name {
-                xr:xr-xml-map "snmp_cfg:CommunityName";
-                type xr:Cisco-ios-xr-string {
-                  length "0..128";
-                }
-                description
-                  "SNMPv2c community string or SNMPv3 user";
-              }
-              leaf port {
-                xr:xr-xml-map "snmp_cfg:Port";
-                type xr:Cisco-ios-xr-port-number;
-                description "UDP port number";
-              }
-              leaf version {
-                xr:xr-xml-map "snmp_cfg:Version";
-                type string;
-                mandatory true;
-                description "SNMP Version to be used v2c/v3";
-              }
-              leaf security-level {
-                xr:xr-xml-map "snmp_cfg:SecurityLevel";
-                type Snmp-security-model;
-                description
-                  "Security level to be used noauth/auth/priv";
-              }
-              leaf basic-trap-types {
-                xr:xr-xml-map "snmp_cfg:BasicTrapTypes";
-                type int32;
-                mandatory true;
-                description
-                  "Number to signify the feature traps that
-                  needs to be setBasicTrapTypes is used for
-                  all traps except copy-completeSet this
-                  value to an integer corresponding to the
-                  trapBGP 8192, CONFIG 4096,SYSLOG 131072
-                  ,SNMP_TRAP 1COPY_COMPLETE_TRAP 64To provide
-                  a combination of trap Add the respective
-                  numbersValue must be set to 0 for all traps";
-              }
-              leaf advanced-trap-types1 {
-                xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes1";
-                type int32;
-                mandatory true;
-                description
-                  "Number to signify the feature traps that
-                  needs to be setUse this for providing
-                  copy-complete trapValue must be set to 0 if
-                  not used";
-              }
-              leaf advanced-trap-types2 {
-                xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes2";
-                type int32;
-                mandatory true;
-                description
-                  "Number to signify the feature traps that
-                  needs to be setvalue should always to set
-                  as 0";
-              }
-            }
-          }
-
-          container inform-encrypted-user-communities {
-            xr:xr-xml-map "snmp_cfg:InformEncryptedUserCommunityTab"+
-              "le";
-            description
-              "Container class for defining Clear/encrypt
-              communities for a inform host";
-
-            list inform-encrypted-user-community {
-              xr:xr-xml-map "snmp_cfg:InformEncryptedUserCommunity";
-              key "community-name";
-              description
-                "Clear/Encrypt Community name associated with
-                a inform host";
-              leaf community-name {
-                xr:xr-xml-map "snmp_cfg:CommunityName";
-                type xr:Cisco-ios-xr-string;
-                description
-                  "SNMPv2c community string or SNMPv3 user";
-              }
-              leaf port {
-                xr:xr-xml-map "snmp_cfg:Port";
-                type xr:Cisco-ios-xr-port-number;
-                description "UDP port number";
-              }
-              leaf version {
-                xr:xr-xml-map "snmp_cfg:Version";
-                type string;
-                mandatory true;
-                description "SNMP Version to be used v2c/v3";
-              }
-              leaf security-level {
-                xr:xr-xml-map "snmp_cfg:SecurityLevel";
-                type Snmp-security-model;
-                description
-                  "Security level to be used noauth/auth/priv";
-              }
-              leaf basic-trap-types {
-                xr:xr-xml-map "snmp_cfg:BasicTrapTypes";
-                type int32;
-                mandatory true;
-                description
-                  "Number to signify the feature traps that
-                  needs to be setBasicTrapTypes is used for
-                  all traps except copy-completeSet this
-                  value to an integer corresponding to the
-                  trapBGP 8192, CONFIG 4096,SYSLOG 131072
-                  ,SNMP_TRAP 1COPY_COMPLETE_TRAP 64To provide
-                  a combination of trap Add the respective
-                  numbersValue must be set to 0 for all traps";
-              }
-              leaf advanced-trap-types1 {
-                xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes1";
-                type int32;
-                mandatory true;
-                description
-                  "Number to signify the feature traps that
-                  needs to be setUse this for providing
-                  copy-complete trapValue must be set to 0 if
-                  not used";
-              }
-              leaf advanced-trap-types2 {
-                xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes2";
-                type int32;
-                mandatory true;
-                description
-                  "Number to signify the feature traps that
-                  needs to be setvalue should always to set
-                  as 0";
-              }
-            }
-          }
-        }
-
-        container default-user-communities {
-          xr:xr-xml-map "snmp_cfg:DefaultUserCommunityTable";
-          description
-            "Container class for defining communities for a
-            trap host";
-
-          list default-user-community {
-            xr:xr-xml-map "snmp_cfg:DefaultUserCommunity";
-            key "community-name";
-            description
-              "Unencrpted Community name associated with a
-              trap host";
-            leaf community-name {
-              xr:xr-xml-map "snmp_cfg:CommunityName";
-              type xr:Cisco-ios-xr-string {
-                length "0..128";
-              }
-              description
-                "SNMPv1/v2c community string or SNMPv3 user";
-            }
-            leaf port {
-              xr:xr-xml-map "snmp_cfg:Port";
-              type xr:Cisco-ios-xr-port-number;
-              description "UDP port number";
-            }
-            leaf version {
-              xr:xr-xml-map "snmp_cfg:Version";
-              type string;
-              mandatory true;
-              description "SNMP Version to be used v1/v2c/v3";
-            }
-            leaf security-level {
-              xr:xr-xml-map "snmp_cfg:SecurityLevel";
-              type Snmp-security-model;
-              description
-                "Security level to be used noauth/auth/priv";
-            }
-            leaf basic-trap-types {
-              xr:xr-xml-map "snmp_cfg:BasicTrapTypes";
-              type int32;
-              mandatory true;
-              description
-                "Number to signify the feature traps that
-                needs to be setBasicTrapTypes is used for
-                all traps except copy-completeSet this value
-                to an integer corresponding to the trapBGP
-                8192, CONFIG 4096,SYSLOG 131072,SNMP_TRAP
-                1COPY_COMPLETE_TRAP 64To provide a
-                combination of trap Add the respective
-                numbersValue must be set to 0 for all traps";
-            }
-            leaf advanced-trap-types1 {
-              xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes1";
-              type int32;
-              mandatory true;
-              description
-                "Number to signify the feature traps that
-                needs to be setUse this for providing
-                copy-complete trapValue must be set to 0 if
-                not used";
-            }
-            leaf advanced-trap-types2 {
-              xr:xr-xml-map "snmp_cfg:AdvancedTrapTypes2";
-              type int32;
-              mandatory true;
-              description
-                "Number to signify the feature traps that
-                needs to be setvalue should always to set as
-                0";
-            }
-          }
-        }
-        leaf ip-address {
-          xr:xr-xml-map "snmp_cfg:IPAddress";
-          type inet:ip-address-no-zone;
-          description "IP address of SNMP notification host";
-        }
-      }
-    }
-  }
-
-  grouping CONTEXT-MAPPING-TABLE {
-    description "Common node of snmp, vrf";
-
-    container context-mappings {
-      xr:xr-xml-map "snmp_cfg:ContextMappingTable";
-      description "List of context names";
-
-      list context-mapping {
-        xr:xr-xml-map "snmp_cfg:ContextMapping";
-        xr:xr-cli-map "context mapping <string> [feature <enum> (in"+
-          "stance <string>)|(vrf <string>)|(topology <string>)] ";
-        key "context-mapping-name";
-        description "Context mapping name";
-        leaf context-mapping-name {
-          xr:xr-xml-map "snmp_cfg:ContextMappingName";
-          type xr:Cisco-ios-xr-string;
-          description "Context mapping name";
-        }
-        leaf context {
-          xr:xr-xml-map "snmp_cfg:Context";
-          type Snmp-context;
-          description "SNMP context feature type";
-        }
-        leaf instance-name {
-          xr:xr-xml-map "snmp_cfg:InstanceName";
-          type string;
-          description "OSPF protocol instance";
-        }
-        leaf vrf-name {
-          xr:xr-xml-map "snmp_cfg:VRFName";
-          type string;
-          description "VRF name associated with the context";
-        }
-        leaf topology-name {
-          xr:xr-xml-map "snmp_cfg:TopologyName";
-          type string;
-          description "Topology name associated with the context";
-        }
-      }
-    }
-  }
-
-  container snmp {
-    xr:xr-xml-map "snmp_cfg:SNMP";
-    description
-      "The heirarchy point for all the SNMP
-      configurations";
-
-    container encrypted-community-maps {
-      xr:xr-xml-map "snmp_cfg:EncryptedCommunityMapTable";
-      description
-        "Container class to hold clear/encrypted
-        communitie maps";
-
-      list encrypted-community-map {
-        xr:xr-xml-map "snmp_cfg:EncryptedCommunityMap";
-        key "community-name";
-        description "Clear/encrypted SNMP community map";
-        leaf community-name {
-          xr:xr-xml-map "snmp_cfg:CommunityName";
-          type xr:Cisco-ios-xr-string;
-          description "SNMP community map";
-        }
-        leaf context {
-          xr:xr-xml-map "snmp_cfg:Context";
-          type string;
-          description "SNMP Context Name ";
-        }
-        leaf security {
-          xr:xr-xml-map "snmp_cfg:Security";
-          type string;
-          description "SNMP Security Name ";
-        }
-        leaf target-list {
-          xr:xr-xml-map "snmp_cfg:TargetList";
-          type string;
-          description "target list name ";
-        }
-      }
-    }
-
-    container views {
-      xr:xr-xml-map "snmp_cfg:ViewTable";
-      description "Class to configure a SNMPv2 MIB view";
-
-      list view {
-        xr:xr-xml-map "snmp_cfg:View";
-        xr:xr-cli-map "view <string> <string> (included)|(excluded)"+
-          " ";
-        key "view-name family";
-        description "Name of the view";
-        leaf view-name {
-          xr:xr-xml-map "snmp_cfg:ViewName";
-          type xr:Cisco-ios-xr-string;
-          description "Name of the view";
-        }
-        leaf family {
-          xr:xr-xml-map "snmp_cfg:Family";
-          type string;
-          description "MIB view family name";
-        }
-        leaf view-inclusion {
-          xr:xr-xml-map "snmp_cfg:ViewInclusion";
-          type Snmp-mib-view-inclusion;
-          mandatory true;
-          description "MIB view to be included or excluded";
-        }
-      }
-    }
-
-    container logging {
-      xr:xr-xml-map "snmp_cfg:Logging";
-      description "SNMP logging";
-
-      container threshold {
-        xr:xr-xml-map "snmp_cfg:Threshold";
-        description "SNMP logging threshold";
-        leaf oid-processing {
-          xr:xr-xml-map "snmp_cfg:OIDProcessing";
-          xr:xr-cli-map "logging threshold oid-processing <number> ";
-          type uint32 {
-            range "0..20000";
-          }
-          default "500";
-          description "SNMP logging threshold for OID processing";
-        }
-        leaf pdu-processing {
-          xr:xr-xml-map "snmp_cfg:PDUProcessing";
-          xr:xr-cli-map "logging threshold pdu-processing <number> ";
-          type uint32 {
-            range "0..20000";
-          }
-          default "20000";
-          description "SNMP logging threshold for PDU processing";
-        }
-      }
-    }
-
-    container administration {
-      xr:xr-xml-map "snmp_cfg:Administration";
-      description "Container class for SNMP administration";
-
-      container default-communities {
-        xr:xr-xml-map "snmp_cfg:DefaultCommunityTable";
-        description
-          "Container class to hold unencrpted communities";
-
-        list default-community {
-          xr:xr-xml-map "snmp_cfg:DefaultCommunity";
-          key "community-name";
-          description
-            "Unencrpted SNMP community string and access
-            priviledges";
-          leaf community-name {
-            xr:xr-xml-map "snmp_cfg:CommunityName";
-            type string {
-              length "0..128";
-            }
-            description "SNMP community string";
-          }
-          leaf priviledge {
-            xr:xr-xml-map "snmp_cfg:Priviledge";
-            type Snmp-access-level;
-            description "Read/Write Access";
-          }
-          leaf view-name {
-            xr:xr-xml-map "snmp_cfg:ViewName";
-            type string;
-            description
-              "MIB view to which the community has access";
-          }
-          leaf v4acl-type {
-            xr:xr-xml-map "snmp_cfg:V4ACLType";
-            type Snmpacl;
-            description "Access-list type";
-          }
-          leaf v4-access-list {
-            xr:xr-xml-map "snmp_cfg:V4AccessList";
-            type string;
-            description "Ipv4 Access-list name";
-          }
-          leaf v6acl-type {
-            xr:xr-xml-map "snmp_cfg:V6ACLType";
-            type Snmpacl;
-            description "Access-list type";
-          }
-          leaf v6-access-list {
-            xr:xr-xml-map "snmp_cfg:V6AccessList";
-            type string;
-            description "Ipv6 Access-list name";
-          }
-          leaf owner {
-            xr:xr-xml-map "snmp_cfg:Owner";
-            type Snmp-owner-access;
-            description "Logical Router or System owner access";
-          }
-        }
-      }
-
-      container encrypted-communities {
-        xr:xr-xml-map "snmp_cfg:EncryptedCommunityTable";
-        description
-          "Container class to hold clear/encrypted
-          communities";
-
-        list encrypted-community {
-          xr:xr-xml-map "snmp_cfg:EncryptedCommunity";
-          key "community-name";
-          description
-            "Clear/encrypted SNMP community string and
-            access priviledges";
-          leaf community-name {
-            xr:xr-xml-map "snmp_cfg:CommunityName";
-            type xr:Cisco-ios-xr-string;
-            description "SNMP community string";
-          }
-          leaf priviledge {
-            xr:xr-xml-map "snmp_cfg:Priviledge";
-            type Snmp-access-level;
-            description "Read/Write Access";
-          }
-          leaf view-name {
-            xr:xr-xml-map "snmp_cfg:ViewName";
-            type string;
-            description
-              "MIB view to which the community has access";
-          }
-          leaf v4acl-type {
-            xr:xr-xml-map "snmp_cfg:V4ACLType";
-            type Snmpacl;
-            description "Access-list type";
-          }
-          leaf v4-access-list {
-            xr:xr-xml-map "snmp_cfg:V4AccessList";
-            type string;
-            description "Ipv4 Access-list name";
-          }
-          leaf v6acl-type {
-            xr:xr-xml-map "snmp_cfg:V6ACLType";
-            type Snmpacl;
-            description "Access-list type";
-          }
-          leaf v6-access-list {
-            xr:xr-xml-map "snmp_cfg:V6AccessList";
-            type string;
-            description "Ipv6 Access-list name";
-          }
-          leaf owner {
-            xr:xr-xml-map "snmp_cfg:Owner";
-            type Snmp-owner-access;
-            description "Logical Router or System owner access";
-          }
-        }
-      }
-    }
-
-    container agent {
-      xr:xr-xml-map "snmp_cfg:Agent";
-      description
-        "The heirarchy point for SNMP Agent
-        configurations";
-
-      container engine-id {
-        xr:xr-xml-map "snmp_cfg:EngineID";
-        description "SNMPv3 engineID";
-
-        container remotes {
-          xr:xr-xml-map "snmp_cfg:RemoteTable";
-          description "SNMPv3 remote SNMP Entity";
-
-          list remote {
-            xr:xr-xml-map "snmp_cfg:Remote";
-            xr:xr-cli-map "engineID remote <IPv4"+
-              "/IPv6 address> <string> [udp-port <number>] ";
-            key "remote-address";
-            description "engineID of the remote agent";
-            leaf remote-address {
-              xr:xr-xml-map "snmp_cfg:RemoteAddress";
-              type inet:ip-address-no-zone;
-              description "IP address of remote SNMP entity";
-            }
-            leaf remote-engine-id {
-              xr:xr-xml-map "snmp_cfg:RemoteEngineID";
-              type string;
-              description "engine ID octet string";
-            }
-            leaf port {
-              xr:xr-xml-map "snmp_cfg:Port";
-              type xr:Cisco-ios-xr-port-number;
-              description "UDP port number";
-            }
-          }
-        }
-        leaf local {
-          xr:xr-xml-map "snmp_cfg:Local";
-          xr:xr-cli-map "engineID local <string> ";
-          type string;
-          description "engineID of the local agent";
-        }
-      }
-    }
-
-    container trap {
-      xr:xr-xml-map "snmp_cfg:Trap";
-      description "Class to hold trap configurations";
-      leaf timeout {
-        xr:xr-xml-map "snmp_cfg:Timeout";
-        xr:xr-cli-map "trap-timeout <number> ";
-        type uint32 {
-          range "1..1000";
-        }
-        description "Timeout for TRAP message retransmissions";
-      }
-      leaf throttle-time {
-        xr:xr-xml-map "snmp_cfg:ThrottleTime";
-        xr:xr-cli-map "throttle-time <number> ";
-        type uint32 {
-          range "10..500";
-        }
-        units "millisecond";
-        description "Set throttle time for handling traps";
-      }
-      leaf queue-length {
-        xr:xr-xml-map "snmp_cfg:QueueLength";
-        xr:xr-cli-map "queue-length <number> ";
-        type uint32 {
-          range "1..5000";
-        }
-        description "Message queue length for each TRAP host";
-      }
-    }
-
-    container ipv6 {
-      xr:xr-xml-map "snmp_cfg:IPv6";
-      description "SNMP TOS bit for outgoing packets";
-
-      container tos {
-        xr:xr-xml-map "snmp_cfg:TOS";
-        description "Type of TOS";
-        leaf type {
-          xr:xr-xml-map "snmp_cfg:Type";
-          type Snmp-tos;
-          description "SNMP TOS type DSCP or Precedence";
-        }
-        leaf precedence {
-          xr:xr-xml-map "snmp_cfg:Precedence";
-          when "../type = 'precedence'" {
-            description "../Type = Precedence";
-          }
-          type Snmp-precedence-value1;
-          description "SNMP Precedence value";
-        }
-        leaf dscp {
-          xr:xr-xml-map "snmp_cfg:DSCP";
-          when "../type = 'dscp'" {
-            description "../Type = DSCP";
-          }
-          type Snmp-dscp-value;
-          description "SNMP DSCP value";
-        }
-      }
-    }
-
-    container ipv4 {
-      xr:xr-xml-map "snmp_cfg:IPv4";
-      description "SNMP TOS bit for outgoing packets";
-
-      container tos {
-        xr:xr-xml-map "snmp_cfg:TOS";
-        description "Type of TOS";
-        leaf type {
-          xr:xr-xml-map "snmp_cfg:Type";
-          type Snmp-tos;
-          description "SNMP TOS type DSCP or Precedence";
-        }
-        leaf precedence {
-          xr:xr-xml-map "snmp_cfg:Precedence";
-          when "../type = 'precedence'" {
-            description "../Type = Precedence";
-          }
-          type Snmp-precedence-value1;
-          description "SNMP Precedence value";
-        }
-        leaf dscp {
-          xr:xr-xml-map "snmp_cfg:DSCP";
-          when "../type = 'dscp'" {
-            description "../Type = DSCP";
-          }
-          type Snmp-dscp-value;
-          description "SNMP DSCP value";
-        }
-      }
-    }
-
-    container system {
-      xr:xr-xml-map "snmp_cfg:System";
-      description "container to hold system information";
-      leaf chassis-id {
-        xr:xr-xml-map "snmp_cfg:ChassisID";
-        xr:xr-cli-map "chassis-id <text> ";
-        type string {
-          length "0..255";
-        }
-        description "String to uniquely identify this chassis";
-      }
-      leaf location {
-        xr:xr-xml-map "snmp_cfg:Location";
-        xr:xr-cli-map "location <text> ";
-        type string {
-          length "0..255";
-        }
-        description "The physical location of this node";
-      }
-      leaf contact {
-        xr:xr-xml-map "snmp_cfg:Contact";
-        xr:xr-cli-map "contact <text> ";
-        type string {
-          length "0..255";
-        }
-        description
-          "identification of the contact person for this
-          managed node";
-      }
-    }
-
-    container target {
-      xr:xr-xml-map "snmp_cfg:Target";
-      description "SNMP target configurations";
-
-      container targets {
-        xr:xr-xml-map "snmp_cfg:TargetListTable";
-        description "List of targets";
-
-        list target {
-          xr:xr-xml-map "snmp_cfg:TargetList";
-          key "target-list-name";
-          description "Name of the target list";
-
-          container vrf-names {
-            xr:xr-xml-map "snmp_cfg:VRFNameTable";
-            description "List of VRF Name for a target list";
-
-            list vrf-name {
-              xr:xr-xml-map "snmp_cfg:VRFName";
-              xr:xr-cli-map "target list <string> vrf <string> ";
-              key "name";
-              description "VRF name of the target";
-              leaf name {
-                xr:xr-xml-map "snmp_cfg:Name";
-                type xr:Cisco-ios-xr-string;
-                description "VRF Name";
-              }
-            }
-          }
-
-          container target-addresses {
-            xr:xr-xml-map "snmp_cfg:TargetAddressTable";
-            description "SNMP Target address configurations";
-
-            list target-address {
-              xr:xr-xml-map "snmp_cfg:TargetAddress";
-              xr:xr-cli-map "target list <string> host <IPv4"+
-                "/IPv6 address> ";
-              key "ip-address";
-              description
-                "IP Address to be configured for the Target";
-              leaf ip-address {
-                xr:xr-xml-map "snmp_cfg:IPAddress";
-                type inet:ip-address-no-zone;
-                description "IPv4/Ipv6 address";
-              }
-            }
-          }
-          leaf target-list-name {
-            xr:xr-xml-map "snmp_cfg:TargetListName";
-            type xr:Cisco-ios-xr-string;
-            description "Name of the target list";
-          }
-        }
-      }
-    }
-
-    container notification {
-      xr:xr-xml-map "snmp_cfg:Notification";
-      description "Enable SNMP notifications";
-
-      container snmp {
-        xr:xr-xml-map "snmpmib_cfg:SNMP";
-        description "SNMP notification configuration";
-        leaf authentication {
-          xr:xr-xml-map "snmpmib_cfg:Authentication";
-          xr:xr-cli-map "authentication ";
-          type empty;
-          description "Enable authentication notification";
-        }
-        leaf cold-start {
-          xr:xr-xml-map "snmpmib_cfg:ColdStart";
-          xr:xr-cli-map "coldstart ";
-          type empty;
-          description "Enable cold start notification";
-        }
-        leaf warm-start {
-          xr:xr-xml-map "snmpmib_cfg:WarmStart";
-          xr:xr-cli-map "warmstart ";
-          type empty;
-          description "Enable warm start notification";
-        }
-        leaf enable {
-          xr:xr-xml-map "snmpmib_cfg:Enable";
-          xr:xr-cli-map "traps snmp ";
-          type empty;
-          description "Enable SNMP notifications";
-        }
-      }
-    }
-
-    container correlator {
-      xr:xr-xml-map "snmp_corr_cfg:Correlator";
-      description "Configure properties of the trap correlator";
-
-      container rules {
-        xr:xr-xml-map "snmp_corr_cfg:RuleTable";
-        description "Table of configured rules";
-
-        list rule {
-          xr:xr-xml-map "snmp_corr_cfg:Rule";
-          key "name";
-          description "Rule name";
-
-          container non-stateful {
-            xr:xr-xml-map "snmp_corr_cfg:NonStateful";
-            presence "Indicates a non-stateful node is configured.";
-            description "The Non-Stateful Rule Type";
-
-            container root-causes {
-              xr:xr-xml-map "snmp_corr_cfg:RootCauseTable";
-              description
-                "Table of configured rootcause (only one
-                entry allowed)";
-
-              list root-cause {
-                xr:xr-xml-map "snmp_corr_cfg:RootCause";
-                key "oid";
-                description
-                  "The rootcause - maximum of one can be
-                  configured per rule";
-                leaf created {
-                  xr:xr-xml-map "snmp_corr_cfg:Created";
-                  type empty;
-                  description "Create rootcause";
-                }
-                leaf oid {
-                  xr:xr-xml-map "snmp_corr_cfg:OID";
-                  type string;
-                  description
-                    "OID of rootcause trap (dotted decimal)";
-                }
-                uses VAR-BIND-TABLE;
-              }
-            }
-
-            container non-root-causes {
-              xr:xr-xml-map "snmp_corr_cfg:NonRootCauseTable";
-              description "Table of configured non-rootcause";
-
-              list non-root-cause {
-                xr:xr-xml-map "snmp_corr_cfg:NonRootCause";
-                key "oid";
-                description "A non-rootcause";
-                leaf created {
-                  xr:xr-xml-map "snmp_corr_cfg:Created";
-                  type empty;
-                  description "Create nonrootcause";
-                }
-                leaf oid {
-                  xr:xr-xml-map "snmp_corr_cfg:OID";
-                  type string;
-                  description
-                    "OID of nonrootcause trap (dotted decimal)";
-                }
-                uses VAR-BIND-TABLE;
-              }
-            }
-            leaf timeout {
-              xr:xr-xml-map "snmp_corr_cfg:Timeout";
-              type uint32 {
-                range "1..600000";
-              }
-              units "millisecond";
-              description
-                "Timeout (time to wait for active
-                correlation) in milliseconds";
-            }
-          }
-          leaf name {
-            xr:xr-xml-map "snmp_corr_cfg:Name";
-            type string {
-              length "0..32";
-            }
-            description "Rule name";
-          }
-          uses APPLIED-TO;
-        }
-      }
-
-      container rule-sets {
-        xr:xr-xml-map "snmp_corr_cfg:RulesetTable";
-        description "Table of configured rulesets";
-
-        list rule-set {
-          xr:xr-xml-map "snmp_corr_cfg:Ruleset";
-          key "name";
-          description "Ruleset name";
-
-          container rulenames {
-            xr:xr-xml-map "snmp_corr_cfg:RulenameTable";
-            description "Table of configured rulenames";
-
-            list rulename {
-              xr:xr-xml-map "snmp_corr_cfg:Rulename";
-              xr:xr-cli-map "ruleset <string> rulename <string> ";
-              key "rulename";
-              description "A rulename";
-              leaf rulename {
-                xr:xr-xml-map "snmp_corr_cfg:Rulename";
-                type string {
-                  length "0..32";
-                }
-                description "Rule name";
-              }
-            }
-          }
-          leaf name {
-            xr:xr-xml-map "snmp_corr_cfg:Name";
-            type string {
-              length "0..32";
-            }
-            description "Ruleset name";
-          }
-          uses APPLIED-TO;
-        }
-      }
-      leaf buffer-size {
-        xr:xr-xml-map "snmp_corr_cfg:BufferSize";
-        xr:xr-cli-map "buffer-size <number> ";
-        type uint32 {
-          range "1024..52428800";
-        }
-        description "Configure size of the correlator buffer";
-      }
-    }
-
-    container bulk-stats {
-      xr:xr-xml-map "snmp_bulkstat_cfg:BulkStats";
-      description "SNMP bulk stats configuration commands";
-
-      container schemas {
-        xr:xr-xml-map "snmp_bulkstat_cfg:SchemaTable";
-        description "Configure schema definition";
-
-        list schema {
-          xr:xr-xml-map "snmp_bulkstat_cfg:Schema";
-          key "schema-name";
-          description "The name of the Schema";
-
-          container instance {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Instance";
-            presence "Indicates a instance node is configured.";
-            description "Object instance information";
-            leaf type {
-              xr:xr-xml-map "snmp_bulkstat_cfg:Type";
-              type Snmp-bulkstat-schema;
-              mandatory true;
-              description "Type of the instance";
-            }
-            leaf instance {
-              xr:xr-xml-map "snmp_bulkstat_cfg:Instance";
-              type xr:Interface-name;
-              description "Instance of the schema";
-            }
-            leaf start {
-              xr:xr-xml-map "snmp_bulkstat_cfg:Start";
-              type string;
-              mandatory true;
-              description "Start Instance OID for repetition";
-            }
-            leaf end {
-              xr:xr-xml-map "snmp_bulkstat_cfg:End";
-              type string;
-              mandatory true;
-              description "End Instance OID for repetition";
-            }
-            leaf max {
-              xr:xr-xml-map "snmp_bulkstat_cfg:Max";
-              type int32;
-              mandatory true;
-              description "Max value of Instance repetition";
-            }
-            leaf sub-interface {
-              xr:xr-xml-map "snmp_bulkstat_cfg:SubInterface";
-              type boolean;
-              mandatory true;
-              description "Include all the subinterface";
-            }
-          }
-          leaf type {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Type";
-            type empty;
-            description "Configure schema name";
-          }
-          leaf schema-object-list {
-            xr:xr-xml-map "snmp_bulkstat_cfg:SchemaObjectList";
-            xr:xr-cli-map "schema <string> object-list <string> ";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of an object List";
-          }
-          leaf poll-interval {
-            xr:xr-xml-map "snmp_bulkstat_cfg:PollInterval";
-            xr:xr-cli-map "schema <string> poll-interval <number> ";
-            type uint32 {
-              range "1..20000";
-            }
-            units "minute";
-            description
-              "Periodicity for polling of objects in this
-              schema in minutes";
-          }
-          leaf schema-name {
-            xr:xr-xml-map "snmp_bulkstat_cfg:SchemaName";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "The name of the schema";
-          }
-        }
-      }
-
-      container objects {
-        xr:xr-xml-map "snmp_bulkstat_cfg:ObjectListTable";
-        description "Configure an Object List ";
-
-        list object {
-          xr:xr-xml-map "snmp_bulkstat_cfg:ObjectList";
-          key "object-list-name";
-          description "Name of the object List";
-
-          container objects {
-            xr:xr-xml-map "snmp_bulkstat_cfg:ObjectTable";
-            description "Configure an object List";
-
-            list object {
-              xr:xr-xml-map "snmp_bulkstat_cfg:Object";
-              xr:xr-cli-map "object-list <string> add <string> ";
-              key "oid";
-              description "Object name or OID";
-              leaf oid {
-                xr:xr-xml-map "snmp_bulkstat_cfg:OID";
-                type string;
-                description "Object name or OID ";
-              }
-            }
-          }
-          leaf type {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Type";
-            type empty;
-            description "Configure object list name";
-          }
-          leaf object-list-name {
-            xr:xr-xml-map "snmp_bulkstat_cfg:ObjectListName";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of the object List";
-          }
-        }
-      }
-
-      container transfers {
-        xr:xr-xml-map "snmp_bulkstat_cfg:TransferTable";
-        description
-          "Periodicity for the transfer of bulk data in
-          minutes";
-
-        list transfer {
-          xr:xr-xml-map "snmp_bulkstat_cfg:Transfer";
-          key "transfer-name";
-          description "Name of bulk transfer";
-
-          container transfer-schemas {
-            xr:xr-xml-map "snmp_bulkstat_cfg:TransferSchemaTable";
-            description
-              "Schema that contains objects to be collected";
-
-            list transfer-schema {
-              xr:xr-xml-map "snmp_bulkstat_cfg:TransferSchema";
-              xr:xr-cli-map "transfer-id <string> schema <string> ";
-              key "schema-name";
-              description
-                "Schema that contains objects to be collected";
-              leaf schema-name {
-                xr:xr-xml-map "snmp_bulkstat_cfg:SchemaName";
-                type xr:Cisco-ios-xr-string {
-                  length "0..32";
-                }
-                description
-                  "Schema that contains objects to be
-                  collected";
-              }
-            }
-          }
-          leaf secondary {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Secondary";
-            xr:xr-cli-map "transfer-id <string> url secondary <stri"+
-              "ng> ";
-            type string;
-            description
-              "FTP or rcp or TFTP can be used for file
-              transfer";
-          }
-          leaf type {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Type";
-            type empty;
-            description "Configure transfer list name";
-          }
-          leaf buffer-size {
-            xr:xr-xml-map "snmp_bulkstat_cfg:BufferSize";
-            xr:xr-cli-map "transfer-id <string> buffer-size <number"+
-              "> ";
-            type uint32 {
-              range "1024..2147483647";
-            }
-            units "byte";
-            description "Bulkstat data file maximum size in bytes";
-          }
-          leaf retain {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Retain";
-            xr:xr-cli-map "transfer-id <string> retain <number> ";
-            type uint32 {
-              range "0..20000";
-            }
-            units "minute";
-            description "Retention period in minutes";
-          }
-          leaf format {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Format";
-            xr:xr-cli-map "transfer-id <string> format (bulkBinary)"+
-              "|(bulkASCII)|(schemaASCII) ";
-            type Snmp-bulkstat-file-format;
-            description "Format of the bulk data file";
-          }
-          leaf retry {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Retry";
-            xr:xr-cli-map "transfer-id <string> retry <number> ";
-            type uint32 {
-              range "0..100";
-            }
-            description "Number of transmission retries";
-          }
-          leaf enable {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Enable";
-            xr:xr-cli-map "transfer-id <string> enable ";
-            type empty;
-            description
-              "Start Data Collection for this Configuration";
-          }
-          leaf primary {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Primary";
-            xr:xr-cli-map "transfer-id <string> url primary <string"+
-              "> ";
-            type string;
-            description
-              "FTP or rcp or TFTP can be used for file
-              transfer";
-          }
-          leaf interval {
-            xr:xr-xml-map "snmp_bulkstat_cfg:Interval";
-            xr:xr-cli-map "transfer-id <string> transfer-interval <"+
-              "number> ";
-            type int32;
-            units "minute";
-            description
-              "Periodicity for the transfer of bulk data in
-              minutes";
-          }
-          leaf transfer-name {
-            xr:xr-xml-map "snmp_bulkstat_cfg:TransferName";
-            type xr:Cisco-ios-xr-string {
-              length "0..32";
-            }
-            description "Name of bulk transfer";
-          }
-        }
-      }
-      leaf memory {
-        xr:xr-xml-map "snmp_bulkstat_cfg:Memory";
-        xr:xr-cli-map "mib bulkstat max-procmem-size <number> ";
-        type uint32 {
-          range "100..200000";
-        }
-        units "kilobyte";
-        description "per process memory limit in kilo bytes";
-      }
-    }
-
-    container default-community-maps {
-      xr:xr-xml-map "snmp_cfg:DefaultCommunityMapTable";
-      description
-        "Container class to hold unencrpted community map";
-
-      list default-community-map {
-        xr:xr-xml-map "snmp_cfg:DefaultCommunityMap";
-        key "community-name";
-        description "Unencrpted SNMP community map name ";
-        leaf community-name {
-          xr:xr-xml-map "snmp_cfg:CommunityName";
-          type xr:Cisco-ios-xr-string {
-            length "0..128";
-          }
-          description "SNMP community map";
-        }
-        leaf context {
-          xr:xr-xml-map "snmp_cfg:Context";
-          type string;
-          description "SNMP Context Name ";
-        }
-        leaf security {
-          xr:xr-xml-map "snmp_cfg:Security";
-          type string;
-          description "SNMP Security Name ";
-        }
-        leaf target-list {
-          xr:xr-xml-map "snmp_cfg:TargetList";
-          type string;
-          description "target list name ";
-        }
-      }
-    }
-
-    container overload-control {
-      xr:xr-xml-map "snmp_cfg:OverloadControl";
-      presence "Indicates a overload-control node is configured.";
-      description
-        "Set overload control params for handling
-        incoming messages";
-      leaf drop-time {
-        xr:xr-xml-map "snmp_cfg:DropTime";
-        type uint32 {
-          range "0..300";
-        }
-        units "second";
-        mandatory true;
-        description
-          "Drop time in seconds for incoming queue
-          (default 1 sec)";
-      }
-      leaf throttle-rate {
-        xr:xr-xml-map "snmp_cfg:ThrottleRate";
-        type uint32 {
-          range "0..1000";
-        }
-        units "millisecond";
-        mandatory true;
-        description
-          "Throttle time in milliseconds for incoming
-          queue (default 500 msec)";
-      }
-    }
-
-    container timeouts {
-      xr:xr-xml-map "snmp_cfg:Timeouts";
-      description "SNMP timeouts";
-      leaf duplicates {
-        xr:xr-xml-map "snmp_cfg:Duplicates";
-        xr:xr-cli-map "timeouts duplicate <number> ";
-        type uint32 {
-          range "0..20";
-        }
-        units "second";
-        default "1";
-        description "Duplicate request feature timeout";
-      }
-      leaf in-qdrop {
-        xr:xr-xml-map "snmp_cfg:InQdrop";
-        xr:xr-cli-map "timeouts inQdrop <number> ";
-        type uint32 {
-          range "0..20";
-        }
-        units "second";
-        default "10";
-        description "incoming queue drop feature timeout";
-      }
-      leaf subagent {
-        xr:xr-xml-map "snmp_cfg:Subagent";
-        xr:xr-cli-map "timeouts subagent <number> ";
-        type uint32 {
-          range "1..20";
-        }
-        units "second";
-        default "10";
-        description "Sub-Agent Request timeout";
-      }
-      leaf pdu-stats {
-        xr:xr-xml-map "snmp_cfg:PDUStats";
-        xr:xr-cli-map "timeouts pdu stats <number> ";
-        type uint32 {
-          range "1..10";
-        }
-        units "second";
-        default "2";
-        description "SNMP pdu statistics timeout";
-      }
-    }
-
-    container users {
-      xr:xr-xml-map "snmp_cfg:UserTable";
-      description "Define a user who can access the SNMP engine";
-
-      list user {
-        xr:xr-xml-map "snmp_cfg:User";
-        xr:xr-cli-map "user <string> <string> [remote <IPv4"+
-          "/IPv6 address> [udp-port <number>]] (v1)|(v2c)|(v3 [auth"+
-          " (md5)|(sha) ([0] <string>)|(clear)|((7)|(encrypted) <st"+
-          "ring>)|(<string>) [priv (des56)|(3des)|(aes (128)|(192)|"+
-          "(256)) ([0] <string>)|(clear)|((7)|(encrypted) <string>)"+
-          "|(<string>)]])] [IPv4 <string> [IPv6 <string>]|IPv6 <str"+
-          "ing> [IPv4 <string>]|<string>] [SDROwner|LROwner|SystemO"+
-          "wner] ";
-        key "user-name";
-        description "Name of the user";
-        leaf user-name {
-          xr:xr-xml-map "snmp_cfg:UserName";
-          type string;
-          description "Name of the user";
-        }
-        leaf group-name {
-          xr:xr-xml-map "snmp_cfg:GroupName";
-          type string;
-          mandatory true;
-          description "Group to which the user belongs";
-        }
-        leaf version {
-          xr:xr-xml-map "snmp_cfg:Version";
-          type User-snmp-version;
-          mandatory true;
-          description "SNMP version to be used. v1,v2c or v3";
-        }
-        leaf authentication-password-configured {
-          xr:xr-xml-map "snmp_cfg:AuthenticationPasswordConfigured";
-          type empty;
-          description
-            "Flag to indicate that authentication password
-            is configred for version 3";
-        }
-        leaf algorithm {
-          xr:xr-xml-map "snmp_cfg:Algorithm";
-          type Snmp-hash-algorithm;
-          description "The algorithm used md5 or sha";
-        }
-        leaf authentication-password {
-          xr:xr-xml-map "snmp_cfg:AuthenticationPassword";
-          type xr:Proprietary-password;
-          description "The authentication password";
-        }
-        leaf privacy-password-configured {
-          xr:xr-xml-map "snmp_cfg:PrivacyPasswordConfigured";
-          type empty;
-          description
-            "Flag to indicate that the privacy password is
-            configured for version 3";
-        }
-        leaf priv-algorithm {
-          xr:xr-xml-map "snmp_cfg:Priv_Algorithm";
-          type Snmp-priv-algorithm;
-          description
-            "The algorithm used des56 or aes128 or aes192or
-            aes256 or 3des";
-        }
-        leaf privacy-password {
-          xr:xr-xml-map "snmp_cfg:PrivacyPassword";
-          type xr:Proprietary-password;
-          description "The privacy password";
-        }
-        leaf v4acl-type {
-          xr:xr-xml-map "snmp_cfg:V4ACLType";
-          type Snmpacl;
-          description "Access-list type";
-        }
-        leaf v4-access-list {
-          xr:xr-xml-map "snmp_cfg:V4AccessList";
-          type string;
-          description "Ipv4 Access-list name";
-        }
-        leaf v6acl-type {
-          xr:xr-xml-map "snmp_cfg:V6ACLType";
-          type Snmpacl;
-          description "Access-list type";
-        }
-        leaf v6-access-list {
-          xr:xr-xml-map "snmp_cfg:V6AccessList";
-          type string;
-          description "Ipv6 Access-list name";
-        }
-        leaf owner {
-          xr:xr-xml-map "snmp_cfg:Owner";
-          type Snmp-owner-access;
-          description
-            "The system access either SDROwner or
-            SystemOwner";
-        }
-        leaf remote-address {
-          xr:xr-xml-map "snmp_cfg:RemoteAddress";
-          type inet:ip-address-no-zone;
-          description "IP address of remote SNMP entity";
-        }
-        leaf port {
-          xr:xr-xml-map "snmp_cfg:Port";
-          type xr:Cisco-ios-xr-port-number;
-          description "UDP port number";
-        }
-      }
-    }
-
-    container vrfs {
-      xr:xr-xml-map "snmp_cfg:VRFTable";
-      description "SNMP VRF configuration commands";
-
-      list vrf {
-        xr:xr-xml-map "snmp_cfg:VRF";
-        key "name";
-        description "VRF name";
-        leaf name {
-          xr:xr-xml-map "snmp_cfg:Name";
-          type xr:Cisco-ios-xr-string;
-          description "VRF name";
-        }
-        uses TRAP-HOST-TABLE;
-        uses CONTEXT-TABLE;
-        uses CONTEXT-MAPPING-TABLE;
-      }
-    }
-
-    container groups {
-      xr:xr-xml-map "snmp_cfg:GroupTable";
-      description "Define a User Security Model group";
-
-      list group {
-        xr:xr-xml-map "snmp_cfg:Group";
-        xr:xr-cli-map "group <string> <enum> [notify <string>|read "+
-          "<string>|write <string>|context <string>] [IPv4 <string>"+
-          " [IPv6 <string>]|IPv6 <string> [IPv4 <string>]|<string>]"+
-          " ";
-        key "name";
-        description "Name of the group";
-        leaf name {
-          xr:xr-xml-map "snmp_cfg:Name";
-          type xr:Cisco-ios-xr-string {
-            length "0..128";
-          }
-          description "Name of the group";
-        }
-        leaf snmp-version {
-          xr:xr-xml-map "snmp_cfg:SNMPVersion";
-          type Group-snmp-version;
-          mandatory true;
-          description "snmp version";
-        }
-        leaf security-model {
-          xr:xr-xml-map "snmp_cfg:SecurityModel";
-          type Snmp-security-model;
-          description
-            "security model like auth/noAuth/Priv
-            applicable for v3";
-        }
-        leaf notify-view {
-          xr:xr-xml-map "snmp_cfg:NotifyView";
-          type string;
-          description "notify view name";
-        }
-        leaf read-view {
-          xr:xr-xml-map "snmp_cfg:ReadView";
-          type string;
-          description "read view name";
-        }
-        leaf write-view {
-          xr:xr-xml-map "snmp_cfg:WriteView";
-          type string;
-          description "write view name";
-        }
-        leaf v4acl-type {
-          xr:xr-xml-map "snmp_cfg:V4ACLType";
-          type Snmpacl;
-          description "Access-list type";
-        }
-        leaf v4-access-list {
-          xr:xr-xml-map "snmp_cfg:V4AccessList";
-          type string;
-          description "Ipv4 Access-list name";
-        }
-        leaf v6acl-type {
-          xr:xr-xml-map "snmp_cfg:V6ACLType";
-          type Snmpacl;
-          description "Access-list type";
-        }
-        leaf v6-access-list {
-          xr:xr-xml-map "snmp_cfg:V6AccessList";
-          type string;
-          description "Ipv6 Access-list name";
-        }
-        leaf context-name {
-          xr:xr-xml-map "snmp_cfg:ContextName";
-          type string;
-          description "Context name";
-        }
-      }
-    }
-    leaf inform-retries {
-      xr:xr-xml-map "snmp_cfg:InformRetries";
-      xr:xr-cli-map "inform retries <number> ";
-      type uint32 {
-        range "0..100";
-      }
-      description
-        "Number of times to retry an Inform request
-        (default 3)";
-    }
-    leaf trap-port {
-      xr:xr-xml-map "snmp_cfg:TrapPort";
-      xr:xr-cli-map "port <number> ";
-      type uint32 {
-        range "1024..65535";
-      }
-      description "Change the source port of all traps";
-    }
-    leaf oid-poll-stats {
-      xr:xr-xml-map "snmp_cfg:OIDPollStats";
-      xr:xr-cli-map "oid-poll-stats ";
-      type empty;
-      description "Enable Poll OID statistics";
-    }
-    leaf trap-source {
-      xr:xr-xml-map "snmp_cfg:TrapSource";
-      type xr:Interface-name;
-      description
-        "Assign an interface for the source address of
-        all traps";
-    }
-    leaf vrf-authentication-trap-disable {
-      xr:xr-xml-map "snmp_cfg:VRFAuthenticationTrapDisable";
-      xr:xr-cli-map "authentication vrf disable ";
-      type empty;
-      description
-        "Disable authentication traps for packets on a
-        vrf";
-    }
-    leaf inform-timeout {
-      xr:xr-xml-map "snmp_cfg:InformTimeout";
-      xr:xr-cli-map "inform timeout <number> ";
-      type uint32 {
-        range "1..42949671";
-      }
-      units "second";
-      description
-        "Timeout value in seconds for Inform request
-        (default 15 sec)";
-    }
-    leaf trap-source-ipv6 {
-      xr:xr-xml-map "snmp_cfg:TrapSource_IPV6";
-      type xr:Interface-name;
-      description
-        "Assign an interface for the source IPV6 address
-        of all traps";
-    }
-    leaf packet-size {
-      xr:xr-xml-map "snmp_cfg:PacketSize";
-      xr:xr-cli-map "packetsize <number> ";
-      type uint32 {
-        range "484..65500";
-      }
-      description "Largest SNMP packet size";
-    }
-    leaf throttle-time {
-      xr:xr-xml-map "snmp_cfg:ThrottleTime";
-      xr:xr-cli-map "throttle-time <number> ";
-      type uint32 {
-        range "50..1000";
-      }
-      description
-        "Throttle time for incoming queue (default 0
-        msec)";
-    }
-    leaf inform-pending {
-      xr:xr-xml-map "snmp_cfg:InformPending";
-      xr:xr-cli-map "inform pending <number> ";
-      type uint32 {
-        range "0..4294967295";
-      }
-      description
-        "Max nmber of informs to hold in queue, (default
-        25)";
-    }
-    uses TRAP-HOST-TABLE;
-    uses CONTEXT-TABLE;
-    uses CONTEXT-MAPPING-TABLE;
-  }
-
-  container mib {
-    xr:xr-xml-map "snmp_cfg:MIB";
-    description "mib";
-  }
-}
\ No newline at end of file
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-snmp-agent-cfg@2017-12-20.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-snmp-agent-cfg@2017-12-20.yang
new file mode 100644 (file)
index 0000000..c51a94d
--- /dev/null
@@ -0,0 +1,2041 @@
+module Cisco-IOS-XR-snmp-agent-cfg {
+  namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-snmp-agent-cfg";
+  prefix snmp-agent-cfg;
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+  import Cisco-IOS-XR-types {
+    prefix xr;
+  }
+
+  organization
+    "Cisco Systems, Inc.";
+  contact
+    "Cisco Systems, Inc.
+     Customer Service
+     
+     Postal: 170 West Tasman Drive
+     San Jose, CA 95134
+     
+     Tel: +1 800 553-NETS
+     
+     E-mail: cs-yang@cisco.com";
+  description
+    "This module contains a collection of YANG definitions
+     for Cisco IOS-XR snmp-agent package configuration.
+     
+     This module contains definitions
+     for the following management objects:
+       snmp: The heirarchy point for all the SNMP configurations
+       mib: mib
+     
+     Copyright (c) 2013-2017 by Cisco Systems, Inc.
+     All rights reserved.";
+
+  revision 2017-12-20 {
+    description
+      "Removed nonstateful class from correlator config";
+  }
+  revision 2017-10-15 {
+    description
+      "Removed presence statement generated from internal CLI data.";
+  }
+  revision 2017-09-07 {
+    description
+      "Fixed type translation error.";
+  }
+  revision 2017-05-01 {
+    description
+      "Fixing backward compatibility error in module.";
+  }
+  revision 2015-10-27 {
+    description
+      "IOS XR 5.3.2 revision.";
+  }
+  revision 2015-01-07 {
+    description
+      "IOS XR 5.3.1 revision.";
+  }
+
+  typedef Snmp-tos {
+    type enumeration {
+      enum "precedence" {
+        value 0;
+        description
+          "SNMP TOS type Precedence";
+      }
+      enum "dscp" {
+        value 1;
+        description
+          "SNMP TOS type DSCP";
+      }
+    }
+    description
+      "Snmp tos";
+  }
+
+  typedef Snmp-hash-algorithm {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "No authentication required";
+      }
+      enum "md5" {
+        value 1;
+        description
+          "Standard Message Digest algorithm";
+      }
+      enum "sha" {
+        value 2;
+        description
+          "SHA algorithm";
+      }
+    }
+    description
+      "Snmp hash algorithm";
+  }
+
+  typedef Snmp-priv-algorithm {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "No Privacy";
+      }
+      enum "des" {
+        value 1;
+        description
+          "Des algorithm";
+      }
+      enum "3des" {
+        value 2;
+        description
+          "3des algorithm";
+      }
+      enum "aes128" {
+        value 3;
+        description
+          "aes128 algorithm";
+      }
+      enum "aes192" {
+        value 4;
+        description
+          "aes192 algorithm";
+      }
+      enum "aes256" {
+        value 5;
+        description
+          "aes256 algorithm";
+      }
+    }
+    description
+      "Snmp priv algorithm";
+  }
+
+  typedef Snmp-owner-access {
+    type enumeration {
+      enum "sdr-owner" {
+        value 0;
+        description
+          "Secure Domain Router Owner permissions";
+      }
+      enum "system-owner" {
+        value 1;
+        description
+          "System owner permissions";
+      }
+    }
+    description
+      "Snmp owner access";
+  }
+
+  typedef Snmp-bulkstat-schema {
+    type enumeration {
+      enum "exact-interface" {
+        value 1;
+        description
+          "Exact Interface";
+      }
+      enum "exact-oid" {
+        value 2;
+        description
+          "Exact OID";
+      }
+      enum "wild-interface" {
+        value 3;
+        description
+          "Wild Interface";
+      }
+      enum "wild-oid" {
+        value 4;
+        description
+          "Wild OID";
+      }
+      enum "range-oid" {
+        value 5;
+        description
+          "Range of OID";
+      }
+      enum "repeat-oid" {
+        value 6;
+        description
+          "Repeated the instance";
+      }
+    }
+    description
+      "Snmp bulkstat schema";
+  }
+
+  typedef Snmpacl {
+    type enumeration {
+      enum "ipv4" {
+        value 1;
+        description
+          "Ipv4 Access-list";
+      }
+      enum "ipv6" {
+        value 2;
+        description
+          "Ipv6 Access-list";
+      }
+    }
+    description
+      "Snmpacl";
+  }
+
+  typedef Snmp-dscp-value {
+    type union {
+      type enumeration {
+        enum "default" {
+          value 0;
+          description
+            "Applicable to DSCP: bits 000000";
+        }
+        enum "af11" {
+          value 10;
+          description
+            "Applicable to DSCP: bits 001010";
+        }
+        enum "af12" {
+          value 12;
+          description
+            "Applicable to DSCP: bits 001100";
+        }
+        enum "af13" {
+          value 14;
+          description
+            "Applicable to DSCP: bits 001110";
+        }
+        enum "af21" {
+          value 18;
+          description
+            "Applicable to DSCP: bits 010010";
+        }
+        enum "af22" {
+          value 20;
+          description
+            "Applicable to DSCP: bits 010100";
+        }
+        enum "af23" {
+          value 22;
+          description
+            "Applicable to DSCP: bits 010110";
+        }
+        enum "af31" {
+          value 26;
+          description
+            "Applicable to DSCP: bits 011010";
+        }
+        enum "af32" {
+          value 28;
+          description
+            "Applicable to DSCP: bits 011100";
+        }
+        enum "af33" {
+          value 30;
+          description
+            "Applicable to DSCP: bits 011110";
+        }
+        enum "af41" {
+          value 34;
+          description
+            "Applicable to DSCP: bits 100010";
+        }
+        enum "af42" {
+          value 36;
+          description
+            "Applicable to DSCP: bits 100100";
+        }
+        enum "af43" {
+          value 38;
+          description
+            "Applicable to DSCP: bits 100110";
+        }
+        enum "ef" {
+          value 46;
+          description
+            "Applicable to DSCP: bits 101110";
+        }
+        enum "cs1" {
+          value 8;
+          description
+            "Applicable to DSCP: bits 001000";
+        }
+        enum "cs2" {
+          value 16;
+          description
+            "Applicable to DSCP: bits 010000";
+        }
+        enum "cs3" {
+          value 24;
+          description
+            "Applicable to DSCP: bits 011000";
+        }
+        enum "cs4" {
+          value 32;
+          description
+            "Applicable to DSCP: bits 100000";
+        }
+        enum "cs5" {
+          value 40;
+          description
+            "Applicable to DSCP: bits 101000";
+        }
+        enum "cs6" {
+          value 48;
+          description
+            "Applicable to DSCP: bits 110000";
+        }
+        enum "cs7" {
+          value 56;
+          description
+            "Applicable to DSCP: bits 111000";
+        }
+      }
+      type uint32 {
+        range "0..63";
+      }
+    }
+    description
+      "Snmp dscp value";
+  }
+
+  typedef Snmp-precedence-value1 {
+    type union {
+      type enumeration {
+        enum "routine" {
+          value 0;
+          description
+            "Applicable to Precedence: value 0";
+        }
+        enum "priority" {
+          value 1;
+          description
+            "Applicable to Precedence: value 1";
+        }
+        enum "immediate" {
+          value 2;
+          description
+            "Applicable to Precedence: value 2";
+        }
+        enum "flash" {
+          value 3;
+          description
+            "Applicable to Precedence: value 3";
+        }
+        enum "flash-override" {
+          value 4;
+          description
+            "Applicable to Precedence: value 4";
+        }
+        enum "critical" {
+          value 5;
+          description
+            "Applicable to Precedence: value 5";
+        }
+        enum "internet" {
+          value 6;
+          description
+            "Applicable to Precedence: value 6";
+        }
+        enum "network" {
+          value 7;
+          description
+            "Applicable to Precedence: value 7";
+        }
+      }
+      type uint32 {
+        range "0..7";
+      }
+    }
+    description
+      "Snmp precedence value1";
+  }
+
+  typedef Snmp-security-model {
+    type enumeration {
+      enum "no-authentication" {
+        value 0;
+        description
+          "No Authentication required";
+      }
+      enum "authentication" {
+        value 1;
+        description
+          "Authentication password alone required for
+           access";
+      }
+      enum "privacy" {
+        value 2;
+        description
+          "Authentication and privacy password required
+           for access";
+      }
+    }
+    description
+      "Snmp security model";
+  }
+
+  typedef Snmp-mib-view-inclusion {
+    type enumeration {
+      enum "included" {
+        value 1;
+        description
+          "MIB View to be included";
+      }
+      enum "excluded" {
+        value 2;
+        description
+          "MIB View to be excluded";
+      }
+    }
+    description
+      "Snmp mib view inclusion";
+  }
+
+  typedef Snmp-bulkstat-file-format {
+    type enumeration {
+      enum "schema-ascii" {
+        value 1;
+        description
+          "Tranfer file in schema Ascii format";
+      }
+      enum "bulk-ascii" {
+        value 2;
+        description
+          "Tranfer file in Bulk Ascii format";
+      }
+      enum "bulk-binary" {
+        value 3;
+        description
+          "Tranfer file in Bulk binary format";
+      }
+    }
+    description
+      "Snmp bulkstat file format";
+  }
+
+  typedef Snmp-access-level {
+    type enumeration {
+      enum "read-only" {
+        value 0;
+        description
+          "Read Only Access for a community string";
+      }
+      enum "read-write" {
+        value 1;
+        description
+          "Read Write Access for a community string";
+      }
+    }
+    description
+      "Snmp access level";
+  }
+
+  typedef Snmp-context {
+    type enumeration {
+      enum "vrf" {
+        value 1;
+        description
+          "VRF feature";
+      }
+      enum "bridge" {
+        value 4;
+        description
+          "BRIDGE feature";
+      }
+      enum "ospf" {
+        value 5;
+        description
+          "OSPF feature";
+      }
+      enum "ospfv3" {
+        value 6;
+        description
+          "OSPFv3 feature";
+      }
+    }
+    description
+      "Snmp context";
+  }
+
+  typedef Group-snmp-version {
+    type enumeration {
+      enum "v1" {
+        value 0;
+        description
+          "SNMP version 1";
+      }
+      enum "v2c" {
+        value 1;
+        description
+          "SNMP version 2";
+      }
+      enum "v3" {
+        value 2;
+        description
+          "SNMP version 3";
+      }
+    }
+    description
+      "Group snmp version";
+  }
+
+  typedef User-snmp-version {
+    type enumeration {
+      enum "v1" {
+        value 1;
+        description
+          "SNMP version 1";
+      }
+      enum "v2c" {
+        value 2;
+        description
+          "SNMP version 2";
+      }
+      enum "v3" {
+        value 3;
+        description
+          "SNMP version 3";
+      }
+    }
+    description
+      "User snmp version";
+  }
+
+  grouping APPLIED-TO {
+    description
+      "Common node of rule, rule-set";
+    container applied-to {
+      description
+        "Applied to the Rule or Ruleset";
+      container hosts {
+        description
+          "Table of configured hosts to apply rules to";
+        list host {
+          key "ip-address port";
+          description
+            "A destination host";
+          leaf ip-address {
+            type inet:ip-address-no-zone;
+            description
+              "IP address";
+          }
+          leaf port {
+            type xr:Cisco-ios-xr-port-number;
+            description
+              "Port (specify 162 for default)";
+          }
+        }
+      }
+      leaf all {
+        type empty;
+        description
+          "Apply to all of the device";
+      }
+    }
+  }
+
+  grouping CONTEXT-TABLE {
+    description
+      "Common node of snmp, vrf";
+    container contexts {
+      description
+        "List of Context Names";
+      list context {
+        key "context-name";
+        description
+          "Context Name";
+        leaf context-name {
+          type xr:Cisco-ios-xr-string;
+          description
+            "Context Name";
+        }
+      }
+    }
+  }
+
+  grouping VAR-BIND-TABLE {
+    description
+      "Common node of root-cause, non-root-cause";
+    container var-binds {
+      description
+        "Varbinds to match";
+      list var-bind {
+        key "oid";
+        description
+          "Varbind match conditions";
+        container match {
+          description
+            "VarBind match conditions";
+          leaf value {
+            type string;
+            description
+              "Regular Expression to match value";
+          }
+          leaf index {
+            type string;
+            description
+              "Regular Expression to match index";
+          }
+        }
+        leaf oid {
+          type string;
+          description
+            "OID of varbind (dotted decimal)";
+        }
+      }
+    }
+  }
+
+  grouping TRAP-HOST-TABLE {
+    description
+      "Common node of snmp, vrf";
+    container trap-hosts {
+      description
+        "Specify hosts to receive SNMP notifications";
+      list trap-host {
+        key "ip-address";
+        description
+          "Specify hosts to receive SNMP notifications";
+        container encrypted-user-communities {
+          description
+            "Container class for defining Clear/encrypt
+             communities for a trap host";
+          list encrypted-user-community {
+            key "community-name";
+            description
+              "Clear/Encrypt Community name associated with
+               a trap host";
+            leaf community-name {
+              type xr:Cisco-ios-xr-string;
+              description
+                "SNMPv1/v2c community string or SNMPv3 user";
+            }
+            leaf port {
+              type xr:Cisco-ios-xr-port-number;
+              description
+                "UDP port number";
+            }
+            leaf version {
+              type string;
+              mandatory true;
+              description
+                "SNMP Version to be used v1/v2c/v3";
+            }
+            leaf security-level {
+              type Snmp-security-model;
+              description
+                "Security level to be used noauth/auth/priv";
+            }
+            leaf basic-trap-types {
+              type uint32;
+              mandatory true;
+              description
+                "Number to signify the feature traps that
+                 needs to be setBasicTrapTypes is used for
+                 all traps except copy-completeSet this value
+                 to an integer corresponding to the trapBGP
+                 8192, CONFIG 4096,SYSLOG 131072,SNMP_TRAP
+                 1COPY_COMPLETE_TRAP 64To provide a
+                 combination of trap Add the respective
+                 numbersValue must be set to 0 for all traps";
+            }
+            leaf advanced-trap-types1 {
+              type uint32;
+              mandatory true;
+              description
+                "Number to signify the feature traps that
+                 needs to be setUse this for providing
+                 copy-complete trapValue must be set to 0 if
+                 not used";
+            }
+            leaf advanced-trap-types2 {
+              type uint32;
+              mandatory true;
+              description
+                "Number to signify the feature traps that
+                 needs to be setvalue should always to set as
+                 0";
+            }
+          }
+        }
+        container inform-host {
+          description
+            "Container class for defining notification type
+             for a Inform host";
+          container inform-user-communities {
+            description
+              "Container class for defining communities for
+               a inform host";
+            list inform-user-community {
+              key "community-name";
+              description
+                "Unencrpted Community name associated with a
+                 inform host";
+              leaf community-name {
+                type xr:Cisco-ios-xr-string {
+                  length "1..128";
+                }
+                description
+                  "SNMPv2c community string or SNMPv3 user";
+              }
+              leaf port {
+                type xr:Cisco-ios-xr-port-number;
+                description
+                  "UDP port number";
+              }
+              leaf version {
+                type string;
+                mandatory true;
+                description
+                  "SNMP Version to be used v2c/v3";
+              }
+              leaf security-level {
+                type Snmp-security-model;
+                description
+                  "Security level to be used noauth/auth/priv";
+              }
+              leaf basic-trap-types {
+                type uint32;
+                mandatory true;
+                description
+                  "Number to signify the feature traps that
+                   needs to be setBasicTrapTypes is used for
+                   all traps except copy-completeSet this
+                   value to an integer corresponding to the
+                   trapBGP 8192, CONFIG 4096,SYSLOG 131072
+                   ,SNMP_TRAP 1COPY_COMPLETE_TRAP 64To provide
+                   a combination of trap Add the respective
+                   numbersValue must be set to 0 for all traps";
+              }
+              leaf advanced-trap-types1 {
+                type uint32;
+                mandatory true;
+                description
+                  "Number to signify the feature traps that
+                   needs to be setUse this for providing
+                   copy-complete trapValue must be set to 0 if
+                   not used";
+              }
+              leaf advanced-trap-types2 {
+                type uint32;
+                mandatory true;
+                description
+                  "Number to signify the feature traps that
+                   needs to be setvalue should always to set
+                   as 0";
+              }
+            }
+          }
+          container inform-encrypted-user-communities {
+            description
+              "Container class for defining Clear/encrypt
+               communities for a inform host";
+            list inform-encrypted-user-community {
+              key "community-name";
+              description
+                "Clear/Encrypt Community name associated with
+                 a inform host";
+              leaf community-name {
+                type xr:Cisco-ios-xr-string;
+                description
+                  "SNMPv2c community string or SNMPv3 user";
+              }
+              leaf port {
+                type xr:Cisco-ios-xr-port-number;
+                description
+                  "UDP port number";
+              }
+              leaf version {
+                type string;
+                mandatory true;
+                description
+                  "SNMP Version to be used v2c/v3";
+              }
+              leaf security-level {
+                type Snmp-security-model;
+                description
+                  "Security level to be used noauth/auth/priv";
+              }
+              leaf basic-trap-types {
+                type uint32;
+                mandatory true;
+                description
+                  "Number to signify the feature traps that
+                   needs to be setBasicTrapTypes is used for
+                   all traps except copy-completeSet this
+                   value to an integer corresponding to the
+                   trapBGP 8192, CONFIG 4096,SYSLOG 131072
+                   ,SNMP_TRAP 1COPY_COMPLETE_TRAP 64To provide
+                   a combination of trap Add the respective
+                   numbersValue must be set to 0 for all traps";
+              }
+              leaf advanced-trap-types1 {
+                type uint32;
+                mandatory true;
+                description
+                  "Number to signify the feature traps that
+                   needs to be setUse this for providing
+                   copy-complete trapValue must be set to 0 if
+                   not used";
+              }
+              leaf advanced-trap-types2 {
+                type uint32;
+                mandatory true;
+                description
+                  "Number to signify the feature traps that
+                   needs to be setvalue should always to set
+                   as 0";
+              }
+            }
+          }
+        }
+        container default-user-communities {
+          description
+            "Container class for defining communities for a
+             trap host";
+          list default-user-community {
+            key "community-name";
+            description
+              "Unencrpted Community name associated with a
+               trap host";
+            leaf community-name {
+              type xr:Cisco-ios-xr-string {
+                length "1..128";
+              }
+              description
+                "SNMPv1/v2c community string or SNMPv3 user";
+            }
+            leaf port {
+              type xr:Cisco-ios-xr-port-number;
+              description
+                "UDP port number";
+            }
+            leaf version {
+              type string;
+              mandatory true;
+              description
+                "SNMP Version to be used v1/v2c/v3";
+            }
+            leaf security-level {
+              type Snmp-security-model;
+              description
+                "Security level to be used noauth/auth/priv";
+            }
+            leaf basic-trap-types {
+              type uint32;
+              mandatory true;
+              description
+                "Number to signify the feature traps that
+                 needs to be setBasicTrapTypes is used for
+                 all traps except copy-completeSet this value
+                 to an integer corresponding to the trapBGP
+                 8192, CONFIG 4096,SYSLOG 131072,SNMP_TRAP
+                 1COPY_COMPLETE_TRAP 64To provide a
+                 combination of trap Add the respective
+                 numbersValue must be set to 0 for all traps";
+            }
+            leaf advanced-trap-types1 {
+              type uint32;
+              mandatory true;
+              description
+                "Number to signify the feature traps that
+                 needs to be setUse this for providing
+                 copy-complete trapValue must be set to 0 if
+                 not used";
+            }
+            leaf advanced-trap-types2 {
+              type uint32;
+              mandatory true;
+              description
+                "Number to signify the feature traps that
+                 needs to be setvalue should always to set as
+                 0";
+            }
+          }
+        }
+        leaf ip-address {
+          type inet:ip-address-no-zone;
+          description
+            "IP address of SNMP notification host";
+        }
+      }
+    }
+  }
+
+  grouping CONTEXT-MAPPING-TABLE {
+    description
+      "Common node of snmp, vrf";
+    container context-mappings {
+      description
+        "List of context names";
+      list context-mapping {
+        key "context-mapping-name";
+        description
+          "Context mapping name";
+        leaf context-mapping-name {
+          type xr:Cisco-ios-xr-string;
+          description
+            "Context mapping name";
+        }
+        leaf context {
+          type Snmp-context;
+          description
+            "SNMP context feature type";
+        }
+        leaf instance-name {
+          type string;
+          description
+            "OSPF protocol instance";
+        }
+        leaf vrf-name {
+          type string;
+          description
+            "VRF name associated with the context";
+        }
+        leaf topology-name {
+          type string;
+          description
+            "Topology name associated with the context";
+        }
+      }
+    }
+  }
+
+  container snmp {
+    description
+      "The heirarchy point for all the SNMP
+       configurations";
+    container encrypted-community-maps {
+      description
+        "Container class to hold clear/encrypted
+         communitie maps";
+      list encrypted-community-map {
+        key "community-name";
+        description
+          "Clear/encrypted SNMP community map";
+        leaf community-name {
+          type xr:Cisco-ios-xr-string;
+          description
+            "SNMP community map";
+        }
+        leaf context {
+          type string;
+          description
+            "SNMP Context Name ";
+        }
+        leaf security {
+          type string;
+          description
+            "SNMP Security Name ";
+        }
+        leaf target-list {
+          type string;
+          description
+            "target list name ";
+        }
+      }
+    }
+    container views {
+      description
+        "Class to configure a SNMPv2 MIB view";
+      list view {
+        key "view-name family";
+        description
+          "Name of the view";
+        leaf view-name {
+          type xr:Cisco-ios-xr-string;
+          description
+            "Name of the view";
+        }
+        leaf family {
+          type string;
+          description
+            "MIB view family name";
+        }
+        leaf view-inclusion {
+          type Snmp-mib-view-inclusion;
+          mandatory true;
+          description
+            "MIB view to be included or excluded";
+        }
+      }
+    }
+    container logging {
+      description
+        "SNMP logging";
+      container threshold {
+        description
+          "SNMP logging threshold";
+        leaf oid-processing {
+          type uint32 {
+            range "0..20000";
+          }
+          default "500";
+          description
+            "SNMP logging threshold for OID processing";
+        }
+        leaf pdu-processing {
+          type uint32 {
+            range "0..20000";
+          }
+          default "20000";
+          description
+            "SNMP logging threshold for PDU processing";
+        }
+      }
+    }
+    container administration {
+      description
+        "Container class for SNMP administration";
+      container default-communities {
+        description
+          "Container class to hold unencrpted communities";
+        list default-community {
+          key "community-name";
+          description
+            "Unencrpted SNMP community string and access
+             priviledges";
+          leaf community-name {
+            type string {
+              length "1..128";
+            }
+            description
+              "SNMP community string";
+          }
+          leaf priviledge {
+            type Snmp-access-level;
+            description
+              "Read/Write Access";
+          }
+          leaf view-name {
+            type string;
+            description
+              "MIB view to which the community has access";
+          }
+          leaf v4acl-type {
+            type Snmpacl;
+            description
+              "Access-list type";
+          }
+          leaf v4-access-list {
+            type string;
+            description
+              "Ipv4 Access-list name";
+          }
+          leaf v6acl-type {
+            type Snmpacl;
+            description
+              "Access-list type";
+          }
+          leaf v6-access-list {
+            type string;
+            description
+              "Ipv6 Access-list name";
+          }
+          leaf owner {
+            type Snmp-owner-access;
+            description
+              "Logical Router or System owner access";
+          }
+        }
+      }
+      container encrypted-communities {
+        description
+          "Container class to hold clear/encrypted
+           communities";
+        list encrypted-community {
+          key "community-name";
+          description
+            "Clear/encrypted SNMP community string and
+             access priviledges";
+          leaf community-name {
+            type xr:Cisco-ios-xr-string;
+            description
+              "SNMP community string";
+          }
+          leaf priviledge {
+            type Snmp-access-level;
+            description
+              "Read/Write Access";
+          }
+          leaf view-name {
+            type string;
+            description
+              "MIB view to which the community has access";
+          }
+          leaf v4acl-type {
+            type Snmpacl;
+            description
+              "Access-list type";
+          }
+          leaf v4-access-list {
+            type string;
+            description
+              "Ipv4 Access-list name";
+          }
+          leaf v6acl-type {
+            type Snmpacl;
+            description
+              "Access-list type";
+          }
+          leaf v6-access-list {
+            type string;
+            description
+              "Ipv6 Access-list name";
+          }
+          leaf owner {
+            type Snmp-owner-access;
+            description
+              "Logical Router or System owner access";
+          }
+        }
+      }
+    }
+    container agent {
+      description
+        "The heirarchy point for SNMP Agent
+         configurations";
+      container engine-id {
+        description
+          "SNMPv3 engineID";
+        container remotes {
+          description
+            "SNMPv3 remote SNMP Entity";
+          list remote {
+            key "remote-address";
+            description
+              "engineID of the remote agent";
+            leaf remote-address {
+              type inet:ip-address-no-zone;
+              description
+                "IP address of remote SNMP entity";
+            }
+            leaf remote-engine-id {
+              type string;
+              description
+                "engine ID octet string";
+            }
+            leaf port {
+              type xr:Cisco-ios-xr-port-number;
+              description
+                "UDP port number";
+            }
+          }
+        }
+        leaf local {
+          type string;
+          description
+            "engineID of the local agent";
+        }
+      }
+    }
+    container trap {
+      description
+        "Class to hold trap configurations";
+      leaf timeout {
+        type uint32 {
+          range "1..1000";
+        }
+        description
+          "Timeout for TRAP message retransmissions";
+      }
+      leaf throttle-time {
+        type uint32 {
+          range "10..500";
+        }
+        units "millisecond";
+        description
+          "Set throttle time for handling traps";
+      }
+      leaf queue-length {
+        type uint32 {
+          range "1..5000";
+        }
+        description
+          "Message queue length for each TRAP host";
+      }
+    }
+    container drop-packet {
+      description
+        "SNMP packet drop config";
+      leaf unknown-user {
+        type empty;
+        description
+          "Enable drop unknown user name";
+      }
+    }
+    container ipv6 {
+      description
+        "SNMP TOS bit for outgoing packets";
+      container tos {
+        description
+          "Type of TOS";
+        leaf type {
+          type Snmp-tos;
+          description
+            "SNMP TOS type DSCP or Precedence";
+        }
+        leaf precedence {
+          when "../type = 'precedence'" {
+            description
+              "../Type = Precedence";
+          }
+          type Snmp-precedence-value1;
+          description
+            "SNMP Precedence value";
+        }
+        leaf dscp {
+          when "../type = 'dscp'" {
+            description
+              "../Type = DSCP";
+          }
+          type Snmp-dscp-value;
+          description
+            "SNMP DSCP value";
+        }
+      }
+    }
+    container ipv4 {
+      description
+        "SNMP TOS bit for outgoing packets";
+      container tos {
+        description
+          "Type of TOS";
+        leaf type {
+          type Snmp-tos;
+          description
+            "SNMP TOS type DSCP or Precedence";
+        }
+        leaf precedence {
+          when "../type = 'precedence'" {
+            description
+              "../Type = Precedence";
+          }
+          type Snmp-precedence-value1;
+          description
+            "SNMP Precedence value";
+        }
+        leaf dscp {
+          when "../type = 'dscp'" {
+            description
+              "../Type = DSCP";
+          }
+          type Snmp-dscp-value;
+          description
+            "SNMP DSCP value";
+        }
+      }
+    }
+    container system {
+      description
+        "container to hold system information";
+      leaf chassis-id {
+        type string {
+          length "1..255";
+        }
+        description
+          "String to uniquely identify this chassis";
+      }
+      leaf location {
+        type string {
+          length "1..255";
+        }
+        description
+          "The physical location of this node";
+      }
+      leaf contact {
+        type string {
+          length "1..255";
+        }
+        description
+          "identification of the contact person for this
+           managed node";
+      }
+    }
+    container target {
+      description
+        "SNMP target configurations";
+      container targets {
+        description
+          "List of targets";
+        list target {
+          key "target-list-name";
+          description
+            "Name of the target list";
+          container vrf-names {
+            description
+              "List of VRF Name for a target list";
+            list vrf-name {
+              key "name";
+              description
+                "VRF name of the target";
+              leaf name {
+                type xr:Cisco-ios-xr-string;
+                description
+                  "VRF Name";
+              }
+            }
+          }
+          container target-addresses {
+            description
+              "SNMP Target address configurations";
+            list target-address {
+              key "ip-address";
+              description
+                "IP Address to be configured for the Target";
+              leaf ip-address {
+                type inet:ip-address-no-zone;
+                description
+                  "IPv4/Ipv6 address";
+              }
+            }
+          }
+          leaf target-list-name {
+            type xr:Cisco-ios-xr-string;
+            description
+              "Name of the target list";
+          }
+        }
+      }
+    }
+    container notification {
+      description
+        "Enable SNMP notifications";
+      container snmp {
+        description
+          "SNMP notification configuration";
+        leaf authentication {
+          type empty;
+          description
+            "Enable authentication notification";
+        }
+        leaf cold-start {
+          type empty;
+          description
+            "Enable cold start notification";
+        }
+        leaf warm-start {
+          type empty;
+          description
+            "Enable warm start notification";
+        }
+        leaf enable {
+          type empty;
+          description
+            "Enable SNMP notifications";
+        }
+      }
+    }
+    container correlator {
+      description
+        "Configure properties of the trap correlator";
+      container rules {
+        description
+          "Table of configured rules";
+        list rule {
+          key "name";
+          description
+            "Rule name";
+          container root-causes {
+            description
+              "Table of configured rootcause (only one entry
+               allowed)";
+            list root-cause {
+              key "oid";
+              description
+                "The rootcause - maximum of one can be
+                 configured per rule";
+              leaf created {
+                type empty;
+                description
+                  "Create rootcause";
+              }
+              leaf oid {
+                type string;
+                description
+                  "OID of rootcause trap (dotted decimal)";
+              }
+              uses VAR-BIND-TABLE;
+            }
+          }
+          container non-root-causes {
+            description
+              "Table of configured non-rootcause";
+            list non-root-cause {
+              key "oid";
+              description
+                "A non-rootcause";
+              leaf created {
+                type empty;
+                description
+                  "Create nonrootcause";
+              }
+              leaf oid {
+                type string;
+                description
+                  "OID of nonrootcause trap (dotted decimal)";
+              }
+              uses VAR-BIND-TABLE;
+            }
+          }
+          leaf timeout {
+            type uint32 {
+              range "1..600000";
+            }
+            units "millisecond";
+            description
+              "Timeout (time to wait for active correlation)
+               in milliseconds";
+          }
+          leaf name {
+            type string {
+              length "1..32";
+            }
+            description
+              "Rule name";
+          }
+          uses APPLIED-TO;
+        }
+      }
+      container rule-sets {
+        description
+          "Table of configured rulesets";
+        list rule-set {
+          key "name";
+          description
+            "Ruleset name";
+          container rulenames {
+            description
+              "Table of configured rulenames";
+            list rulename {
+              key "rulename";
+              description
+                "A rulename";
+              leaf rulename {
+                type string {
+                  length "1..32";
+                }
+                description
+                  "Rule name";
+              }
+            }
+          }
+          leaf name {
+            type string {
+              length "1..32";
+            }
+            description
+              "Ruleset name";
+          }
+          uses APPLIED-TO;
+        }
+      }
+      leaf buffer-size {
+        type uint32 {
+          range "1024..52428800";
+        }
+        description
+          "Configure size of the correlator buffer";
+      }
+    }
+    container bulk-stats {
+      description
+        "SNMP bulk stats configuration commands";
+      container schemas {
+        description
+          "Configure schema definition";
+        list schema {
+          key "schema-name";
+          description
+            "The name of the Schema";
+          container instance {
+            presence "Indicates a instance node is configured.";
+            description
+              "Object instance information";
+            leaf type {
+              type Snmp-bulkstat-schema;
+              mandatory true;
+              description
+                "Type of the instance";
+            }
+            leaf instance {
+              type xr:Interface-name;
+              description
+                "Instance of the schema";
+            }
+            leaf start {
+              type string;
+              mandatory true;
+              description
+                "Start Instance OID for repetition";
+            }
+            leaf end {
+              type string;
+              mandatory true;
+              description
+                "End Instance OID for repetition";
+            }
+            leaf max {
+              type uint32;
+              mandatory true;
+              description
+                "Max value of Instance repetition";
+            }
+            leaf sub-interface {
+              type boolean;
+              mandatory true;
+              description
+                "Include all the subinterface";
+            }
+          }
+          leaf type {
+            type empty;
+            description
+              "Configure schema name";
+          }
+          leaf schema-object-list {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of an object List";
+          }
+          leaf poll-interval {
+            type uint32 {
+              range "1..20000";
+            }
+            units "minute";
+            description
+              "Periodicity for polling of objects in this
+               schema in minutes";
+          }
+          leaf schema-name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "The name of the schema";
+          }
+        }
+      }
+      container objects {
+        description
+          "Configure an Object List ";
+        list object {
+          key "object-list-name";
+          description
+            "Name of the object List";
+          container objects {
+            description
+              "Configure an object List";
+            list object {
+              key "oid";
+              description
+                "Object name or OID";
+              leaf oid {
+                type string;
+                description
+                  "Object name or OID ";
+              }
+            }
+          }
+          leaf type {
+            type empty;
+            description
+              "Configure object list name";
+          }
+          leaf object-list-name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of the object List";
+          }
+        }
+      }
+      container transfers {
+        description
+          "Periodicity for the transfer of bulk data in
+           minutes";
+        list transfer {
+          key "transfer-name";
+          description
+            "Name of bulk transfer";
+          container transfer-schemas {
+            description
+              "Schema that contains objects to be collected";
+            list transfer-schema {
+              key "schema-name";
+              description
+                "Schema that contains objects to be collected";
+              leaf schema-name {
+                type xr:Cisco-ios-xr-string {
+                  length "1..32";
+                }
+                description
+                  "Schema that contains objects to be
+                   collected";
+              }
+            }
+          }
+          leaf secondary {
+            type string;
+            description
+              "FTP or rcp or TFTP can be used for file
+               transfer";
+          }
+          leaf type {
+            type empty;
+            description
+              "Configure transfer list name";
+          }
+          leaf buffer-size {
+            type uint32 {
+              range "1024..2147483647";
+            }
+            units "byte";
+            description
+              "Bulkstat data file maximum size in bytes";
+          }
+          leaf retain {
+            type uint32 {
+              range "0..20000";
+            }
+            units "minute";
+            description
+              "Retention period in minutes";
+          }
+          leaf format {
+            type Snmp-bulkstat-file-format;
+            description
+              "Format of the bulk data file";
+          }
+          leaf retry {
+            type uint32 {
+              range "0..100";
+            }
+            description
+              "Number of transmission retries";
+          }
+          leaf enable {
+            type empty;
+            description
+              "Start Data Collection for this Configuration";
+          }
+          leaf primary {
+            type string;
+            description
+              "FTP or rcp or TFTP can be used for file
+               transfer";
+          }
+          leaf interval {
+            type uint32;
+            units "minute";
+            description
+              "Periodicity for the transfer of bulk data in
+               minutes";
+          }
+          leaf transfer-name {
+            type xr:Cisco-ios-xr-string {
+              length "1..32";
+            }
+            description
+              "Name of bulk transfer";
+          }
+        }
+      }
+      leaf memory {
+        type uint32 {
+          range "100..200000";
+        }
+        units "kilobyte";
+        description
+          "per process memory limit in kilo bytes";
+      }
+    }
+    container default-community-maps {
+      description
+        "Container class to hold unencrpted community map";
+      list default-community-map {
+        key "community-name";
+        description
+          "Unencrpted SNMP community map name ";
+        leaf community-name {
+          type xr:Cisco-ios-xr-string {
+            length "1..128";
+          }
+          description
+            "SNMP community map";
+        }
+        leaf context {
+          type string;
+          description
+            "SNMP Context Name ";
+        }
+        leaf security {
+          type string;
+          description
+            "SNMP Security Name ";
+        }
+        leaf target-list {
+          type string;
+          description
+            "target list name ";
+        }
+      }
+    }
+    container overload-control {
+      presence "Indicates a overload-control node is configured.";
+      description
+        "Set overload control params for handling
+         incoming messages";
+      leaf drop-time {
+        type uint32 {
+          range "0..300";
+        }
+        units "second";
+        mandatory true;
+        description
+          "Drop time in seconds for incoming queue
+           (default 1 sec)";
+      }
+      leaf throttle-rate {
+        type uint32 {
+          range "0..1000";
+        }
+        units "millisecond";
+        mandatory true;
+        description
+          "Throttle time in milliseconds for incoming
+           queue (default 500 msec)";
+      }
+    }
+    container timeouts {
+      description
+        "SNMP timeouts";
+      leaf duplicates {
+        type uint32 {
+          range "0..20";
+        }
+        units "second";
+        default "1";
+        description
+          "Duplicate request feature timeout";
+      }
+      leaf in-qdrop {
+        type uint32 {
+          range "0..20";
+        }
+        units "second";
+        default "10";
+        description
+          "incoming queue drop feature timeout";
+      }
+      leaf subagent {
+        type uint32 {
+          range "1..20";
+        }
+        units "second";
+        default "10";
+        description
+          "Sub-Agent Request timeout";
+      }
+      leaf pdu-stats {
+        type uint32 {
+          range "1..10";
+        }
+        units "second";
+        default "2";
+        description
+          "SNMP pdu statistics timeout";
+      }
+    }
+    container users {
+      description
+        "Define a user who can access the SNMP engine";
+      list user {
+        key "user-name";
+        description
+          "Name of the user";
+        leaf user-name {
+          type string;
+          description
+            "Name of the user";
+        }
+        leaf group-name {
+          type string;
+          mandatory true;
+          description
+            "Group to which the user belongs";
+        }
+        leaf version {
+          type User-snmp-version;
+          mandatory true;
+          description
+            "SNMP version to be used. v1,v2c or v3";
+        }
+        leaf authentication-password-configured {
+          type empty;
+          description
+            "Flag to indicate that authentication password
+             is configred for version 3";
+        }
+        leaf algorithm {
+          type Snmp-hash-algorithm;
+          description
+            "The algorithm used md5 or sha";
+        }
+        leaf authentication-password {
+          type xr:Proprietary-password;
+          description
+            "The authentication password";
+        }
+        leaf privacy-password-configured {
+          type empty;
+          description
+            "Flag to indicate that the privacy password is
+             configured for version 3";
+        }
+        leaf priv-algorithm {
+          type Snmp-priv-algorithm;
+          description
+            "The algorithm used des56 or aes128 or aes192or
+             aes256 or 3des";
+        }
+        leaf privacy-password {
+          type xr:Proprietary-password;
+          description
+            "The privacy password";
+        }
+        leaf v4acl-type {
+          type Snmpacl;
+          description
+            "Access-list type";
+        }
+        leaf v4-access-list {
+          type string;
+          description
+            "Ipv4 Access-list name";
+        }
+        leaf v6acl-type {
+          type Snmpacl;
+          description
+            "Access-list type";
+        }
+        leaf v6-access-list {
+          type string;
+          description
+            "Ipv6 Access-list name";
+        }
+        leaf owner {
+          type Snmp-owner-access;
+          description
+            "The system access either SDROwner or
+             SystemOwner";
+        }
+        leaf remote-address {
+          type inet:ip-address-no-zone;
+          description
+            "IP address of remote SNMP entity";
+        }
+        leaf port {
+          type xr:Cisco-ios-xr-port-number;
+          description
+            "UDP port number";
+        }
+      }
+    }
+    container vrfs {
+      description
+        "SNMP VRF configuration commands";
+      list vrf {
+        key "name";
+        description
+          "VRF name";
+        leaf name {
+          type xr:Cisco-ios-xr-string;
+          description
+            "VRF name";
+        }
+        uses TRAP-HOST-TABLE;
+        uses CONTEXT-TABLE;
+        uses CONTEXT-MAPPING-TABLE;
+      }
+    }
+    container groups {
+      description
+        "Define a User Security Model group";
+      list group {
+        key "name";
+        description
+          "Name of the group";
+        leaf name {
+          type xr:Cisco-ios-xr-string {
+            length "1..128";
+          }
+          description
+            "Name of the group";
+        }
+        leaf snmp-version {
+          type Group-snmp-version;
+          mandatory true;
+          description
+            "snmp version";
+        }
+        leaf security-model {
+          type Snmp-security-model;
+          description
+            "security model like auth/noAuth/Priv
+             applicable for v3";
+        }
+        leaf notify-view {
+          type string;
+          description
+            "notify view name";
+        }
+        leaf read-view {
+          type string;
+          description
+            "read view name";
+        }
+        leaf write-view {
+          type string;
+          description
+            "write view name";
+        }
+        leaf v4acl-type {
+          type Snmpacl;
+          description
+            "Access-list type";
+        }
+        leaf v4-access-list {
+          type string;
+          description
+            "Ipv4 Access-list name";
+        }
+        leaf v6acl-type {
+          type Snmpacl;
+          description
+            "Access-list type";
+        }
+        leaf v6-access-list {
+          type string;
+          description
+            "Ipv6 Access-list name";
+        }
+        leaf context-name {
+          type string;
+          description
+            "Context name";
+        }
+      }
+    }
+    leaf inform-retries {
+      type uint32 {
+        range "0..100";
+      }
+      description
+        "Number of times to retry an Inform request
+         (default 3)";
+    }
+    leaf trap-port {
+      type uint32 {
+        range "1024..65535";
+      }
+      description
+        "Change the source port of all traps";
+    }
+    leaf oid-poll-stats {
+      type empty;
+      description
+        "Enable Poll OID statistics";
+    }
+    leaf trap-source {
+      type xr:Interface-name;
+      description
+        "Assign an interface for the source address of
+         all traps";
+    }
+    leaf vrf-authentication-trap-disable {
+      type empty;
+      description
+        "Disable authentication traps for packets on a
+         vrf";
+    }
+    leaf inform-timeout {
+      type uint32 {
+        range "1..42949671";
+      }
+      units "second";
+      description
+        "Timeout value in seconds for Inform request
+         (default 15 sec)";
+    }
+    leaf trap-source-ipv6 {
+      type xr:Interface-name;
+      description
+        "Assign an interface for the source IPV6 address
+         of all traps";
+    }
+    leaf packet-size {
+      type uint32 {
+        range "484..65500";
+      }
+      description
+        "Largest SNMP packet size";
+    }
+    leaf throttle-time {
+      type uint32 {
+        range "50..1000";
+      }
+      description
+        "Throttle time for incoming queue (default 0
+         msec)";
+    }
+    leaf trap-source-ipv4 {
+      type xr:Interface-name;
+      description
+        "Assign an interface for the source address of
+         all traps";
+    }
+    leaf inform-pending {
+      type uint32 {
+        range "0..4294967295";
+      }
+      description
+        "Max nmber of informs to hold in queue, (default
+         25)";
+    }
+    uses TRAP-HOST-TABLE;
+    uses CONTEXT-TABLE;
+    uses CONTEXT-MAPPING-TABLE;
+  }
+  container mib {
+    description
+      "mib";
+  }
+}
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-types@2015-06-29.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-types@2015-06-29.yang
deleted file mode 100644 (file)
index adaf8bc..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-module Cisco-IOS-XR-types {
-
-  namespace "http://cisco.com/ns/yang/cisco-xr-types";
-  prefix "xr";
-
-  organization "Cisco Systems, Inc.";
-
-  contact 
-    "Cisco Systems, Inc.
-     Customer Service
-
-     Postal: 170 W Tasman Drive
-     San Jose, CA 95134
-
-     Tel: +1 1800 553-NETS
-
-     E-mail: cs-yang@cisco.com";
-
-
-  description       
-    "This module contains a collection of IOS-XR derived YANG data 
-     types.
-    
-     Copyright (c) 2013-2015 by Cisco Systems, Inc.
-     All rights reserved.";
-
-  revision "2015-06-29" {
-    description
-     "This revision adds the following new data types:
-      - Rpl-policy
-      - Rpl-set";
-  }
-
-  revision "2015-05-18" {
-    description
-      "Updated Node-id string pattern to match also shorter ncs4k
-       node names.";
-  }
-
-  revision "2015-01-19" {
-    description
-     "This revision adds the following new data types:
-      - Bgp-ipv4-flowspec-address
-      - Bgp-ipv6-flowspec-address";
-  }
-
-  revision "2013-07-22" {
-    description
-      "Initial revision.";
-  }
-
-  extension xr-cli-map {
-    argument "cli-command";
-    description "The xr-cli-map statement takes as an argument
-                 relevant CLI configuration command.";
-  }
-  
-  extension xr-xml-map {
-    argument "xr-xml-node";
-    description "The xr-xml-map statement takes as an argument
-                 relevant Cisco XML Schema node name.";
-  }
-  
-  typedef Route-dist {
-    type string {
-      pattern "[a-fA-F0-9]{16}";
-    }
-    description "Route distinguisher in hexadecimal notation.";
-  }
-
-  typedef Bgp-l2vpn-evpn-addrs {
-    type string {
-      pattern "[a-fA-F0-9]{58}";
-    }
-    description "L2VPN EVPN Address in hexadecimal notation.";
-  }
-
-  typedef Bgp-ls-addr {
-    type string {
-      pattern "[a-fA-F0-9]+";
-    }
-    description "BGP link state unicast address in hexadecimal
-                 notation.";
-  }
-
-  typedef Bgp-ipv6-mvpn-addr {
-    type string {
-      pattern "[a-fA-F0-9]{104}";
-    }
-    description "An IPV6 MVPN address in hexadecimal notation.";
-  }
-
-  typedef Bgp-ipv4-mvpn-addr {
-    type string {
-      pattern "[a-fA-F0-9]{56}";
-    }
-    description "An IPV4 MVPN address in hexadecimal notation.";
-  }
-
-  typedef Bgp-rt-constrt-addr {
-    type string {
-      pattern "[a-fA-F0-9]{24}";
-    }
-    description 
-      "An IPV4 RTConstraint address in hexadecimal notation.";
-  }
-
-  typedef Bgp-ipv4-mdt-addr {
-    type string {
-      pattern "(([a-f0-9]{16}-)(([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 "An IPV4 MDT address in dotted decimal notation.
-                 An IPv4 MDT address should be of the form 
-                 0000006400000065-129.29.83.45. This datatype 
-                 restricts the value of each field 16 digits in 
-                 hexadecimal for RD field and between 0 and 255
-                 for IPv4 address field, i.e. 
-                 [0000000000000000-ffffffffffffffff]-
-                 [0-255].[0-255].[0-255].[0-255].";
-  }
-
-  typedef Bgp-ipv4-tunnel-addr {
-    type string {
-      pattern "((0:|[1-9][0-9]{0,4}:)"+
-        "(([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 "An IPV4 tunnel address in dotted decimal notation.
-                 An IPv4 tunnel address should be of the form 
-                 65535:129.29.83.45. This datatype restricts the 
-                 value of each field between 0 and 65535 for prefix
-                 field and 0 and 255 for IPv4 address field, i.e.
-                 [0-65535]:[0-255].[0-255].[0-255].[0-255]";
-  }
-
-  typedef Cisco-ios-xr-port-number {
-    type uint16 {
-      range "1..65535";
-    }
-    description "Port number of range from 1 to 65535";
-  }
-
-  typedef Interface-name {
-    type string {
-      pattern "(([a-zA-Z0-9_]*\d+/){3}\d+)|"+
-              "(([a-zA-Z0-9_]*\d+/){4}\d+)|"+
-              "(([a-zA-Z0-9_]*\d+/){3}\d+\.\d+)|"+
-              "(([a-zA-Z0-9_]*\d+/){2}([a-zA-Z0-9_]*\d+))|"+
-              "(([a-zA-Z0-9_]*\d+/){2}([a-zA-Z0-9_]+))|"+
-              "([a-zA-Z0-9_-]*\d+)|"+
-              "([a-zA-Z0-9_-]*\d+\.\d+)|"+
-              "(mpls)|(dwdm)";
-    }
-    description "An interface name specifying an interface type and 
-                 instance.
-                 Interface represents a string defining an interface
-                 type and instance, e.g. MgmtEth0/4/CPU1/0 or
-                 TenGigE0/2/0/0.2 or Bundle-Ether9 or 
-                 Bundle-Ether9.98";
-  }
-  
-  typedef Cisco-ios-xr-string {
-    type string {
-      pattern "[\w\-\.:,_@#%$\+=\|;]+";
-    }
-    description "Special characters are not allowed.";
-  }
-
-  typedef Ipv4-prefix-length {
-    type uint8 {
-      range "0..32";
-    }
-    description "An IPv4 address prefix length. 
-                 Must lie between 0 and 32 inclusive.";
-  }
-  
-  typedef Ipv6-prefix-length {
-    type uint8 {
-      range "0..128";
-    }
-    description "An IPv6 address prefix length. 
-                 Must lie between 0 and 32 inclusive.";
-  }
-  
-  typedef Rack-id {
-    type string {
-      pattern "[a-zA-Z0-9_]*\d+";
-    }
-    description "Names the rack portion of a NodeID 
-                 Rack/Slot/Instance triple";
-  }
-  
-  typedef Slot-id {
-    type string {
-      pattern "[a-zA-Z0-9_]*\d+";
-    }
-    description "Names the slot portion of a NodeID 
-                 Rack/Slot/Instance triple";
-  }
-  
-  typedef Instance-id {
-    type string {
-      pattern "[a-zA-Z0-9_]*\d+";
-    }
-    description "Names the instance portion of a NodeID 
-                 Rack/Slot/Instance triple";
-  }
-  
-  typedef Sub-instance-id {
-    type string {
-      pattern "[a-zA-Z0-9_]*\d+";
-    }
-    description "Names the sub-instance portion of an extended
-                 NodeID Rack/Slot/Instance/SubInstance";
-  }
-  
-  typedef Encryption-type {
-    type enumeration {
-      enum none {
-        value "0";
-        description "The password string is clear text.";
-      }
-      enum md5 {
-        value "1";
-        description "The password is encrypted to an MD5 digest.";
-      }
-      enum proprietary {
-        value "2";
-        description "The password is encrypted using Cisco type 7 
-                     password encryption.";
-      }
-    }
-    description "The type of encryption used on a password string.";
-  
-  }
-  
-  typedef Hex-integer {
-    type string {
-      pattern "[0-9a-fA-F]{1,8}";
-    }
-    description "An unsigned 32-bit integer represented in
-                 hexadecimal format.";
-  }
-  
-  typedef Osi-system-id {
-    type string {
-      pattern "[a-fA-F0-9]{4}(\.[a-fA-F0-9]{4}){2}";
-    }
-    description "An OSI system ID should be of the form 
-                 0123.4567.89ab. This data type restricts each
-                 character to a hex character.";
-  }
-  
-  typedef Osi-area-address {
-    type string {
-      pattern "[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){0,6}";
-    }
-    description "An OSI area address should consist of an odd number
-                 of octets, and be of the form 01 or 01.2345 etc up
-                 to 01.2345.6789.abcd.ef01.2345.6789. This data type
-                 restricts each character to a hex character.";
-  }
-  
-  typedef Isis-node-id {
-    type string {
-      pattern "[a-fA-F0-9]{4}(\.[a-fA-F0-9]{4}){2}\.[a-fA-F0-9]{2}";
-    }
-    description "An ISIS node ID should be of the form 
-                 0123.4567.89ab.cd. This data type restricts each
-                 character to a hex character.";
-  }
-  
-  typedef Isis-snpa {
-    type string {
-      pattern "[a-fA-F0-9]{4}(\.[a-fA-F0-9]{4}){2}";
-    }
-    description "String representation of a SNPA, 802.2 MAC address
-                 in canonical format, e.g. 0123.4567.89ab";
-  }
-  
-  typedef Isis-lsp-id {
-    type string {
-      pattern "[a-fA-F0-9]{4}(\.[a-fA-F0-9]{4}){2}\.[a-fA-F0-9]{2}"+
-               "\-[a-fA-F0-9]{2}";
-    }
-    description "An ISIS LSP ID should be of the form 
-                 0123.4567.89ab.cd-ef. This data type restricts each
-                 character to a hex character.";
-  }
-  
-  typedef Osi-net {
-    type string {
-      pattern 
-        "[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){3,9}\.[a-fA-F0-9]{2}";
-    }
-    description "An OSI NET should consist of an even number of 
-                 octets, and be of the form 01.2345.6789.abcd.ef etc
-                 up to 
-                 01.2345.6789.abcd.ef01.2345.6789.abcd.ef01.2345.67.
-                 This data type restricts each character to a hex
-                 character.";
-  }
-  
-  typedef String-identifier {
-    type string {
-      pattern "[a-zA-Z][\w\-]*";
-    }
-    description "A string for specifying identifier.";
-  }
-  
-  typedef Char-num {
-    type union {
-      type string {
-        pattern "(\p{IsBasicLatin}|\p{IsLatin-1Supplement})*";
-      }
-      type uint8;
-    }
-    description "Takes a character or its ASCII decimal equivalent
-                 (0-255).";
-  }
-  
-  typedef Tty-escape-char-num {
-    type union {
-      type string {
-        pattern "((\p{IsBasicLatin}|\p{IsLatin-1Supplement})*)"+
-                "|(DEFAULT)|(BREAK)|(NONE)";
-      }
-      type uint8;
-    }
-    description "Escape character or its ASCII decimal equivalent
-                 (0-255) or one of the three string DEFAULT, BREAK,
-                 NONE.";
-  }
-  
-  typedef Extended-node-id {
-    type string {
-      pattern "([a-zA-Z0-9_]*\d+/){3}([a-zA-Z0-9_]*\d+)";
-    }
-    description "A location used as value information and specified
-                 as a Rack/Slot/Instance/SubInstance, e.g. 
-                 0/1/CPU0/NPU0";
-  }
-  
-  typedef Node-id {
-    type string {
-      pattern "([a-zA-Z0-9_]*\d+/){1,2}([a-zA-Z0-9_]*\d+)";
-    }
-    description "A location used as value information and specified
-                 as a Rack/Slot/Instance triple, e.g. F0/SC1/0.";
-  }
-
-  typedef Pq-node-id {
-    type string {
-      pattern "((([a-zA-Z0-9_]*\d+)|(\*))/){2}(([a-zA-Z0-9_]*\d+)"+
-              "|(\*))";
-    }
-    description "Partially qualified location which is used for 
-                 wildcarding location specifications, e.g. 1/*/*";
-  }  
-  
-  typedef Md5-password {
-    type string {
-      pattern "(!.+)|([^!].+)";
-    }
-    description 
-      "The Md5-password type is used to store password using the MD5
-       hash function.
-       When a clear text value is set to a leaf of this type, the
-       server calculates a password hash and stores the result
-       in the datastore. The password is never stored in clear text.
-
-       When a leaf of this type is read, the stored password hash is
-       returned.
-
-       A value of this type matches one of the forms:
-
-         !<clear text password>
-         <password hash>
-         
-       The '!' prefix signals that the value is clear text. When
-       such a value is received by the server, a hash value is
-       calculated. This value is stored in the configuration data 
-       store.
-
-       If a value starting without '!' is received, the server knows 
-       that the value already represents a hashed value, and stores 
-       it as is in the data store.";
-  }
-  
-  typedef Proprietary-password {
-    type string {
-      pattern "(!.+)|([^!].+)";
-    }
-    description 
-      "The Proprietary-password type is used to store password 
-       using the Cisco proprietary hash function.
-       When a clear text value is set to a leaf of this type, the
-       server calculates a password hash and stores the result
-       in the datastore. The password is never stored in clear text.
-
-       When a leaf of this type is read, the stored password hash is
-       returned.
-
-       A value of this type matches one of the forms:
-
-         !<clear text password>
-         <password hash>
-         
-       The '!' prefix signals that the value is clear text. When
-       such a value is received by the server, a hash value is
-       calculated. This value is stored in the configuration data 
-       store.
-
-       If a value starting without '!' is received, the server knows 
-       that the value already represents a hashed value, and stores 
-       it as is in the data store.";
-  }
-  
-  typedef Bgp-ipv4-flowspec-address {
-    type string {
-      pattern "[a-fA-F0-9]{4096}";
-    }
-    description "An IPV4 Flowspec address in hexadecimal notation.";
-  }
-
-  typedef Bgp-ipv6-flowspec-address {
-    type string {
-      pattern "[a-fA-F0-9]{4096}";
-    }
-    description "An IPV6 Flowspec address in hexadecimal notation.";
-  }
-
-  typedef Rpl-policy {
-    type string;
-    description "RPL Policy info";
-  }
-
-  typedef Rpl-set{
-    type string;
-    description "RPL Set info";
-  }
-}
\ No newline at end of file
diff --git a/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-types@2017-12-01.yang b/cisco-xrmodels/src/main/yang/Cisco-IOS-XR-types@2017-12-01.yang
new file mode 100644 (file)
index 0000000..c8f81e3
--- /dev/null
@@ -0,0 +1,600 @@
+module Cisco-IOS-XR-types {
+  namespace "http://cisco.com/ns/yang/cisco-xr-types";
+  prefix xr;
+
+  organization
+    "Cisco Systems, Inc.";
+  contact
+    "Cisco Systems, Inc.
+     Customer Service
+     
+     Postal: 170 W Tasman Drive
+     San Jose, CA 95134
+     
+     Tel: +1 1800 553-NETS
+     
+     E-mail: cs-yang@cisco.com";
+  description
+    "This module contains a collection of IOS-XR derived YANG data 
+     types.
+         
+     Copyright (c) 2013-2017 by Cisco Systems, Inc.
+     All rights reserved.";
+
+  revision 2017-12-01 {
+    description
+      "Modified string match pattern of Tty-escape-char-num";
+  }
+  revision 2017-03-07 {
+    description
+      "This revision adds the following new data types:
+       - Type8-password
+       - Type9-password";
+  }
+  revision 2015-06-29 {
+    description
+      "This revision adds the following new data types:
+       - Rpl-policy
+       - Rpl-set";
+  }
+  revision 2015-05-18 {
+    description
+      "Updated Node-id string pattern to match also shorter ncs4k
+       node names.";
+  }
+  revision 2015-01-19 {
+    description
+      "This revision adds the following new data types:
+       - Bgp-ipv4-flowspec-address
+       - Bgp-ipv6-flowspec-address";
+  }
+  revision 2013-07-22 {
+    description
+      "Initial revision.";
+  }
+
+  extension xr-cli-map {
+    argument cli-command;
+    description
+      "The xr-cli-map statement takes as an argument
+       relevant CLI configuration command.";
+  }
+
+  extension xr-xml-map {
+    argument xr-xml-node;
+    description
+      "The xr-xml-map statement takes as an argument
+       relevant Cisco XML Schema node name.";
+  }
+
+  extension cli-command {
+    argument command;
+    description
+      "Corresponding CLI command for this RPC node";
+  }
+
+  extension cli-name {
+    argument keyword;
+    description
+      "Corresponding CLI keyword for this node";
+  }
+
+  extension xr-task {
+    argument task;
+    description
+      "XR task-id required for operating the yang node";
+  }
+
+  extension event-telemetry {
+    argument description;
+    description
+      "Node eligible for telemetry event subscription";
+  }
+
+  typedef Route-dist {
+    type string {
+      pattern "[a-fA-F0-9]{16}";
+    }
+    description
+      "Route distinguisher in hexadecimal notation.";
+  }
+
+  typedef Bgp-l2vpn-evpn-addrs {
+    type string {
+      pattern "[a-fA-F0-9]{58}";
+    }
+    description
+      "L2VPN EVPN Address in hexadecimal notation.";
+  }
+
+  typedef Bgp-ls-addr {
+    type string {
+      pattern "[a-fA-F0-9]+";
+    }
+    description
+      "BGP link state unicast address in hexadecimal
+       notation.";
+  }
+
+  typedef Bgp-ipv6-mvpn-addr {
+    type string {
+      pattern "[a-fA-F0-9]{104}";
+    }
+    description
+      "An IPV6 MVPN address in hexadecimal notation.";
+  }
+
+  typedef Bgp-ipv4-mvpn-addr {
+    type string {
+      pattern "[a-fA-F0-9]{56}";
+    }
+    description
+      "An IPV4 MVPN address in hexadecimal notation.";
+  }
+
+  typedef Bgp-rt-constrt-addr {
+    type string {
+      pattern "[a-fA-F0-9]{24}";
+    }
+    description
+      "An IPV4 RTConstraint address in hexadecimal notation.";
+  }
+
+  typedef Bgp-ipv4-mdt-addr {
+    type string {
+      pattern "(([a-f0-9]{16}-)(([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
+      "An IPV4 MDT address in dotted decimal notation.
+       An IPv4 MDT address should be of the form 
+       0000006400000065-129.29.83.45. This datatype 
+       restricts the value of each field 16 digits in 
+       hexadecimal for RD field and between 0 and 255
+       for IPv4 address field, i.e. 
+       [0000000000000000-ffffffffffffffff]-
+       [0-255].[0-255].[0-255].[0-255].";
+  }
+
+  typedef Bgp-ipv4-tunnel-addr {
+    type string {
+      pattern "((0:|[1-9][0-9]{0,4}:)(([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
+      "An IPV4 tunnel address in dotted decimal notation.
+       An IPv4 tunnel address should be of the form 
+       65535:129.29.83.45. This datatype restricts the 
+       value of each field between 0 and 65535 for prefix
+       field and 0 and 255 for IPv4 address field, i.e.
+       [0-65535]:[0-255].[0-255].[0-255].[0-255]";
+  }
+
+  typedef Cisco-ios-xr-port-number {
+    type uint16 {
+      range "1..65535";
+    }
+    description
+      "Port number of range from 1 to 65535";
+  }
+
+  typedef Interface-name {
+    type string {
+      pattern "[a-zA-Z0-9./-]+";
+    }
+    description
+      "An interface name specifying an interface type and 
+       instance.
+       Interface represents a string defining an interface
+       type and instance, e.g. MgmtEth0/4/CPU1/0 or
+       TenGigE0/2/0/0.2 or Bundle-Ether9 or 
+       Bundle-Ether9.98";
+  }
+
+  typedef Cisco-ios-xr-string {
+    type string {
+      pattern "[\\w\\-\\.:,_@#%$\\+=\\|;]+";
+    }
+    description
+      "Special characters are not allowed.";
+  }
+
+  typedef Ipv4-prefix-length {
+    type uint8 {
+      range "0..32";
+    }
+    description
+      "An IPv4 address prefix length. 
+       Must lie between 0 and 32 inclusive.";
+  }
+
+  typedef Ipv6-prefix-length {
+    type uint8 {
+      range "0..128";
+    }
+    description
+      "An IPv6 address prefix length. 
+       Must lie between 0 and 32 inclusive.";
+  }
+
+  typedef Rack-id {
+    type string {
+      pattern "[a-zA-Z0-9_]*\\d+";
+    }
+    description
+      "Names the rack portion of a NodeID 
+       Rack/Slot/Instance triple";
+  }
+
+  typedef Slot-id {
+    type string {
+      pattern "[a-zA-Z0-9_]*\\d+";
+    }
+    description
+      "Names the slot portion of a NodeID 
+       Rack/Slot/Instance triple";
+  }
+
+  typedef Instance-id {
+    type string {
+      pattern "[a-zA-Z0-9_]*\\d+";
+    }
+    description
+      "Names the instance portion of a NodeID 
+       Rack/Slot/Instance triple";
+  }
+
+  typedef Sub-instance-id {
+    type string {
+      pattern "[a-zA-Z0-9_]*\\d+";
+    }
+    description
+      "Names the sub-instance portion of an extended
+       NodeID Rack/Slot/Instance/SubInstance";
+  }
+
+  typedef Encryption-type {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "The password string is clear text.";
+      }
+      enum "md5" {
+        value 1;
+        description
+          "The password is encrypted to an MD5 digest.";
+      }
+      enum "proprietary" {
+        value 2;
+        description
+          "The password is encrypted using Cisco type 7 
+           password encryption.";
+      }
+      enum "type6" {
+        value 3;
+        description
+          "The password is encrypted using Cisco type 6 
+           password encryption.";
+      }
+    }
+    description
+      "The type of encryption used on a password string.";
+  }
+
+  typedef Hex-integer {
+    type string {
+      pattern "[0-9a-fA-F]{1,8}";
+    }
+    description
+      "An unsigned 32-bit integer represented in
+       hexadecimal format.";
+  }
+
+  typedef Osi-system-id {
+    type string {
+      pattern "[a-fA-F0-9]{4}(\\.[a-fA-F0-9]{4}){2}";
+    }
+    description
+      "An OSI system ID should be of the form 
+       0123.4567.89ab. This data type restricts each
+       character to a hex character.";
+  }
+
+  typedef Osi-area-address {
+    type string {
+      pattern "[a-fA-F0-9]{2}(\\.[a-fA-F0-9]{4}){0,6}";
+    }
+    description
+      "An OSI area address should consist of an odd number
+       of octets, and be of the form 01 or 01.2345 etc up
+       to 01.2345.6789.abcd.ef01.2345.6789. This data type
+       restricts each character to a hex character.";
+  }
+
+  typedef Isis-node-id {
+    type string {
+      pattern "[a-fA-F0-9]{4}(\\.[a-fA-F0-9]{4}){2}\\.[a-fA-F0-9]{2}";
+    }
+    description
+      "An ISIS node ID should be of the form 
+       0123.4567.89ab.cd. This data type restricts each
+       character to a hex character.";
+  }
+
+  typedef Isis-snpa {
+    type string {
+      pattern "[a-fA-F0-9]{4}(\\.[a-fA-F0-9]{4}){2}";
+    }
+    description
+      "String representation of a SNPA, 802.2 MAC address
+       in canonical format, e.g. 0123.4567.89ab";
+  }
+
+  typedef Isis-lsp-id {
+    type string {
+      pattern "[a-fA-F0-9]{4}(\\.[a-fA-F0-9]{4}){2}\\.[a-fA-F0-9]{2}\\-[a-fA-F0-9]{2}";
+    }
+    description
+      "An ISIS LSP ID should be of the form 
+       0123.4567.89ab.cd-ef. This data type restricts each
+       character to a hex character.";
+  }
+
+  typedef Osi-net {
+    type string {
+      pattern "[a-fA-F0-9]{2}(\\.[a-fA-F0-9]{4}){3,9}\\.[a-fA-F0-9]{2}";
+    }
+    description
+      "An OSI NET should consist of an even number of 
+       octets, and be of the form 01.2345.6789.abcd.ef etc
+       up to 
+       01.2345.6789.abcd.ef01.2345.6789.abcd.ef01.2345.67.
+       This data type restricts each character to a hex
+       character.";
+  }
+
+  typedef String-identifier {
+    type string {
+      pattern "[a-zA-Z][\\w\\-]*";
+    }
+    description
+      "A string for specifying identifier.";
+  }
+
+  typedef Char-num {
+    type union {
+      type string {
+        pattern "(\\p{IsBasicLatin}|\\p{IsLatin-1Supplement})*";
+      }
+      type uint8;
+    }
+    description
+      "Takes a character or its ASCII decimal equivalent
+       (0-255).";
+  }
+
+  typedef Tty-escape-char-num {
+    type union {
+      type string {
+        pattern "(\\p{IsBasicLatin}|\\p{IsLatin-1Supplement})|(DEFAULT)|(BREAK)|(NONE)";
+      }
+      type uint8;
+    }
+    description
+      "Escape character or its ASCII decimal equivalent
+       (0-255) or one of the three string DEFAULT, BREAK,
+       NONE.";
+  }
+
+  typedef Extended-node-id {
+    type string {
+      pattern "([a-zA-Z0-9_]*\\d+/){3}([a-zA-Z0-9_]*\\d+)";
+    }
+    description
+      "A location used as value information and specified
+       as a Rack/Slot/Instance/SubInstance, e.g. 
+       0/1/CPU0/NPU0";
+  }
+
+  typedef Node-id {
+    type string {
+      pattern "([a-zA-Z0-9_]*\\d+/){1,2}([a-zA-Z0-9_]*\\d+)";
+    }
+    description
+      "A location used as value information and specified
+       as a Rack/Slot/Instance triple, e.g. F0/SC1/0.";
+  }
+
+  typedef Pq-node-id {
+    type string {
+      pattern "((([a-zA-Z0-9_]*\\d+)|(\\*))/){2}(([a-zA-Z0-9_]*\\d+)|(\\*))";
+    }
+    description
+      "Partially qualified location which is used for 
+       wildcarding location specifications, e.g. 1/*/*";
+  }
+
+  typedef Md5-password {
+    type string {
+      pattern "(!.+)|([^!].+)";
+    }
+    description
+      "The Md5-password type is used to store password using the MD5
+       hash function.
+       When a clear text value is set to a leaf of this type, the
+       server calculates a password hash and stores the result
+       in the datastore. The password is never stored in clear text.
+       
+       When a leaf of this type is read, the stored password hash is
+       returned.
+       
+       A value of this type matches one of the forms:
+       
+         !<clear text password>
+         <password hash>
+         
+       The '!' prefix signals that the value is clear text. When
+       such a value is received by the server, a hash value is
+       calculated. This value is stored in the configuration data 
+       store.
+       
+       If a value starting without '!' is received, the server knows 
+       that the value already represents a hashed value, and stores 
+       it as is in the data store.";
+  }
+
+  typedef Type8-password {
+    type string {
+      pattern "(!.+)|([^!].+)";
+    }
+    description
+      "The Type8-password type is used to store password using the
+       SHA-256 encryption.
+       When a clear text value is set to a leaf of this type, the
+       server calculates a password hash and stores the result
+       in the datastore. The password is never stored in clear text.
+       
+       When a leaf of this type is read, the stored password hash is
+       returned.
+       
+       A value of this type matches one of the forms:
+       
+         !<clear text password>
+         <password hash>
+         
+       The '!' prefix signals that the value is clear text. When
+       such a value is received by the server, a hash value is
+       calculated. This value is stored in the configuration data 
+       store.
+       
+       If a value starting without '!' is received, the server knows 
+       that the value already represents a hashed value, and stores 
+       it as is in the data store.";
+  }
+
+  typedef Type9-password {
+    type string {
+      pattern "(!.+)|([^!].+)";
+    }
+    description
+      "The Type9-password type is used to store password using the
+       Script algorithmic encryption.
+       When a clear text value is set to a leaf of this type, the
+       server calculates a password hash and stores the result
+       in the datastore. The password is never stored in clear text.
+       
+       When a leaf of this type is read, the stored password hash is
+       returned.
+       
+       A value of this type matches one of the forms:
+       
+         !<clear text password>
+         <password hash>
+         
+       The '!' prefix signals that the value is clear text. When
+       such a value is received by the server, a hash value is
+       calculated. This value is stored in the configuration data 
+       store.
+       
+       If a value starting without '!' is received, the server knows 
+       that the value already represents a hashed value, and stores 
+       it as is in the data store.";
+  }
+
+  typedef Proprietary-password {
+    type string {
+      pattern "(!.+)|([^!].+)";
+    }
+    description
+      "The Proprietary-password type is used to store password 
+       using the Cisco proprietary hash function.
+       When a clear text value is set to a leaf of this type, the
+       server calculates a password hash and stores the result
+       in the datastore. The password is never stored in clear text.
+       
+       When a leaf of this type is read, the stored password hash is
+       returned.
+       
+       A value of this type matches one of the forms:
+       
+         !<clear text password>
+         <password hash>
+         
+       The '!' prefix signals that the value is clear text. When
+       such a value is received by the server, a hash value is
+       calculated. This value is stored in the configuration data 
+       store.
+       
+       If a value starting without '!' is received, the server knows 
+       that the value already represents a hashed value, and stores 
+       it as is in the data store.";
+  }
+
+  typedef Type6-password {
+    type string {
+      pattern "(!.+)|([^!].+)";
+    }
+    description
+      "The Type6-password type is used to store password 
+       using the Cisco type 6 hash function.
+       When a clear text value is set to a leaf of this type, the
+       server calculates a password hash and stores the result
+       in the datastore. The password is never stored in clear text.
+       
+       When a leaf of this type is read, the stored password hash is
+       returned.
+       
+       A value of this type matches one of the forms:
+       
+         !<clear text password>
+         <password hash>
+         
+       The '!' prefix signals that the value is clear text. When
+       such a value is received by the server, a hash value is
+       calculated. This value is stored in the configuration data 
+       store.
+       
+       If a value starting without '!' is received, the server knows 
+       that the value already represents a hashed value, and stores 
+       it as is in the data store.";
+  }
+
+  typedef Bgp-ipv4-flowspec-address {
+    type string {
+      pattern "[a-fA-F0-9]{4096}";
+    }
+    description
+      "An IPV4 Flowspec address in hexadecimal notation.";
+  }
+
+  typedef Bgp-ipv6-flowspec-address {
+    type string {
+      pattern "[a-fA-F0-9]{4096}";
+    }
+    description
+      "An IPV6 Flowspec address in hexadecimal notation.";
+  }
+
+  typedef Rpl-policy {
+    type string;
+    description
+      "RPL Policy info";
+  }
+
+  typedef Rpl-set {
+    type string;
+    description
+      "RPL Set info";
+  }
+
+  typedef Physical-allowed-node-id {
+    type uint32;
+    description
+      "A physical location encoded as a 32-bit value.";
+  }
+
+  typedef Physical-allowed-node-id-string {
+    type string;
+    description
+      "A physical location which is represented internallyusing string format (eg: 0_6_CPU0).";
+  }
+}
index d58df89e2676fc255082b8e8f27ead8205c57fff..62f8108ab0187400ed22c54befab5c7f7a2e666f 100644 (file)
@@ -6,7 +6,7 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
index 59f51ce8b0215aed408bdc9e87e6fb077d290ab3..cb4a1387ac0d7b647d850ec0ff32b279cce08971 100644 (file)
@@ -3,7 +3,7 @@
   This program and the accompanying materials are made available under the 
   terms of the Eclipse Public License v1.0 which accompanies this distribution, 
   and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
index 2cbaa28cfc2af3124f7a591b1403f48aaa5db079..d437d19a06d2c0e7ad150253297dc9c4242f8cb6 100755 (executable)
@@ -7,8 +7,8 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
 -->
   
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.2 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
index 52e961ae38c766890f3d385fad2155a19979d592..b234e7dfbc2bc739bc21b59e19b62ea11e0a3649 100644 (file)
@@ -3,7 +3,7 @@
   This program and the accompanying materials are made available under the 
   terms of the Eclipse Public License v1.0 which accompanies this distribution, 
   and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
index e155a7125a2246e1be36da0f7e5fd31d62b82c4a..116b1cfd9031a3a46965e7e6b65176bd02b81fb3 100644 (file)
@@ -3,7 +3,7 @@
   This program and the accompanying materials are made available under the 
   terms of the Eclipse Public License v1.0 which accompanies this distribution, 
   and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
index b21cf263c7ad52650e215fc424137b6d5d33b3af..f99f4318769ed24c3457c60ce916998a61152975 100644 (file)
@@ -3,7 +3,7 @@
   This program and the accompanying materials are made available under the 
   terms of the Eclipse Public License v1.0 which accompanies this distribution, 
   and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
index d7b1c90d02aa4829bfc02333e99027e65f79b299..396689566d156573bb93dc844f94f101b2760f4b 100644 (file)
@@ -3,7 +3,7 @@
   This program and the accompanying materials are made available under the
   terms of the Eclipse Public License v1.0 which accompanies this distribution,
   and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
index d94ec3e12a725e85538753178cff3fe17e559ac8..59919b357ac289599db1f629311efa9daf187dfc 100644 (file)
@@ -6,8 +6,8 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.2 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>
index 4ebb08100989ea49aaa6f161af6f3818e320a366..cc76a3291757063b43bee19a06c4f1a6d7f9245d 100644 (file)
@@ -6,7 +6,7 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
   <parent>
     <groupId>org.opendaylight.controller</groupId>
index 928e4fc2d452a62d1fff403ecf0ebfc04520c4fd..92cb8b71633d5b2b88a2b6839a866af2cce00381 100644 (file)
@@ -6,7 +6,7 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf4-parent</artifactId>
index b365af69d2e8cf79758b3ef667ddca8a3e1a99f0..10c638e775a9e8dc61a72bf1f42dd3517cbc7157 100644 (file)
@@ -7,7 +7,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>binding-parent</artifactId>
index a58edcdae2269fccfc8e3c02ae49816f228d1a81..f25d4a08524961e9ae630c98ec2a18b995ee2993 100644 (file)
@@ -6,7 +6,7 @@ This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
index a002f4e797e7269eaeb5d9d9bad972327d159696..8495f280bd14b6189483144402414d6df7ad900f 100644 (file)
@@ -7,9 +7,9 @@
   ~ and is available at http://www.eclipse.org/legal/epl-v10.html
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.2"
+<project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.2 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>