Cleaning up unused code in Microsemi driver

Change-Id: If7e9790d9141324dff084e41d040ba0132141de8
diff --git a/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java b/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java
new file mode 100644
index 0000000..b04aac1
--- /dev/null
+++ b/models/microsemi/src/main/java/org/onosproject/models/microsemi/MicrosemiModelRegistrator.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.models.microsemi;
+
+import com.google.common.collect.ImmutableMap;
+import org.onosproject.yang.AbstractYangModelRegistrator;
+import org.onosproject.yang.gen.v1.ietfsystem.rev20140806.IetfSystem;
+import org.onosproject.yang.gen.v1.ietfsystemmicrosemi.rev20160505.IetfSystemMicrosemi;
+import org.apache.felix.scr.annotations.Component;
+import org.onosproject.yang.gen.v1.mseacfm.rev20160229.MseaCfm;
+import org.onosproject.yang.gen.v1.mseasoampm.rev20160229.MseaSoamPm;
+import org.onosproject.yang.gen.v1.mseasoamfm.rev20160229.MseaSoamFm;
+import org.onosproject.yang.gen.v1.mseasafiltering.rev20160412.MseaSaFiltering;
+import org.onosproject.yang.gen.v1.mseaunievcservice.rev20160317.MseaUniEvcService;
+import org.onosproject.yang.model.DefaultYangModuleId;
+import org.onosproject.yang.model.YangModuleId;
+import org.onosproject.yang.runtime.AppModuleInfo;
+import org.onosproject.yang.runtime.DefaultAppModuleInfo;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component(immediate = true)
+public class MicrosemiModelRegistrator extends AbstractYangModelRegistrator {
+    public MicrosemiModelRegistrator() {
+        super(MicrosemiModelRegistrator.class, getAppInfo());
+    }
+
+    private static Map<YangModuleId, AppModuleInfo> getAppInfo() {
+        Map<YangModuleId, AppModuleInfo> appInfo = new HashMap<>();
+        List<String> sysMicrosemiFeatures = new ArrayList<>();
+        sysMicrosemiFeatures.add("serial-number");
+        appInfo.put(new DefaultYangModuleId("ietf-system-microsemi", "2016-05-05"),
+                    new DefaultAppModuleInfo(IetfSystemMicrosemi.class, sysMicrosemiFeatures));
+
+        List<String> systemFeatures = new ArrayList<>();
+        systemFeatures.add("local-users");
+        systemFeatures.add("authentication");
+        systemFeatures.add("ntp");
+        appInfo.put(new DefaultYangModuleId("ietf-system", "2014-08-06"),
+                new DefaultAppModuleInfo(IetfSystem.class, systemFeatures));
+
+        appInfo.put(new DefaultYangModuleId("msea-uni-evc-service", "2016-03-17"),
+                new DefaultAppModuleInfo(MseaUniEvcService.class, null));
+        appInfo.put(new DefaultYangModuleId("msea-cfm", "2016-02-29"),
+                new DefaultAppModuleInfo(MseaCfm.class, null));
+        appInfo.put(new DefaultYangModuleId("msea-soam-fm", "2016-02-29"),
+                new DefaultAppModuleInfo(MseaSoamFm.class, null));
+        appInfo.put(new DefaultYangModuleId("msea-soam-pm", "2016-02-29"),
+                new DefaultAppModuleInfo(MseaSoamPm.class, null));
+        appInfo.put(new DefaultYangModuleId("msea-sa-filtering", "2016-04-12"),
+                new DefaultAppModuleInfo(MseaSaFiltering.class, null));
+
+        return ImmutableMap.copyOf(appInfo);
+        // TODO: Do some other registration tasks...
+    }
+}
\ No newline at end of file
diff --git a/models/microsemi/src/main/java/org/onosproject/models/microsemi/package-info.java b/models/microsemi/src/main/java/org/onosproject/models/microsemi/package-info.java
new file mode 100644
index 0000000..b484dad
--- /dev/null
+++ b/models/microsemi/src/main/java/org/onosproject/models/microsemi/package-info.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Commonly used yang models.
+ */
+package org.onosproject.models.microsemi;
diff --git a/models/microsemi/src/main/yang/ENTITY-STATE-TC-MIB.yang b/models/microsemi/src/main/yang/ENTITY-STATE-TC-MIB@2005-11-22.yang
similarity index 100%
rename from models/microsemi/src/main/yang/ENTITY-STATE-TC-MIB.yang
rename to models/microsemi/src/main/yang/ENTITY-STATE-TC-MIB@2005-11-22.yang
diff --git a/models/microsemi/src/main/yang/fpga-internal.yang b/models/microsemi/src/main/yang/fpga-internal.yang
deleted file mode 100644
index 87fabb1..0000000
--- a/models/microsemi/src/main/yang/fpga-internal.yang
+++ /dev/null
@@ -1,266 +0,0 @@
-module fpga-internal {
-
-	/*** NAMESPACE / PREFIX DEFINITION ***/
-
-	namespace "http://www.microsemi.com/fpga-int";
-	prefix "fpga-int";
-
-	/*** META INFORMATION ***/
-
-	organization
-	"Microsemi Inc., FTD Division";
-
-	contact
-	"Web URL: http://www.microsemi.com/
-	E-mail: info@microsemi.com
-	Postal: Microsemi Corporation Corporate Headquarters
-	One Enterprise Aliso Viejo,
-	CA 92656
-	U.S.A.
-	Phone: +1 949 380 6100
-	Fax: +1 949 215-4996";
-
-	description
-	"This YANG module add internal procedures to access FPAA hardware
-
-	Copyright 2015 Microsemi Inc.
-	All rights reserved.";
-
-	revision "2015-11-30" {
-		description
-		"Initial version - Sean Condon, Microsemi";
-	}
-
-	typedef sixteen-bit-hex {
-		type string {
-			pattern '0x[0-9a-fA-F]{4}';
-		}
-
-		description
-		"A 16-bit address represented as a hexadecimal number";
-	}
-
-	typedef thirtytwo-bit-hex {
-		type string {
-			pattern '0x[0-9a-fA-F]{8}';
-		}
-
-		description
-		"A 32-bit address represented as a hexadecimal number";
-	}
-	
-	typedef thirtytwobit-data {
-		type string {
-			pattern '([0-9a-fA-F]{8}(:[0-9a-fA-F]{8})*)?';
-		}
-
-		description
-		"A set of 32 bit data values represented as colon separated 
-		hex strings e.g. 'A1B2C3D4:B2C3D4F5:C3D4E5F6'";
-	}
-
-	typedef select-ram-enum {
-		type enumeration {
-			enum pkt-store-sel {value 0;}
-			enum probe-store-sel {value 1;}
-			enum xconn-store-sel {value 2;}
-			enum rmep-err-store-sel {value 3;}
-			enum rx-lmep-map-sel {value 4;}
-			enum cpu-sys-capt-fifo-sel {value 5;}
-			enum rmep-ram-sel {value 6;}
-			enum xconn-ram-sel {value 7;}
-			enum rmep-err-ram-sel {value 8;}
-			enum tx-lmep-map-sel {value 9;}
-			enum ext-sram-sel {value 10;}
-			enum car-rmac-sel {value 11;}
-			enum sys-mac-sel {value 12;}
-			enum rx-carr-data-fifo-sel {value 13;}
-			enum line-stats-ram-sel {value 14;}
-			enum cpu-sys-capt-info-fifo-sel {value 15;}
-			enum vlan-info-ram-sel {value 16;}
-			enum lbm-store-sel {value 17;}
-			enum lbr-ram-sel {value 18;}
-			enum mc-lbr-store-sel {value 19;}
-			enum port-mac-ram-sel {value 20;}
-			enum pm-db-ram-sel {value 22;}
-			enum tx-lb-ram-sel {value 24;}
-			enum tlv-ram-sel {value 25;}
-			enum cpu-capt-fifo-sel {value 26;}
-			enum cpu-capt-info-fifo-sel {value 27;}
-			enum policer-cfg-ram-sel {value 28;}
-			enum policer-ctxt-ram-sel {value 29;}
-			enum cpu-sys-tx-ram-sel {value 30;}
-			enum policer-stats-ram-sel {value 31;}
-		}
-	}
-	
-	
-	container fpga-internal {
-		presence "Supports FPGA direct access";
-	}
-	
-	rpc read-registers {
-
-		description "Method to read directly from hardware registers";
-		input {
-			choice hex-or-dec {
-				
-				description "Enter the starting address in either decimal (0-65535) 
-						or hexadecimal (preceeded with 0x)";
-				mandatory true;
-
-				case hex {
-					leaf start-address-hex {
-						type sixteen-bit-hex;
-					}
-				}
-
-				case decimal {
-					leaf start-address-dec {
-						type uint16;
-					}
-				}
-			}
-
-			leaf num-locations {
-				type uint8 {
-					range 1..max;
-				}
-				description "The number of following locations (addresses) to read from";
-				default 1;
-			}
-		}
-
-		output {
-            anyxml data {
-				description "A set of 32 bit data values represented 
-						as colon separated 8 character hexadecimal values";
-			}
-		}
-	}
-	
-
-	rpc write-registers {
-
-		description "Method to write directly to hardware registers.
-				If a number of data values are given then subsequent
-				locations are written to";
-		input {
-			choice hex-or-dec {
-				
-				description "Enter the starting address in either decimal (0-65535) 
-						or hexadecimal (preceeded with 0x)";
-				
-				case hex {
-					leaf start-address-hex {
-						type sixteen-bit-hex;
-					}
-				}
-
-				case decimal {
-					leaf start-address-dec {
-						type uint16;
-					}
-				}
-			}
-
-			leaf value-hex-32 {
-				type thirtytwobit-data;
-				description "A set of 32 bit data values represented 
-						as colon separated 8 character hexadecimal values
-						e.g. ffffffff:ffffffff:ffffffff
-						The number of locations written to will be 
-						determinted by the number of such values given";
-			}
-		}
-	}
-
-	rpc read-ram {
-
-		description "Method to read directly from hardware RAM";
-		input {
-			leaf ram {
-				type select-ram-enum;
-				mandatory true;
-				description "The type of RAM to read from";
-			}
-			
-			choice hex-or-dec {
-				
-				description "Enter the starting address in either decimal (0-65535) 
-						or hexadecimal (preceeded with 0x)";
-				mandatory true;
-
-				case hex {
-					leaf start-address-hex {
-						type thirtytwo-bit-hex;
-					}
-				}
-
-				case decimal {
-					leaf start-address-dec {
-						type uint32;
-					}
-				}
-			}
-			
-			leaf num-locations {
-				type uint8 {
-					range 1..max;
-				}
-				description "The number of following locations (addresses) to read from";
-				default 1;
-			}
-		}
-
-		output {
-            anyxml data {
-				description "A set of 32 bit data values represented 
-						as colon separated 8 character hexadecimal values";
-			}
-		}
-	}
-
-	rpc write-ram {
-
-		description "Method to write directly to RAM registers.
-				If a number of data values are given then subsequent
-				locations are written to";
-		input {
-			leaf ram {
-				type select-ram-enum;
-				mandatory true;
-				description "The type of RAM to read from";
-			}
-
-			choice hex-or-dec {
-				
-				description "Enter the starting address in either decimal (0-65535) 
-						or hexadecimal (preceeded with 0x)";
-				mandatory true;
-				
-				case hex {
-					leaf start-address-hex {
-						type thirtytwo-bit-hex;
-					}
-				}
-
-				case decimal {
-					leaf start-address-dec {
-						type uint32;
-					}
-				}
-			}
-
-			leaf value-hex-32 {
-				type thirtytwobit-data;
-				description "A set of 32 bit data values represented 
-						as colon separated 8 character hexadecimal values
-						e.g. ffffffff:ffffffff:ffffffff
-						The number of locations written to will be 
-						determinted by the number of such values given";
-			}
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/models/microsemi/src/main/yang/iana-crypt-hash.yang b/models/microsemi/src/main/yang/iana-crypt-hash.yang
deleted file mode 100644
index 3a9ef55..0000000
--- a/models/microsemi/src/main/yang/iana-crypt-hash.yang
+++ /dev/null
@@ -1,121 +0,0 @@
-module iana-crypt-hash {
-  namespace "urn:ietf:params:xml:ns:yang:iana-crypt-hash";
-  prefix ianach;
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             12025 Waterfront Drive, Suite 300
-             Los Angeles, CA  90094-2536
-             United States
-
-     Tel:    +1 310 301 5800
-     E-Mail: iana@iana.org>";
-  description
-    "This YANG module defines a type for storing passwords
-     using a hash function and features to indicate which hash
-     functions are supported by an implementation.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Requests for new values should be made to IANA via
-     email (iana@iana.org).
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     The initial version of this YANG module is part of RFC 7317;
-     see the RFC itself for full legal notices.";
-
-  revision 2014-08-06 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7317: A YANG Data Model for System Management";
-  }
-
-  typedef crypt-hash {
-    type string {
-      pattern
-        '$0$.*' //Escaped all $ as Java Pattern matcher will interpret them otherwise 
-      + '|$1$[a-zA-Z0-9./]{1,8}$[a-zA-Z0-9./]{22}'
-      + '|$5$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{43}'
-      + '|$6$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{86}';
-    }
-    description
-      "The crypt-hash type is used to store passwords using
-       a hash function.  The algorithms for applying the hash
-       function and encoding the result are implemented in
-       various UNIX systems as the function crypt(3).
-
-       A value of this type matches one of the forms:
-
-         $0$<clear text password>
-         $<id>$<salt>$<password hash>
-         $<id>$<parameter>$<salt>$<password hash>
-
-       The '$0$' prefix signals that the value is clear text.  When
-       such a value is received by the server, a hash value is
-       calculated, and the string '$<id>$<salt>$' or
-       $<id>$<parameter>$<salt>$ is prepended to the result.  This
-       value is stored in the configuration data store.
-
-       If a value starting with '$<id>$', where <id> is not '0', is
-       received, the server knows that the value already represents a
-       hashed value and stores it 'as is' in the data store.
-
-       When a server needs to verify a password given by a user, it
-       finds the stored password hash string for that user, extracts
-       the salt, and calculates the hash with the salt and given
-       password as input.  If the calculated hash value is the same
-       as the stored value, the password given by the client is
-       accepted.
-
-       This type defines the following hash functions:
-
-         id | hash function | feature
-         ---+---------------+-------------------
-          1 | MD5           | crypt-hash-md5
-          5 | SHA-256       | crypt-hash-sha-256
-          6 | SHA-512       | crypt-hash-sha-512
-
-       The server indicates support for the different hash functions
-       by advertising the corresponding feature.";
-    reference
-      "IEEE Std 1003.1-2008 - crypt() function
-       RFC 1321: The MD5 Message-Digest Algorithm
-       FIPS.180-4.2012: Secure Hash Standard (SHS)";
-  }
-
-  feature crypt-hash-md5 {
-    description
-      "Indicates that the device supports the MD5
-       hash function in 'crypt-hash' values.";
-    reference "RFC 1321: The MD5 Message-Digest Algorithm";
-  }
-
-  feature crypt-hash-sha-256 {
-    description
-      "Indicates that the device supports the SHA-256
-       hash function in 'crypt-hash' values.";
-    reference "FIPS.180-4.2012: Secure Hash Standard (SHS)";
-  }
-
-  feature crypt-hash-sha-512 {
-    description
-      "Indicates that the device supports the SHA-512
-       hash function in 'crypt-hash' values.";
-    reference "FIPS.180-4.2012: Secure Hash Standard (SHS)";
-  }
-
-}
diff --git a/models/microsemi/src/main/yang/iana-if-type.yang b/models/microsemi/src/main/yang/iana-if-type@2014-05-08.yang
similarity index 100%
rename from models/microsemi/src/main/yang/iana-if-type.yang
rename to models/microsemi/src/main/yang/iana-if-type@2014-05-08.yang
diff --git a/models/microsemi/src/main/yang/ieee-types.yang b/models/microsemi/src/main/yang/ieee-types.yang
deleted file mode 100644
index 5ff5c1d..0000000
--- a/models/microsemi/src/main/yang/ieee-types.yang
+++ /dev/null
@@ -1,79 +0,0 @@
-   module ieee-types {
-
-       // XXX namespace to be allocated by IANA
-
-       namespace "urn:ietf:params:xml:ns:yang:ieee-types";
-       prefix "ieee";
-
-       import ietf-yang-types {
-           prefix yang;
-       }
-
-       organization
-           "YANG Language Design Team";
-
-       contact
-           "Juergen Schoenwaelder (Editor)
-            <j.schoenwaelder@jacobs-university.de>";
-
-       description
-           "This module contains standard derived YANG types
-            for IEEE 802 addresses and related things.";
-
-       revision 2008-05-22 {
-           description "Initial revision.";
-       }
-
-       /*
-        * collection of IEEE address type definitions
-        */
-
-       typedef mac-address {
-           type yang:phys-address {
-               pattern '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}';
-           }
-           description
-              "The mac-address type represents an 802 MAC address
-               represented in the `canonical' order defined by
-               IEEE 802.1a, i.e., as if it were transmitted least
-               significant bit first, even though 802.5 (in contrast
-               to other 802.x protocols) requires MAC addresses to
-               be transmitted most significant bit first.";
-           reference
-              "RFC 2579 STD 58";
-       }
-
-       /*
-        * collection of IEEE 802 related identifier types
-        */
-
-       typedef bridgeid {
-           type string {
-               pattern '[0-9a-fA-F]{4}:'
-                     + '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}';
-           }
-           description
-              "The bridgeid type represents identifers that uniquely
-               identify a bridge.  Its first four hexadecimal digits
-               contain a priority value followed by a colon. The
-               remaining characters contain the MAC address used to
-               refer to a bridge in a unique fashion (typically, the
-               numerically smallest MAC address of all ports on the
-               bridge).";
-           reference
-              "RFC 4188";
-       }
-
-       typedef vlanid {
-           type uint16 {
-               range "1..4094";
-           }
-           description
-              "The vlanid type uniquely identifies a VLAN. This is
-               the 12-bit VLAN-ID used in the VLAN Tag header. The
-               range is defined by the referenced specification.";
-           reference
-              "IEEE Std 802.1Q 2003 Edition, Virtual Bridged Local
-               Area Networks.";
-       }
-   }
diff --git a/models/microsemi/src/main/yang/ietf-inet-types.yang b/models/microsemi/src/main/yang/ietf-inet-types.yang
deleted file mode 100644
index 5388b03..0000000
--- a/models/microsemi/src/main/yang/ietf-inet-types.yang
+++ /dev/null
@@ -1,461 +0,0 @@
-module ietf-inet-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types for Internet addresses and related things.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - ip-address-no-zone
-      - ipv4-address-no-zone
-      - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-     "The dscp type represents a Differentiated Services Code Point
-      that may be used for marking packets in a traffic stream.
-      In the value set and its semantics, this type is equivalent
-      to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
-      Label in an IPv6 packet header that may be used to
-      discriminate traffic flows.
-
-      In the value set and its semantics, this type is equivalent
-      to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
-    }
-    description
-     "The port-number type represents a 16-bit port number of an
-      Internet transport-layer protocol such as UDP, TCP, DCCP, or
-      SCTP.  Port numbers are assigned by IANA.  A current list of
-      all assignments is available from <http://www.iana.org/>.
-
-      Note that the port number value zero is reserved by IANA.  In
-      situations where the value zero does not make sense, it can
-      be excluded by subtyping the port-number type.
-      In the value set and its semantics, this type is equivalent
-      to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  /*** collection of types related to autonomous systems ***/
-
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
-      which identify an Autonomous System (AS).  An AS is a set
-      of routers under a single technical administration, using
-      an interior gateway protocol and common metrics to route
-      packets within the AS, and using an exterior gateway
-      protocol to route packets to other ASes.  IANA maintains
-      the AS number space and has delegated large parts to the
-      regional registries.
-
-      Autonomous system numbers were originally limited to 16
-      bits.  BGP extensions have enlarged the autonomous system
-      number space to 32 bits.  This type therefore uses an uint32
-      base type without a range restriction in order to support
-      a larger autonomous system number space.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetAutonomousSystemNumber textual convention of
-      the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
-
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
-    }
-    description
-     "The ip-address type represents an IP address and is IP
-      version neutral.  The format of the textual representation
-      implies the IP version.  This type supports scoped addresses
-      by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
-    }
-    description
-      "The ipv4-address type represents an IPv4 address in
-       dotted-quad notation.  The IPv4 address may include a zone
-       index, separated by a % sign.
-
-       The zone index is used to disambiguate identical address
-       values.  For link-local addresses, the zone index will
-       typically be the interface index number or the name of an
-       interface.  If the zone index is not present, the default
-       zone of the device will be used.
-
-       The canonical format for the zone index is the numerical
-       format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
-    }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
-      mixed, shortened, and shortened-mixed notation.  The IPv6
-      address may include a zone index, separated by a % sign.
-
-      The zone index is used to disambiguate identical address
-      values.  For link-local addresses, the zone index will
-      typically be the interface index number or the name of an
-      interface.  If the zone index is not present, the default
-      zone of the device will be used.
-
-
-
-      The canonical format of IPv6 addresses uses the textual
-      representation defined in Section 4 of RFC 5952.  The
-      canonical format for the zone index is the numerical
-      format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
-    }
-    description
-     "The ip-address-no-zone type represents an IP address and is
-      IP version neutral.  The format of the textual representation
-      implies the IP version.  This type does not support scoped
-      addresses since it does not allow zone identifiers in the
-      address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
-    }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
-       ipv4-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
-    }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
-       ipv6-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
-    }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The canonical format of an IPv4 prefix has all bits of
-      the IPv4 address set to zero that are not part of the
-      IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-
-
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.
-
-      The canonical format of an IPv6 prefix has all bits of
-      the IPv6 address set to zero that are not part of the
-      IPv6 prefix.  Furthermore, the IPv6 address is represented
-      as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      pattern
-        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
-      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
-      + '|\.';
-      length "1..253";
-    }
-    description
-     "The domain-name type represents a DNS domain name.  The
-      name SHOULD be fully qualified whenever possible.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      The description clause of schema nodes using the domain-name
-      type MUST describe when and how these names are resolved to
-      IP addresses.  Note that the resolution of a domain-name value
-      may require to query multiple DNS records (e.g., A for IPv4
-      and AAAA for IPv6).  The order of the resolution process and
-      which DNS record takes precedence can either be defined
-      explicitly or may depend on the configuration of the
-      resolver.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
-
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
-    }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
-
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
-      (URI) as defined by STD 66.
-
-      Objects using the uri type MUST be in US-ASCII encoding,
-      and MUST be normalized as described by RFC 3986 Sections
-      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
-      percent-encoding is removed, and all case-insensitive
-      characters are set to lowercase except for hexadecimal
-      digits, which are normalized to uppercase as described in
-      Section 6.2.2.1.
-
-      The purpose of this normalization is to help provide
-      unique URIs.  Note that this normalization is not
-      sufficient to provide uniqueness.  Two URIs that are
-      textually distinct after this normalization may still be
-      equivalent.
-
-      Objects using the uri type may restrict the schemes that
-      they permit.  For example, 'data:' and 'urn:' schemes
-      might not be appropriate.
-
-      A zero-length URI is not a valid URI.  This can be used to
-      express 'URI absent' where required.
-
-      In the value set and its semantics, this type is equivalent
-      to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
-
-}
diff --git a/models/microsemi/src/main/yang/ietf-interfaces.yang b/models/microsemi/src/main/yang/ietf-interfaces@2014-05-08.yang
similarity index 100%
rename from models/microsemi/src/main/yang/ietf-interfaces.yang
rename to models/microsemi/src/main/yang/ietf-interfaces@2014-05-08.yang
diff --git a/models/microsemi/src/main/yang/ietf-netconf-acm.yang b/models/microsemi/src/main/yang/ietf-netconf-acm.yang
deleted file mode 100644
index f0c6fe3..0000000
--- a/models/microsemi/src/main/yang/ietf-netconf-acm.yang
+++ /dev/null
@@ -1,449 +0,0 @@
-module ietf-netconf-acm {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-acm";
-
-  prefix "nacm";
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     Editor:   Andy Bierman
-               <mailto:andy@yumaworks.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-  description
-    "NETCONF Access Control Model.
-
-     Copyright (c) 2012 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD
-     License set forth in Section 4.c of the IETF Trust's
-     Legal Provisions Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6536; see
-     the RFC itself for full legal notices.";
-
-  revision "2012-02-22" {
-    description
-      "Initial version";
-    reference
-      "RFC 6536: Network Configuration Protocol (NETCONF)
-                 Access Control Model";
-  }
-
-  /*
-   * Extension statements
-   */
-
-  extension default-deny-write {
-    description
-      "Used to indicate that the data model node
-       represents a sensitive security system parameter.
-
-       If present, and the NACM module is enabled (i.e.,
-       /nacm/enable-nacm object equals 'true'), the NETCONF server
-       will only allow the designated 'recovery session' to have
-       write access to the node.  An explicit access control rule is
-       required for all other users.
-
-       The 'default-deny-write' extension MAY appear within a data
-       definition statement.  It is ignored otherwise.";
-  }
-
-  extension default-deny-all {
-    description
-      "Used to indicate that the data model node
-       controls a very sensitive security system parameter.
-
-       If present, and the NACM module is enabled (i.e.,
-       /nacm/enable-nacm object equals 'true'), the NETCONF server
-       will only allow the designated 'recovery session' to have
-       read, write, or execute access to the node.  An explicit
-       access control rule is required for all other users.
-
-       The 'default-deny-all' extension MAY appear within a data
-       definition statement, 'rpc' statement, or 'notification'
-       statement.  It is ignored otherwise.";
-  }
-
-  /*
-   * Derived types
-   */
-
-  typedef user-name-type {
-    type string {
-      length "1..max";
-    }
-    description
-      "General Purpose Username string.";
-  }
-
-  typedef matchall-string-type {
-    type string {
-      pattern "\*";
-    }
-    description
-      "The string containing a single asterisk '*' is used
-       to conceptually represent all possible values
-       for the particular leaf using this data type.";
-  }
-
-  typedef access-operations-type {
-    type bits {
-      bit create {
-        description
-          "Any protocol operation that creates a
-           new data node.";
-      }
-      bit read {
-        description
-          "Any protocol operation or notification that
-           returns the value of a data node.";
-      }
-      bit update {
-        description
-          "Any protocol operation that alters an existing
-           data node.";
-      }
-      bit delete {
-        description
-          "Any protocol operation that removes a data node.";
-      }
-      bit exec {
-        description
-          "Execution access to the specified protocol operation.";
-      }
-    }
-    description
-      "NETCONF Access Operation.";
-  }
-
-  typedef group-name-type {
-    type string {
-      length "1..max";
-      pattern "[^\*].*";
-    }
-    description
-      "Name of administrative group to which
-       users can be assigned.";
-  }
-
-  typedef action-type {
-    type enumeration {
-      enum permit {
-        description
-          "Requested action is permitted.";
-      }
-      enum deny {
-        description
-          "Requested action is denied.";
-      }
-    }
-    description
-      "Action taken by the server when a particular
-       rule matches.";
-  }
-
-  typedef node-instance-identifier {
-    type yang:xpath1.0;
-    description
-      "Path expression used to represent a special
-       data node instance identifier string.
-
-       A node-instance-identifier value is an
-       unrestricted YANG instance-identifier expression.
-       All the same rules as an instance-identifier apply
-       except predicates for keys are optional.  If a key
-       predicate is missing, then the node-instance-identifier
-       represents all possible server instances for that key.
-
-       This XPath expression is evaluated in the following context:
-
-        o  The set of namespace declarations are those in scope on
-           the leaf element where this type is used.
-
-        o  The set of variable bindings contains one variable,
-           'USER', which contains the name of the user of the current
-            session.
-
-        o  The function library is the core function library, but
-           note that due to the syntax restrictions of an
-           instance-identifier, no functions are allowed.
-
-        o  The context node is the root node in the data tree.";
-  }
-
-  /*
-   * Data definition statements
-   */
-
-  container nacm {
-//    nacm:default-deny-all;
-
-    description
-      "Parameters for NETCONF Access Control Model.";
-
-    leaf enable-nacm {
-      type boolean;
-      default true;
-      description
-        "Enables or disables all NETCONF access control
-         enforcement.  If 'true', then enforcement
-         is enabled.  If 'false', then enforcement
-         is disabled.";
-    }
-
-    leaf read-default {
-      type action-type;
-      default "permit";
-      description
-        "Controls whether read access is granted if
-         no appropriate rule is found for a
-         particular read request.";
-    }
-
-    leaf write-default {
-      type action-type;
-      default "deny";
-      description
-        "Controls whether create, update, or delete access
-         is granted if no appropriate rule is found for a
-         particular write request.";
-    }
-
-    leaf exec-default {
-      type action-type;
-      default "permit";
-      description
-        "Controls whether exec access is granted if no appropriate
-         rule is found for a particular protocol operation request.";
-    }
-
-    leaf enable-external-groups {
-      type boolean;
-      default true;
-      description
-        "Controls whether the server uses the groups reported by the
-         NETCONF transport layer when it assigns the user to a set of
-         NACM groups.  If this leaf has the value 'false', any group
-         names reported by the transport layer are ignored by the
-         server.";
-    }
-
-    leaf denied-operations {
-      type yang:zero-based-counter32;
-      config false;
-      mandatory true;
-      description
-        "Number of times since the server last restarted that a
-         protocol operation request was denied.";
-    }
-
-    leaf denied-data-writes {
-      type yang:zero-based-counter32;
-      config false;
-      mandatory true;
-      description
-        "Number of times since the server last restarted that a
-         protocol operation request to alter
-         a configuration datastore was denied.";
-    }
-
-    leaf denied-notifications {
-      type yang:zero-based-counter32;
-      config false;
-      mandatory true;
-      description
-        "Number of times since the server last restarted that
-         a notification was dropped for a subscription because
-         access to the event type was denied.";
-    }
-
-    container groups {
-      description
-        "NETCONF Access Control Groups.";
-
-      list group {
-        key name;
-
-        description
-          "One NACM Group Entry.  This list will only contain
-           configured entries, not any entries learned from
-           any transport protocols.";
-
-        leaf name {
-          type group-name-type;
-          description
-            "Group name associated with this entry.";
-        }
-
-        leaf-list user-name {
-          type user-name-type;
-          description
-            "Each entry identifies the username of
-             a member of the group associated with
-             this entry.";
-        }
-      }
-    }
-
-    list rule-list {
-      key "name";
-      ordered-by user;
-      description
-        "An ordered collection of access control rules.";
-
-      leaf name {
-        type string {
-          length "1..max";
-        }
-        description
-          "Arbitrary name assigned to the rule-list.";
-      }
-      leaf-list group {
-        type union {
-          type matchall-string-type;
-          type group-name-type;
-        }
-        description
-          "List of administrative groups that will be
-           assigned the associated access rights
-           defined by the 'rule' list.
-
-           The string '*' indicates that all groups apply to the
-           entry.";
-      }
-
-      list rule {
-        key "name";
-        ordered-by user;
-        description
-          "One access control rule.
-
-           Rules are processed in user-defined order until a match is
-           found.  A rule matches if 'module-name', 'rule-type', and
-           'access-operations' match the request.  If a rule
-           matches, the 'action' leaf determines if access is granted
-           or not.";
-
-        leaf name {
-          type string {
-            length "1..max";
-          }
-          description
-            "Arbitrary name assigned to the rule.";
-        }
-
-        leaf module-name {
-          type union {
-            type matchall-string-type;
-            type string;
-          }
-          default "*";
-          description
-            "Name of the module associated with this rule.
-
-             This leaf matches if it has the value '*' or if the
-             object being accessed is defined in the module with the
-             specified module name.";
-        }
-        choice rule-type {
-          description
-            "This choice matches if all leafs present in the rule
-             match the request.  If no leafs are present, the
-             choice matches all requests.";
-          case protocol-operation {
-            leaf rpc-name {
-              type union {
-                type matchall-string-type;
-                type string;
-              }
-              description
-                "This leaf matches if it has the value '*' or if
-                 its value equals the requested protocol operation
-                 name.";
-            }
-          }
-          case notification {
-            leaf notification-name {
-              type union {
-                type matchall-string-type;
-                type string;
-              }
-              description
-                "This leaf matches if it has the value '*' or if its
-                 value equals the requested notification name.";
-            }
-          }
-          case data-node {
-            leaf path {
-              type node-instance-identifier;
-              mandatory true;
-              description
-                "Data Node Instance Identifier associated with the
-                 data node controlled by this rule.
-
-                 Configuration data or state data instance
-                 identifiers start with a top-level data node.  A
-                 complete instance identifier is required for this
-                 type of path value.
-
-                 The special value '/' refers to all possible
-                 datastore contents.";
-            }
-          }
-        }
-
-        leaf access-operations {
-          type union {
-            type matchall-string-type;
-            type access-operations-type;
-          }
-          default "*";
-          description
-            "Access operations associated with this rule.
-
-             This leaf matches if it has the value '*' or if the
-             bit corresponding to the requested operation is set.";
-        }
-
-        leaf action {
-          type action-type;
-          mandatory true;
-          description
-            "The access control action associated with the
-             rule.  If a rule is determined to match a
-             particular request, then this object is used
-             to determine whether to permit or deny the
-             request.";
-        }
-
-        leaf comment {
-          type string;
-          description
-            "A textual description of the access rule.";
-        }
-      }
-    }
-  }
-}
diff --git a/models/microsemi/src/main/yang/ietf-netconf-monitoring.yang b/models/microsemi/src/main/yang/ietf-netconf-monitoring.yang
deleted file mode 100644
index 8130bfd..0000000
--- a/models/microsemi/src/main/yang/ietf-netconf-monitoring.yang
+++ /dev/null
@@ -1,559 +0,0 @@
-
-module ietf-netconf-monitoring {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
-  prefix "ncm";
-
-  import ietf-yang-types { prefix yang; }
-  import ietf-inet-types { prefix inet; }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     Editor:   Mark Scott
-               <mailto:mark.scott@ericsson.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-  description
-    "NETCONF Monitoring Module.
-     All elements in this module are read-only.
-
-     Copyright (c) 2010 IETF Trust and the persons identified as
-     authors of the code. All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD
-     License set forth in Section 4.c of the IETF Trust's
-     Legal Provisions Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6022; see
-     the RFC itself for full legal notices.";
-
-  revision 2010-10-04 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 6022: YANG Module for NETCONF Monitoring";
-  }
-
-  typedef netconf-datastore-type {
-    type enumeration {
-      enum running;
-      enum candidate;
-      enum startup;
-    }
-    description
-      "Enumeration of possible NETCONF datastore types.";
-    reference
-      "RFC 4741: NETCONF Configuration Protocol";
-  }
-
-  identity transport {
-    description
-      "Base identity for NETCONF transport types.";
-  }
-
-  identity netconf-ssh {
-    base transport;
-    description
-      "NETCONF over Secure Shell (SSH).";
-    reference
-      "RFC 4742: Using the NETCONF Configuration Protocol
-                 over Secure SHell (SSH)";
-  }
-
-  identity netconf-soap-over-beep {
-    base transport;
-    description
-      "NETCONF over Simple Object Access Protocol (SOAP) over
-       Blocks Extensible Exchange Protocol (BEEP).";
-    reference
-      "RFC 4743: Using NETCONF over the Simple Object
-                 Access Protocol (SOAP)";
-  }
-
-  identity netconf-soap-over-https {
-    base transport;
-    description
-      "NETCONF over Simple Object Access Protocol (SOAP)
-      over Hypertext Transfer Protocol Secure (HTTPS).";
-    reference
-      "RFC 4743: Using NETCONF over the Simple Object
-                 Access Protocol (SOAP)";
-  }
-
-  identity netconf-beep {
-    base transport;
-    description
-      "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
-    reference
-      "RFC 4744: Using the NETCONF Protocol over the
-                 Blocks Extensible Exchange Protocol (BEEP)";
-  }
-
-  identity netconf-tls {
-    base transport;
-    description
-      "NETCONF over Transport Layer Security (TLS).";
-    reference
-      "RFC 5539: NETCONF over Transport Layer Security (TLS)";
-  }
-
-  identity schema-format {
-    description
-      "Base identity for data model schema languages.";
-  }
-
-  identity xsd {
-    base schema-format;
-    description
-      "W3C XML Schema Definition.";
-    reference
-      "W3C REC REC-xmlschema-1-20041028:
-         XML Schema Part 1: Structures";
-  }
-
-  identity yang {
-    base schema-format;
-    description
-      "The YANG data modeling language for NETCONF.";
-    reference
-      "RFC 6020:  YANG - A Data Modeling Language for the
-                  Network Configuration Protocol (NETCONF)";
-  }
-
-  identity yin {
-    base schema-format;
-    description
-      "The YIN syntax for YANG.";
-    reference
-      "RFC 6020:  YANG - A Data Modeling Language for the
-                  Network Configuration Protocol (NETCONF)";
-  }
-
-  identity rng {
-    base schema-format;
-    description
-      "Regular Language for XML Next Generation (RELAX NG).";
-    reference
-      "ISO/IEC 19757-2:2008: RELAX NG";
-  }
-
-  identity rnc {
-    base schema-format;
-    description
-      "Relax NG Compact Syntax";
-    reference
-      "ISO/IEC 19757-2:2008: RELAX NG";
-  }
-
-  grouping common-counters {
-    description
-      "Counters that exist both per session, and also globally,
-       accumulated from all sessions.";
-
-    leaf in-rpcs {
-      type yang:zero-based-counter32;
-      description
-        "Number of correct <rpc> messages received.";
-    }
-    leaf in-bad-rpcs {
-      type yang:zero-based-counter32;
-      description
-        "Number of messages received when an <rpc> message was expected,
-         that were not correct <rpc> messages.  This includes XML parse
-         errors and errors on the rpc layer.";
-    }
-    leaf out-rpc-errors {
-      type yang:zero-based-counter32;
-      description
-        "Number of <rpc-reply> messages sent that contained an
-         <rpc-error> element.";
-    }
-    leaf out-notifications {
-      type yang:zero-based-counter32;
-      description
-        "Number of <notification> messages sent.";
-    }
-  }
-
-  container netconf-state {
-    config false;
-    description
-      "The netconf-state container is the root of the monitoring
-       data model.";
-
-    container capabilities {
-      description
-        "Contains the list of NETCONF capabilities supported by the
-         server.";
-
-      leaf-list capability {
-        type inet:uri;
-        description
-          "List of NETCONF capabilities supported by the server.";
-      }
-    }
-
-    container datastores {
-      description
-        "Contains the list of NETCONF configuration datastores.";
-
-      list datastore {
-        key name;
-        description
-          "List of NETCONF configuration datastores supported by
-           the NETCONF server and related information.";
-
-        leaf name {
-          type netconf-datastore-type;
-          description
-            "Name of the datastore associated with this list entry.";
-        }
-        container locks {
-          presence
-            "This container is present only if the datastore
-             is locked.";
-          description
-            "The NETCONF <lock> and <partial-lock> operations allow
-             a client to lock specific resources in a datastore.  The
-             NETCONF server will prevent changes to the locked
-             resources by all sessions except the one that acquired
-             the lock(s).
-
-             Monitoring information is provided for each datastore
-             entry including details such as the session that acquired
-             the lock, the type of lock (global or partial) and the
-             list of locked resources.  Multiple locks per datastore
-             are supported.";
-
-          grouping lock-info {
-            description
-              "Lock related parameters, common to both global and
-               partial locks.";
-
-            leaf locked-by-session {
-              type uint32;
-              mandatory true;
-              description
-                "The session ID of the session that has locked
-                 this resource.  Both a global lock and a partial
-                 lock MUST contain the NETCONF session-id.
-
-                 If the lock is held by a session that is not managed
-                 by the NETCONF server (e.g., a CLI session), a session
-                 id of 0 (zero) is reported.";
-              reference
-                "RFC 4741: NETCONF Configuration Protocol";
-            }
-            leaf locked-time {
-              type yang:date-and-time;
-              mandatory true;
-              description
-                "The date and time of when the resource was
-                 locked.";
-            }
-          }
-
-          choice lock-type {
-            description
-              "Indicates if a global lock or a set of partial locks
-               are set.";
-
-            container global-lock {
-              description
-                "Present if the global lock is set.";
-              uses lock-info;
-            }
-
-            list partial-lock {
-              key lock-id;
-              description
-                "List of partial locks.";
-              reference
-                "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
-                           NETCONF";
-
-              leaf lock-id {
-                type uint32;
-                description
-                  "This is the lock id returned in the <partial-lock>
-                   response.";
-              }
-              uses lock-info;
-              leaf-list select {
-                type yang:xpath1.0;
-                min-elements 1;
-                description
-                  "The xpath expression that was used to request
-                   the lock.  The select expression indicates the
-                   original intended scope of the lock.";
-              }
-              leaf-list locked-node {
-                type instance-identifier;
-                description
-                  "The list of instance-identifiers (i.e., the
-                   locked nodes).
-
-                   The scope of the partial lock is defined by the list
-                   of locked nodes.";
-              }
-            }
-          }
-        }
-      }
-    }
-
-    container schemas {
-      description
-        "Contains the list of data model schemas supported by the
-         server.";
-
-      list schema {
-        key "identifier version format";
-
-        description
-          "List of data model schemas supported by the server.";
-
-        leaf identifier {
-          type string;
-          description
-            "Identifier to uniquely reference the schema.  The
-             identifier is used in the <get-schema> operation and may
-             be used for other purposes such as file retrieval.
-
-             For modeling languages that support or require a data
-             model name (e.g., YANG module name) the identifier MUST
-             match that name.  For YANG data models, the identifier is
-             the name of the module or submodule.  In other cases, an
-             identifier such as a filename MAY be used instead.";
-        }
-        leaf version {
-          type string;
-          description
-            "Version of the schema supported.  Multiple versions MAY be
-             supported simultaneously by a NETCONF server.  Each
-             version MUST be reported individually in the schema list,
-             i.e., with same identifier, possibly different location,
-             but different version.
-
-             For YANG data models, version is the value of the most
-             recent YANG 'revision' statement in the module or
-             submodule, or the empty string if no 'revision' statement
-             is present.";
-        }
-        leaf format {
-          type identityref {
-            base schema-format;
-          }
-          description
-            "The data modeling language the schema is written
-             in (currently xsd, yang, yin, rng, or rnc).
-             For YANG data models, 'yang' format MUST be supported and
-             'yin' format MAY also be provided.";
-        }
-        leaf namespace {
-          type inet:uri;
-          mandatory true;
-          description
-            "The XML namespace defined by the data model.
-
-             For YANG data models, this is the module's namespace.
-             If the list entry describes a submodule, this field
-             contains the namespace of the module to which the
-             submodule belongs.";
-        }
-        leaf-list location {
-          type union {
-            type enumeration {
-              enum "NETCONF";
-            }
-            type inet:uri;
-          }
-          description
-            "One or more locations from which the schema can be
-             retrieved.  This list SHOULD contain at least one
-             entry per schema.
-
-             A schema entry may be located on a remote file system
-             (e.g., reference to file system for ftp retrieval) or
-             retrieved directly from a server supporting the
-             <get-schema> operation (denoted by the value 'NETCONF').";
-        }
-      }
-    }
-
-    container sessions {
-      description
-        "The sessions container includes session-specific data for
-         NETCONF management sessions.  The session list MUST include
-         all currently active NETCONF sessions.";
-
-      list session {
-        key session-id;
-        description
-          "All NETCONF sessions managed by the NETCONF server
-           MUST be reported in this list.";
-
-        leaf session-id {
-          type uint32 {
-            range "1..max";
-          }
-          description
-            "Unique identifier for the session.  This value is the
-             NETCONF session identifier, as defined in RFC 4741.";
-          reference
-            "RFC 4741: NETCONF Configuration Protocol";
-        }
-        leaf transport {
-          type identityref {
-            base transport;
-          }
-          mandatory true;
-          description
-            "Identifies the transport for each session, e.g.,
-            'netconf-ssh', 'netconf-soap', etc.";
-        }
-        leaf username  {
-          type string;
-          mandatory true;
-          description
-            "The username is the client identity that was authenticated
-            by the NETCONF transport protocol.  The algorithm used to
-            derive the username is NETCONF transport protocol specific
-            and in addition specific to the authentication mechanism
-            used by the NETCONF transport protocol.";
-        }
-        leaf source-host {
-          type inet:host;
-          description
-            "Host identifier of the NETCONF client.  The value
-             returned is implementation specific (e.g., hostname,
-             IPv4 address, IPv6 address)";
-        }
-        leaf login-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "Time at the server at which the session was established.";
-        }
-        uses common-counters {
-          description
-            "Per-session counters.  Zero based with following reset
-             behaviour:
-               - at start of a session
-               - when max value is reached";
-        }
-      }
-    }
-
-    container statistics {
-      description
-        "Statistical data pertaining to the NETCONF server.";
-
-      leaf netconf-start-time {
-        type yang:date-and-time;
-        description
-          "Date and time at which the management subsystem was
-           started.";
-      }
-      leaf in-bad-hellos {
-        type yang:zero-based-counter32;
-        description
-          "Number of sessions silently dropped because an
-          invalid <hello> message was received.  This includes <hello>
-          messages with a 'session-id' attribute, bad namespace, and
-          bad capability declarations.";
-      }
-      leaf in-sessions {
-        type yang:zero-based-counter32;
-        description
-          "Number of sessions started.  This counter is incremented
-           when a <hello> message with a <session-id> is sent.
-
-          'in-sessions' - 'in-bad-hellos' =
-              'number of correctly started netconf sessions'";
-      }
-      leaf dropped-sessions {
-        type yang:zero-based-counter32;
-        description
-          "Number of sessions that were abnormally terminated, e.g.,
-           due to idle timeout or transport close.  This counter is not
-           incremented when a session is properly closed by a
-           <close-session> operation, or killed by a <kill-session>
-           operation.";
-      }
-      uses common-counters {
-        description
-          "Global counters, accumulated from all sessions.
-           Zero based with following reset behaviour:
-             - re-initialization of NETCONF server
-             - when max value is reached";
-      }
-    }
-  }
-
-  rpc get-schema {
-    description
-      "This operation is used to retrieve a schema from the
-       NETCONF server.
-
-       Positive Response:
-         The NETCONF server returns the requested schema.
-
-       Negative Response:
-         If requested schema does not exist, the <error-tag> is
-         'invalid-value'.
-
-         If more than one schema matches the requested parameters, the
-         <error-tag> is 'operation-failed', and <error-app-tag> is
-         'data-not-unique'.";
-
-    input {
-      leaf identifier {
-        type string;
-        mandatory true;
-        description
-          "Identifier for the schema list entry.";
-      }
-      leaf version {
-        type string;
-        description
-          "Version of the schema requested.  If this parameter is not
-           present, and more than one version of the schema exists on
-           the server, a 'data-not-unique' error is returned, as
-           described above.";
-      }
-      leaf format {
-        type identityref {
-          base schema-format;
-        }
-        description
-           "The data modeling language of the schema.  If this
-            parameter is not present, and more than one formats of
-            the schema exists on the server, a 'data-not-unique' error
-            is returned, as described above.";
-      }
-    }
-    output {
-        anyxml data {
-          description
-            "Contains the schema content.";
-      }
-    }
-  }
-}
diff --git a/models/microsemi/src/main/yang/ietf-netconf-notifications.yang b/models/microsemi/src/main/yang/ietf-netconf-notifications.yang
deleted file mode 100644
index 4ec1dea..0000000
--- a/models/microsemi/src/main/yang/ietf-netconf-notifications.yang
+++ /dev/null
@@ -1,337 +0,0 @@
-module ietf-netconf-notifications {
-
-   namespace
-     "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
-
-   prefix ncn;
-
-   import ietf-inet-types { prefix inet; }
-   import ietf-netconf { prefix nc; }
-
-   organization
-    "IETF NETCONF (Network Configuration Protocol) Working Group";
-
-   contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <mailto:netconf@ietf.org>
-
-     WG Chair: Bert Wijnen
-               <mailto:bertietf@bwijnen.net>
-
-     WG Chair: Mehmet Ersue
-               <mailto:mehmet.ersue@nsn.com>
-
-     Editor: Andy Bierman
-             <mailto:andy@netconfcentral.org>";
-
-   description
-    "This module defines a YANG data model for use with the
-     NETCONF protocol that allows the NETCONF client to
-     receive common NETCONF base event notifications.
-
-	 Copyright (c) 2012 IETF Trust and the persons identified as
-     the document authors.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6470; see
-     the RFC itself for full legal notices.";
-
-   revision "2012-02-06" {
-     description
-       "Initial version.";
-     reference
-      "RFC 6470: NETCONF Base Notifications";
-   }
-
-  grouping common-session-parms {
-    description
-      "Common session parameters to identify a
-       management session.";
-
-    leaf username {
-      type string;
-      mandatory true;
-      description
-        "Name of the user for the session.";
-    }
-
-    leaf session-id {
-      type nc:session-id-or-zero-type;
-      mandatory true;
-      description
-        "Identifier of the session.
-         A NETCONF session MUST be identified by a non-zero value.
-         A non-NETCONF session MAY be identified by the value zero.";
-    }
-
-    leaf source-host {
-      type inet:ip-address;
-      description
-        "Address of the remote host for the session.";
-    }
-  }
-
-  grouping changed-by-parms {
-    description
-      "Common parameters to identify the source
-       of a change event, such as a configuration
-       or capability change.";
-
-	container changed-by {
-      description
-        "Indicates the source of the change.
-         If caused by internal action, then the
-         empty leaf 'server' will be present.
-         If caused by a management session, then
-         the name, remote host address, and session ID
-         of the session that made the change will be reported.";
-      choice server-or-user {
-        mandatory true;
-        leaf server {
-          type empty;
-          description
-            "If present, the change was caused
-             by the server.";
-        }
-
-        case by-user {
-          uses common-session-parms;
-        }
-      } // choice server-or-user
-    } // container changed-by-parms
-  }
-
-
-  notification netconf-config-change {
-    description
-      "Generated when the NETCONF server detects that the
-       <running> or <startup> configuration datastore
-       has been changed by a management session.
-       The notification summarizes the edits that
-       have been detected.
-
-       The server MAY choose to also generate this
-       notification while loading a datastore during the
-       boot process for the device.";
-
-    uses changed-by-parms;
-
-    leaf datastore {
-      type enumeration {
-        enum running {
-          description "The <running> datastore has changed.";
-        }
-        enum startup {
-          description "The <startup> datastore has changed";
-        }
-      }
-      default "running";
-      description
-        "Indicates which configuration datastore has changed.";
-      }
-
-    list edit {
-      description
-        "An edit record SHOULD be present for each distinct
-         edit operation that the server has detected on
-         the target datastore.  This list MAY be omitted
-         if the detailed edit operations are not known.
-         The server MAY report entries in this list for
-         changes not made by a NETCONF session (e.g., CLI).";
-
-      leaf target {
-        type instance-identifier;
-        description
-          "Topmost node associated with the configuration change.
-           A server SHOULD set this object to the node within
-           the datastore that is being altered.  A server MAY
-           set this object to one of the ancestors of the actual
-           node that was changed, or omit this object, if the
-           exact node is not known.";
-      }
-
-      leaf operation {
-        type nc:edit-operation-type;
-        description
-          "Type of edit operation performed.
-           A server MUST set this object to the NETCONF edit
-           operation performed on the target datastore.";
-      }
-    } // list edit
-  } // notification netconf-config-change
-
-  notification netconf-capability-change {
-    description
-      "Generated when the NETCONF server detects that
-       the server capabilities have changed.
-       Indicates which capabilities have been added, deleted,
-       and/or modified.  The manner in which a server
-       capability is changed is outside the scope of this
-       document.";
-
-    uses changed-by-parms;
-
-    leaf-list added-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been added.";
-    }
-
-    leaf-list deleted-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been deleted.";
-    }
-
-    leaf-list modified-capability {
-      type inet:uri;
-      description
-        "List of capabilities that have just been modified.
-         A capability is considered to be modified if the
-         base URI for the capability has not changed, but
-         one or more of the parameters encoded at the end of
-         the capability URI have changed.
-         The new modified value of the complete URI is returned.";
-    }
-  } // notification netconf-capability-change
-
-
-  notification netconf-session-start {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has started.  A server MAY generate
-       this event for non-NETCONF management sessions.
-       Indicates the identity of the user that started
-       the session.";
-    uses common-session-parms;
-  } // notification netconf-session-start
-
-  notification netconf-session-end {
-    description
-      "Generated when a NETCONF server detects that a
-       NETCONF session has terminated.
-       A server MAY optionally generate this event for
-       non-NETCONF management sessions.  Indicates the
-       identity of the user that owned the session,
-       and why the session was terminated.";
-
-    uses common-session-parms;
-
-    leaf killed-by {
-      when "../termination-reason = 'killed'";
-      type nc:session-id-type;
-      description
-        "The ID of the session that directly caused this session
-         to be abnormally terminated.  If this session was abnormally
-         terminated by a non-NETCONF session unknown to the server,
-         then this leaf will not be present.";
-    }
-
-    leaf termination-reason {
-      type enumeration {
-        enum "closed" {
-          description
-            "The session was terminated by the client in normal
-             fashion, e.g., by the NETCONF <close-session>
-             protocol operation.";
-        }
-        enum "killed" {
-          description
-            "The session was terminated in abnormal
-             fashion, e.g., by the NETCONF <kill-session>
-             protocol operation.";
-        }
-        enum "dropped" {
-          description
-            "The session was terminated because the transport layer
-             connection was unexpectedly closed.";
-        }
-        enum "timeout" {
-          description
-            "The session was terminated because of inactivity,
-             e.g., waiting for the <hello> message or <rpc>
-             messages.";
-        }
-        enum "bad-hello" {
-          description
-            "The client's <hello> message was invalid.";
-        }
-        enum "other" {
-          description
-            "The session was terminated for some other reason.";
-        }
-      }
-      mandatory true;
-      description
-        "Reason the session was terminated.";
-     }
-  } // notification netconf-session-end
-
-
-  notification netconf-confirmed-commit {
-    description
-      "Generated when a NETCONF server detects that a
-       confirmed-commit event has occurred.  Indicates the event
-       and the current state of the confirmed-commit procedure
-       in progress.";
-    reference
-      "RFC 6241, Section 8.4";
-
-    uses common-session-parms {
-      when "../confirm-event != 'timeout'";
-    }
-
-    leaf confirm-event {
-      type enumeration {
-        enum "start" {
-          description
-            "The confirmed-commit procedure has started.";
-        }
-        enum "cancel" {
-          description
-            "The confirmed-commit procedure has been canceled,
-             e.g., due to the session being terminated, or an
-             explicit <cancel-commit> operation.";
-        }
-        enum "timeout" {
-          description
-            "The confirmed-commit procedure has been canceled
-             due to the confirm-timeout interval expiring.
-             The common session parameters will not be present
-             in this sub-mode.";
-        }
-        enum "extend" {
-          description
-            "The confirmed-commit timeout has been extended,
-             e.g., by a new <confirmed-commit> operation.";
-        }
-        enum "complete" {
-          description
-            "The confirmed-commit procedure has been completed.";
-        }
-      }
-      mandatory true;
-      description
-        "Indicates the event that caused the notification.";
-    }
-
-    leaf timeout {
-      when
-       "../confirm-event = 'start' or ../confirm-event = 'extend'";
-      type uint32;
-      units "seconds";
-      description
-        "The configured timeout value if the event type
-         is 'start' or 'extend'.  This value represents
-         the approximate number of seconds from the event
-         time when the 'timeout' event might occur.";
-    }
-  } // notification netconf-confirmed-commit
-
-}
diff --git a/models/microsemi/src/main/yang/ietf-netconf-with-defaults.yang b/models/microsemi/src/main/yang/ietf-netconf-with-defaults.yang
deleted file mode 100644
index 1c569a2..0000000
--- a/models/microsemi/src/main/yang/ietf-netconf-with-defaults.yang
+++ /dev/null
@@ -1,165 +0,0 @@
- module ietf-netconf-with-defaults {
-
-    namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults";
-
-    prefix ncwd;
-
-    import ietf-netconf { prefix nc; }
-
-    organization
-     "IETF NETCONF (Network Configuration Protocol) Working Group";
-
-    contact
-     "WG Web:   <http://tools.ietf.org/wg/netconf/>
-      WG List:  <mailto:netconf@ietf.org>
-
-      WG Chair: Bert Wijnen
-                <mailto:bertietf@bwijnen.net>
-
-      WG Chair: Mehmet Ersue
-                <mailto:mehmet.ersue@nsn.com>
-
-      Editor: Andy Bierman
-              <mailto:andy.bierman@brocade.com>
-
-      Editor: Balazs Lengyel
-              <mailto:balazs.lengyel@ericsson.com>";
-
-    description
-     "This module defines an extension to the NETCONF protocol
-      that allows the NETCONF client to control how default
-      values are handled by the server in particular NETCONF operations.
-
-      Copyright (c) 2010 IETF Trust and the persons identified as
-      the document authors.  All rights reserved.
-
-      Redistribution and use in source and binary forms, with or
-      without modification, is permitted pursuant to, and subject
-      to the license terms contained in, the Simplified BSD License
-      set forth in Section 4.c of the IETF Trust's Legal Provisions
-      Relating to IETF Documents
-      (http://trustee.ietf.org/license-info).
-
-      This version of this YANG module is part of RFC XXXX; see
-      the RFC itself for full legal notices.";
-    // RFC Ed.: replace XXXX with actual RFC number and remove this note
-
-    // RFC Ed.: remove this note
-    // Note: extracted from draft-ietf-netmod-with-defaults-10.txt
-
-    revision 2010-06-09 {
-      description
-        "Initial version.";
-      reference
-       "RFC XXXX: With-defaults capability for NETCONF";
-    }
-    // RFC Ed.: replace XXXX with actual
-    // RFC number and remove this note
-
-    typedef with-defaults-mode {
-       description
-         "Possible modes to report default data.";
-       reference
-          "RFC XXXX; section 3.";
-          // RFC Ed.: replace XXXX with actual
-          // RFC number and remove this note
-
-       type enumeration {
-          enum report-all {
-              description
-                "All default data is reported.";
-              reference
-                "RFC XXXX; section 3.1";
-                // RFC Ed.: replace XXXX with actual
-                // RFC number and remove this note
-
-          }
-          enum report-all-tagged {
-              description
-                "All default data is reported.
-                 Any nodes considered to be default data
-                 will contain a 'wd:default' XML attribute,
-                 set to 'true'.";
-              reference
-                "RFC XXXX; section 3.4";
-                // RFC Ed.: replace XXXX with actual
-                // RFC number and remove this note
-          }
-          enum trim {
-              description
-                "Values are not reported if they contain the default.";
-              reference
-                "RFC XXXX; section 3.2";
-                // RFC Ed.: replace XXXX with actual
-                // RFC number and remove this note
-
-          }
-          enum explicit {
-              description
-                "Report values that contain the definition of
-                 explicitly set data.";
-              reference
-                "RFC XXXX; section 3.3";
-                // RFC Ed.: replace XXXX with actual
-                // RFC number and remove this note
-          }
-      }
-    }
-
-    grouping with-defaults-parameters {
-      description
-        "Contains the <with-defaults> parameter for control
-         of defaults in NETCONF retrieval operations.";
-
-      leaf with-defaults {
-        description
-          "The explicit defaults processing mode requested.";
-        reference
-          "RFC XXXX; section 4.6.1";
-          // RFC Ed.: replace XXXX with actual
-          // RFC number and remove this note
-
-        type with-defaults-mode;
-      }
-    }
-
-    // extending the get-config operation
-    augment /nc:get-config/nc:input {
-        description
-          "Adds the <with-defaults> parameter to the
-           input of the NETCONF <get-config> operation.";
-        reference
-          "RFC XXXX; section 4.6.1";
-          // RFC Ed.: replace XXXX with actual
-          // RFC number and remove this note
-
-        uses with-defaults-parameters;
-    }
-
-    // extending the get operation
-    augment /nc:get/nc:input {
-        description
-          "Adds the <with-defaults> parameter to
-           the input of the NETCONF <get> operation.";
-        reference
-          "RFC XXXX; section 4.6.1";
-          // RFC Ed.: replace XXXX with actual
-          // RFC number and remove this note
-
-        uses with-defaults-parameters;
-    }
-
-    // extending the copy-config operation
-    augment /nc:copy-config/nc:input {
-        description
-          "Adds the <with-defaults> parameter to
-           the input of the NETCONF <copy-config> operation.";
-        reference
-          "RFC XXXX; section 4.6.1";
-          // RFC Ed.: replace XXXX with actual
-          // RFC number and remove this note
-
-        uses with-defaults-parameters;
-    }
-
- }
diff --git a/models/microsemi/src/main/yang/ietf-netconf.yang b/models/microsemi/src/main/yang/ietf-netconf.yang
deleted file mode 100644
index 2595a12..0000000
--- a/models/microsemi/src/main/yang/ietf-netconf.yang
+++ /dev/null
@@ -1,980 +0,0 @@
-module ietf-netconf {
-
-  // the namespace for NETCONF XML definitions is unchanged
-  // from RFC 4741, which this document replaces
-  namespace "urn:ietf:params:xml:ns:netconf:base:1.0";
-
-  prefix nc;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization
-    "IETF NETCONF (Network Configuration) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netconf/>
-     WG List:  <netconf@ietf.org>
-
-     WG Chair: Bert Wijnen
-               <bertietf@bwijnen.net>
-
-     WG Chair: Mehmet Ersue
-               <mehmet.ersue@nsn.com>
-
-     Editor:   Martin Bjorklund
-               <mbj@tail-f.com>
-
-     Editor:   Juergen Schoenwaelder
-               <j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Andy Bierman
-               <andy.bierman@brocade.com>";
-  description
-    "NETCONF Protocol Data Types and Protocol Operations.
-
-     Copyright (c) 2011 IETF Trust and the persons identified as
-     the document authors.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 6241; see
-     the RFC itself for full legal notices.";
-
-  revision 2011-06-01 {
-    description
-      "Initial revision;";
-    reference
-      "RFC 6241: Network Configuration Protocol";
-  }
-
-  extension get-filter-element-attributes {
-    description
-      "If this extension is present within an 'anyxml'
-       statement named 'filter', which must be conceptually
-       defined within the RPC input section for the <get>
-       and <get-config> protocol operations, then the
-       following unqualified XML attribute is supported
-       within the <filter> element, within a <get> or
-       <get-config> protocol operation:
-
-         type : optional attribute with allowed
-                value strings 'subtree' and 'xpath'.
-                If missing, the default value is 'subtree'.
-
-       If the 'xpath' feature is supported, then the
-       following unqualified XML attribute is
-       also supported:
-
-         select: optional attribute containing a
-                 string representing an XPath expression.
-                 The 'type' attribute must be equal to 'xpath'
-                 if this attribute is present.";
-  }
-
-  // NETCONF capabilities defined as features
-  feature writable-running {
-    description
-      "NETCONF :writable-running capability;
-       If the server advertises the :writable-running
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.2";
-  }
-
-  feature candidate {
-    description
-      "NETCONF :candidate capability;
-       If the server advertises the :candidate
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.3";
-  }
-
-  feature confirmed-commit {
-    if-feature candidate;
-    description
-      "NETCONF :confirmed-commit:1.1 capability;
-       If the server advertises the :confirmed-commit:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-
-    reference "RFC 6241, Section 8.4";
-  }
-
-  feature rollback-on-error {
-    description
-      "NETCONF :rollback-on-error capability;
-       If the server advertises the :rollback-on-error
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.5";
-  }
-
-  feature validate {
-    description
-      "NETCONF :validate:1.1 capability;
-       If the server advertises the :validate:1.1
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.6";
-  }
-
-  feature startup {
-    description
-      "NETCONF :startup capability;
-       If the server advertises the :startup
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.7";
-  }
-
-  feature url {
-    description
-      "NETCONF :url capability;
-       If the server advertises the :url
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.8";
-  }
-
-  feature xpath {
-    description
-      "NETCONF :xpath capability;
-       If the server advertises the :xpath
-       capability for a session, then this feature must
-       also be enabled for that session.  Otherwise,
-       this feature must not be enabled.";
-    reference "RFC 6241, Section 8.9";
-  }
-
-  // NETCONF Simple Types
-
-  typedef session-id-type {
-    type uint32 {
-      range "1..max";
-    }
-    description
-      "NETCONF Session Id";
-  }
-
-  typedef session-id-or-zero-type {
-    type uint32;
-    description
-      "NETCONF Session Id or Zero to indicate none";
-  }
-  typedef error-tag-type {
-    type enumeration {
-       enum in-use {
-         description
-           "The request requires a resource that
-            already is in use.";
-       }
-       enum invalid-value {
-         description
-           "The request specifies an unacceptable value for one
-            or more parameters.";
-       }
-       enum too-big {
-         description
-           "The request or response (that would be generated) is
-            too large for the implementation to handle.";
-       }
-       enum missing-attribute {
-         description
-           "An expected attribute is missing.";
-       }
-       enum bad-attribute {
-         description
-           "An attribute value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-attribute {
-         description
-           "An unexpected attribute is present.";
-       }
-       enum missing-element {
-         description
-           "An expected element is missing.";
-       }
-       enum bad-element {
-         description
-           "An element value is not correct; e.g., wrong type,
-            out of range, pattern mismatch.";
-       }
-       enum unknown-element {
-         description
-           "An unexpected element is present.";
-       }
-       enum unknown-namespace {
-         description
-           "An unexpected namespace is present.";
-       }
-       enum access-denied {
-         description
-           "Access to the requested protocol operation or
-            data model is denied because authorization failed.";
-       }
-       enum lock-denied {
-         description
-           "Access to the requested lock is denied because the
-            lock is currently held by another entity.";
-       }
-       enum resource-denied {
-         description
-           "Request could not be completed because of
-            insufficient resources.";
-       }
-       enum rollback-failed {
-         description
-           "Request to roll back some configuration change (via
-            rollback-on-error or <discard-changes> operations)
-            was not completed for some reason.";
-
-       }
-       enum data-exists {
-         description
-           "Request could not be completed because the relevant
-            data model content already exists.  For example,
-            a 'create' operation was attempted on data that
-            already exists.";
-       }
-       enum data-missing {
-         description
-           "Request could not be completed because the relevant
-            data model content does not exist.  For example,
-            a 'delete' operation was attempted on
-            data that does not exist.";
-       }
-       enum operation-not-supported {
-         description
-           "Request could not be completed because the requested
-            operation is not supported by this implementation.";
-       }
-       enum operation-failed {
-         description
-           "Request could not be completed because the requested
-            operation failed for some reason not covered by
-            any other error condition.";
-       }
-       enum partial-operation {
-         description
-           "This error-tag is obsolete, and SHOULD NOT be sent
-            by servers conforming to this document.";
-       }
-       enum malformed-message {
-         description
-           "A message could not be handled because it failed to
-            be parsed correctly.  For example, the message is not
-            well-formed XML or it uses an invalid character set.";
-       }
-     }
-     description "NETCONF Error Tag";
-     reference "RFC 6241, Appendix A";
-  }
-
-  typedef error-severity-type {
-    type enumeration {
-      enum error {
-        description "Error severity";
-      }
-      enum warning {
-        description "Warning severity";
-      }
-    }
-    description "NETCONF Error Severity";
-    reference "RFC 6241, Section 4.3";
-  }
-
-  typedef edit-operation-type {
-    type enumeration {
-      enum merge {
-        description
-          "The configuration data identified by the
-           element containing this attribute is merged
-           with the configuration at the corresponding
-           level in the configuration datastore identified
-           by the target parameter.";
-      }
-      enum replace {
-        description
-          "The configuration data identified by the element
-           containing this attribute replaces any related
-           configuration in the configuration datastore
-           identified by the target parameter.  If no such
-           configuration data exists in the configuration
-           datastore, it is created.  Unlike a
-           <copy-config> operation, which replaces the
-           entire target configuration, only the configuration
-           actually present in the config parameter is affected.";
-      }
-      enum create {
-        description
-          "The configuration data identified by the element
-           containing this attribute is added to the
-           configuration if and only if the configuration
-           data does not already exist in the configuration
-           datastore.  If the configuration data exists, an
-           <rpc-error> element is returned with an
-           <error-tag> value of 'data-exists'.";
-      }
-      enum delete {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if and only if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, an <rpc-error> element is returned with
-           an <error-tag> value of 'data-missing'.";
-      }
-      enum remove {
-        description
-          "The configuration data identified by the element
-           containing this attribute is deleted from the
-           configuration if the configuration
-           data currently exists in the configuration
-           datastore.  If the configuration data does not
-           exist, the 'remove' operation is silently ignored
-           by the server.";
-      }
-    }
-    default "merge";
-    description "NETCONF 'operation' attribute values";
-    reference "RFC 6241, Section 7.2";
-  }
-
-  // NETCONF Standard Protocol Operations
-
-  rpc get-config {
-    description
-      "Retrieve all or part of a specified configuration.";
-
-    reference "RFC 6241, Section 7.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to retrieve.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration to retrieve.";
-          case candidate {
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          }
-          case running {
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          }
-          case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.
-               This is optional-to-implement on the server because
-               not all servers will support filtering for this
-               datastore.";
-          }
-          }
-        }
-      }
-
-      anyxml filter {
-        description
-          "Subtree or XPath filter to use.";
-//        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the source datastore subset that matched
-           the filter criteria (if any).  An empty data container
-           indicates that the request did not produce any results.";
-      }
-    }
-  }
-
-  rpc edit-config {
-    description
-      "The <edit-config> operation loads all or part of a specified
-       configuration to the specified target configuration.";
-
-    reference "RFC 6241, Section 7.2";
-
-    input {
-      container target {
-        description
-          "Particular configuration to edit.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target.";
-          case candidate {
-            leaf candidate {
-              if-feature candidate;
-              type empty;
-              description
-                "The candidate configuration is the config target.";
-            }
-          }
-          case running {
-            leaf running {
-              if-feature writable-running;
-              type empty;
-              description
-                "The running configuration is the config source.";
-            }
-          }
-        }
-      }
-
-      leaf default-operation {
-        type enumeration {
-          enum merge {
-            description
-              "The default operation is merge.";
-          }
-          enum replace {
-            description
-              "The default operation is replace.";
-          }
-          enum none {
-            description
-              "There is no default operation.";
-          }
-        }
-        default "merge";
-        description
-          "The default operation to use.";
-      }
-
-      leaf test-option {
-        if-feature validate;
-        type enumeration {
-          enum test-then-set {
-            description
-              "The server will test and then set if no errors.";
-          }
-          enum set {
-            description
-              "The server will set without a test first.";
-          }
-
-          enum test-only {
-            description
-              "The server will only test and not set, even
-               if there are no errors.";
-          }
-        }
-        default "test-then-set";
-        description
-          "The test option to use.";
-      }
-
-      leaf error-option {
-        type enumeration {
-          enum stop-on-error {
-            description
-              "The server will stop on errors.";
-          }
-          enum continue-on-error {
-            description
-              "The server may continue on errors.";
-          }
-          enum rollback-on-error {
-            description
-              "The server will roll back on errors.
-               This value can only be used if the 'rollback-on-error'
-               feature is supported.";
-          }
-        }
-        default "stop-on-error";
-        description
-          "The error option to use.";
-      }
-
-      choice edit-content {
-        mandatory true;
-        description
-          "The content for the edit operation.";
-		case config {
-        anyxml config {
-          description
-            "Inline Config content.";
-        }
-        }
-        case url {
-        leaf url {
-          if-feature url;
-          type inet:uri;
-          description
-            "URL-based config content.";
-        }
-        }
-      }
-    }
-  }
-
-  rpc copy-config {
-    description
-      "Create or replace an entire configuration datastore with the
-       contents of another complete configuration datastore.";
-
-    reference "RFC 6241, Section 7.3";
-
-    input {
-      container target {
-        description
-          "Particular configuration to copy to.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target of the copy operation.";
-		  case candidate {
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          }
-          case running {
-          leaf running {
-            if-feature writable-running;
-            type empty;
-            description
-              "The running configuration is the config target.
-               This is optional-to-implement on the server.";
-          }
-          }
-          case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          }
-          case url {
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-          }
-        }
-      }
-
-      container source {
-        description
-          "Particular configuration to copy from.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source for the copy operation.";
-
-		  case candidate {
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          }
-          case running {
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          }
-          case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          }
-          case url {
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          }
-          case config {
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-          }
-        }
-      }
-    }
-  }
-
-  rpc delete-config {
-    description
-      "Delete a configuration datastore.";
-
-    reference "RFC 6241, Section 7.4";
-
-    input {
-      container target {
-        description
-          "Particular configuration to delete.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to delete.";
-		  case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          }
-          case url {
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config target.";
-          }
-          }
-        }
-      }
-    }
-  }
-
-  rpc lock {
-    description
-      "The lock operation allows the client to lock the configuration
-       system of a device.";
-
-    reference "RFC 6241, Section 7.5";
-
-    input {
-      container target {
-        description
-          "Particular configuration to lock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to lock.";
-		  case candidate {
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          }
-          case running {
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          }
-          case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          }
-        }
-      }
-    }
-  }
-
-  rpc unlock {
-    description
-      "The unlock operation is used to release a configuration lock,
-       previously obtained with the 'lock' operation.";
-
-    reference "RFC 6241, Section 7.6";
-
-    input {
-      container target {
-        description
-          "Particular configuration to unlock.";
-
-        choice config-target {
-          mandatory true;
-          description
-            "The configuration target to unlock.";
-		  case candidate {
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config target.";
-          }
-          }
-          case running {
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config target.";
-          }
-          }
-          case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config target.";
-          }
-          }
-        }
-      }
-    }
-  }
-
-  rpc get {
-    description
-      "Retrieve running configuration and device state information.";
-
-    reference "RFC 6241, Section 7.7";
-
-    input {
-      anyxml filter {
-        description
-          "This parameter specifies the portion of the system
-           configuration and state data to retrieve.";
-//        nc:get-filter-element-attributes;
-      }
-    }
-
-    output {
-      anyxml data {
-        description
-          "Copy of the running datastore subset and/or state
-           data that matched the filter criteria (if any).
-           An empty data container indicates that the request did not
-           produce any results.";
-      }
-    }
-  }
-
-  rpc close-session {
-    description
-      "Request graceful termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.8";
-  }
-
-  rpc kill-session {
-    description
-      "Force the termination of a NETCONF session.";
-
-    reference "RFC 6241, Section 7.9";
-
-    input {
-      leaf session-id {
-        type session-id-type;
-        mandatory true;
-        description
-          "Particular session to kill.";
-      }
-    }
-  }
-
-  rpc commit {
-    if-feature candidate;
-
-    description
-      "Commit the candidate configuration as the device's new
-       current configuration.";
-
-    reference "RFC 6241, Section 8.3.4.1";
-
-    input {
-      leaf confirmed {
-        if-feature confirmed-commit;
-        type empty;
-        description
-          "Requests a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf confirm-timeout {
-        if-feature confirmed-commit;
-        type uint32 {
-          range "1..max";
-        }
-        units "seconds";
-        default "600";   // 10 minutes
-        description
-          "The timeout interval for a confirmed commit.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is used to make a confirmed commit
-           persistent.  A persistent confirmed commit is not aborted
-           if the NETCONF session terminates.  The only way to abort
-           a persistent confirmed commit is to let the timer expire,
-           or to use the <cancel-commit> operation.
-
-           The value of this parameter is a token that must be given
-           in the 'persist-id' parameter of <commit> or
-           <cancel-commit> operations in order to confirm or cancel
-           the persistent confirmed commit.
-
-           The token should be a random string.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-      leaf persist-id {
-        if-feature confirmed-commit;
-        type string;
-        description
-          "This parameter is given in order to commit a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-        reference "RFC 6241, Section 8.3.4.1";
-      }
-
-    }
-  }
-
-  rpc discard-changes {
-    if-feature candidate;
-
-    description
-      "Revert the candidate configuration to the current
-       running configuration.";
-    reference "RFC 6241, Section 8.3.4.2";
-  }
-
-  rpc cancel-commit {
-    if-feature confirmed-commit;
-    description
-      "This operation is used to cancel an ongoing confirmed commit.
-       If the confirmed commit is persistent, the parameter
-       'persist-id' must be given, and it must match the value of the
-       'persist' parameter.";
-    reference "RFC 6241, Section 8.4.4.1";
-
-    input {
-      leaf persist-id {
-        type string;
-        description
-          "This parameter is given in order to cancel a persistent
-           confirmed commit.  The value must be equal to the value
-           given in the 'persist' parameter to the <commit> operation.
-           If it does not match, the operation fails with an
-          'invalid-value' error.";
-      }
-    }
-  }
-
-  rpc validate {
-    if-feature validate;
-
-    description
-      "Validates the contents of the specified configuration.";
-
-    reference "RFC 6241, Section 8.6.4.1";
-
-    input {
-      container source {
-        description
-          "Particular configuration to validate.";
-
-        choice config-source {
-          mandatory true;
-          description
-            "The configuration source to validate.";
-
-		  case candidate {
-          leaf candidate {
-            if-feature candidate;
-            type empty;
-            description
-              "The candidate configuration is the config source.";
-          }
-          }
-          case running {
-          leaf running {
-            type empty;
-            description
-              "The running configuration is the config source.";
-          }
-          }
-          case startup {
-          leaf startup {
-            if-feature startup;
-            type empty;
-            description
-              "The startup configuration is the config source.";
-          }
-          }
-          case url {
-          leaf url {
-            if-feature url;
-            type inet:uri;
-            description
-              "The URL-based configuration is the config source.";
-          }
-          }
-          case config {
-          anyxml config {
-            description
-              "Inline Config content: <config> element.  Represents
-               an entire configuration datastore, not
-               a subset of the running datastore.";
-          }
-          }
-        }
-      }
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/models/microsemi/src/main/yang/ietf-system-microsemi.yang b/models/microsemi/src/main/yang/ietf-system-microsemi@2016-05-05.yang
similarity index 75%
rename from models/microsemi/src/main/yang/ietf-system-microsemi.yang
rename to models/microsemi/src/main/yang/ietf-system-microsemi@2016-05-05.yang
index b88ba26..b46cb7d 100644
--- a/models/microsemi/src/main/yang/ietf-system-microsemi.yang
+++ b/models/microsemi/src/main/yang/ietf-system-microsemi@2016-05-05.yang
@@ -23,10 +23,10 @@
         revision-date 2014-08-06;
     }
 
-    import ietf-netconf-acm {
-        prefix nacm;
-        revision-date 2012-02-22;
-    }
+//    import ietf-netconf-acm {
+//        prefix nacm;
+//        revision-date 2012-02-22;
+//    }
 
     /*** META INFORMATION ***/
 
@@ -351,7 +351,7 @@
 
     augment "/sys:system-state/sys:platform" {
         description
-        "Extends the SYSTEM-STATE with some extra configuration attributes required for setup.
+        "Extends the SYSTEM-STATE platform with some extra configuration attributes required for setup.
 
         All attributes are automatically config=false because they extend system-state";
 
@@ -410,118 +410,4 @@
             }
         }
     }
-
-    rpc do-upgrade-and-reboot {
-//        nacm:default-deny-all;
-        if-feature remote-upgrade;
-
-        description "Method to perform an upgrade of the device. This
-        expects a file /update.tar to have be present on the device.
-        The system-state/remote-upgrade attributes can be used to
-        verify the contents of the file before calling this action.
-        If there is a problem performing the upgrade
-        these will be described in any error thrown";
-
-        input {
-            leaf reset-option {
-                type enumeration {
-                    enum nuclear {
-                        description "Erases all configuration and resets the device to
-                                factory defaults.";
-                    }
-                    enum allnetconf {
-                        description "Reset all NETCONF data - leaves only logs and SSH keys.
-                            If a lesser reset is required use system-restart with a
-                            suitable reset-option";
-                    }
-                }
-                description "Optionally specify a parameter that can be
-                    used to reset the device to factory defaults";
-            }
-        }
-
-        output {
-            anyxml data {
-                description "A message describing the result.
-                    The result might not be seen as it schedules a reboot of the device";
-            }
-        }
-    }
-
-
-    rpc pull-update-tar-from-tftp {
-//        nacm:default-deny-all;
-        if-feature remote-upgrade;
-
-        description "Pulls a specified file from the specifed host and copies it
-                to the local device (usually at /update.tar
-                It also expects the file to be signed with GnuPG and the signature
-                file to exist on the TFTP server at <tftp-file>.asc";
-
-        input {
-            leaf tftp-file {
-                type msea:file-name;
-                mandatory true;
-                description "The name of a file to pull from the TFTP server at the host name specified";
-            }
-
-            leaf tftp-host {
-                type inet:host;
-                mandatory true;
-                description "The hostname of a TFTP server where an update TAR file can be pulled from";
-            }
-        }
-    }
-
-    rpc read-from-syslog {
-        description "A method of reading the entries from syslog. If no
-                argument is given will read the last 100 lines";
-
-        input {
-            leaf start-line {
-                type int16 {
-                    range -10000..-1;
-                }
-                default -100;
-                description "The number of lines to read from the end of syslog.";
-            }
-        }
-
-        output {
-            anyxml data {
-                description "Syslog entries represented as XML";
-            }
-        }
-    }
-
-//    notification upgrade-notification {
-//        description
-//            "Generated when a remote upgrade is in progress.";
-//
-//        leaf upgrade-stage {
-//            type enumeration {
-//                enum "check" {
-//                    description
-//                    "Checking the upgrade file is valid";
-//                }
-//                enum "erase" {
-//                    description    "Erasing old image";
-//                }
-//                enum "write" {
-//                    description "Writing new image";
-//                }
-//                enum "complete" {
-//                    description "Upgrade complete";
-//                }
-//            }
-//            mandatory true;
-//        }
-//
-//        leaf upgrade-detail {
-//            description "Textual description of the stage of upgrade";
-//            type string {
-//                length 0..100;
-//            }
-//        }
-//    } // upgrade-notification
 }
\ No newline at end of file
diff --git a/models/microsemi/src/main/yang/ietf-system-tls-auth.yang b/models/microsemi/src/main/yang/ietf-system-tls-auth.yang
deleted file mode 100644
index c1cbf4c..0000000
--- a/models/microsemi/src/main/yang/ietf-system-tls-auth.yang
+++ /dev/null
@@ -1,215 +0,0 @@
-module ietf-system-tls-auth {
-
-    yang-version 1;
-
-    namespace
-      "urn:ietf:params:xml:ns:yang:ietf-system-tls-auth";
-
-    prefix system-tls-auth;
-
-    import ietf-system {
-      prefix sys;
-    }
-    import ietf-netconf-acm {
-      prefix nacm;
-    }
-    import ietf-yang-types {
-      prefix yang;
-    }
-    import ietf-x509-cert-to-name {
-      prefix x509c2n;
-    }
-
-    organization
-      "IETF NETCONF (Network Configuration) Working Group";
-
-    contact
-      "WG Web:   <http://tools.ietf.org/wg/netconf/>
-    WG List:  <mailto:netconf@ietf.org>
-
-    WG Chair: Mehmet Ersue
-              <mailto:mehmet.ersue@nsn.com>
-
-    WG Chair: Bert Wijnen
-              <mailto:bertietf@bwijnen.net>
-
-    Editor:   Kent Watsen
-              <mailto:kwatsen@juniper.net>
-
-              Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-    description
-      "This module augments the ietf-system module in order to
-    add TLS authentication configuration nodes to the
-    'authentication' container.
-
-    Copyright (c) 2014 IETF Trust and the persons identified as
-    authors of the code. All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD
-    License set forth in Section 4.c of the IETF Trust's
-    Legal Provisions Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC XXXX; see
-    the RFC itself for full legal notices.";
-
-    revision "2014-05-24" {
-      description "Initial version";
-      reference
-        "RFC XXXX: NETCONF Server Configuration Model";
-
-    }
-
-
-    feature tls-map-certificates {
-      description
-        "The tls-map-certificates feature indicates that the
-      NETCONF server implements mapping X.509 certificates to NETCONF
-      usernames.";
-    }
-
-    feature tls-map-pre-shared-keys {
-      description
-        "The tls-map-pre-shared-keys feature indicates that the
-      NETCONF server implements mapping TLS pre-shared keys to NETCONF
-      usernames.";
-    }
-
-    grouping tls-global-config {
-      container trusted-ca-certs {
-        description
-          "A list of Certificate Authority (CA) certificates that a
-         NETCONF server can use to authenticate a NETCONF client's
-         certificate.  A client's certificate is authenticated if
-         its Issuer matches one of the configured trusted CA
-         certificates.";
-        leaf-list trusted-ca-cert {
-          type binary;
-          description
-            "The binary certificate structure, as
-           specified by RFC 5246, Section 7.4.6, i.e.,:
-
-             opaque ASN.1Cert<1..2^24>;
-
-          ";
-          reference
-            "RFC 5246: The Transport Layer Security (TLS)
-            	  Protocol Version 1.2";
-
-        }
-      }  // container trusted-ca-certs
-
-      container trusted-client-certs {
-        description
-          "A list of client certificates that a NETCONF server can
-         use to authenticate a NETCONF client's certificate.  A
-         client's certificate is authenticated if it is an exact
-         match to one of the configured trusted client certificates.";
-        leaf-list trusted-client-cert {
-          type binary;
-          description
-            "The binary certificate structure, as
-           specified by RFC 5246, Section 7.4.6, i.e.,:
-
-             opaque ASN.1Cert<1..2^24>;
-
-          ";
-          reference
-            "RFC 5246: The Transport Layer Security (TLS)
-            	  Protocol Version 1.2";
-
-        }
-      }  // container trusted-client-certs
-
-      container cert-maps {
-        if-feature tls-map-certificates;
-        description
-          "The cert-maps container is used by a NETCONF server to
-        map the NETCONF client's presented X.509 certificate to
-        a NETCONF username.
-
-        If no matching and valid cert-to-name list entry can be
-        found, then the NETCONF server MUST close the connection,
-        and MUST NOT accept NETCONF messages over it.";
-        uses x509c2n:cert-to-name;
-      }  // container cert-maps
-
-      container psk-maps {
-        if-feature tls-map-pre-shared-keys;
-        description
-          "During the TLS Handshake, the client indicates which
-         key to use by including a PSK identity in the TLS
-         ClientKeyExchange message. On the NETCONF server side,
-         this PSK identity is used to look up an entry in the psk-map
-         list. If such an entry is found, and the pre-shared keys
-         match, then the client is authenticated. The NETCONF
-         server uses the value from the user-name leaf in the
-         psk-map list as the NETCONF username.  If the NETCONF
-         server cannot find an entry in the psk-map list, or if
-         the pre-shared keys do not match, then the NETCONF
-         server terminates the connection.";
-        reference
-          "RFC 4279: Pre-Shared Key Ciphersuites for Transport Layer
-          	  Security (TLS)";
-
-        list psk-map {
-          key "psk-identity";
-          leaf psk-identity {
-            type string;
-            description
-              "The PSK identity encoded as a UTF-8 string. For
-             details how certain common PSK identity formats can
-             be encoded in UTF-8, see section 5.1. of RFC 4279.";
-            reference
-              "RFC 4279: Pre-Shared Key Ciphersuites for Transport
-              Layer Security (TLS)";
-
-          }
-
-          leaf user-name {
-            type nacm:user-name-type;
-            mandatory true;
-            description
-              "The NETCONF username associated with this PSK
-             identity.";
-          }
-
-          leaf not-valid-before {
-            type yang:date-and-time;
-            description
-              "This PSK identity is not valid before the given date
-             and time.";
-          }
-
-          leaf not-valid-after {
-            type yang:date-and-time;
-            description
-              "This PSK identity is not valid after the given date
-             and time.";
-          }
-
-          leaf key {
-//            nacm:default-deny-all;
-            type yang:hex-string;
-            mandatory true;
-            description
-              "The key associated with the PSK identity";
-            reference
-              "RFC 4279: Pre-Shared Key Ciphersuites for Transport
-              Layer Security (TLS)";
-
-          }
-        }  // list psk-map
-      }  // container psk-maps
-    }  // grouping tls-global-config
-
-    augment /sys:system/sys:authentication {
-      container tls {
-        uses tls-global-config;
-      }  // container tls
-    }
-  }  // module ietf-system-tls-auth
diff --git a/models/microsemi/src/main/yang/ietf-system.yang b/models/microsemi/src/main/yang/ietf-system.yang
deleted file mode 100644
index 12e6a9f..0000000
--- a/models/microsemi/src/main/yang/ietf-system.yang
+++ /dev/null
@@ -1,832 +0,0 @@
-module ietf-system {
-  namespace "urn:ietf:params:xml:ns:yang:ietf-system";
-  prefix "sys";
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  import ietf-netconf-acm {
-    prefix nacm;
-  }
-
-  import iana-crypt-hash {
-    prefix ianach;
-  }
-
-  import msea-types {
-    prefix msea;
-    revision-date 2016-02-29;
-  }
-
-  organization
-    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-
-     WG Chair: Thomas Nadeau
-               <mailto:tnadeau@lucidvision.com>
-
-     WG Chair: Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Andy Bierman
-               <mailto:andy@yumaworks.com>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-  description
-    "This module contains a collection of YANG definitions for the
-     configuration and identification of some common system
-     properties within a device containing a NETCONF server.  This
-     includes data node definitions for system identification,
-     time-of-day management, user management, DNS resolver
-     configuration, and some protocol operations for system
-     management.
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 7317; see
-     the RFC itself for full legal notices.";
-
-  revision 2014-08-06 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7317: A YANG Data Model for System Management";
-  }
-
- /*
-  * Typedefs
-  */
-
-  typedef timezone-name {
-    type string;
-    description
-      "A time zone name as used by the Time Zone Database,
-       sometimes referred to as the 'Olson Database'.
-
-       The exact set of valid values is an implementation-specific
-       matter.  Client discovery of the exact set of time zone names
-       for a particular server is out of scope.";
-    reference
-      "RFC 6557: Procedures for Maintaining the Time Zone Database";
-   }
-
-  /*
-   * Features
-   */
-
-  feature radius {
-    description
-      "Indicates that the device can be configured as a RADIUS
-       client.";
-    reference
-      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)";
-  }
-
-  feature authentication {
-    description
-      "Indicates that the device supports configuration of
-       user authentication.";
-  }
-
-  feature local-users {
-    if-feature authentication;
-    description
-      "Indicates that the device supports configuration of
-       local user authentication.";
-  }
-
-  feature radius-authentication {
-    if-feature radius;
-    if-feature authentication;
-    description
-      "Indicates that the device supports configuration of user
-       authentication over RADIUS.";
-    reference
-      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)
-       RFC 5607: Remote Authentication Dial-In User Service (RADIUS)
-                 Authorization for Network Access Server (NAS)
-                 Management";
-  }
-
-  feature ntp {
-    description
-      "Indicates that the device can be configured to use one or
-       more NTP servers to set the system date and time.";
-  }
-
-  feature ntp-udp-port {
-    if-feature ntp;
-    description
-      "Indicates that the device supports the configuration of
-       the UDP port for NTP servers.
-
-       This is a 'feature', since many implementations do not support
-       any port other than the default port.";
-  }
-
-  feature timezone-name {
-    description
-      "Indicates that the local time zone on the device
-       can be configured to use the TZ database
-       to set the time zone and manage daylight saving time.";
-    reference
-      "RFC 6557: Procedures for Maintaining the Time Zone Database";
-  }
-
-  feature dns-udp-tcp-port {
-    description
-      "Indicates that the device supports the configuration of
-       the UDP and TCP port for DNS servers.
-
-       This is a 'feature', since many implementations do not support
-       any port other than the default port.";
-  }
-
-  /*
-   * Identities
-   */
-
-  identity authentication-method {
-    description
-      "Base identity for user authentication methods.";
-  }
-
-  identity radius {
-    base authentication-method;
-    description
-      "Indicates user authentication using RADIUS.";
-    reference
-      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)
-       RFC 5607: Remote Authentication Dial-In User Service (RADIUS)
-                 Authorization for Network Access Server (NAS)
-                 Management";
-  }
-
-  identity local-users {
-    base authentication-method;
-    description
-      "Indicates password-based authentication of locally
-       configured users.";
-  }
-
-  identity radius-authentication-type {
-    description
-      "Base identity for RADIUS authentication types.";
-  }
-
-  identity radius-pap {
-    base radius-authentication-type;
-    description
-      "The device requests Password Authentication Protocol (PAP)
-       authentication from the RADIUS server.";
-    reference
-      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)";
-  }
-
-  identity radius-chap {
-    base radius-authentication-type;
-    description
-      "The device requests Challenge Handshake Authentication
-       Protocol (CHAP) authentication from the RADIUS server.";
-    reference
-      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)";
-  }
-
-  /*
-   * Configuration data nodes
-   */
-
-  container system {
-    description
-      "System group configuration.";
-
-    leaf contact {
-      type string;
-      description
-        "The administrator contact information for the system.
-
-         A server implementation MAY map this leaf to the sysContact
-         MIB object.  Such an implementation needs to use some
-         mechanism to handle the differences in size and characters
-         allowed between this leaf and sysContact.  The definition of
-         such a mechanism is outside the scope of this document.";
-      reference
-        "RFC 3418: Management Information Base (MIB) for the
-                   Simple Network Management Protocol (SNMP)
-                   SNMPv2-MIB.sysContact";
-    }
-
-    leaf hostname {
-      type inet:domain-name;
-     description
-       "The name of the host.  This name can be a single domain
-        label or the fully qualified domain name of the host.";
-
-    }
-
-    leaf location {
-      type string;
-      description
-        "The system location.
-
-         A server implementation MAY map this leaf to the sysLocation
-         MIB object.  Such an implementation needs to use some
-         mechanism to handle the differences in size and characters
-         allowed between this leaf and sysLocation.  The definition
-         of such a mechanism is outside the scope of this document.";
-
-      reference
-        "RFC 3418: Management Information Base (MIB) for the
-                   Simple Network Management Protocol (SNMP)
-                   SNMPv2-MIB.sysLocation";
-    }
-
-    container clock {
-      description
-        "Configuration of the system date and time properties.";
-
-      choice timezone {
-        description
-          "The system time zone information.";
-
-        case timezone-name {
-          if-feature timezone-name;
-          leaf timezone-name {
-            type timezone-name;
-            description
-              "The TZ database name to use for the system, such
-               as 'Europe/Stockholm'.";
-          }
-        }
-        case timezone-utc-offset {
-          leaf timezone-utc-offset {
-            type int16 {
-              range "-1500 .. 1500";
-            }
-            units "minutes";
-            description
-              "The number of minutes to add to UTC time to
-               identify the time zone for this system.  For example,
-               'UTC - 8:00 hours' would be represented as '-480'.
-               Note that automatic daylight saving time adjustment
-               is not provided if this object is used.";
-          }
-        }
-      }
-    }
-
-    container ntp {
-      if-feature ntp;
-      presence
-        "Enables the NTP client unless the 'enabled' leaf
-         (which defaults to 'true') is set to 'false'";
-      description
-        "Configuration of the NTP client.";
-
-      leaf enabled {
-        type boolean;
-        default true;
-        description
-          "Indicates that the system should attempt to
-           synchronize the system clock with an NTP server
-           from the 'ntp/server' list.";
-      }
-      list server {
-        key name;
-        max-elements 3;
-        description
-          "List of NTP servers to use for system clock
-           synchronization.  If '/system/ntp/enabled'
-           is 'true', then the system will attempt to
-           contact and utilize the specified NTP servers.
-           If DHCP retrieves NTP servers then these values
-           are used in addition to those";
-
-        leaf name {
-          type string;
-          description
-            "An arbitrary name for the NTP server.";
-        }
-        choice transport {
-          mandatory true;
-          description
-            "The transport-protocol-specific parameters for this
-             server.";
-
-          case udp {
-            container udp {
-              description
-                "Contains UDP-specific configuration parameters
-                 for NTP.";
-              leaf address {
-                type inet:host;
-                mandatory true;
-                description
-                  "The address of the NTP server.";
-              }
-//              leaf port {
-//                if-feature ntp-udp-port;
-//                type inet:port-number;
-//                default 123;
-//                description
-//                  "The port number of the NTP server.";
-//              }
-            }
-          }
-        }
-
-//        leaf association-type { //These elements are omitted because MSEA1000 does not support these options
-//          type enumeration {
-//            enum server {
-//              description
-//                "Use client association mode.  This device
-//                 will not provide synchronization to the
-//                 configured NTP server.";
-//            }
-//            enum peer {
-//              description
-//                "Use symmetric active association mode.
-//                 This device may provide synchronization
-//                 to the configured NTP server.";
-//            }
-//            enum pool {
-//              description
-//                "Use client association mode with one or
-//                 more of the NTP servers found by DNS
-//                 resolution of the domain name given by
-//                 the 'address' leaf.  This device will not
-//                 provide synchronization to the servers.";
-//            }
-//          }
-//          default server;
-//          description
-//            "The desired association type for this NTP server.";
-//        }
-//        leaf iburst {
-//          type boolean;
-//          default false;
-//          description
-//            "Indicates whether this server should enable burst
-//             synchronization or not.";
-//        }
-//        leaf prefer {
-//          type boolean;
-//          default false;
-//          description
-//            "Indicates whether this server should be preferred
-//             or not.";
-//        }
-      }
-    }
-
-    container dns-resolver {
-      presence "If defined enables the DNS servers to be configured.";
-
-      description
-        "Configuration of the DNS resolver. If DHCP retrieves DNS
-         servers or search domains then these values are used in
-         addition to those";
-
-      leaf-list search {
-        type inet:domain-name;
-        max-elements 3;
-        ordered-by user;
-        description
-          "An ordered list of domains to search when resolving
-           a host name.";
-      }
-      list server {
-        key name;
-        max-elements 3;
-        ordered-by user;
-        description
-          "List of the DNS servers that the resolver should query.
-
-           When the resolver is invoked by a calling application, it
-           sends the query to the first name server in this list.  If
-           no response has been received within 'timeout' seconds,
-           the resolver continues with the next server in the list.
-           If no response is received from any server, the resolver
-           continues with the first server again.  When the resolver
-           has traversed the list 'attempts' times without receiving
-           any response, it gives up and returns an error to the
-           calling application.
-
-           Implementations MAY limit the number of entries in this
-           list.";
-
-        leaf name {
-          type string;
-          description
-            "An arbitrary name for the DNS server.";
-        }
-        choice transport {
-          mandatory true;
-          description
-            "The transport-protocol-specific parameters for this
-             server.";
-
-          case udp-and-tcp {
-            container udp-and-tcp {
-              description
-                "Contains UDP- and TCP-specific configuration
-                 parameters for DNS.";
-              reference
-                "RFC 1035: Domain Names - Implementation and
-                           Specification
-                 RFC 5966: DNS Transport over TCP - Implementation
-                           Requirements";
-
-              leaf address {
-                type inet:ip-address;
-                mandatory true;
-                description
-                  "The address of the DNS server.";
-              }
-//              leaf port {
-//                if-feature dns-udp-tcp-port;
-//                type inet:port-number;
-//                default 53;
-//                description
-//                  "The UDP and TCP port number of the DNS server.";
-//              }
-            }
-          }
-        }
-      }
-//      container options { //These elements are omitted because MSEA1000 does not support these options
-//        description
-//          "Resolver options.  The set of available options has been
-//           limited to those that are generally available across
-//           different resolver implementations and generally useful.";
-//        leaf timeout {
-//          type uint8 {
-//            range "1..max";
-//          }
-//          units "seconds";
-//          default "5";
-//          description
-//            "The amount of time the resolver will wait for a
-//             response from each remote name server before
-//             retrying the query via a different name server.";
-//        }
-//        leaf attempts {
-//          type uint8 {
-//            range "1..max";
-//          }
-//          default "2";
-//          description
-//            "The number of times the resolver will send a query to
-//             all of its name servers before giving up and returning
-//             an error to the calling application.";
-//        }
-//      }
-    }
-
-    container radius {
-      if-feature radius;
-
-      description
-        "Configuration of the RADIUS client.";
-
-      list server {
-        key name;
-        ordered-by user;
-        description
-          "List of RADIUS servers used by the device.
-
-           When the RADIUS client is invoked by a calling
-           application, it sends the query to the first server in
-           this list.  If no response has been received within
-           'timeout' seconds, the client continues with the next
-           server in the list.  If no response is received from any
-           server, the client continues with the first server again.
-           When the client has traversed the list 'attempts' times
-           without receiving any response, it gives up and returns an
-           error to the calling application.";
-
-        leaf name {
-          type string;
-          description
-            "An arbitrary name for the RADIUS server.";
-        }
-        choice transport {
-          mandatory true;
-          description
-            "The transport-protocol-specific parameters for this
-             server.";
-
-          case udp {
-            container udp {
-              description
-                "Contains UDP-specific configuration parameters
-                 for RADIUS.";
-              leaf address {
-                type inet:host;
-                mandatory true;
-                description
-                  "The address of the RADIUS server.";
-              }
-
-              leaf authentication-port {
-                type inet:port-number;
-                default "1812";
-                description
-                  "The port number of the RADIUS server.";
-              }
-              leaf shared-secret {
-                type string;
-                mandatory true;
-//                nacm:default-deny-all;
-                description
-                  "The shared secret, which is known to both the
-                   RADIUS client and server.";
-                reference
-                  "RFC 2865: Remote Authentication Dial In User
-                             Service (RADIUS)";
-              }
-            }
-          }
-        }
-        leaf authentication-type {
-          type identityref {
-            base radius-authentication-type;
-          }
-          default radius-pap;
-          description
-            "The authentication type requested from the RADIUS
-             server.";
-        }
-      }
-      container options {
-        description
-          "RADIUS client options.";
-
-        leaf timeout {
-          type uint8 {
-            range "1..max";
-          }
-          units "seconds";
-          default "5";
-          description
-            "The number of seconds the device will wait for a
-             response from each RADIUS server before trying with a
-             different server.";
-        }
-
-        leaf attempts {
-          type uint8 {
-            range "1..max";
-          }
-          default "2";
-          description
-            "The number of times the device will send a query to
-             all of its RADIUS servers before giving up.";
-        }
-      }
-    }
-
-    container authentication {
-//      nacm:default-deny-write;
-      if-feature authentication;
-
-       description
-         "The authentication configuration subtree.";
-
-       leaf-list user-authentication-order {
-         type identityref {
-           base authentication-method;
-         }
-         must '(. != "sys:radius" or ../../radius/server)' {
-           error-message
-             "When 'radius' is used, a RADIUS server"
-           + " must be configured.";
-           description
-             "When 'radius' is used as an authentication method,
-              a RADIUS server must be configured.";
-         }
-         ordered-by user;
-
-         description
-           "When the device authenticates a user with a password,
-            it tries the authentication methods in this leaf-list in
-            order.  If authentication with one method fails, the next
-            method is used.  If no method succeeds, the user is
-            denied access.
-
-            An empty user-authentication-order leaf-list still allows
-            authentication of users using mechanisms that do not
-            involve a password.
-
-            If the 'radius-authentication' feature is advertised by
-            the NETCONF server, the 'radius' identity can be added to
-            this list.
-
-            If the 'local-users' feature is advertised by the
-            NETCONF server, the 'local-users' identity can be
-            added to this list.";
-       }
-
-       list user {
-         if-feature local-users;
-         key name;
-         description
-           "The list of local users configured on this device.";
-
-         leaf name {
-           type string;
-           description
-            "The user name string identifying this entry.";
-
-           must ".='netconf' or .='admin' or .='readonly'" {
-               error-message "The set of users is not changeable on this device. Must have admin, netconf and readonly";
-               error-app-tag "msea-sys-must-01";
-           }
-         }
-         leaf password {
-           type ianach:crypt-hash;
-           description
-             "The password for this entry.";
-         }
-         list authorized-key {
-           key name;
-           description
-             "A list of public SSH keys for this user.  These keys
-              are allowed for SSH authentication, as described in
-              RFC 4253.";
-           reference
-             "RFC 4253: The Secure Shell (SSH) Transport Layer
-                        Protocol";
-
-           leaf name {
-             type string;
-             description
-               "An arbitrary name for the SSH key.";
-           }
-
-           leaf algorithm {
-             type string;
-             mandatory true;
-             description
-               "The public key algorithm name for this SSH key.
-
-                Valid values are the values in the IANA 'Secure Shell
-                (SSH) Protocol Parameters' registry, Public Key
-                Algorithm Names.";
-             reference
-               "IANA 'Secure Shell (SSH) Protocol Parameters'
-                registry, Public Key Algorithm Names";
-           }
-           leaf key-data {
-             type binary;
-             mandatory true;
-             description
-               "The binary public key data for this SSH key, as
-                specified by RFC 4253, Section 6.6, i.e.:
-
-                  string    certificate or public key format
-                            identifier
-                  byte[n]   key/certificate data.";
-             reference
-               "RFC 4253: The Secure Shell (SSH) Transport Layer
-                          Protocol";
-           }
-         }
-       }
-     }
-  }
-
-  /*
-   * Operational state data nodes
-   */
-
-  container system-state {
-    config false;
-    description
-      "System group operational state.";
-
-    container platform {
-      description
-        "Contains vendor-specific information for
-         identifying the system platform and operating system.";
-      reference
-        "IEEE Std 1003.1-2008 - sys/utsname.h";
-
-      leaf os-name {
-        type string;
-        description
-          "The name of the operating system in use -
-           for example, 'Linux'.";
-        reference
-          "IEEE Std 1003.1-2008 - utsname.sysname";
-      }
-      leaf os-release {
-        type string;
-        description
-          "The current release level of the operating
-           system in use.  This string MAY indicate
-           the OS source code revision.";
-        reference
-          "IEEE Std 1003.1-2008 - utsname.release";
-      }
-      leaf os-version {
-        type string;
-        description
-          "The current version level of the operating
-           system in use.  This string MAY indicate
-           the specific OS build date and target variant
-           information.";
-        reference
-          "IEEE Std 1003.1-2008 - utsname.version";
-      }
-      leaf machine {
-        type string;
-        description
-          "A vendor-specific identifier string representing
-           the hardware in use.";
-        reference
-          "IEEE Std 1003.1-2008 - utsname.machine";
-      }
-    }
-
-    container clock {
-      description
-        "Monitoring of the system date and time properties.";
-
-      leaf current-datetime {
-        type yang:date-and-time;
-        description
-          "The current system date and time.";
-      }
-
-      leaf boot-datetime {
-        type yang:date-and-time;
-        description
-          "The system date and time when the system last restarted.";
-      }
-    }
-  }
-
-  rpc set-current-datetime {
-//    nacm:default-deny-all;
-    description
-      "Set the /system-state/clock/current-datetime leaf
-       to the specified value.
-
-       If the system is using NTP (i.e., /system/ntp/enabled
-       is set to 'true'), then this operation will fail with
-       error-tag 'operation-failed' and error-app-tag value of
-       'ntp-active'.";
-    input {
-      leaf current-datetime {
-        type yang:date-and-time;
-        mandatory true;
-        description
-          "The current system date and time.";
-      }
-    }
-  }
-
-  rpc system-restart {
-//    nacm:default-deny-all;
-    description
-      "Request that the entire system be restarted immediately.
-       A server SHOULD send an rpc reply to the client before
-       restarting the system.";
-    input {
-        leaf reset-option {
-            type msea:reset-config-options;
-            description "Optionally specify a parameter that can be
-                used to reset the configuration on the device or
-                reset it to factory defaults";
-        }
-    }
-  }
-
-  rpc system-shutdown {
-//    nacm:default-deny-all;
-    description
-      "Request that the entire system be shut down immediately.
-       A server SHOULD send an rpc reply to the client before
-       shutting down the system.";
-  }
-
-}
diff --git a/models/microsemi/src/main/yang/ietf-x509-cert-to-name.yang b/models/microsemi/src/main/yang/ietf-x509-cert-to-name.yang
deleted file mode 100644
index 2996954..0000000
--- a/models/microsemi/src/main/yang/ietf-x509-cert-to-name.yang
+++ /dev/null
@@ -1,248 +0,0 @@
-module ietf-x509-cert-to-name {
-  namespace "urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name";
-  prefix x509c2n;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-  contact
-    "WG Web:   <http://tools.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     WG Chair: Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>
-
-     Editor:   Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>";
-  description
-    "This module contains a collection of YANG definitions for
-     extracting a name from a X.509 certificate.
-
-     The algorithm used to extract a name from a X.509 certificate
-     was first defined in RFC 6353.
-
-     Copyright (c) 2013 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC XXXX; see
-     the RFC itself for full legal notices.";
-  reference
-    "RFC6353: Transport Layer Security (TLS) Transport Model for
-              the Simple Network Management Protocol (SNMP)";
-
-  revision 2013-03-26 {
-    description
-      "Initial revision.";
-    reference "RFC XXXX: A YANG Data Model for SNMP Configuration";
-  }
-
-  typedef tls-fingerprint {
-    type yang:hex-string {
-      pattern "([0-9a-fA-F]){2}(:([0-9a-fA-F]){2}){0,254}";
-    }
-    description
-      "A fingerprint value that can be used to uniquely reference
-       other data of potentially arbitrary length.
-
-       An tls-fingerprint value is composed of a 1-octet hashing
-       algorithm identifier followed by the fingerprint value.  The
-       first octet value identifying the hashing algorithm is taken
-       from the IANA TLS HashAlgorithm Registry (RFC 5246).  The
-       remaining octets are filled using the results of the hashing
-       algorithm.";
-    reference "SNMP-TLS-TM-MIB.SnmpTLSFingerprint";
-  }
-
-  identity cert-to-name {
-    description
-      "Base identity for algorithms to derive a name from a
-       certificate.";
-  }
-
-  identity specified {
-    base cert-to-name;
-    description
-      "Directly specifies the name to be used for the certificate.
-       The value of the leaf 'name' in 'cert-to-name' list is used.";
-    reference "SNMP-TLS-TM-MIB.snmpTlstmCertSpecified";
-  }
-
-  identity san-rfc822-name {
-    base cert-to-name;
-    description
-      "Maps a subjectAltName's rfc822Name to a name.  The local part
-       of the rfc822Name is passed unaltered but the host-part of the
-       name must be passed in lowercase.  This mapping results in a
-       1:1 correspondence between equivalent subjectAltName
-       rfc822Name values and name values except that the host-part
-       of the name MUST be passed in lowercase. For example, the
-       rfc822Name field FooBar@Example.COM is mapped to name
-       FooBar@example.com.";
-    reference "SNMP-TLS-TM-MIB.snmpTlstmCertSANRFC822Name";
-  }
-
-  identity san-dns-name {
-    base cert-to-name;
-    description
-      "Maps a subjectAltName's dNSName to a name after first
-       converting it to all lowercase (RFC 5280 does not specify
-       converting to lowercase so this involves an extra step).
-       This mapping results in a 1:1 correspondence between
-       subjectAltName dNSName values and the name values.";
-    reference "SNMP-TLS-TM-MIB.snmpTlstmCertSANDNSName";
-  }
-
-  identity san-ip-address {
-    base cert-to-name;
-    description
-      "Maps a subjectAltName's iPAddress to a name by
-       transforming the binary encoded address as follows:
-
-         1) for IPv4, the value is converted into a
-            decimal-dotted quad address (e.g., '192.0.2.1').
-
-         2) for IPv6 addresses, the value is converted into a
-            32-character all lowercase hexadecimal string
-            without any colon separators.
-
-       This mapping results in a 1:1 correspondence between
-       subjectAltName iPAddress values and the name values.";
-    reference "SNMP-TLS-TM-MIB.snmpTlstmCertSANIpAddress";
-  }
-
-  identity san-any {
-    base cert-to-name;
-    description
-      "Maps any of the following fields using the corresponding
-       mapping algorithms:
-
-         +------------+-----------------+
-         | Type       | Algorithm       |
-         |------------+-----------------|
-         | rfc822Name | san-rfc822-name |
-         | dNSName    | san-dns-name    |
-         | iPAddress  | san-ip-address  |
-         +------------+-----------------+
-
-       The first matching subjectAltName value found in the
-       certificate of the above types MUST be used when deriving
-       the name.  The mapping algorithm specified in the
-       'Algorithm' column MUST be used to derive the name.
-
-       This mapping results in a 1:1 correspondence between
-       subjectAltName values and name values.  The three sub-mapping
-       algorithms produced by this combined algorithm cannot produce
-       conflicting results between themselves.";
-    reference "SNMP-TLS-TM-MIB.snmpTlstmCertSANAny";
-  }
-
-  identity common-name {
-    base cert-to-name;
-    description
-      "Maps a certificate's CommonName to a name after converting
-       it to a UTF-8 encoding.  The usage of CommonNames is
-       deprecated and users are encouraged to use subjectAltName
-       mapping methods instead.  This mapping results in a 1:1
-       correspondence between certificate CommonName values and name
-       values.";
-    reference "SNMP-TLS-TM-MIB.snmpTlstmCertCommonName";
-  }
-
-  grouping cert-to-name {
-    description
-      "Defines nodes for mapping certificates to names.  Modules
-       that uses this grouping should describe how the resulting
-       name is used.";
-    list cert-to-name {
-      key "id";
-      description
-        "This list defines how certificates are mapped to names.
-         The name is derived by considering each cert-to-name
-         list entry in order. The cert-to-name entry's fingerprint
-         determines whether the list entry is a match:
-
-         1) If the cert-to-name list entry's fingerprint value
-            matches that of the presented certificate, then consider
-            the list entry as a successful match.
-
-         2) If the cert-to-name list entry's fingerprint value
-            matches that of a locally held copy of a trusted CA
-            certificate, and that CA certificate was part of the CA
-            certificate chain to the presented certificate, then
-            consider the list entry as a successful match.
-
-         Once a matching cert-to-name list entry has been found, the
-         map-type is used to determine how the name associated with
-         the certificate should be determined.  See the map-type
-         leaf's description for details on determining the name value.
-         If it is impossible to determine a name from the cert-to-name
-         list entry's data combined with the data presented in the
-         certificate, then additional cert-to-name list entries MUST
-         be searched looking for another potential match.
-
-         Security administrators are encouraged to make use of
-         certificates with subjectAltName fields that can be mapped to
-         names so that a single root CA certificate can allow all
-         child certificate's subjectAltName to map directly to a name
-         via a 1:1 transformation.";
-      reference "SNMP-TLS-TM-MIB.snmpTlstmCertToTSNEntry";
-      leaf id {
-        type uint32;
-        description
-          "The id specifies the order in which the entries in the
-           cert-to-name list are searched.  Entries with lower
-           numbers are searched first.";
-        reference "SNMP-TLS-TM-MIB.snmpTlstmCertToTSNID";
-      }
-      leaf fingerprint {
-        type x509c2n:tls-fingerprint;
-        mandatory true;
-        description
-          "Specifies a value with which the fingerprint of the
-           certificate presented by the peer is compared.  If the
-           fingerprint of the certificate presented by the peer does
-           not match the fingerprint configured, then the entry is
-           skipped and the search for a match continues.";
-        reference "SNMP-TLS-TM-MIB.snmpTlstmCertToTSNFingerprint";
-      }
-      leaf map-type {
-        type identityref {
-          base cert-to-name;
-        }
-        mandatory true;
-        description
-          "Specifies the algorithm used to map the certificate
-           presented by the peer to a name.
-
-           Mappings that need additional configuration objects should
-           use the 'when' statement to make them conditional based on
-           the 'map-type'.";
-        reference "SNMP-TLS-TM-MIB.snmpTlstmCertToTSNMapType";
-      }
-      leaf name {
-        when "../map-type = 'x509c2n:specified'";
-        type string;
-        mandatory true;
-        description
-          "Directly specifies the NETCONF username when the
-           'map-type' is 'specified'.";
-        reference "SNMP-TLS-TM-MIB.snmpTlstmCertToTSNData";
-      }
-    }
-  }
-}
diff --git a/models/microsemi/src/main/yang/ietf-yang-types.yang b/models/microsemi/src/main/yang/ietf-yang-types.yang
deleted file mode 100644
index 371a091..0000000
--- a/models/microsemi/src/main/yang/ietf-yang-types.yang
+++ /dev/null
@@ -1,480 +0,0 @@
-module ietf-yang-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-  prefix "yang";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - yang-identifier
-      - hex-string
-      - uuid
-      - dotted-quad";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of counter and gauge types ***/
-
-  typedef counter32 {
-    type uint32;
-    description
-     "The counter32 type represents a non-negative integer
-      that monotonically increases until it reaches a
-      maximum value of 2^32-1 (4294967295 decimal), when it
-      wraps around and starts increasing again from zero.
-
-      Counters have no defined 'initial' value, and thus, a
-      single value of a counter has (in general) no information
-      content.  Discontinuities in the monotonically increasing
-      value normally occur at re-initialization of the
-      management system, and at other times as specified in the
-      description of a schema node using this type.  If such
-      other times can occur, for example, the creation of
-      a schema node of type counter32 at times other than
-      re-initialization, then a corresponding schema node
-      should be defined, with an appropriate type, to indicate
-      the last discontinuity.
-
-      The counter32 type should not be used for configuration
-      schema nodes.  A default statement SHOULD NOT be used in
-      combination with the type counter32.
-
-      In the value set and its semantics, this type is equivalent
-      to the Counter32 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef zero-based-counter32 {
-    type yang:counter32;
-    default "0";
-    description
-     "The zero-based-counter32 type represents a counter32
-      that has the defined 'initial' value zero.
-
-      A schema node of this type will be set to zero (0) on creation
-      and will thereafter increase monotonically until it reaches
-      a maximum value of 2^32-1 (4294967295 decimal), when it
-      wraps around and starts increasing again from zero.
-
-      Provided that an application discovers a new schema node
-      of this type within the minimum time to wrap, it can use the
-      'initial' value as a delta.  It is important for a management
-      station to be aware of this minimum time and the actual time
-      between polls, and to discard data if the actual time is too
-      long or there is no defined minimum time.
-
-      In the value set and its semantics, this type is equivalent
-      to the ZeroBasedCounter32 textual convention of the SMIv2.";
-    reference
-      "RFC 4502: Remote Network Monitoring Management Information
-                 Base Version 2";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-     "The counter64 type represents a non-negative integer
-      that monotonically increases until it reaches a
-      maximum value of 2^64-1 (18446744073709551615 decimal),
-      when it wraps around and starts increasing again from zero.
-
-      Counters have no defined 'initial' value, and thus, a
-      single value of a counter has (in general) no information
-      content.  Discontinuities in the monotonically increasing
-      value normally occur at re-initialization of the
-      management system, and at other times as specified in the
-      description of a schema node using this type.  If such
-      other times can occur, for example, the creation of
-      a schema node of type counter64 at times other than
-      re-initialization, then a corresponding schema node
-      should be defined, with an appropriate type, to indicate
-      the last discontinuity.
-
-      The counter64 type should not be used for configuration
-      schema nodes.  A default statement SHOULD NOT be used in
-      combination with the type counter64.
-
-      In the value set and its semantics, this type is equivalent
-      to the Counter64 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef zero-based-counter64 {
-    type yang:counter64;
-    default "0";
-    description
-     "The zero-based-counter64 type represents a counter64 that
-      has the defined 'initial' value zero.
-
-
-
-
-      A schema node of this type will be set to zero (0) on creation
-      and will thereafter increase monotonically until it reaches
-      a maximum value of 2^64-1 (18446744073709551615 decimal),
-      when it wraps around and starts increasing again from zero.
-
-      Provided that an application discovers a new schema node
-      of this type within the minimum time to wrap, it can use the
-      'initial' value as a delta.  It is important for a management
-      station to be aware of this minimum time and the actual time
-      between polls, and to discard data if the actual time is too
-      long or there is no defined minimum time.
-
-      In the value set and its semantics, this type is equivalent
-      to the ZeroBasedCounter64 textual convention of the SMIv2.";
-    reference
-     "RFC 2856: Textual Conventions for Additional High Capacity
-                Data Types";
-  }
-
-  typedef gauge32 {
-    type uint32;
-    description
-     "The gauge32 type represents a non-negative integer, which
-      may increase or decrease, but shall never exceed a maximum
-      value, nor fall below a minimum value.  The maximum value
-      cannot be greater than 2^32-1 (4294967295 decimal), and
-      the minimum value cannot be smaller than 0.  The value of
-      a gauge32 has its maximum value whenever the information
-      being modeled is greater than or equal to its maximum
-      value, and has its minimum value whenever the information
-      being modeled is smaller than or equal to its minimum value.
-      If the information being modeled subsequently decreases
-      below (increases above) the maximum (minimum) value, the
-      gauge32 also decreases (increases).
-
-      In the value set and its semantics, this type is equivalent
-      to the Gauge32 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-     "The gauge64 type represents a non-negative integer, which
-      may increase or decrease, but shall never exceed a maximum
-      value, nor fall below a minimum value.  The maximum value
-      cannot be greater than 2^64-1 (18446744073709551615), and
-      the minimum value cannot be smaller than 0.  The value of
-      a gauge64 has its maximum value whenever the information
-      being modeled is greater than or equal to its maximum
-      value, and has its minimum value whenever the information
-      being modeled is smaller than or equal to its minimum value.
-      If the information being modeled subsequently decreases
-      below (increases above) the maximum (minimum) value, the
-      gauge64 also decreases (increases).
-
-      In the value set and its semantics, this type is equivalent
-      to the CounterBasedGauge64 SMIv2 textual convention defined
-      in RFC 2856";
-    reference
-     "RFC 2856: Textual Conventions for Additional High Capacity
-                Data Types";
-  }
-
-  /*** collection of identifier-related types ***/
-
-  typedef object-identifier {
-    type string {
-      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-            + '(\.(0|([1-9]\d*)))*';
-    }
-    description
-     "The object-identifier type represents administratively
-      assigned names in a registration-hierarchical-name tree.
-
-      Values of this type are denoted as a sequence of numerical
-      non-negative sub-identifier values.  Each sub-identifier
-      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
-      are separated by single dots and without any intermediate
-      whitespace.
-
-      The ASN.1 standard restricts the value space of the first
-      sub-identifier to 0, 1, or 2.  Furthermore, the value space
-      of the second sub-identifier is restricted to the range
-      0 to 39 if the first sub-identifier is 0 or 1.  Finally,
-      the ASN.1 standard requires that an object identifier
-      has always at least two sub-identifiers.  The pattern
-      captures these restrictions.
-
-      Although the number of sub-identifiers is not limited,
-      module designers should realize that there may be
-      implementations that stick with the SMIv2 limit of 128
-      sub-identifiers.
-
-      This type is a superset of the SMIv2 OBJECT IDENTIFIER type
-      since it is not restricted to 128 sub-identifiers.  Hence,
-      this type SHOULD NOT be used to represent the SMIv2 OBJECT
-      IDENTIFIER type; the object-identifier-128 type SHOULD be
-      used instead.";
-    reference
-     "ISO9834-1: Information technology -- Open Systems
-      Interconnection -- Procedures for the operation of OSI
-      Registration Authorities: General procedures and top
-      arcs of the ASN.1 Object Identifier tree";
-  }
-
-  typedef object-identifier-128 {
-    type object-identifier {
-      pattern '\d*(\.\d*){1,127}';
-    }
-    description
-     "This type represents object-identifiers restricted to 128
-      sub-identifiers.
-
-      In the value set and its semantics, this type is equivalent
-      to the OBJECT IDENTIFIER type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef yang-identifier {
-    type string {
-      length "1..max";
-      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
-    }
-    description
-      "A YANG identifier string as defined by the 'identifier'
-       rule in Section 12 of RFC 6020.  An identifier must
-       start with an alphabetic character or an underscore
-       followed by an arbitrary sequence of alphabetic or
-       numeric characters, underscores, hyphens, or dots.
-
-       A YANG identifier MUST NOT start with any possible
-       combination of the lowercase or uppercase character
-       sequence 'xml'.";
-    reference
-      "RFC 6020: YANG - A Data Modeling Language for the Network
-                 Configuration Protocol (NETCONF)";
-  }
-
-  /*** collection of types related to date and time***/
-
-  typedef date-and-time {
-    type string {
-      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-            + '(Z|[\+\-]\d{2}:\d{2})';
-    }
-    description
-     "The date-and-time type is a profile of the ISO 8601
-      standard for representation of dates and times using the
-      Gregorian calendar.  The profile is defined by the
-      date-time production in Section 5.6 of RFC 3339.
-
-      The date-and-time type is compatible with the dateTime XML
-      schema type with the following notable exceptions:
-
-      (a) The date-and-time type does not allow negative years.
-
-      (b) The date-and-time time-offset -00:00 indicates an unknown
-          time zone (see RFC 3339) while -00:00 and +00:00 and Z
-          all represent the same time zone in dateTime.
-
-      (c) The canonical format (see below) of data-and-time values
-          differs from the canonical format used by the dateTime XML
-          schema type, which requires all times to be in UTC using
-          the time-offset 'Z'.
-
-      This type is not equivalent to the DateAndTime textual
-      convention of the SMIv2 since RFC 3339 uses a different
-      separator between full-date and full-time and provides
-      higher resolution of time-secfrac.
-
-      The canonical format for date-and-time values with a known time
-      zone uses a numeric time zone offset that is calculated using
-      the device's configured known offset to UTC time.  A change of
-      the device's offset to UTC time will cause date-and-time values
-      to change accordingly.  Such changes might happen periodically
-      in case a server follows automatically daylight saving time
-      (DST) time zone offset changes.  The canonical format for
-      date-and-time values with an unknown time zone (usually
-      referring to the notion of local time) uses the time-offset
-      -00:00.";
-    reference
-     "RFC 3339: Date and Time on the Internet: Timestamps
-      RFC 2579: Textual Conventions for SMIv2
-      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-  }
-
-  typedef timeticks {
-    type uint32;
-    description
-     "The timeticks type represents a non-negative integer that
-      represents the time, modulo 2^32 (4294967296 decimal), in
-      hundredths of a second between two epochs.  When a schema
-      node is defined that uses this type, the description of
-      the schema node identifies both of the reference epochs.
-
-      In the value set and its semantics, this type is equivalent
-      to the TimeTicks type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef timestamp {
-    type yang:timeticks;
-    description
-     "The timestamp type represents the value of an associated
-      timeticks schema node at which a specific occurrence
-      happened.  The specific occurrence must be defined in the
-      description of any schema node defined using this type.  When
-      the specific occurrence occurred prior to the last time the
-      associated timeticks attribute was zero, then the timestamp
-      value is zero.  Note that this requires all timestamp values
-      to be reset to zero when the value of the associated timeticks
-      attribute reaches 497+ days and wraps around to zero.
-
-      The associated timeticks schema node must be specified
-      in the description of any schema node using this type.
-
-      In the value set and its semantics, this type is equivalent
-      to the TimeStamp textual convention of the SMIv2.";
-    reference
-     "RFC 2579: Textual Conventions for SMIv2";
-  }
-
-  /*** collection of generic address types ***/
-
-  typedef phys-address {
-    type string {
-      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-    }
-
-
-
-
-    description
-     "Represents media- or physical-level addresses represented
-      as a sequence octets, each octet represented by two hexadecimal
-      numbers.  Octets are separated by colons.  The canonical
-      representation uses lowercase characters.
-
-      In the value set and its semantics, this type is equivalent
-      to the PhysAddress textual convention of the SMIv2.";
-    reference
-     "RFC 2579: Textual Conventions for SMIv2";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
-    }
-    description
-     "The mac-address type represents an IEEE 802 MAC address.
-      The canonical representation uses lowercase characters.
-
-      In the value set and its semantics, this type is equivalent
-      to the MacAddress textual convention of the SMIv2.";
-    reference
-     "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                Networks: Overview and Architecture
-      RFC 2579: Textual Conventions for SMIv2";
-  }
-
-  /*** collection of XML-specific types ***/
-
-  typedef xpath1.0 {
-    type string;
-    description
-     "This type represents an XPATH 1.0 expression.
-
-      When a schema node is defined that uses this type, the
-      description of the schema node MUST specify the XPath
-      context in which the XPath expression is evaluated.";
-    reference
-     "XPATH: XML Path Language (XPath) Version 1.0";
-  }
-
-  /*** collection of string types ***/
-
-  typedef hex-string {
-    type string {
-      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-    }
-    description
-     "A hexadecimal string with octets represented as hex digits
-      separated by colons.  The canonical representation uses
-      lowercase characters.";
-  }
-
-  typedef uuid {
-    type string {
-      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
-    }
-    description
-     "A Universally Unique IDentifier in the string representation
-      defined in RFC 4122.  The canonical representation uses
-      lowercase characters.
-
-      The following is an example of a UUID in string representation:
-      f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-      ";
-    reference
-     "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                Namespace";
-  }
-
-  typedef dotted-quad {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
-    }
-    description
-      "An unsigned 32-bit number expressed in the dotted-quad
-       notation, i.e., four octets written as decimal numbers
-       and separated with the '.' (full stop) character.";
-  }
-}
diff --git a/models/microsemi/src/main/yang/msea-cfm.yang b/models/microsemi/src/main/yang/msea-cfm@2016-02-29.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-cfm.yang
rename to models/microsemi/src/main/yang/msea-cfm@2016-02-29.yang
diff --git a/models/microsemi/src/main/yang/msea-sa-filtering.yang b/models/microsemi/src/main/yang/msea-sa-filtering@2016-04-12.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-sa-filtering.yang
rename to models/microsemi/src/main/yang/msea-sa-filtering@2016-04-12.yang
diff --git a/models/microsemi/src/main/yang/msea-soam-fm.yang b/models/microsemi/src/main/yang/msea-soam-fm@2016-02-29.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-soam-fm.yang
rename to models/microsemi/src/main/yang/msea-soam-fm@2016-02-29.yang
diff --git a/models/microsemi/src/main/yang/msea-soam-pm.yang b/models/microsemi/src/main/yang/msea-soam-pm@2016-02-29.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-soam-pm.yang
rename to models/microsemi/src/main/yang/msea-soam-pm@2016-02-29.yang
diff --git a/models/microsemi/src/main/yang/msea-types.yang b/models/microsemi/src/main/yang/msea-types@2016-02-29.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-types.yang
rename to models/microsemi/src/main/yang/msea-types@2016-02-29.yang
diff --git a/models/microsemi/src/main/yang/msea-uni-evc-interface.yang b/models/microsemi/src/main/yang/msea-uni-evc-interface@2016-03-17.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-uni-evc-interface.yang
rename to models/microsemi/src/main/yang/msea-uni-evc-interface@2016-03-17.yang
diff --git a/models/microsemi/src/main/yang/msea-uni-evc-service.yang b/models/microsemi/src/main/yang/msea-uni-evc-service@2016-03-17.yang
similarity index 100%
rename from models/microsemi/src/main/yang/msea-uni-evc-service.yang
rename to models/microsemi/src/main/yang/msea-uni-evc-service@2016-03-17.yang
diff --git a/models/microsemi/src/main/yang/nc-notifications.yang b/models/microsemi/src/main/yang/nc-notifications.yang
deleted file mode 100644
index 5636aeb..0000000
--- a/models/microsemi/src/main/yang/nc-notifications.yang
+++ /dev/null
@@ -1,95 +0,0 @@
-module nc-notifications {
-
-    namespace "urn:ietf:params:xml:ns:netmod:notification";
-    prefix "manageEvent";
-
-    import ietf-yang-types{ prefix yang; }
-    import notifications { prefix ncEvent; }
-
-    organization
-      "IETF NETCONF WG";
-
-    contact
-      "netconf@ietf.org";
-
-    description
-      "Conversion of the 'manageEvent' XSD in the NETCONF
-       Notifications RFC.";
-
-    reference
-      "RFC 5277";
-
-    revision 2008-07-14 {
-      description "RFC 5277 version.";
-    }
-
-    container netconf {
-      description "Top-level element in the notification namespace";
-
-      config false;
-
-      container streams {
-        description 
-          "The list of event streams supported by the system. When
-           a query is issued, the returned set of streams is 
-           determined based on user privileges.";
-
-        list stream {
-          description 
-            "Stream name, description and other information.";
-          key name;
-          min-elements 1;
-
-          leaf name {
-            description
-              "The name of the event stream. If this is the default
-               NETCONF stream, this must have the value 'NETCONF'.";
-            type ncEvent:streamNameType;
-          }
-
-          leaf description {
-            description
-              "A description of the event stream, including such
-               information as the type of events that are sent over
-               this stream.";
-            type string;
-            mandatory true;
-          }
-
-          leaf replaySupport {
-            description
-              "A description of the event stream, including such
-               information as the type of events that are sent over
-               this stream.";
-            type boolean;
-            mandatory true;
-          }
-
-          leaf replayLogCreationTime {
-            description
-              "The timestamp of the creation of the log used to support
-               the replay function on this stream. Note that this might
-               be earlier then the earliest available notification in
-               the log. This object is updated if the log resets for 
-               some reason.  This object MUST be present if replay is
-               supported.";
-            type yang:date-and-time;   // xsd:dateTime is wrong!
-          }
-        }
-      }
-    }
-
-    notification replayComplete {
-      description
-        "This notification is sent to signal the end of a replay
-         portion of a subscription.";
-    }
-
-    notification notificationComplete {
-      description
-        "This notification is sent to signal the end of a notification
-         subscription. It is sent in the case that stopTime was
-         specified during the creation of the subscription..";
-    }
-
-}
diff --git a/models/microsemi/src/main/yang/netopeer-cfgnetopeer.yang b/models/microsemi/src/main/yang/netopeer-cfgnetopeer.yang
deleted file mode 100644
index 79f1566..0000000
--- a/models/microsemi/src/main/yang/netopeer-cfgnetopeer.yang
+++ /dev/null
@@ -1,72 +0,0 @@
-module netopeer-cfgnetopeer {
-  namespace "urn:cesnet:tmc:netopeer:1.0";
-  prefix cfgnetopeer;
-
-  organization "CESNET, z.s.p.o.";
-  contact
-    "dkupka@cesnet.cz";
-  description
-    "Module specifying Netopeer module data model and RPC operation.";
-
-  revision 2013-02-14 {
-    description
-      "Modules are now configurable. Except implemented-rpcs which depends on module data model.";
-  }
-  revision 2012-11-13 {
-    description
-      "Removed parts implemented by library (RFC6022).";
-  }
-  revision 2011-10-20 {
-    description
-      "Initial revision";
-  }
-
-  container netopeer {
-    container modules {
-      list module {
-        key "name";
-        leaf name {
-          type string;
-          description
-            "Name of module";
-        }
-        leaf enabled {
-          type boolean;
-          default false;
-          description
-            "Specify whether or not the module is allowed to be managed over server.";
-        }
-      }
-    }
-  }
-  rpc netopeer-reboot {
-    description
-      "Operation allowing privileged user to restart netopeer-server.";
-    input {
-      leaf type {
-        type enumeration {
-          enum "soft";
-          enum "hard";
-        }
-        default "soft";
-        description
-          "Soft restart only unplugs all device modules and reloads configuration.
-           Hard restart also abort all connections and reload the binary.";
-      }
-    }
-  }
-  rpc reload-module {
-    description
-      "Unload and load any loaded module." ;
-    input {
-      leaf module {
-        type leafref {
-          path "/netopeer/modules/module/name";
-        }
-        mandatory true;
-        description
-          "Name of module to reload.";
-      }
-    }
-  }
-}
diff --git a/models/microsemi/src/main/yang/notifications.yang b/models/microsemi/src/main/yang/notifications.yang
deleted file mode 100644
index 1ae9cc2..0000000
--- a/models/microsemi/src/main/yang/notifications.yang
+++ /dev/null
@@ -1,95 +0,0 @@
-module notifications {
-
-    namespace "urn:ietf:params:xml:ns:netconf:notification:1.0";
-    prefix "ncEvent";
-
-    import ietf-yang-types { prefix yang; }
-
-    organization
-      "IETF NETCONF WG";
-
-    contact
-      "netconf@ops.ietf.org";
-
-    description
-      "Conversion of the 'ncEvent' XSD in the 
-       NETCONF Notifications RFC.";
-         
-    reference
-      "RFC 5277.";
-
-    revision 2008-07-14 {
-      description "RFC 5277 version.";
-    }
-
-    typedef streamNameType {
-      description
-        "The name of an event stream.";
-      type string;
-    }
-
-    rpc create-subscription {
-      description
-        "The command to create a notification subscription. It
-         takes as argument the name of the notification stream
-         and filter. Both of those options limit the content of
-         the subscription. In addition, there are two time-related
-         parameters, startTime and stopTime, which can be used to 
-         select the time interval of interest to the notification
-         replay feature.";
-
-      input {
-        leaf stream {
-          description
-            "An optional parameter that indicates which stream of events
-             is of interest. If not present, then events in the default
-             NETCONF stream will be sent.";
-          type streamNameType;
-          default "NETCONF";
-        }
-
-        anyxml filter {
-          description
-            "An optional parameter that indicates which subset of all
-             possible events is of interest. The format of this
-             parameter is the same as that of the filter parameter
-             in the NETCONF protocol operations. If not present,
-             all events not precluded by other parameters will 
-             be sent.";
-        }
-
-        leaf startTime {
-          description
-            "A parameter used to trigger the replay feature and
-             indicates that the replay should start at the time
-             specified. If start time is not present, this is not a
-             replay subscription.";
-          type yang:date-and-time;
-        }
-
-        leaf stopTime {
-          // must ". >= ../startTime";
-          description
-            "An optional parameter used with the optional replay
-             feature to indicate the newest notifications of
-             interest. If stop time is not present, the notifications
-             will continue until the subscription is terminated.
-             Must be used with startTime.";
-          type yang:date-and-time;
-        }
-      }
-    }
-
-   container notification {
-      description "internal struct to start a notification";
-      config false;
-
-      leaf eventTime {
-         mandatory true;
-         type yang:date-and-time;
-      }
-
-      // eventType and any data content goes here
-   }  
-}
-
diff --git a/models/microsemi/src/main/yang/rfc-2544.yang b/models/microsemi/src/main/yang/rfc-2544.yang
deleted file mode 100644
index fb1a7c0..0000000
--- a/models/microsemi/src/main/yang/rfc-2544.yang
+++ /dev/null
@@ -1,509 +0,0 @@
-module rfc-2544 {
-
-    /*** NAMESPACE / PREFIX DEFINITION ***/
-
-    namespace "http://www.microsemi.com/rfc2544";
-    prefix "rfc2544";
-
-    import svc-activation-types {
-        prefix sa;
-    }
-
-    import msea-types {
-        prefix msea;
-        revision-date 2016-02-29;
-    }
-
-    /*** META INFORMATION ***/
-
-    organization
-    "Microsemi Inc., FTD Division";
-
-    contact
-    "Web URL: http://www.microsemi.com/
-    E-mail: info@microsemi.com
-    Postal: Microsemi Corporation Corporate Headquarters
-    One Enterprise Aliso Viejo,
-    CA 92656
-    U.S.A.
-    Phone: +1 949 380 6100
-    Fax: +1 949 215-4996";
-
-    description
-    "This YANG module defines the interface for RFC 2544 Benchmarking Methodology for Network Interconnect Devices
-
-    Copyright 2015 Microsemi Inc.
-    All rights reserved.";
-
-    revision "2015-10-20" {
-        description
-        "Initial version - Sean Condon, Microsemi";
-    }
-
-    /*
-     * Typedefs
-     */
-
-
-    /*
-     * Groupings
-     */
-    grouping frame-size-group {
-
-        description "Frame sizes to use in the test";
-
-        leaf-list frame-size {
-            type sa:frame-size-type;
-            max-elements 8;
-            units "byte";
-            ordered-by user;
-            description "A range of frame sizes to use. 512 bytes will be used if nothing is specified";
-        }
-
-        reference "RFC 2544 Section 9 
-            All of the described tests SHOULD be performed at a number of frame
-            sizes. Specifically, the sizes SHOULD include the maximum and minimum
-            legitimate sizes for the protocol under test on the media under test
-            and enough sizes in between to be able to get a full characterization
-            of the DUT performance. Except where noted, at least five frame
-            sizes SHOULD be tested for each test condition.";
-    }
-
-    grouping throughput-group {
-        description
-        "Configuration parameters for throughput test.";
-
-        leaf step-size {
-            type uint8 {
-                range 1..10|20|25|30|40|50|100;
-            }
-            must "current() <= ((../max-rate) - (../min-rate))" {
-                error-app-tag "msea-2544-must-1";
-                error-message "step-size must be less than or equal to the difference between min- and max-rate";
-            }
-            units "Mb/s";
-            default 10;
-            description "The throughput rate step size from 1Mb/s to 1,000Mb/s (1 Gbps)";
-        }
-
-        leaf min-rate {
-            type uint16 {
-                range 1..999;
-            }
-            must "current() < ../max-rate" {
-                error-app-tag "msea-2544-must-2";
-                error-message "min-rate must not equal or exceed max-rate";
-            }
-            units "Mb/s";
-            default 10;
-            description "The minimum throughput rate from 1Mb/s to 1,000Mb/s (1Gbps)
-                    The test starts at the max-rate and reduces by step-size on each
-                    iteration until it drops below min-rate. For example with 
-                    max-rate=10, step-size=2 and min-rate=1, tests will be
-                    performed at 10,8,6,4 and 2 Mb/s";
-        }
-
-        leaf max-rate {
-            type uint16 {
-                range 2..1000;
-            }
-            units "Mb/s";
-            default 1000;
-            description "The maximum throughput rate from 1Mb/s to 1,000Mb/s (1Gbps)";
-        }
-
-        leaf trial-duration {
-            type uint32 {
-                range 1..max;
-            }
-            default 60;
-            units "s";
-            description "Trial duration";
-            reference "RFC 2544 Section 24 
-            The duration of the test portion of each trial SHOULD be
-            at least 60 seconds.";
-        }
-    }
-
-    grouping afl-group {
-        description
-        "Extra configuration parameters for throughput and latency test.";
-
-        leaf accepted-frame-loss {
-            type uint32 {
-                range min..100000;
-            }
-            units "m%";
-            default 0;
-            description "The acceptable Frame Loss ratio in units of 0.001%";
-        }
-    }
-
-    grouping result-common-group {
-        description
-        "Common attributes of by-frame-size result set.";
-        
-        leaf test-status {
-            type sa:test-status;
-            mandatory true;
-            description "The current status of the subset of tests";
-        }
-
-        leaf frame-size {
-            type sa:frame-size-type;
-            units "bytes";
-            description "The frame size used";
-        }
-
-        leaf elapsed-time {
-            type uint16;
-            units "s";
-            description "The number of seconds the test has been running";
-        }
-    }
-
-    /*
-     * Features
-     */
-    feature throughput {
-        description
-        "This feature indicates that the device supports throughput tests";
-        reference
-        "RFC 2544: Section 26.1";
-    }
-
-    feature latency {
-        description
-        "This feature indicates that the device supports Latency tests";
-        reference
-        "RFC 2544: Section 26.2";
-    }
-
-    feature frame-loss-rate {
-        description
-        "This feature indicates that the device supports Frame Loss Rate tests";
-        reference
-        "RFC 2544: Section 26.3";
-    }
-
-    feature back-to-back {
-        description
-        "This feature indicates that the device supports Back-to-Back (burst mode) tests";
-        reference
-        "RFC 2544: Section 26.4";
-    }
-
-    container rfc2544-test {
-        description
-        "A configured set of parameters for an RFC 2544 test";
-
-        container mep-config {
-            presence "Presence indicates that a MEP has been configured";
-
-            uses msea:mep-config-attribs-noref;
-
-            leaf remote-mep-id {
-                      type msea:mep-id-type;    
-                must "current()/../maintenance-association-end-point != current()" {
-                    error-message "Remote MEP Id must not be the same as Local MEP Id";
-                    error-app-tag "msea-svc-must-01";
-                }
-
-                //mandatory true; //Should not be mandatory in a top level container 
-                description "The Id of the remote MEP";
-            }
-
-            container overwrite-pcp {
-                presence "Enables PCP Overwrite";
-                description "If present allows attributes to be
-                    specified for the PCP overwrite";
-
-                    uses sa:overwrite-pcp-attribs;
-                    
-                    leaf overwrite-drop-eligible {
-                        type boolean;
-                        default false;
-                        description 
-                        "The Drop Eligible flag in the MEP's TAG is replaced 
-                        with this value if overwrite-pcp is present.";
-                    }
-            }
-        }
-
-        leaf binary-search-step-duration {
-            type uint16 {
-                range 1..10;
-            }
-            default 2;
-            units "s";
-            description
-                "The time in seconds for each step in the Throughput binary search. Range 1 to 10, default 2.";
-            reference "RFC 2544 Section 24";
-        }
-
-
-        container throughput {
-            if-feature throughput;
-            description "Configuration parameters for the Throughput part of the test";
-
-            uses throughput-group;
-            uses frame-size-group;
-            uses afl-group;
-        }
-
-        container latency {
-            if-feature latency;
-            description "Configuration parameters for the Latency part of the test";
-
-            uses throughput-group {
-                refine trial-duration {
-                    default 120;
-                }
-            }
-            uses frame-size-group;
-            uses afl-group;
-        }
-
-        container frame-loss {
-            if-feature frame-loss-rate;
-            description "Configuration parameters for the Frame Loss part of the test";
-
-            uses throughput-group;
-            uses frame-size-group;
-        }
-
-        container back-to-back {
-            if-feature back-to-back;
-            description "Configuration parameters for the Back-to-Back part of the test";
-
-            leaf trial-duration {
-                type uint32 {
-                    range 1..10000;
-                }
-                units "ms";
-                default 2000;
-                description "The duration of the Back-to-Back test in milliseconds";
-            }
-            
-            leaf iterations {
-                type uint16 {
-                    range 1..max;
-                }
-                default 50;
-                description "The number of times to run the test";
-            }
-            
-            uses frame-size-group;
-        }
-    }
-
-    container rfc2544-result {
-        config false;
-
-        description "A collection of the results from the RFC 2544 tests";
-
-        container throughput {
-            if-feature throughput;
-
-            description "Results for the Throughput test";
-
-            uses sa:results-header-group;
-
-            list result-item {
-                key frame-size;
-
-                description "The list of results by frame size";
-
-                reference "RFC 2544: Section 26.1";
-
-                uses result-common-group;
-
-                leaf frame-rate {
-                    type uint32;
-                    units "Mb/s";
-                    description "The throughput rate achieved for this packet size";
-                }
-            }
-        }
-
-        container latency {
-            if-feature latency;
-
-            description "Results for the Latency test";
-
-            uses sa:results-header-group;
-
-            list result-item {
-                key frame-size;
-
-                uses result-common-group;
-
-                leaf frame-rate {
-                    type uint32;
-                    units "Mb/s";
-                    description "The throughput rate achieved for this frame size";
-                }
-
-                leaf frame-delay-min {
-                    type uint32;
-                    units "μs";
-                    description "The Minimum Frame Delay measured at the throughput rate";
-                }
-
-                leaf frame-delay-max {
-                    type uint32;
-                    units "μs";
-                    description "The Maximum Frame Delay measured at the throughput rate";
-                }
-
-                leaf frame-delay-avg {
-                    type uint32;
-                    units "μs";
-                    description "The Average Frame Delay measured at the throughput rate";
-                }
-
-                leaf frame-delay-var-min {
-                    type uint32;
-                    units "μs";
-                    description "The Minimum Frame Delay Variation measured at the throughput rate";
-                }
-
-                leaf frame-delay-var-max {
-                    type uint32;
-                    units "μs";
-                    description "The Maximum Frame Delay Variation measured at the throughput rate";
-                }
-
-                leaf frame-delay-var-avg {
-                    type uint32;
-                    units "μs";
-                    description "The Average Frame Delay Variation measured at the throughput rate";
-                }
-            }
-        }
-
-        container frame-loss {
-            if-feature frame-loss-rate;
-
-            description "Results for the Frame Loss test";
-            reference "RFC-2544 Section 26.3";
-
-            uses sa:results-header-group;
-
-            list result-item {
-                key frame-size;
-
-                description "The frame-loss result set for this frame-size";
-
-                uses result-common-group;
-
-                leaf frame-steps {
-                    type uint8;
-                    description "The number of steps recorded during Frame Loss test. Maximum is 8";
-                }
-
-                list frame-rate {
-                    key rate;
-                    description "A list of the losses at each rate step. This shows up to the 8 most recent steps";
-
-                    leaf rate {
-                        type uint32;
-                        units "Mb/s";
-                        description "The test rate used for this step";
-                    }
-
-                    leaf frame-loss {
-                        type uint32;
-                        units "m%";
-                        description "The percentage frames lost for this rate step (in 0.001% units)";
-                    }
-                }
-            }
-        }
-
-        container back-to-back {
-            if-feature back-to-back;
-
-            description "Results for the Back-to-Back (burst mode) test";
-
-            uses sa:results-header-group;
-
-            list result-item {
-                key frame-size;
-
-                leaf test-status {
-                    type sa:test-status;
-                    mandatory true;
-                    description "The current status of the subset of tests";
-                }
-
-                leaf frame-size {
-                    type sa:frame-size-type;
-                    units "bytes";
-                    description "The frame size used";
-                }
-
-                leaf burst-duration {
-                    type uint16;
-                    units "ms";
-                    description "The duration of the burst in milliseconds";
-                }
-
-                leaf average-burst-frame-count {
-                    type uint32;
-                    description "An average of the count of received frames for the test for this frame size";
-                }
-            }
-
-        }
-
-    }
-
-
-
-    rpc run-rfc2544-test {
-
-        description
-        "Run the configured RFC 2544 test";
-
-        input {
-            leaf tests-enabled {
-                type bits {
-                    bit throughput;
-                    bit latency;
-                    bit frameLoss;
-                    bit backToBack;
-                }
-                default "throughput latency frameLoss backToBack";
-                description "Choose the test components to run - by default all are selected";
-            }
-            
-
-            leaf send-subtest-event {
-                type boolean;
-                default true;
-                description "If true then send events for all of the state changes of tests at the 'frame size' level.
-                        If false events are sent only for state changes in the top level tests e.g. throughput";
-            }
-        }
-    }
-
-    rpc stop-rfc2544-test {
-        description
-        "Stop the running RFC 2544 test";
-    }
-
-    notification rfc2544-test-updated {
-        description 
-          "A rfc2544-test-updated notification is sent when the state of a test changes.";
-
-        uses sa:notification-group;
-
-        leaf frame-size {
-            type sa:frame-size-type;
-            units "bytes";
-            description "The frame size that is being tested. If not present then 
-                    the notification pertains to the overall test type";
-        }
-    }
-}
\ No newline at end of file
diff --git a/models/microsemi/src/main/yang/svc-activation-types.yang b/models/microsemi/src/main/yang/svc-activation-types.yang
deleted file mode 100644
index f82227b..0000000
--- a/models/microsemi/src/main/yang/svc-activation-types.yang
+++ /dev/null
@@ -1,190 +0,0 @@
-module svc-activation-types {
-
-    /*** NAMESPACE / PREFIX DEFINITION ***/
-
-    namespace "http://www.microsemi.com/svc-activation-types";
-    prefix "sa";
-
-    import ietf-yang-types {
-        prefix yang;
-        revision-date 2013-07-15;
-    }
-
-    import msea-types {
-        prefix msea;
-        revision-date 2016-02-29;
-    }
-
-    import msea-cfm {
-        prefix msea-cfm;
-        revision-date 2016-02-29;
-    }
-    /*** META INFORMATION ***/
-
-    organization
-    "Microsemi Inc., FTD Division";
-
-    contact
-    "Web URL: http://www.microsemi.com/
-    E-mail: info@microsemi.com
-    Postal: Microsemi Corporation Corporate Headquarters
-    One Enterprise Aliso Viejo,
-    CA 92656
-    U.S.A.
-    Phone: +1 949 380 6100
-    Fax: +1 949 215-4996";
-
-    description
-    "This YANG module defines common types that 
-    are used in both RFC 2544 and ITU-T Y.1564
-
-    Copyright 2015 Microsemi Inc.
-    All rights reserved.";
-
-    revision "2015-10-27" {
-        description
-        "Initial version - Sean Condon, Microsemi";
-        reference "Initial revision";
-    }
-
-    /*
-     * Typedefs
-     */
-    typedef test-status {
-        type enumeration {
-            enum disabled {
-                value 0;
-                description "Test is disabled";
-            }
-            enum running {
-                value 1;
-                description "Test is running";
-            }
-            enum pending {
-                value 2;
-                description "Test is pending";
-            }
-            enum stopped {
-                value 3;
-                description "Test is stopped";
-            }
-            enum completed {
-                value 4;
-                description "Test is completed";
-            }
-            enum failed {
-                value 5;
-                description "Test is failed";
-            }
-        }
-        description "Enumerated values for the status of a test";
-    }
-
-    typedef frame-size-type {
-        type uint16 {
-            range 64..9600;
-        }
-        description "Frame size in bytes data type";
-    }
-
-    grouping mep-config-attribs {
-        description 
-        "Attributes related to the configuration of a MEP";
-
-        leaf maintenance-domain {
-            type leafref {
-                path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:id";
-//                msea:xref-module "msea-cfm";
-            }
-            description
-            "A reference to a specific Maintenance Domain.";
-        }
-
-        leaf maintenance-association {
-            type leafref {
-                path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain[msea-cfm:id=current()/../maintenance-domain]/msea-cfm:maintenance-association/msea-cfm:id";
-//                msea:xref-module "msea-cfm";
-            }
-            description
-            "A reference to a specific Maintenance Association.";
-        }
-
-        leaf maintenance-association-end-point {
-            type leafref {
-                path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain[msea-cfm:id=current()/../maintenance-domain]/msea-cfm:maintenance-association[msea-cfm:id=current()/../maintenance-association]/msea-cfm:maintenance-association-end-point/msea-cfm:mep-identifier";
-//                msea:xref-module "msea-cfm";
-            }
-            description
-            "A reference to a specific Maintenance association End Point.";
-        }
-
-
-        leaf remote-mep-id {
-            type leafref {
-                path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain[msea-cfm:id=current()/../maintenance-domain]/msea-cfm:maintenance-association[msea-cfm:id=current()/../maintenance-association]/msea-cfm:remote-meps";
-//                msea:xref-module "msea-cfm";
-            }
-
-            must "current()/../maintenance-association-end-point != current()" {
-                error-message "Remote MEP Id must not be the same as Local MEP Id";
-                error-app-tag "msea-svc-must-01";
-            }
-
-            //mandatory true; //Should not be mandatory in a top level container 
-            description "The Id of the remote MEP";
-        }
-    }
-
-    grouping overwrite-pcp-attribs {
-        leaf overwrite-priority {
-            type msea:priority-type;
-            default 0;
-            description 
-            "The priority in the MEP's TAG is replaced 
-            with this priority if overwrite-pcp is present";
-        }
-    }
-
-    grouping results-header-group {
-        description
-        "Common attributes of a result set.";
-
-        leaf start-time {
-            type yang:date-and-time;
-            mandatory true;
-            description "Time at which the test was started.";
-        }
-
-        leaf end-time {
-            type yang:date-and-time;
-            description "Time at which the test ended. 
-                Not specified if test has ended.";
-        }
-
-        leaf test-status {
-            type test-status;
-            mandatory true;
-            description "The status of the test";
-        }
-    }
-
-    grouping notification-group {
-        description "Attributes related to notifications";
-        leaf new-status {
-          type sa:test-status;
-          mandatory true;
-          description "The new status of the test";
-        }
-        
-        leaf old-status {
-          type sa:test-status;
-          description "The old status of the test";
-        }
-
-        leaf test-type {
-            type string;
-            mandatory true;
-            description "Name of the test currently being performed";
-        }
-    }
-}
\ No newline at end of file
diff --git a/models/microsemi/src/main/yang/y-1564.yang b/models/microsemi/src/main/yang/y-1564.yang
deleted file mode 100644
index 9f40ba8..0000000
--- a/models/microsemi/src/main/yang/y-1564.yang
+++ /dev/null
@@ -1,667 +0,0 @@
-module y-1564 {
-
-    /*** NAMESPACE / PREFIX DEFINITION ***/
-
-    namespace "http://www.microsemi.com/y1564";
-    prefix "y1564";
-
-    import svc-activation-types {
-        prefix sa;
-    }
-
-    import msea-types {
-        prefix msea;
-        revision-date 2016-02-29;
-    }
-
-    /*** META INFORMATION ***/
-
-    organization
-    "Microsemi Inc., FTD Division";
-
-    contact
-    "Web URL: http://www.microsemi.com/
-    E-mail: info@microsemi.com
-    Postal: Microsemi Corporation Corporate Headquarters
-    One Enterprise Aliso Viejo,
-    CA 92656
-    U.S.A.
-    Phone: +1 949 380 6100
-    Fax: +1 949 215-4996";
-
-    description
-    "This YANG module defines the interface for Rec. ITU-T Y.1564
-    (03/2011) Ethernet service activation test methodology
-
-    Copyright 2015 Microsemi Inc.
-    All rights reserved.";
-
-    revision "2015-10-29" {
-        description
-        "Initial version - Sean Condon, Microsemi
-        This version does not cover frame reordering (Section 7.2.5)";
-        reference "Initial implementation";
-    }
-
-    /*
-     * Typedefs
-     */
-
-    /*
-     * Groupings
-     */
-    grouping service-attributes-group {
-        description
-        "Attributes for service definition";
-        leaf service-id {
-            type uint8 {
-                range 1..8;
-            }
-            mandatory true;
-            description "The unique ID of the Service";
-        }
-    }
-    grouping result-attributes-group {
-        description "Common attributes in result";
-
-        leaf status {
-            type sa:test-status;
-            mandatory true;
-            description "Status of the test - Values are disabled,
-                    running, pending, stopped, completed or failed";
-        }
-
-    }
-
-
-    grouping pass-fail-group {
-        leaf passed {
-            type boolean;
-            description
-            "Flag that indicates whether the test component
-            sucessfully met the test criteria.";
-        }
-
-        leaf fail-reason {
-            type enumeration {
-                enum notFailed {
-                    value 0;
-                    description "Test did not fail";
-                }
-                enum zeroTxCount {
-                    value 1;
-                    description "The test resulted in no transmitted packets";
-                }
-                enum zeroRxCount {
-                    value 2;
-                    description "No packets were received";
-                }
-                enum exceedFdvThreshold {
-                    value 3;
-                    description "The measured maximum Frame Delay Variation value exceeded the allowable threshold";
-                }
-                enum exceedFtdThreshold {
-                    value 4;
-                    description "The measured maximum Frame Transfer Delay value exceeded the allowable threshold";
-                }
-                enum exceedLossThreshold {
-                    value 5;
-                    description "The measured Frame Loss value exceeded the allowable threshold";
-                }
-                enum exceedAvailThreshold {
-                    value 6;
-                    description "The measured maximum Availability value exceeded the allowable threshold";
-                }
-                enum irAvgTooHigh {
-                    value 7;
-                    description "The measured Information Rate is above the maximum allowable rate";
-                }
-                enum irAvgTooLow {
-                    value 8;
-                    description "The measured Information Rate is below the maximum allowable rate";
-                }
-                enum targetUnknown {
-                    value 9;
-                    description "The MAC address of the target MEP was not known";
-                }
-            }
-        }
-    }
-
-    grouping y1564-test-result-group {
-        description "Common attributes in test result";
-        leaf tf {
-            type uint64;
-            description
-            "Count of the frames transmitted during the test period.";
-        }
-
-        leaf rf {
-            type uint64;
-            description
-            "Count of the frames received during the test period.";
-        }
-
-        leaf fl {
-            type uint64;
-            description
-            "Count of the frames lost during the test period.";
-        }
-
-        leaf flr {
-            type uint32;
-            units "m%";
-            description "The Frame Loss Ratio achieved. Units are 0.001%";
-        }
-
-        leaf elapsed {
-            type uint16;
-            units "s";
-            description
-            "The number of number of seconds the test has been running";
-        }
-
-        leaf fs {
-            type uint16;
-            units byte;
-            description "The Frame Size for which these results apply";
-        }
-
-        leaf ulr-min {
-            type uint32;
-            units "bit/s";
-            description "The minimum Utilised Line Rate achieved";
-        }
-
-        leaf ulr-max {
-            type uint32;
-            units "bit/s";
-            description "The maximum Utilised Line Rate achieved";
-        }
-
-        leaf ulr-avg {
-            type uint32;
-            units "bit/s";
-            description "The average Utilised Line Rate achieved";
-        }
-
-        leaf ulr-meas {
-            type uint32;
-            units "bit/s";
-            description
-            "The instantaneous Utilised Line Rate measured 
-            at the time of this result set";
-        }
-
-        leaf ftd-min {
-            type uint32;
-            units "μs";
-            description "The minimum Frame Transfer Delay achieved";
-        }
-
-        leaf ftd-max {
-            type uint32;
-            units "μs";
-            description "The maximum Frame Transfer Delay achieved";
-        }
-
-        leaf ftd-avg {
-            type uint32;
-            units "μs";
-            description "The average Frame Transfer Delay achieved";
-        }
-
-        leaf ftd-meas {
-            type uint32;
-            units "μs";
-            description
-            "The instantaneous Frame Transfer Delay
-            measured at the time of this result set";
-        }
-
-        leaf fdv-min {
-            type uint32;
-            units "μs";
-            description "The minimum Frame Delay Variation achieved";
-        }
-
-        leaf fdv-max {
-            type uint32;
-            units "μs";
-            description "The maximum Frame Delay Variation achieved";
-        }
-
-        leaf fdv-avg {
-            type uint32;
-            units "μs";
-            description "The average Frame Delay Variation achieved";
-        }
-
-        leaf fdv-meas {
-            type uint32;
-            units "μs";
-            description
-            "The instantaneous Frame Delay Variation measured
-            at the time of this result set";
-        }
-    }
-
-
-
-    /*
-     * Features
-     */
-    feature emix {
-        description
-        "This feature indicates that the device supports
-        EMIX style of repeating frame rates patterns";
-        reference
-        "Rec. ITU-T Y.1564 (03/2011) Section 8.1.1";
-    }
-
-    /*
-     * Configuration
-     */
-    container y1564-test {
-        description "The overall configuration of the Y.1564
-                tests are done through the 'service' entities";
-
-        leaf config-step-duration {
-            type uint16 {
-                range 1..60;
-            }
-            units second;
-            default 60;
-            description "The duration of each step when
-                    performing Configuration tests";
-            reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
-        }
-
-        choice performance-duration-choice {
-            description
-            "Duration can be chosen from enumerated values or
-            specified as a duration in minutes";
-            reference "Rec. ITU-T Y.1564 (03/2011) Section 8.2.1";
-
-            case fixed-durations-renamed {
-                leaf performance-duration-fixed {
-                    type enumeration {
-                        enum Test15m {
-                            value 15;
-                            description "15 minute test duration";
-                        }
-                        enum Test2h {
-                            value 120;
-                            description "2 hour test duration";
-                        }
-                        enum Test24h {
-                            value 1440;
-                            description "24 hour test duration";
-                        }
-                        enum Unbounded {
-                            description "Unbounded test duration";
-                        }
-                    }
-                    default Test15m;
-                    description "Fixed durations set";
-                }
-            }
-
-
-            case test-duration-minutes {
-                leaf performance-duration {
-                    type uint16 {
-                        range 1..max;
-                    }
-                    units min;
-                    description
-                    "The duration of Performance tests specified in minutes";
-                    reference "Rec. ITU-T Y.1564 (03/2011) Section 8.2.1";
-                }
-            }
-        }
-
-        leaf performance-frame-size {
-            type sa:frame-size-type;
-            units octet;
-            default 512;
-            description
-            "The frame size used for the performance test.
-            Frame sizes for configuration are configured at a
-            the service level. This is a constant value per service (
-            frame size repeating emix values are not supported)";
-            reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.1";
-        }
-
-        list service-config {
-            key service-id;
-            description "The services can be configured on this device";
-
-            uses service-attributes-group;
-
-            leaf enabled {
-                type boolean;
-                default true;
-                description "Toggles whether the service is enabled in tests";
-            }
-
-
-            container mep-config {
-                presence "Presence indicates that a MEP has been configured";
-
-                uses msea:mep-config-attribs-noref;
-
-                leaf remote-mep-id {
-                          type msea:mep-id-type;    
-                    must "current()/../maintenance-association-end-point != current()" {
-                        error-message "Remote MEP Id must not be the same as Local MEP Id";
-                        error-app-tag "msea-svc-must-01";
-                    }
-
-                    //mandatory true; //Should not be mandatory in a top level container 
-                    description "The Id of the remote MEP";
-                }
-
-                container overwrite-pcp {
-                    presence "Enables PCP Overwrite";
-                    description "If present allows attributes to be
-                        specified for the PCP overwrite";
-
-                        uses sa:overwrite-pcp-attribs;
-
-                }
-            }
-
-            leaf config-frame-size {
-                type sa:frame-size-type;
-                units octet;
-                default 512;
-                description
-                "The frame size used for the service configuration test.
-                Frame sizes for performance test is configured at a
-                higher level. This is a constant value per service (
-                frame size repeating emix values are not supported)";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.1";
-            }
-
-            leaf cir {
-                type uint16 {
-                    range min..1000;
-                }
-                units "Mb/s";
-                default 1;
-                description "Committed Information Rate. If 0 then will return zeros";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1";
-            }
-
-            leaf eir {
-                type uint16 {
-                    range min..1000;
-                }
-                units "Mb/s";
-                description "Excess Information Rate. If 0 then this test is disabled";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1";
-            }
-
-            leaf colour-aware {
-                type boolean;
-                default true;
-                description "Indicates if the service is colour aware or not";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 6.2.1";
-            }
-
-            leaf m-factor {
-                type uint16;
-                units "kb/s";
-                description "The M factor is added to allow for the effect of 
-                the traffic policer's CBS and EBS settings, and test time.
-                Experience will determine the values for M.
-                Additional guidance on M is for further study.";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.2 C.2";
-            }
-
-            container enable-step-test {
-                presence "Enables step test";
-                description "If this item is present then a step load test of
-                CIR will be performed.
-                Otherwise simple validation of CIR will be performed.";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.2";
-
-                leaf step-load-size-override {
-                    type uint16 {
-                        range 1..1000;
-                    }
-                    units "Mb/s";
-                    description "A manually specified Step Load size in Mb/s.
-                    A maximum of 4 steps will be taken. If not specified
-                    the default behaviour means the CIR rate divided by
-                    4 rounded up to nearest Mb/s. When CIR rate is below 4Mb/s
-                    then a corresponding nuumber of steps will be used";
-                    reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1";
-                }
-            }
-
-            container enable-policing-test {
-                presence "Enables Policing test";
-                description "If this item is present then a Policing
-                test will be performed.
-                Otherwise no Policing will be performed.";
-                reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.2";
-            }
-
-            container service-acceptance-criteria {
-                description "Attributes that tune the Service Acceptance
-                Criteria per service.";
-
-                leaf accepted-flr {
-                    type uint32 {
-                        range min..100000;
-                    }
-                    units "m%";
-                    description "A measured Frame Loss Ratio greater than
-                    or equal to this value will result in test fail.
-                    Units are 0.001%. Default is 0";
-                    reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
-                }
-
-                leaf accepted-ftd {
-                    type uint32;
-                    units "μs";
-                    mandatory true;
-                    description "A measured Frame Transfer Delay greater than
-                    or equal to this value will result in test fail.";
-                    reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
-                }
-
-                leaf accepted-fdv {
-                    type uint32;
-                    units "μs";
-                    mandatory true;
-                    description "A measured Frame Delay Variation greater than
-                    or equal to this value will result in test fail.";
-                    reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
-                }
-                
-                leaf accepted-availability {
-                    type uint32 {
-                        range min..100000;
-                    }
-                    units "m%";
-                    default 100000;
-                    description "A measured Availability for a performance
-                    test must meet or exceed this value. Values are in
-                    milli-percent. Default is 100%";
-                }
-            }
-        }
-    }
-
-    container y1564-results {
-        config false;
-        description "Top level container for results from the tests";
-        container configuration {
-            description
-            "The results of the Y.1564 Configuration tests on each
-            service which was enabled when the test was run";
-            reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.3";
-
-            list service {
-                key service-id;
-                description "The results for the services configured on this device";
-
-                uses service-attributes-group;
-
-                uses sa:results-header-group;
-
-                container cir-results {
-                    description "Results for Committed Information Rate 
-                            part of the test";
-
-                    leaf steps {
-                        type uint8;
-                        description "Indicates the number if steps taken so far.";
-                    }
-
-                    list step {
-                        key step-id;
-
-                        description "A list of results for each of the steps for
-                                the CIR test";
-
-                        leaf step-id {
-                            type uint8;
-                            mandatory true;
-                            description "The index of the step";
-                        }
-
-                        uses result-attributes-group;
-                        uses pass-fail-group;
-
-                        container green-frames {
-                            uses y1564-test-result-group;
-                            description "The details of frames marked green during 
-                                    the step of the CIR test";
-                        }
-                    }
-
-                }
-
-                container eir-results {
-                    description "Results for Excess Information Rate 
-                            part of the test";
-                    uses result-attributes-group;
-                    uses pass-fail-group;
-
-                    container green-frames {
-                        uses y1564-test-result-group;
-                        description
-                        "The details of frames marked green of the EIR test";
-                    }
-
-                    container yellow-frames {
-                        uses y1564-test-result-group;
-                        description
-                        "The details of frames marked yellow of the EIR test";
-                    }
-                }
-
-                container policer-results {
-                    presence "Can be omitted if policer test is
-                            not enabled on this service";
-                    description "Container for the policer results";
-                    uses result-attributes-group;
-                    uses pass-fail-group;
-                    
-                    container green-frames {
-                        uses y1564-test-result-group;
-                        description
-                        "The details of frames marked green of the Policer test";
-                    }
-
-                    container yellow-frames {
-                        uses y1564-test-result-group;
-                        description
-                        "The details of frames marked yellow of the Policer test";
-                    }
-                }
-
-            }
-        }
-
-        container performance {
-            description
-            "The results of the Y.1564 Performance tests on each 
-            service was 'enabled'";
-            reference "Rec. ITU-T Y.1564 (03/2011) Section 8.2.2";
-
-            uses sa:results-header-group;
-
-            list service {
-                key service-id;
-                description "The services can be configured on this device";
-
-                uses service-attributes-group;
-
-                uses pass-fail-group;
-
-                uses y1564-test-result-group;
-
-                leaf avail-sec {
-                    type uint32;
-                    units "s";
-                    description
-                    "The count of seconds during the test period for which
-                    service was Available";
-                }
-            }
-        }
-    }
-
-    /*
-     * RPCs
-     */
-    rpc run-y1564-test {
-        description
-        "Run the configured Y.1564 test on each service 
-        that has been marked 'enabled'";
-
-        input {
-            leaf tests-enabled {
-                type bits {
-                    bit configuration {
-                        description "Runs the configuration tests";
-                    }
-                    bit performance {
-                        description "Runs the performance tests";
-                    }
-                }
-                default "configuration performance";
-                description
-                "Bit mask to define which parts of the test are run.
-                Specify as a set of space separated string values";
-            }
-        }
-    }
-
-    rpc stop-y1564-test {
-        description
-        "Stop the running Y.1564 test on all services";
-    }
-
-    /*
-     * Notifications
-     */
-    notification y1564-test-updated {
-        description 
-          "A y1564-test-updated notification is sent
-          when the state of a test changes.";
-
-        uses sa:notification-group;
-
-        leaf service-id {
-            type uint16;
-            mandatory true;
-            description "The ID of the Service that is being tested";
-        }
-    }
-}