BUG-1143: binding-generator-impl: tests refactoring. 01/8401/3
authorMartin Vitez <mvitez@cisco.com>
Fri, 27 Jun 2014 08:00:38 +0000 (10:00 +0200)
committerMartin Vitez <mvitez@cisco.com>
Wed, 2 Jul 2014 07:47:36 +0000 (07:47 +0000)
Optimalized existing tests, removed useless test files.

Change-Id: I5dbe03b66b6d3251b87bc9eb1f1c89ebe6f03c3d
Signed-off-by: Martin Vitez <mvitez@cisco.com>
24 files changed:
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/AugmentedTypeTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/ControllerTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/ExtendedTypedefTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/GenEnumResolvingTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/GenTypesSubSetTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/GeneratedTypesLeafrefTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/GeneratedTypesTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/TypeProviderIntegrationTest.java
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/UnionTypeDefTest.java
code-generator/binding-generator-impl/src/test/resources/enum-test-models/abstract-topology@2013-02-08.yang
code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-inet-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-interfaces@2012-11-15.yang
code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-yang-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/ietf-inet-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/ietf/iana-if-type.yang [moved from code-generator/binding-generator-impl/src/test/resources/enum-test-models/iana-if-type@2012-06-05.yang with 100% similarity]
code-generator/binding-generator-impl/src/test/resources/ietf/ietf-inet-types.yang [moved from code-generator/binding-generator-impl/src/test/resources/controller-models/ietf-inet-types@2010-09-24.yang with 100% similarity]
code-generator/binding-generator-impl/src/test/resources/ietf/ietf-interfaces.yang [moved from code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-interfaces@2012-11-15.yang with 100% similarity]
code-generator/binding-generator-impl/src/test/resources/ietf/ietf-yang-types.yang [moved from code-generator/binding-generator-impl/src/test/resources/controller-models/ietf-yang-types@2010-09-24.yang with 100% similarity]
code-generator/binding-generator-impl/src/test/resources/leafref-test-models/iana-if-type@2012-06-05.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-inet-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-yang-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/type-provider/ietf-inet-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/typedef-of-typedef/ietf-inet-types@2010-09-24.yang [deleted file]
code-generator/binding-generator-impl/src/test/resources/union-test-models/ietf-inet-types@2010-09-24.yang [deleted file]

index 9bc10e4dd833669b0b9567c0da3d44976cc62f8a..ba5d1c984c9f730b371871cb52ebd9118bafb6d8 100644 (file)
@@ -11,7 +11,8 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import java.io.IOException;
+import java.io.File;
+import java.util.Arrays;
 import java.util.List;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
@@ -21,21 +22,27 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
-public class AugmentedTypeTest extends AbstractTypesTest {
-
-    public AugmentedTypeTest() {
-        super(AugmentedTypeTest.class.getResource("/augment-test-models"));
-    }
+public class AugmentedTypeTest {
 
     @Test
-    public void augmentedAbstractTopologyTest() throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseFiles(testModels);
+    public void augmentedAbstractTopologyTest() throws Exception {
+        File abstractTopology = new File(getClass().getResource(
+                "/augment-test-models/abstract-topology@2013-02-08.yang").toURI());
+        File augmentTopology = new File(getClass().getResource(
+                "/augment-test-models/augment-abstract-topology@2013-05-03.yang").toURI());
+        File augmentNetworkLink = new File(getClass().getResource(
+                "/augment-test-models/augment-network-link-attributes@2013-05-03.yang").toURI());
+        File augmentTopologyTunnels = new File(getClass().getResource(
+                "/augment-test-models/augment-topology-tunnels@2013-05-03.yang").toURI());
+        File ietfInterfaces = new File(getClass().getResource("/augment-test-models/ietf-interfaces@2012-11-15.yang")
+                .toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, augmentTopology,
+                augmentNetworkLink, augmentTopologyTunnels, ietfInterfaces));
+        assertNotNull("Schema Context is null", context);
 
-        assertNotNull("context is null", context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
 
index 34705a9e86983f234334d33df1900a3d7dd0c9aa..221ff7807643fb7d0ea608565745ccc6e49f50b0 100644 (file)
@@ -7,47 +7,29 @@
  */
 package org.opendaylight.yangtools.sal.binding.generator.impl;
 
-
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class ControllerTest {
 
-    private final static List<File> controllerModels = new ArrayList<>();
-    private final static URL controllerModelsFolderPath = ControllerTest.class
-            .getResource("/controller-models");
-
-    @BeforeClass
-    public static void loadTestResources() throws URISyntaxException {
-        final File ctrlFolder = new File(controllerModelsFolderPath.toURI());
-
-        for (final File fileEntry : ctrlFolder.listFiles()) {
-            if (fileEntry.isFile()) {
-                controllerModels.add(fileEntry);
-            }
-        }
-    }
-
     @Test
-    public void controllerAugmentationTest() throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseFiles(controllerModels);
+    public void controllerAugmentationTest() throws Exception {
+        File cn = new File(getClass().getResource("/controller-models/controller-network.yang").toURI());
+        File co = new File(getClass().getResource("/controller-models/controller-openflow.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(cn, co, ietfInetTypes));
+        assertNotNull("Schema Context is null", context);
 
-        assertNotNull(context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
 
index 7c7fb9de550c8ab9148cf7915b9f6498d449a1ce..27ac8add50543a79f35b678b6ee2588802a22f2b 100644 (file)
@@ -13,12 +13,8 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty;
@@ -26,31 +22,18 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.sal.binding.yang.types.BaseYangTypes;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class ExtendedTypedefTest {
 
-    private final static List<File> testModels = new ArrayList<File>();
-    private final static URL testFolderPath = AugmentedTypeTest.class.getResource("/typedef-of-typedef");
-
-    @BeforeClass
-    public static void loadTestResources() throws URISyntaxException {
-        final File testFolder = new File(testFolderPath.toURI());
-
-        for (final File fileEntry : testFolder.listFiles()) {
-            if (fileEntry.isFile()) {
-                testModels.add(fileEntry);
-            }
-        }
-    }
-
     @Test
-    public void constantGenerationTest() throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseFiles(testModels);
+    public void constantGenerationTest() throws Exception {
+        File abstractTopology = new File(getClass().getResource("/typedef-of-typedef/typedef_of_typedef.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInetTypes));
+        assertNotNull("Schema Context is null", context);
 
-        assertNotNull(context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
 
index 8aefb6b175283719a69c2e7da8b8bd454aee5d75..c00afcf2e8581b332ab80d5fcd21ff5cddb4ab51 100644 (file)
@@ -13,9 +13,9 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
@@ -24,37 +24,24 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class GenEnumResolvingTest {
 
-    private SchemaContext resolveSchemaContextFromFiles(final URI... yangFiles) throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-
-        final List<File> inputFiles = new ArrayList<File>();
-        for (int i = 0; i < yangFiles.length; ++i) {
-            inputFiles.add(new File(yangFiles[i]));
-        }
-
-        return parser.parseFiles(inputFiles);
-    }
-
     @Test
     public void testLeafEnumResolving() throws URISyntaxException, IOException {
-        final URI ietfInterfacesPath = getClass().getResource("/enum-test-models/ietf-interfaces@2012-11-15.yang")
-                .toURI();
-        final URI ifTypePath = getClass().getResource("/enum-test-models/iana-if-type@2012-06-05.yang").toURI();
-        final URI yangTypesPath = getClass().getResource("/enum-test-models/ietf-yang-types@2010-09-24.yang").toURI();
+        File ietfInterfaces = new File(getClass().getResource("/enum-test-models/ietf-interfaces@2012-11-15.yang")
+                .toURI());
+        File ianaIfTypeModel = new File(getClass().getResource("/ietf/iana-if-type.yang").toURI());
 
-        final SchemaContext context = resolveSchemaContextFromFiles(ietfInterfacesPath, ifTypePath, yangTypesPath);
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(ietfInterfaces, ianaIfTypeModel));
         assertTrue(context != null);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
         assertTrue(genTypes != null);
 
-        assertEquals("Expected count of all Generated Types", 20, genTypes.size());
+        assertEquals("Expected count of all Generated Types", 6, genTypes.size());
 
         GeneratedType genInterface = null;
         for (final Type type : genTypes) {
@@ -108,9 +95,8 @@ public class GenEnumResolvingTest {
 
     @Test
     public void testTypedefEnumResolving() throws URISyntaxException, IOException {
-        final URI ianaIfTypePath = getClass().getResource("/leafref-test-models/iana-if-type@2012-06-05.yang").toURI();
-
-        final SchemaContext context = resolveSchemaContextFromFiles(ianaIfTypePath);
+        File ianaIfType = new File(getClass().getResource("/ietf/iana-if-type.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Collections.singleton(ianaIfType));
         assertTrue(context != null);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
@@ -126,15 +112,14 @@ public class GenEnumResolvingTest {
 
     @Test
     public void testLeafrefEnumResolving() throws URISyntaxException, IOException {
-        final URI ietfInterfacesPath = getClass().getResource("/enum-test-models/ietf-interfaces@2012-11-15.yang")
-                .toURI();
-        final URI ifTypePath = getClass().getResource("/enum-test-models/iana-if-type@2012-06-05.yang").toURI();
-        final URI yangTypesPath = getClass().getResource("/enum-test-models/ietf-yang-types@2010-09-24.yang").toURI();
-        final URI topologyPath = getClass().getResource("/enum-test-models/abstract-topology@2013-02-08.yang").toURI();
-        final URI inetTypesPath = getClass().getResource("/enum-test-models/ietf-inet-types@2010-09-24.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(ietfInterfacesPath, ifTypePath, yangTypesPath,
-                topologyPath, inetTypesPath);
-
+        File abstractTopology = new File(getClass().getResource("/enum-test-models/abstract-topology@2013-02-08.yang")
+                .toURI());
+        File ietfInterfaces = new File(getClass().getResource("/enum-test-models/ietf-interfaces@2012-11-15.yang")
+                .toURI());
+        File ianaIfType = new File(getClass().getResource("/ietf/iana-if-type.yang").toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInterfaces,
+                ianaIfType));
         assertNotNull(context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
index c3443eb7d879727cf3790b66b5e15d0bf6e92def..59f0e135f4538356f61f052859b04de8308e1700 100644 (file)
@@ -12,43 +12,29 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class GenTypesSubSetTest {
 
-    private final static List<File> yangModels = new ArrayList<>();
-    private final static URL yangModelsFolder = AugmentedTypeTest.class
-            .getResource("/leafref-test-models");
-
-    @BeforeClass
-    public static void loadTestResources() throws URISyntaxException {
-        final File augFolder = new File(yangModelsFolder.toURI());
-
-        for (final File fileEntry : augFolder.listFiles()) {
-            if (fileEntry.isFile()) {
-                yangModels.add(fileEntry);
-            }
-        }
-    }
-
     @Test
-    public void genTypesFromSubsetOfTwoModulesTest() throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseFiles(yangModels);
+    public void genTypesFromSubsetOfTwoModulesTest() throws Exception {
+        File abstractTopology = new File(getClass().getResource(
+                "/leafref-test-models/abstract-topology@2013-02-08.yang").toURI());
+        File ietfInterfaces = new File(getClass().getResource("/ietf/ietf-interfaces.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+        File ietfYangTypes = new File(getClass().getResource("/ietf/ietf-yang-types.yang").toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInterfaces,
+                ietfInetTypes, ietfYangTypes));
         Set<Module> modules = context.getModules();
 
         final Set<Module> toGenModules = new HashSet<>();
@@ -60,22 +46,28 @@ public class GenTypesSubSetTest {
             }
         }
 
-        assertEquals("Set of to Generate Modules must contain 2 modules", 2,
-                toGenModules.size());
+        assertEquals("Set of to Generate Modules must contain 2 modules", 2, toGenModules.size());
         assertNotNull("Schema Context is null", context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
         assertNotNull("genTypes is null", genTypes);
         assertFalse("genTypes is empty", genTypes.isEmpty());
-        assertEquals("Expected Generated Types from provided sub set of " +
-                "modules should be 23!", 23,
+        assertEquals("Expected Generated Types from provided sub set of " + "modules should be 23!", 23,
                 genTypes.size());
     }
 
     @Test
-    public void genTypesFromSubsetOfThreeModulesTest() throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseFiles(yangModels);
+    public void genTypesFromSubsetOfThreeModulesTest() throws Exception {
+        File abstractTopology = new File(getClass().getResource(
+                "/leafref-test-models/abstract-topology@2013-02-08.yang").toURI());
+        File ietfInterfaces = new File(getClass().getResource("/ietf/ietf-interfaces.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+        File ietfYangTypes = new File(getClass().getResource("/ietf/ietf-yang-types.yang").toURI());
+        File ianaIfType = new File(getClass().getResource("/ietf/iana-if-type.yang").toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInterfaces,
+                ietfInetTypes, ietfYangTypes, ianaIfType));
+        assertNotNull("Schema Context is null", context);
         final Set<Module> modules = context.getModules();
 
         final Set<Module> toGenModules = new HashSet<>();
@@ -88,11 +80,8 @@ public class GenTypesSubSetTest {
                 toGenModules.add(module);
             }
         }
+        assertEquals("Set of to Generate Modules must contain 3 modules", 3, toGenModules.size());
 
-        assertEquals("Set of to Generate Modules must contain 3 modules", 3,
-                toGenModules.size());
-
-        assertNotNull("Schema Context is null", context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
         assertNotNull("genTypes is null", genTypes);
index 3eccac64aaab46c94b0031e1cbf9a9fdd5ca35d7..1d8649be272f4f209deb5e59e2e9613d534c02bf 100644 (file)
@@ -12,12 +12,17 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.fail;
 
+import com.google.common.io.ByteSource;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty;
@@ -25,12 +30,23 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
+import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
+import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class GeneratedTypesLeafrefTest {
 
+    public static Set<Module> loadModules(final Collection<InputStream> input) throws IOException,
+            YangSyntaxErrorException {
+        Collection<ByteSource> sources = BuilderUtils.streamsToByteSources(input);
+        final YangContextParser parser = new YangParserImpl();
+        SchemaContext ctx = parser.parseSources(sources);
+        return ctx.getModules();
+    }
+
     private SchemaContext resolveSchemaContextFromFiles(final URI... yangFiles) throws IOException {
         final YangContextParser parser = new YangParserImpl();
 
@@ -44,22 +60,14 @@ public class GeneratedTypesLeafrefTest {
 
     @Test
     public void testLeafrefResolving() throws URISyntaxException, IOException {
-        final URI topologyPath = getClass().getResource("/leafref-test-models/abstract-topology@2013-02-08.yang")
-                .toURI();
-        final URI interfacesPath = getClass().getResource("/leafref-test-models/ietf-interfaces@2012-11-15.yang")
-                .toURI();
-        final URI inetTypesPath = getClass().getResource("/leafref-test-models/ietf-inet-types@2010-09-24.yang")
-                .toURI();
-        final URI yangTypesPath = getClass().getResource("/leafref-test-models/ietf-yang-types@2010-09-24.yang")
-                .toURI();
-
-        assertNotNull(topologyPath);
-        assertNotNull(interfacesPath);
-        assertNotNull(inetTypesPath);
-        assertNotNull(yangTypesPath);
+        File abstractTopology = new File(getClass().getResource(
+                "/leafref-test-models/abstract-topology@2013-02-08.yang").toURI());
+        File ietfInterfaces = new File(getClass().getResource("/ietf/ietf-interfaces.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+        File ietfYangTypes = new File(getClass().getResource("/ietf/ietf-yang-types.yang").toURI());
 
-        final SchemaContext context = resolveSchemaContextFromFiles(topologyPath, interfacesPath, inetTypesPath,
-                yangTypesPath);
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInterfaces,
+                ietfInetTypes, ietfYangTypes));
         assertNotNull(context);
         assertEquals(4, context.getModules().size());
 
index 014c7112d48bb0b69ac455ca4fdd879de1db0675..f929414609a10a2f2670abcc6056f2528b238595 100644 (file)
@@ -12,9 +12,9 @@ import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
 import java.io.IOException;
-import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
@@ -24,27 +24,16 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
 import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class GeneratedTypesTest {
 
-    private SchemaContext resolveSchemaContextFromFiles(final URI... yangFiles) throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-
-        final List<File> inputFiles = new ArrayList<File>();
-        for (int i = 0; i < yangFiles.length; ++i) {
-            inputFiles.add(new File(yangFiles[i]));
-        }
-
-        return parser.parseFiles(inputFiles);
-    }
-
     @Test
     public void testMultipleModulesResolving() throws URISyntaxException, IOException {
-        final URI topologyPath = getClass().getResource("/abstract-topology.yang").toURI();
-        final URI typesPath = getClass().getResource("/ietf-inet-types@2010-09-24.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(topologyPath, typesPath);
+        File abstractTopology = new File(getClass().getResource("/abstract-topology.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInetTypes));
         assertNotNull(context);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
@@ -56,9 +45,9 @@ public class GeneratedTypesTest {
 
     @Test
     public void testContainerResolving() throws URISyntaxException, IOException {
-        final URI filePath = getClass().getResource("/simple-container-demo.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(filePath);
-        assert (context != null);
+        final File testFile = new File(getClass().getResource("/simple-container-demo.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Collections.singleton(testFile));
+        assertNotNull(context);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
         final List<Type> genTypes = bindingGen.generateTypes(context);
@@ -70,9 +59,9 @@ public class GeneratedTypesTest {
         GeneratedType nestedContainer = (GeneratedType) genTypes.get(2);
         for (Type t : genTypes) {
             if ("SimpleContainer".equals(t.getName())) {
-                simpleContainer = (GeneratedType)t;
+                simpleContainer = (GeneratedType) t;
             } else if ("NestedContainer".equals(t.getName())) {
-                nestedContainer = (GeneratedType)t;
+                nestedContainer = (GeneratedType) t;
             }
         }
         assertNotNull(simpleContainer);
@@ -141,8 +130,8 @@ public class GeneratedTypesTest {
 
     @Test
     public void testLeafListResolving() throws URISyntaxException, IOException {
-        final URI filePath = getClass().getResource("/simple-leaf-list-demo.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(filePath);
+        final File testFile = new File(getClass().getResource("/simple-leaf-list-demo.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Collections.singleton(testFile));
         assertNotNull(context);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
@@ -155,9 +144,9 @@ public class GeneratedTypesTest {
         GeneratedType nestedContainer = (GeneratedType) genTypes.get(2);
         for (Type t : genTypes) {
             if ("SimpleContainer".equals(t.getName())) {
-                simpleContainer = (GeneratedType)t;
+                simpleContainer = (GeneratedType) t;
             } else if ("NestedContainer".equals(t.getName())) {
-                nestedContainer = (GeneratedType)t;
+                nestedContainer = (GeneratedType) t;
             }
         }
         assertNotNull(simpleContainer);
@@ -225,8 +214,8 @@ public class GeneratedTypesTest {
 
     @Test
     public void testListResolving() throws URISyntaxException, IOException {
-        final URI filePath = getClass().getResource("/simple-list-demo.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(filePath);
+        final File testFile = new File(getClass().getResource("/simple-list-demo.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Collections.singleton(testFile));
         assertNotNull(context);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
@@ -348,9 +337,8 @@ public class GeneratedTypesTest {
 
     @Test
     public void testListCompositeKeyResolving() throws URISyntaxException, IOException {
-        final URI filePath = getClass().getResource("/list-composite-key.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(filePath);
-
+        final File testFile = new File(getClass().getResource("/list-composite-key.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Collections.singleton(testFile));
         assertNotNull(context);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
@@ -401,8 +389,8 @@ public class GeneratedTypesTest {
 
     @Test
     public void testGeneratedTypes() throws URISyntaxException, IOException {
-        final URI filePath = getClass().getResource("/demo-topology.yang").toURI();
-        final SchemaContext context = resolveSchemaContextFromFiles(filePath);
+        final File testFile = new File(getClass().getResource("/demo-topology.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Collections.singleton(testFile));
         assertNotNull(context);
 
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
index 5fce20947b358392743f7eb38101ce5269d518d4..d34f7c5278b5bbbe78791ab5d9bc73d08041e291 100644 (file)
@@ -10,9 +10,10 @@ package org.opendaylight.yangtools.sal.binding.generator.impl;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.net.URI;
+import java.io.File;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Set;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -23,6 +24,7 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class TypeProviderIntegrationTest {
     private final String PKG = "org.opendaylight.yang.gen.v1.urn.opendaylight.test.rev131008.";
@@ -32,10 +34,11 @@ public class TypeProviderIntegrationTest {
 
     @BeforeClass
     public static void setup() throws Exception {
-        final URI path1 = TypeProviderIntegrationTest.class.getResource("/type-provider/test.yang").toURI();
-        final URI path2 = TypeProviderIntegrationTest.class.getResource(
-                "/type-provider/ietf-inet-types@2010-09-24.yang").toURI();
-        context = SupportTestUtil.resolveSchemaContextFromFiles(path1, path2);
+        File abstractTopology = new File(TypeProviderIntegrationTest.class.getResource("/type-provider/test.yang")
+                .toURI());
+        File ietfInetTypes = new File(TypeProviderIntegrationTest.class.getResource("/ietf/ietf-inet-types.yang")
+                .toURI());
+        context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInetTypes));
         assertNotNull(context);
     }
 
@@ -255,9 +258,9 @@ public class TypeProviderIntegrationTest {
 
     @Test
     public void testGetTypeDefaultConstructionUnionNested() throws ParseException {
-        ContainerSchemaNode c1 = (ContainerSchemaNode)m.getDataChildByName("c1");
-        ContainerSchemaNode c2 = (ContainerSchemaNode)c1.getDataChildByName("c2");
-        ContainerSchemaNode c3 = (ContainerSchemaNode)c2.getDataChildByName("c3");
+        ContainerSchemaNode c1 = (ContainerSchemaNode) m.getDataChildByName("c1");
+        ContainerSchemaNode c2 = (ContainerSchemaNode) c1.getDataChildByName("c2");
+        ContainerSchemaNode c3 = (ContainerSchemaNode) c2.getDataChildByName("c3");
         LeafSchemaNode leaf = (LeafSchemaNode) c3.getDataChildByName("id");
 
         String actual = provider.getTypeDefaultConstruction(leaf);
index 18610d2b9d6e6e8f206134e354221a7f8b5e8cb9..76b13bfedb0f36f6c2e0a0e8e66f70e510cdeb21 100644 (file)
@@ -11,39 +11,21 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class UnionTypeDefTest {
-    private final static List<File> yangModels = new ArrayList<>();
-    private final static URL yangModelsFolder = AugmentedTypeTest.class
-            .getResource("/union-test-models");
-
-    @BeforeClass
-    public static void loadTestResources() throws URISyntaxException {
-        final File augFolder = new File(yangModelsFolder.toURI());
-
-        for (final File fileEntry : augFolder.listFiles()) {
-            if (fileEntry.isFile()) {
-                yangModels.add(fileEntry);
-            }
-        }
-    }
 
     @Test
-    public void unionTypeResolvingTest() throws IOException {
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseFiles(yangModels);
+    public void unionTypeResolvingTest() throws Exception {
+        File abstractTopology = new File(getClass().getResource("/union-test-models/abstract-topology.yang").toURI());
+        File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+        final SchemaContext context = new YangParserImpl().parseFiles(Arrays.asList(abstractTopology, ietfInetTypes));
 
         assertNotNull("context is null", context);
         final BindingGenerator bindingGen = new BindingGeneratorImpl();
@@ -52,6 +34,6 @@ public class UnionTypeDefTest {
         assertNotNull("genTypes is null", genTypes);
         assertFalse("genTypes is empty", genTypes.isEmpty());
 
-        //TODO: implement test
+        // TODO: implement test
     }
 }
index d4a73411c74f1f86464a8ad9cd907c898ca0799c..80e23b95891f979cbf22995e0c4e9aa84c1d1969 100644 (file)
@@ -3,11 +3,6 @@ module abstract-topology {
     namespace "urn:model:abstract:topology";
     prefix "tp";
 
-    import ietf-inet-types {
-        prefix "inet";
-        revision-date 2010-09-24;
-    }
-
     import ietf-interfaces {
         prefix "if";
         revision-date 2012-11-15;
@@ -52,7 +47,7 @@ module abstract-topology {
         description "This is the model of abstract topology which contains only Network Nodes and Network Links. Each topology MUST be identified by unique topology-id for reason that the store could contain many topologies.";
 
         leaf topology-id {
-            type inet:uri;
+            type string;
             description "It is presumed that datastore will contain many topologies. To distinguish between topologies it is vital to have
             UNIQUE topology identifier.";
         }
@@ -62,7 +57,7 @@ module abstract-topology {
                 key "node-id";
 
                 leaf node-id {
-                    type inet:uri;
+                    type string;
                     description "The Topology identifier of network-node.";
                 }
 
@@ -108,7 +103,7 @@ module abstract-topology {
                 key "link-id";
 
                 leaf link-id {
-                    type inet:uri;
+                    type string;
                     description "";
                 }
 
diff --git a/code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-inet-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-inet-types@2010-09-24.yang
deleted file mode 100644 (file)
index 6a6c748..0000000
+++ /dev/null
@@ -1,418 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     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) 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 6021; see
-     the RFC itself for full legal notices.";
-
-   revision 2010-09-24 {
-     description
-      "Initial revision.";
-     reference
-      "RFC 6021: Common YANG Data Types";
-   }
-
-   /*** collection of protocol field related types ***/
-
-   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 flow-label type represents 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 autonomous system related types ***/
-
-   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 ASs'.  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 4893: BGP Support for Four-octet AS Number Space
-       RFC 4001: Textual Conventions for Internet Network Addresses";
-   }
-
-   /*** collection of IP address and hostname related types ***/
-
-   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 representations
-       implies the IP version.";
-   }
-
-   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 compressed
-       format described in RFC 4291, Section 2.2, item 2 with the
-       following additional rules: the :: substitution must be
-       applied to the longest sequence of all-zero 16-bit chunks
-       in an IPv6 address.  If there is a tie, the first sequence
-       of all-zero 16-bit chunks is replaced by ::.  Single
-       all-zero 16-bit chunks are not compressed.  The canonical
-       format uses lowercase characters and leading zeros are
-       not allowed.  The canonical format for the zone index is
-       the numerical format as described in RFC 4007, Section
-       11.2.";
-     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 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, IPv6 address is represented
-       in the compressed format described in RFC 4291, Section
-       2.2, item 2 with the following additional rules: the ::
-       substitution must be applied to the longest sequence of
-       all-zero 16-bit chunks in an IPv6 address.  If there is
-       a tie, the first sequence of all-zero 16-bit chunks is
-       replaced by ::.  Single all-zero 16-bit chunks are not
-       compressed.  The canonical format uses lowercase
-       characters and leading zeros are not allowed.";
-     reference
-      "RFC 4291: IP Version 6 Addressing Architecture";
-   }
-
-   /*** 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
-       explicitely or it 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 encoded in punycode as described in RFC
-       3492";
-     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 3492: Punycode: A Bootstring encoding of Unicode for
-                 Internationalized Domain Names in Applications
-                 (IDNA)
-       RFC 5891: Internationalizing Domain Names in Applications
-                 (IDNA): Protocol";
-   }
-
-   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)";
-   }
-
- }
\ No newline at end of file
index b9117d03ab5b79074fce65e100d238b9c1e9015d..4cea378749bf4364585d0f4e8d04e101dc29731d 100644 (file)
@@ -3,56 +3,12 @@ module ietf-interfaces {
   namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
   prefix if;
 
-  import ietf-yang-types {
-    prefix yang;
-  }
   import iana-if-type {
     prefix ianaift;
   }
 
-  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>";
-
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-
-     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 XXXX; see
-     the RFC itself for full legal notices.";
-
-  // RFC Ed.: replace XXXX with actual RFC number and remove this
-  // note.
 
-  // RFC Ed.: update the date below with the date of RFC publication
-  // and remove this note.
   revision 2012-11-15 {
-    description
-      "Initial revision.";
-    reference
-      "RFC XXXX: A YANG Data Model for Interface Management";
   }
 
   /* Typedefs */
@@ -96,85 +52,24 @@ module ietf-interfaces {
 
       leaf name {
         type string;
-        description
-          "The name of the interface.
-
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type and location.
-
-           If the device allows arbitrarily named interfaces, the
-           feature 'arbitrary-names' is advertised.
-
-           This leaf MAY be mapped to ifName by an implementation.
-           Such an implementation MAY restrict the allowed values for
-           this leaf so that it matches the restrictions of ifName.
-           If a NETCONF server that implements this restriction is
-           sent a value that doesn't match the restriction, it MUST
-           reply with an rpc-error with the error-tag
-           'invalid-value'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
       }
 
       leaf description {
         type string;
-        description
-          "A textual description of the interface.
-
-           This leaf MAY be mapped to ifAlias by an implementation.
-           Such an implementation MAY restrict the allowed values for
-           this leaf so that it matches the restrictions of ifAlias.
-           If a NETCONF server that implements this restriction is
-           sent a value that doesn't match the restriction, it MUST
-           reply with an rpc-error with the error-tag
-           'invalid-value'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
       }
 
       leaf type {
         type ianaift:iana-if-type;
         mandatory true;
-        description
-          "The type of the interface.
-
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
       }
 
       leaf location {
         type string;
-        description
-          "The device-specific location of the interface of a
-           particular type.  The format of the location string
-           depends on the interface type and the device.
-
-           If the interface's type represents a physical interface,
-           this leaf MUST be set.
-
-           When an interface entry is created, a server MAY
-           initialize the location leaf with a valid value, e.g., if
-           it is possible to derive the location from the name of
-           the interface.";
       }
 
       leaf enabled {
         type boolean;
         default "true";
-        description
-          "The desired state of the interface.
-
-           This leaf contains the configured, desired state of the
-           interface.  Systems that implement the IF-MIB use the
-           value of this leaf to set IF-MIB.ifAdminStatus to 'up' or
-           'down' after an ifEntry has been initialized, as described
-           in RFC 2863.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
       }
 
       leaf oper-status {
@@ -236,15 +131,8 @@ module ietf-interfaces {
       }
 
       leaf last-change {
-        type yang:date-and-time;
+        type string;
         config false;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
       }
 
       leaf if-index {
@@ -253,14 +141,6 @@ module ietf-interfaces {
           range "1..2147483647";
         }
         config false;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.
-
-           Media-specific modules must specify how the type is
-           mapped to entries in the ifTable.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
       }
 
       leaf link-up-down-trap-enable {
@@ -273,293 +153,32 @@ module ietf-interfaces {
             value 2;
           }
         }
-        description
-          "Indicates whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces which do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
       }
 
       leaf phys-address {
-        type yang:phys-address;
+        type string;
         config false;
-        description
-          "The interface's address at its protocol sub-layer.  For
-          example, for an 802.x interface, this object normally
-          contains a MAC address.  The interface's media-specific
-          modules must define the bit and byte ordering and the
-          format of the value of this object.  For interfaces that do
-          not have such an address (e.g., a serial line), this node
-          is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
       }
 
       leaf-list higher-layer-if {
         type interface-ref;
         config false;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
       }
 
       leaf-list lower-layer-if {
         type interface-ref;
         config false;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
       }
 
       leaf speed {
-        type yang:gauge64;
+        type uint64;
         units "bits / second";
         config false;
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces which do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that has no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
       }
 
       container statistics {
         config false;
-        description
-          "A collection of interface-related statistics objects.";
-
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, which were not addressed to a
-             multicast or broadcast address at this sub-layer.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, which were addressed to a broadcast
-             address at this sub-layer.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, which were addressed to a multicast
-             address at this sub-layer.  For a MAC layer protocol,
-             this includes both Group and Functional addresses.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets which were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-        leaf in-unknown-protos {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface which were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing the number of transmission
-             units received via the interface which were discarded
-             because of an unknown or unsupported protocol.  For any
-             interface that does not support protocol multiplexing,
-             this counter is not present.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and which were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and which were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted, and which were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC layer
-             protocol, this includes both Group and Functional
-             addresses.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets which were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system, and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-yang-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/enum-test-models/ietf-yang-types@2010-09-24.yang
deleted file mode 100644 (file)
index e9d88ab..0000000
+++ /dev/null
@@ -1,396 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     Editor:   Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>";
-
-   description
-    "This module contains a collection of generally useful derived
-     YANG data types.
-
-     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 6021; see
-     the RFC itself for full legal notices.";
-
-   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-identifier.  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)";
-   }
-
-   /*** collection of date and time related types ***/
-
-   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";
-   }
-
- }
\ No newline at end of file
diff --git a/code-generator/binding-generator-impl/src/test/resources/ietf-inet-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/ietf-inet-types@2010-09-24.yang
deleted file mode 100644 (file)
index de20feb..0000000
+++ /dev/null
@@ -1,418 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     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) 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 6021; see
-     the RFC itself for full legal notices.";
-
-   revision 2010-09-24 {
-     description
-      "Initial revision.";
-     reference
-      "RFC 6021: Common YANG Data Types";
-   }
-
-   /*** collection of protocol field related types ***/
-
-   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 flow-label type represents 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 autonomous system related types ***/
-
-   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 ASs'.  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 4893: BGP Support for Four-octet AS Number Space
-       RFC 4001: Textual Conventions for Internet Network Addresses";
-   }
-
-   /*** collection of IP address and hostname related types ***/
-
-   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 representations
-       implies the IP version.";
-   }
-
-   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 compressed
-       format described in RFC 4291, Section 2.2, item 2 with the
-       following additional rules: the :: substitution must be
-       applied to the longest sequence of all-zero 16-bit chunks
-       in an IPv6 address.  If there is a tie, the first sequence
-       of all-zero 16-bit chunks is replaced by ::.  Single
-       all-zero 16-bit chunks are not compressed.  The canonical
-       format uses lowercase characters and leading zeros are
-       not allowed.  The canonical format for the zone index is
-       the numerical format as described in RFC 4007, Section
-       11.2.";
-     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 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, IPv6 address is represented
-       in the compressed format described in RFC 4291, Section
-       2.2, item 2 with the following additional rules: the ::
-       substitution must be applied to the longest sequence of
-       all-zero 16-bit chunks in an IPv6 address.  If there is
-       a tie, the first sequence of all-zero 16-bit chunks is
-       replaced by ::.  Single all-zero 16-bit chunks are not
-       compressed.  The canonical format uses lowercase
-       characters and leading zeros are not allowed.";
-     reference
-      "RFC 4291: IP Version 6 Addressing Architecture";
-   }
-
-   /*** 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
-       explicitely or it 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 encoded in punycode as described in RFC
-       3492";
-     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 3492: Punycode: A Bootstring encoding of Unicode for
-                 Internationalized Domain Names in Applications
-                 (IDNA)
-       RFC 5891: Internationalizing Domain Names in Applications
-                 (IDNA): Protocol";
-   }
-
-   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/code-generator/binding-generator-impl/src/test/resources/leafref-test-models/iana-if-type@2012-06-05.yang b/code-generator/binding-generator-impl/src/test/resources/leafref-test-models/iana-if-type@2012-06-05.yang
deleted file mode 100644 (file)
index a7fa137..0000000
+++ /dev/null
@@ -1,1516 +0,0 @@
-module iana-if-type {
-  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
-  prefix ianaift;
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             4676 Admiralty Way, Suite 330
-             Marina del Rey, CA 90292
-
-     Tel:    +1 310 823 9358
-     E-Mail: iana&iana.org";
-  description
-    "This YANG module defines the iana-if-type typedef, which
-     contains YANG definitions for IANA-registered interface types.
-
-     This YANG module is maintained by IANA, and reflects the
-     'ifType definitions' registry.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Copyright (c) 2011 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.";
-  // RFC Ed.: replace XXXX with actual RFC number and remove this
-  // note.
-
-  // RFC Ed.: update the date below with the date of RFC publication
-  // and remove this note.
-  revision 2012-06-05 {
-    description
-      "Initial revision.";
-    reference
-      "RFC XXXX: TITLE";
-  }
-
-  typedef iana-if-type {
-    type enumeration {
-      enum "other" {
-        value 1;
-        description
-          "None of the following";
-      }
-      enum "regular1822" {
-        value 2;
-      }
-      enum "hdh1822" {
-        value 3;
-      }
-      enum "ddnX25" {
-        value 4;
-      }
-      enum "rfc877x25" {
-        value 5;
-        reference
-          "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
-      }
-      enum "ethernetCsmacd" {
-        value 6;
-        description
-          "For all ethernet-like interfaces, regardless of speed,
-           as per RFC3635.";
-        reference
-          "RFC 3635 - Definitions of Managed Objects for the
-                      Ethernet-like Interface Types.";
-      }
-      enum "iso88023Csmacd" {
-        value 7;
-        status deprecated;
-        description
-          "Deprecated via RFC3635.
-           Use ethernetCsmacd(6) instead.";
-        reference
-          "RFC 3635 - Definitions of Managed Objects for the
-                      Ethernet-like Interface Types.";
-      }
-      enum "iso88024TokenBus" {
-        value 8;
-      }
-      enum "iso88025TokenRing" {
-        value 9;
-      }
-      enum "iso88026Man" {
-        value 10;
-      }
-      enum "starLan" {
-        value 11;
-        status deprecated;
-        description
-          "Deprecated via RFC3635.
-           Use ethernetCsmacd(6) instead.";
-        reference
-          "RFC 3635 - Definitions of Managed Objects for the
-                      Ethernet-like Interface Types.";
-      }
-      enum "proteon10Mbit" {
-        value 12;
-      }
-      enum "proteon80Mbit" {
-        value 13;
-      }
-      enum "hyperchannel" {
-        value 14;
-      }
-      enum "fddi" {
-        value 15;
-        reference
-          "RFC 1512 - FDDI Management Information Base";
-      }
-      enum "lapb" {
-        value 16;
-        reference
-          "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
-      }
-      enum "sdlc" {
-        value 17;
-      }
-      enum "ds1" {
-        value 18;
-        description
-          "DS1-MIB";
-        reference
-          "RFC 4805 - Definitions of Managed Objects for the
-                      DS1, J1, E1, DS2, and E2 Interface Types";
-      }
-      enum "e1" {
-        value 19;
-        status obsolete;
-        description
-          "Obsolete see DS1-MIB";
-        reference
-          "RFC 4805 - Definitions of Managed Objects for the
-                      DS1, J1, E1, DS2, and E2 Interface Types";
-      }
-      enum "basicISDN" {
-        value 20;
-        description
-          "see also RFC2127";
-      }
-      enum "primaryISDN" {
-        value 21;
-      }
-      enum "propPointToPointSerial" {
-        value 22;
-        description
-          "proprietary serial";
-      }
-      enum "ppp" {
-        value 23;
-      }
-      enum "softwareLoopback" {
-        value 24;
-      }
-      enum "eon" {
-        value 25;
-        description
-          "CLNP over IP";
-      }
-      enum "ethernet3Mbit" {
-        value 26;
-      }
-      enum "nsip" {
-        value 27;
-        description
-          "XNS over IP";
-      }
-      enum "slip" {
-        value 28;
-        description
-          "generic SLIP";
-      }
-      enum "ultra" {
-        value 29;
-        description
-          "ULTRA technologies";
-      }
-      enum "ds3" {
-        value 30;
-        description
-          "DS3-MIB";
-        reference
-          "RFC 3896 - Definitions of Managed Objects for the
-                      DS3/E3 Interface Type";
-      }
-      enum "sip" {
-        value 31;
-        description
-          "SMDS, coffee";
-        reference
-          "RFC 1694 - Definitions of Managed Objects for SMDS
-                      Interfaces using SMIv2";
-      }
-      enum "frameRelay" {
-        value 32;
-        description
-          "DTE only.";
-        reference
-          "RFC 2115 - Management Information Base for Frame Relay
-                      DTEs Using SMIv2";
-      }
-      enum "rs232" {
-        value 33;
-        reference
-          "RFC 1659 - Definitions of Managed Objects for RS-232-like
-                      Hardware Devices using SMIv2";
-      }
-      enum "para" {
-        value 34;
-        description
-          "parallel-port";
-        reference
-          "RFC 1660 - Definitions of Managed Objects for
-                      Parallel-printer-like Hardware Devices using
-                      SMIv2";
-      }
-      enum "arcnet" {
-        value 35;
-        description
-          "arcnet";
-      }
-      enum "arcnetPlus" {
-        value 36;
-        description
-          "arcnet plus";
-      }
-      enum "atm" {
-        value 37;
-        description
-          "ATM cells";
-      }
-      enum "miox25" {
-        value 38;
-        reference
-          "RFC 1461 - SNMP MIB extension for Multiprotocol
-                      Interconnect over X.25";
-      }
-      enum "sonet" {
-        value 39;
-        description
-          "SONET or SDH";
-      }
-      enum "x25ple" {
-        value 40;
-        reference
-          "RFC 2127 - ISDN Management Information Base using SMIv2";
-      }
-      enum "iso88022llc" {
-        value 41;
-      }
-      enum "localTalk" {
-        value 42;
-      }
-      enum "smdsDxi" {
-        value 43;
-      }
-      enum "frameRelayService" {
-        value 44;
-        description
-          "FRNETSERV-MIB";
-        reference
-          "RFC 2954 - Definitions of Managed Objects for Frame
-                      Relay Service";
-      }
-      enum "v35" {
-        value 45;
-      }
-      enum "hssi" {
-        value 46;
-      }
-      enum "hippi" {
-        value 47;
-      }
-      enum "modem" {
-        value 48;
-        description
-          "Generic modem";
-      }
-      enum "aal5" {
-        value 49;
-        description
-          "AAL5 over ATM";
-      }
-      enum "sonetPath" {
-        value 50;
-      }
-      enum "sonetVT" {
-        value 51;
-      }
-      enum "smdsIcip" {
-        value 52;
-        description
-          "SMDS InterCarrier Interface";
-      }
-      enum "propVirtual" {
-        value 53;
-        description
-          "proprietary virtual/internal";
-        reference
-          "RFC 2863 - The Interfaces Group MIB";
-      }
-      enum "propMultiplexor" {
-        value 54;
-        description
-          "proprietary multiplexing";
-        reference
-          "RFC 2863 - The Interfaces Group MIB";
-      }
-      enum "ieee80212" {
-        value 55;
-        description
-          "100BaseVG";
-      }
-      enum "fibreChannel" {
-        value 56;
-        description
-          "Fibre Channel";
-      }
-      enum "hippiInterface" {
-        value 57;
-        description
-          "HIPPI interfaces";
-      }
-      enum "frameRelayInterconnect" {
-        value 58;
-        status obsolete;
-        description
-          "Obsolete use either
-           frameRelay(32) or frameRelayService(44).";
-      }
-      enum "aflane8023" {
-        value 59;
-        description
-          "ATM Emulated LAN for 802.3";
-      }
-      enum "aflane8025" {
-        value 60;
-        description
-          "ATM Emulated LAN for 802.5";
-      }
-      enum "cctEmul" {
-        value 61;
-        description
-         "ATM Emulated circuit";
-      }
-      enum "fastEther" {
-        value 62;
-        status deprecated;
-        description
-          "Obsoleted via RFC3635.
-          ethernetCsmacd(6) should be used instead";
-        reference
-          "RFC 3635 - Definitions of Managed Objects for the
-                      Ethernet-like Interface Types.";
-      }
-      enum "isdn" {
-        value 63;
-        description
-          "ISDN and X.25";
-        reference
-          "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
-                      in the Packet Mode";
-      }
-      enum "v11" {
-        value 64;
-        description
-         "CCITT V.11/X.21";
-      }
-      enum "v36" {
-        value 65;
-        description
-          "CCITT V.36";
-      }
-      enum "g703at64k" {
-        value 66;
-        description
-          "CCITT G703 at 64Kbps";
-      }
-      enum "g703at2mb" {
-        value 67;
-        status obsolete;
-        description
-          "Obsolete see DS1-MIB";
-      }
-      enum "qllc" {
-        value 68;
-        description
-          "SNA QLLC";
-      }
-      enum "fastEtherFX" {
-        value 69;
-        status deprecated;
-        description
-          "Obsoleted via RFC3635
-          ethernetCsmacd(6) should be used instead";
-        reference
-          "RFC 3635 - Definitions of Managed Objects for the
-                      Ethernet-like Interface Types.";
-      }
-      enum "channel" {
-        value 70;
-        description
-          "channel";
-      }
-      enum "ieee80211" {
-        value 71;
-        description
-          "radio spread spectrum";
-      }
-      enum "ibm370parChan" {
-        value 72;
-        description
-          "IBM System 360/370 OEMI Channel";
-      }
-      enum "escon" {
-        value 73;
-        description
-          "IBM Enterprise Systems Connection";
-      }
-      enum "dlsw" {
-        value 74;
-        description
-          "Data Link Switching";
-      }
-      enum "isdns" {
-        value 75;
-        description
-          "ISDN S/T interface";
-      }
-      enum "isdnu" {
-        value 76;
-        description
-          "ISDN U interface";
-      }
-      enum "lapd" {
-        value 77;
-        description
-          "Link Access Protocol D";
-      }
-      enum "ipSwitch" {
-        value 78;
-        description
-          "IP Switching Objects";
-      }
-      enum "rsrb" {
-        value 79;
-        description
-          "Remote Source Route Bridging";
-      }
-      enum "atmLogical" {
-        value 80;
-        description
-          "ATM Logical Port";
-        reference
-          "RFC 3606 - Definitions of Supplemental Managed Objects
-                      for ATM Interface";
-      }
-      enum "ds0" {
-        value 81;
-        description
-          "Digital Signal Level 0";
-        reference
-          "RFC 2494 - Definitions of Managed Objects for the DS0
-                      and DS0 Bundle Interface Type";
-      }
-      enum "ds0Bundle" {
-        value 82;
-        description
-          "group of ds0s on the same ds1";
-        reference
-          "RFC 2494 - Definitions of Managed Objects for the DS0
-                      and DS0 Bundle Interface Type";
-      }
-      enum "bsc" {
-        value 83;
-        description
-          "Bisynchronous Protocol";
-      }
-      enum "async" {
-        value 84;
-        description
-          "Asynchronous Protocol";
-      }
-      enum "cnr" {
-        value 85;
-        description
-          "Combat Net Radio";
-      }
-      enum "iso88025Dtr" {
-        value 86;
-        description
-          "ISO 802.5r DTR";
-      }
-      enum "eplrs" {
-        value 87;
-        description
-          "Ext Pos Loc Report Sys";
-      }
-      enum "arap" {
-        value 88;
-        description
-          "Appletalk Remote Access Protocol";
-      }
-      enum "propCnls" {
-        value 89;
-        description
-          "Proprietary Connectionless Protocol";
-      }
-      enum "hostPad" {
-        value 90;
-        description
-          "CCITT-ITU X.29 PAD Protocol";
-      }
-      enum "termPad" {
-        value 91;
-        description
-          "CCITT-ITU X.3 PAD Facility";
-      }
-      enum "frameRelayMPI" {
-        value 92;
-        description
-          "Multiproto Interconnect over FR";
-      }
-      enum "x213" {
-        value 93;
-        description
-          "CCITT-ITU X213";
-      }
-      enum "adsl" {
-        value 94;
-        description
-          "Asymmetric Digital Subscriber Loop";
-      }
-      enum "radsl" {
-        value 95;
-        description
-          "Rate-Adapt. Digital Subscriber Loop";
-      }
-      enum "sdsl" {
-        value 96;
-        description
-          "Symmetric Digital Subscriber Loop";
-      }
-      enum "vdsl" {
-        value 97;
-        description
-          "Very H-Speed Digital Subscrib. Loop";
-      }
-      enum "iso88025CRFPInt" {
-        value 98;
-        description
-          "ISO 802.5 CRFP";
-      }
-      enum "myrinet" {
-        value 99;
-        description
-          "Myricom Myrinet";
-      }
-      enum "voiceEM" {
-        value 100;
-        description
-          "voice recEive and transMit";
-      }
-      enum "voiceFXO" {
-        value 101;
-        description
-          "voice Foreign Exchange Office";
-      }
-      enum "voiceFXS" {
-        value 102;
-        description
-          "voice Foreign Exchange Station";
-      }
-      enum "voiceEncap" {
-        value 103;
-        description
-          "voice encapsulation";
-      }
-      enum "voiceOverIp" {
-        value 104;
-        description
-          "voice over IP encapsulation";
-      }
-      enum "atmDxi" {
-        value 105;
-        description
-          "ATM DXI";
-      }
-      enum "atmFuni" {
-        value 106;
-        description
-          "ATM FUNI";
-      }
-      enum "atmIma" {
-        value 107;
-        description
-          "ATM IMA";
-      }
-      enum "pppMultilinkBundle" {
-        value 108;
-        description
-          "PPP Multilink Bundle";
-      }
-      enum "ipOverCdlc" {
-        value 109;
-        description
-          "IBM ipOverCdlc";
-      }
-      enum "ipOverClaw" {
-        value 110;
-        description
-          "IBM Common Link Access to Workstn";
-      }
-      enum "stackToStack" {
-        value 111;
-        description
-          "IBM stackToStack";
-      }
-      enum "virtualIpAddress" {
-        value 112;
-        description
-          "IBM VIPA";
-      }
-      enum "mpc" {
-        value 113;
-        description
-          "IBM multi-protocol channel support";
-      }
-      enum "ipOverAtm" {
-        value 114;
-        description
-          "IBM ipOverAtm";
-        reference
-          "RFC 2320 - Definitions of Managed Objects for Classical IP
-                      and ARP Over ATM Using SMIv2 (IPOA-MIB)";
-      }
-      enum "iso88025Fiber" {
-        value 115;
-        description
-          "ISO 802.5j Fiber Token Ring";
-      }
-      enum "tdlc" {
-        value 116;
-        description
-          "IBM twinaxial data link control";
-      }
-      enum "gigabitEthernet" {
-        value 117;
-        status deprecated;
-        description
-          "Obsoleted via RFC3635
-           ethernetCsmacd(6) should be used instead";
-        reference
-          "RFC 3635 - Definitions of Managed Objects for the
-                      Ethernet-like Interface Types.";
-      }
-      enum "hdlc" {
-        value 118;
-        description
-          "HDLC";
-      }
-      enum "lapf" {
-        value 119;
-        description
-          "LAP F";
-      }
-      enum "v37" {
-        value 120;
-        description
-          "V.37";
-      }
-      enum "x25mlp" {
-        value 121;
-        description
-          "Multi-Link Protocol";
-      }
-      enum "x25huntGroup" {
-        value 122;
-        description
-          "X25 Hunt Group";
-      }
-      enum "transpHdlc" {
-        value 123;
-        description
-          "Transp HDLC";
-      }
-      enum "interleave" {
-        value 124;
-        description
-          "Interleave channel";
-      }
-      enum "fast" {
-        value 125;
-        description
-          "Fast channel";
-      }
-      enum "ip" {
-        value 126;
-        description
-          "IP (for APPN HPR in IP networks)";
-      }
-      enum "docsCableMaclayer" {
-        value 127;
-        description
-          "CATV Mac Layer";
-      }
-      enum "docsCableDownstream" {
-        value 128;
-        description
-          "CATV Downstream interface";
-      }
-      enum "docsCableUpstream" {
-        value 129;
-        description
-          "CATV Upstream interface";
-      }
-      enum "a12MppSwitch" {
-        value 130;
-        description
-          "Avalon Parallel Processor";
-      }
-      enum "tunnel" {
-        value 131;
-        description
-          "Encapsulation interface";
-      }
-      enum "coffee" {
-        value 132;
-        description
-          "coffee pot";
-        reference
-          "RFC 2325 - Coffee MIB";
-      }
-      enum "ces" {
-        value 133;
-        description
-          "Circuit Emulation Service";
-      }
-      enum "atmSubInterface" {
-        value 134;
-        description
-          "ATM Sub Interface";
-      }
-      enum "l2vlan" {
-        value 135;
-        description
-          "Layer 2 Virtual LAN using 802.1Q";
-      }
-      enum "l3ipvlan" {
-        value 136;
-        description
-          "Layer 3 Virtual LAN using IP";
-      }
-      enum "l3ipxvlan" {
-        value 137;
-        description
-          "Layer 3 Virtual LAN using IPX";
-      }
-      enum "digitalPowerline" {
-        value 138;
-        description
-          "IP over Power Lines";
-      }
-      enum "mediaMailOverIp" {
-        value 139;
-        description
-          "Multimedia Mail over IP";
-      }
-      enum "dtm" {
-        value 140;
-        description
-          "Dynamic syncronous Transfer Mode";
-      }
-      enum "dcn" {
-        value 141;
-        description
-          "Data Communications Network";
-      }
-      enum "ipForward" {
-        value 142;
-        description
-          "IP Forwarding Interface";
-      }
-      enum "msdsl" {
-        value 143;
-        description
-          "Multi-rate Symmetric DSL";
-      }
-      enum "ieee1394" {
-        value 144;
-        description
-          "IEEE1394 High Performance Serial Bus";
-      }
-      enum "if-gsn" {
-        value 145;
-        description
-          "HIPPI-6400";
-      }
-      enum "dvbRccMacLayer" {
-        value 146;
-        description
-          "DVB-RCC MAC Layer";
-      }
-      enum "dvbRccDownstream" {
-        value 147;
-        description
-          "DVB-RCC Downstream Channel";
-      }
-      enum "dvbRccUpstream" {
-        value 148;
-        description
-          "DVB-RCC Upstream Channel";
-      }
-      enum "atmVirtual" {
-        value 149;
-        description
-          "ATM Virtual Interface";
-      }
-      enum "mplsTunnel" {
-        value 150;
-        description
-          "MPLS Tunnel Virtual Interface";
-      }
-      enum "srp" {
-        value 151;
-        description
-          "Spatial Reuse Protocol       ";
-      }
-      enum "voiceOverAtm" {
-        value 152;
-        description
-          "Voice Over ATM";
-      }
-      enum "voiceOverFrameRelay" {
-        value 153;
-        description
-          "Voice Over Frame Relay";
-      }
-      enum "idsl" {
-        value 154;
-        description
-          "Digital Subscriber Loop over ISDN";
-      }
-      enum "compositeLink" {
-        value 155;
-        description
-          "Avici Composite Link Interface";
-      }
-      enum "ss7SigLink" {
-        value 156;
-        description
-          "SS7 Signaling Link";
-      }
-      enum "propWirelessP2P" {
-        value 157;
-        description
-          "Prop. P2P wireless interface";
-      }
-      enum "frForward" {
-        value 158;
-        description
-          "Frame Forward Interface";
-      }
-      enum "rfc1483" {
-        value 159;
-        description
-          "Multiprotocol over ATM AAL5";
-        reference
-          "RFC 1483 - Multiprotocol Encapsulation over ATM
-                      Adaptation Layer 5";
-      }
-      enum "usb" {
-        value 160;
-        description
-          "USB Interface";
-      }
-      enum "ieee8023adLag" {
-        value 161;
-        description
-          "IEEE 802.3ad Link Aggregate";
-      }
-      enum "bgppolicyaccounting" {
-        value 162;
-        description
-          "BGP Policy Accounting";
-      }
-      enum "frf16MfrBundle" {
-        value 163;
-        description
-          "FRF .16 Multilink Frame Relay";
-      }
-      enum "h323Gatekeeper" {
-        value 164;
-        description
-          "H323 Gatekeeper";
-      }
-      enum "h323Proxy" {
-        value 165;
-        description
-          "H323 Voice and Video Proxy";
-      }
-      enum "mpls" {
-        value 166;
-        description
-          "MPLS";
-      }
-      enum "mfSigLink" {
-        value 167;
-        description
-          "Multi-frequency signaling link";
-      }
-      enum "hdsl2" {
-        value 168;
-        description
-          "High Bit-Rate DSL - 2nd generation";
-      }
-      enum "shdsl" {
-        value 169;
-        description
-          "Multirate HDSL2";
-      }
-      enum "ds1FDL" {
-        value 170;
-        description
-          "Facility Data Link 4Kbps on a DS1";
-      }
-      enum "pos" {
-        value 171;
-        description
-          "Packet over SONET/SDH Interface";
-      }
-      enum "dvbAsiIn" {
-        value 172;
-        description
-          "DVB-ASI Input";
-      }
-      enum "dvbAsiOut" {
-        value 173;
-        description
-          "DVB-ASI Output";
-      }
-      enum "plc" {
-        value 174;
-        description
-          "Power Line Communtications";
-      }
-      enum "nfas" {
-        value 175;
-        description
-          "Non Facility Associated Signaling";
-      }
-      enum "tr008" {
-        value 176;
-        description
-          "TR008";
-      }
-      enum "gr303RDT" {
-        value 177;
-        description
-          "Remote Digital Terminal";
-      }
-      enum "gr303IDT" {
-        value 178;
-        description
-          "Integrated Digital Terminal";
-      }
-      enum "isup" {
-        value 179;
-        description
-          "ISUP";
-      }
-      enum "propDocsWirelessMaclayer" {
-        value 180;
-        description
-          "Cisco proprietary Maclayer";
-      }
-      enum "propDocsWirelessDownstream" {
-        value 181;
-        description
-          "Cisco proprietary Downstream";
-      }
-      enum "propDocsWirelessUpstream" {
-        value 182;
-        description
-          "Cisco proprietary Upstream";
-      }
-      enum "hiperlan2" {
-        value 183;
-        description
-          "HIPERLAN Type 2 Radio Interface";
-      }
-      enum "propBWAp2Mp" {
-        value 184;
-        description
-          "PropBroadbandWirelessAccesspt2multipt use of this value
-           for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
-           is deprecated and ieee80216WMAN(237) should be used
-           instead.";
-      }
-      enum "sonetOverheadChannel" {
-        value 185;
-        description
-          "SONET Overhead Channel";
-      }
-      enum "digitalWrapperOverheadChannel" {
-        value 186;
-        description
-          "Digital Wrapper";
-      }
-      enum "aal2" {
-        value 187;
-        description
-          "ATM adaptation layer 2";
-      }
-      enum "radioMAC" {
-        value 188;
-        description
-          "MAC layer over radio links";
-      }
-      enum "atmRadio" {
-        value 189;
-        description
-          "ATM over radio links";
-      }
-      enum "imt" {
-        value 190;
-        description
-          "Inter Machine Trunks";
-      }
-      enum "mvl" {
-        value 191;
-        description
-          "Multiple Virtual Lines DSL";
-      }
-      enum "reachDSL" {
-        value 192;
-        description
-          "Long Reach DSL";
-      }
-      enum "frDlciEndPt" {
-        value 193;
-        description
-          "Frame Relay DLCI End Point";
-      }
-      enum "atmVciEndPt" {
-        value 194;
-        description
-          "ATM VCI End Point";
-      }
-      enum "opticalChannel" {
-        value 195;
-        description
-          "Optical Channel";
-      }
-      enum "opticalTransport" {
-        value 196;
-        description
-          "Optical Transport";
-      }
-      enum "propAtm" {
-        value 197;
-        description
-          "Proprietary ATM";
-      }
-      enum "voiceOverCable" {
-        value 198;
-        description
-          "Voice Over Cable Interface";
-      }
-      enum "infiniband" {
-        value 199;
-        description
-          "Infiniband";
-      }
-      enum "teLink" {
-        value 200;
-        description
-          "TE Link";
-      }
-      enum "q2931" {
-        value 201;
-        description
-          "Q.2931";
-      }
-      enum "virtualTg" {
-        value 202;
-        description
-          "Virtual Trunk Group";
-      }
-      enum "sipTg" {
-        value 203;
-        description
-          "SIP Trunk Group";
-      }
-      enum "sipSig" {
-        value 204;
-        description
-          "SIP Signaling";
-      }
-      enum "docsCableUpstreamChannel" {
-        value 205;
-        description
-          "CATV Upstream Channel";
-      }
-      enum "econet" {
-        value 206;
-        description
-          "Acorn Econet";
-      }
-      enum "pon155" {
-        value 207;
-        description
-          "FSAN 155Mb Symetrical PON interface";
-      }
-      enum "pon622" {
-        value 208;
-        description
-          "FSAN622Mb Symetrical PON interface";
-      }
-      enum "bridge" {
-        value 209;
-        description
-          "Transparent bridge interface";
-      }
-      enum "linegroup" {
-        value 210;
-        description
-          "Interface common to multiple lines";
-      }
-      enum "voiceEMFGD" {
-        value 211;
-        description
-          "voice E&M Feature Group D";
-      }
-      enum "voiceFGDEANA" {
-        value 212;
-        description
-          "voice FGD Exchange Access North American";
-      }
-      enum "voiceDID" {
-        value 213;
-        description
-          "voice Direct Inward Dialing";
-      }
-      enum "mpegTransport" {
-        value 214;
-        description
-          "MPEG transport interface";
-      }
-      enum "sixToFour" {
-        value 215;
-        status deprecated;
-        description
-          "6to4 interface (DEPRECATED)";
-        reference
-          "RFC 4087 - IP Tunnel MIB";
-      }
-      enum "gtp" {
-        value 216;
-        description
-          "GTP (GPRS Tunneling Protocol)";
-      }
-      enum "pdnEtherLoop1" {
-        value 217;
-        description
-          "Paradyne EtherLoop 1";
-      }
-      enum "pdnEtherLoop2" {
-        value 218;
-        description
-          "Paradyne EtherLoop 2";
-      }
-      enum "opticalChannelGroup" {
-        value 219;
-        description
-          "Optical Channel Group";
-      }
-      enum "homepna" {
-        value 220;
-        description
-          "HomePNA ITU-T G.989";
-      }
-      enum "gfp" {
-        value 221;
-        description
-          "Generic Framing Procedure (GFP)";
-      }
-      enum "ciscoISLvlan" {
-        value 222;
-        description
-          "Layer 2 Virtual LAN using Cisco ISL";
-      }
-      enum "actelisMetaLOOP" {
-        value 223;
-        description
-          "Acteleis proprietary MetaLOOP High Speed Link";
-      }
-      enum "fcipLink" {
-        value 224;
-        description
-          "FCIP Link";
-      }
-      enum "rpr" {
-        value 225;
-        description
-          "Resilient Packet Ring Interface Type";
-      }
-      enum "qam" {
-        value 226;
-        description
-          "RF Qam Interface";
-      }
-      enum "lmp" {
-        value 227;
-        description
-          "Link Management Protocol";
-        reference
-          "RFC 4327 - Link Management Protocol (LMP) Management
-                      Information Base (MIB)";
-      }
-      enum "cblVectaStar" {
-        value 228;
-        description
-          "Cambridge Broadband Networks Limited VectaStar";
-      }
-      enum "docsCableMCmtsDownstream" {
-        value 229;
-        description
-          "CATV Modular CMTS Downstream Interface";
-      }
-      enum "adsl2" {
-        value 230;
-        status deprecated;
-        description
-          "Asymmetric Digital Subscriber Loop Version 2
-           (DEPRECATED/OBSOLETED - please use adsl2plus(238)
-           instead)";
-        reference
-          "RFC 4706 - Definitions of Managed Objects for Asymmetric
-                      Digital Subscriber Line 2 (ADSL2)";
-      }
-      enum "macSecControlledIF" {
-        value 231;
-        description
-          "MACSecControlled";
-      }
-      enum "macSecUncontrolledIF" {
-        value 232;
-        description
-          "MACSecUncontrolled";
-      }
-      enum "aviciOpticalEther" {
-        value 233;
-        description
-         "Avici Optical Ethernet Aggregate";
-      }
-      enum "atmbond" {
-        value 234;
-        description
-          "atmbond";
-      }
-      enum "voiceFGDOS" {
-        value 235;
-        description
-          "voice FGD Operator Services";
-      }
-      enum "mocaVersion1" {
-        value 236;
-        description
-          "MultiMedia over Coax Alliance (MoCA) Interface
-           as documented in information provided privately to IANA";
-      }
-      enum "ieee80216WMAN" {
-        value 237;
-        description
-          "IEEE 802.16 WMAN interface";
-      }
-      enum "adsl2plus" {
-        value 238;
-        description
-          "Asymmetric Digital Subscriber Loop Version 2,
-           Version 2 Plus and all variants";
-      }
-      enum "dvbRcsMacLayer" {
-        value 239;
-        description
-          "DVB-RCS MAC Layer";
-        reference
-          "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-      }
-      enum "dvbTdm" {
-        value 240;
-        description
-          "DVB Satellite TDM";
-        reference
-          "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-      }
-      enum "dvbRcsTdma" {
-        value 241;
-        description
-          "DVB-RCS TDMA";
-        reference
-          "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-      }
-      enum "x86Laps" {
-        value 242;
-        description
-          "LAPS based on ITU-T X.86/Y.1323";
-      }
-      enum "wwanPP" {
-        value 243;
-        description
-          "3GPP WWAN";
-      }
-      enum "wwanPP2" {
-        value 244;
-        description
-          "3GPP2 WWAN";
-      }
-      enum "voiceEBS" {
-        value 245;
-        description
-          "voice P-phone EBS physical interface";
-      }
-      enum "ifPwType" {
-        value 246;
-        description
-          "Pseudowire interface type";
-        reference
-          "RFC 5601 - Pseudowire (PW) Management Information Base";
-      }
-      enum "ilan" {
-        value 247;
-        description
-          "Internal LAN on a bridge per IEEE 802.1ap";
-      }
-      enum "pip" {
-        value 248;
-        description
-          "Provider Instance Port on a bridge per IEEE 802.1ah PBB";
-      }
-      enum "aluELP" {
-        value 249;
-        description
-          "Alcatel-Lucent Ethernet Link Protection";
-      }
-      enum "gpon" {
-        value 250;
-        description
-          "Gigabit-capable passive optical networks (G-PON) as per
-           ITU-T G.948";
-      }
-      enum "vdsl2" {
-        value 251;
-        description
-          "Very high speed digital subscriber line Version 2
-           (as per ITU-T Recommendation G.993.2)";
-        reference
-          "RFC 5650 - Definitions of Managed Objects for Very High
-                      Speed Digital Subscriber Line 2 (VDSL2)";
-      }
-      enum "capwapDot11Profile" {
-        value 252;
-        description
-          "WLAN Profile Interface";
-        reference
-          "RFC 5834 - Control and Provisioning of Wireless Access
-                      Points (CAPWAP) Protocol Binding MIB for
-                      IEEE 802.11";
-      }
-      enum "capwapDot11Bss" {
-        value 253;
-        description
-          "WLAN BSS Interface";
-        reference
-          "RFC 5834 - Control and Provisioning of Wireless Access
-                      Points (CAPWAP) Protocol Binding MIB for
-                      IEEE 802.11";
-      }
-      enum "capwapWtpVirtualRadio" {
-        value 254;
-        description
-          "WTP Virtual Radio Interface";
-        reference
-          "RFC 5833 - Control and Provisioning of Wireless Access
-                      Points (CAPWAP) Protocol Base MIB";
-      }
-      enum "bits" {
-        value 255;
-        description
-          "bitsport";
-      }
-      enum "docsCableUpstreamRfPort" {
-        value 256;
-        description
-          "DOCSIS CATV Upstream RF Port";
-      }
-      enum "cableDownstreamRfPort" {
-        value 257;
-        description
-          "CATV downstream RF port";
-      }
-      enum "vmwareVirtualNic" {
-        value 258;
-        description
-          "VMware Virtual Network Interface";
-      }
-      enum "ieee802154" {
-        value 259;
-        description
-          "IEEE 802.15.4 WPAN interface";
-        reference
-          "IEEE 802.15.4-2006";
-      }
-      enum "otnOdu" {
-        value 260;
-        description
-          "OTN Optical Data Unit";
-      }
-      enum "otnOtu" {
-        value 261;
-        description
-          "OTN Optical channel Transport Unit";
-      }
-      enum "ifVfiType" {
-        value 262;
-        description
-          "VPLS Forwarding Instance Interface Type";
-      }
-      enum "g9981" {
-        value 263;
-        description
-          "G.998.1 bonded interface";
-      }
-      enum "g9982" {
-        value 264;
-        description
-          "G.998.2 bonded interface";
-      }
-      enum "g9983" {
-        value 265;
-        description
-          "G.998.3 bonded interface";
-      }
-      enum "aluEpon" {
-        value 266;
-        description
-          "Ethernet Passive Optical Networks (E-PON)";
-      }
-      enum "aluEponOnu" {
-        value 267;
-        description
-          "EPON Optical Network Unit";
-      }
-      enum "aluEponPhysicalUni" {
-        value 268;
-        description
-          "EPON physical User to Network interface";
-      }
-      enum "aluEponLogicalLink" {
-        value 269;
-        description
-          "The emulation of a point-to-point link over the EPON
-           layer";
-      }
-      enum "aluGponOnu" {
-        value 270;
-        description
-          "GPON Optical Network Unit";
-        reference
-          "ITU-T G.984.2";
-      }
-      enum "aluGponPhysicalUni" {
-        value 271;
-        description
-          "GPON physical User to Network interface";
-        reference
-          "ITU-T G.984.2";
-      }
-      enum "vmwareNicTeam" {
-        value 272;
-        description
-          "VMware NIC Team";
-      }
-    }
-    description
-      "This data type is used as the syntax of the 'type'
-       leaf in the 'interface' list in the YANG module
-       ietf-interface.
-
-       The definition of this typedef with the
-       addition of newly assigned values is published
-       periodically by the IANA, in either the Assigned
-       Numbers RFC, or some derivative of it specific to
-       Internet Network Management number assignments.  (The
-       latest arrangements can be obtained by contacting the
-       IANA.)
-
-       Requests for new values should be made to IANA via
-       email (iana&iana.org).";
-    reference
-      "ifType definitions registry.
-       <http://www.iana.org/assignments/smi-numbers>";
-  }
-}
\ No newline at end of file
diff --git a/code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-inet-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-inet-types@2010-09-24.yang
deleted file mode 100644 (file)
index 6a6c748..0000000
+++ /dev/null
@@ -1,418 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     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) 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 6021; see
-     the RFC itself for full legal notices.";
-
-   revision 2010-09-24 {
-     description
-      "Initial revision.";
-     reference
-      "RFC 6021: Common YANG Data Types";
-   }
-
-   /*** collection of protocol field related types ***/
-
-   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 flow-label type represents 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 autonomous system related types ***/
-
-   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 ASs'.  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 4893: BGP Support for Four-octet AS Number Space
-       RFC 4001: Textual Conventions for Internet Network Addresses";
-   }
-
-   /*** collection of IP address and hostname related types ***/
-
-   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 representations
-       implies the IP version.";
-   }
-
-   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 compressed
-       format described in RFC 4291, Section 2.2, item 2 with the
-       following additional rules: the :: substitution must be
-       applied to the longest sequence of all-zero 16-bit chunks
-       in an IPv6 address.  If there is a tie, the first sequence
-       of all-zero 16-bit chunks is replaced by ::.  Single
-       all-zero 16-bit chunks are not compressed.  The canonical
-       format uses lowercase characters and leading zeros are
-       not allowed.  The canonical format for the zone index is
-       the numerical format as described in RFC 4007, Section
-       11.2.";
-     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 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, IPv6 address is represented
-       in the compressed format described in RFC 4291, Section
-       2.2, item 2 with the following additional rules: the ::
-       substitution must be applied to the longest sequence of
-       all-zero 16-bit chunks in an IPv6 address.  If there is
-       a tie, the first sequence of all-zero 16-bit chunks is
-       replaced by ::.  Single all-zero 16-bit chunks are not
-       compressed.  The canonical format uses lowercase
-       characters and leading zeros are not allowed.";
-     reference
-      "RFC 4291: IP Version 6 Addressing Architecture";
-   }
-
-   /*** 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
-       explicitely or it 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 encoded in punycode as described in RFC
-       3492";
-     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 3492: Punycode: A Bootstring encoding of Unicode for
-                 Internationalized Domain Names in Applications
-                 (IDNA)
-       RFC 5891: Internationalizing Domain Names in Applications
-                 (IDNA): Protocol";
-   }
-
-   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)";
-   }
-
- }
\ No newline at end of file
diff --git a/code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-yang-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/leafref-test-models/ietf-yang-types@2010-09-24.yang
deleted file mode 100644 (file)
index e9d88ab..0000000
+++ /dev/null
@@ -1,396 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     Editor:   Juergen Schoenwaelder
-               <mailto:j.schoenwaelder@jacobs-university.de>";
-
-   description
-    "This module contains a collection of generally useful derived
-     YANG data types.
-
-     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 6021; see
-     the RFC itself for full legal notices.";
-
-   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-identifier.  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)";
-   }
-
-   /*** collection of date and time related types ***/
-
-   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";
-   }
-
- }
\ No newline at end of file
diff --git a/code-generator/binding-generator-impl/src/test/resources/type-provider/ietf-inet-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/type-provider/ietf-inet-types@2010-09-24.yang
deleted file mode 100644 (file)
index de20feb..0000000
+++ /dev/null
@@ -1,418 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     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) 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 6021; see
-     the RFC itself for full legal notices.";
-
-   revision 2010-09-24 {
-     description
-      "Initial revision.";
-     reference
-      "RFC 6021: Common YANG Data Types";
-   }
-
-   /*** collection of protocol field related types ***/
-
-   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 flow-label type represents 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 autonomous system related types ***/
-
-   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 ASs'.  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 4893: BGP Support for Four-octet AS Number Space
-       RFC 4001: Textual Conventions for Internet Network Addresses";
-   }
-
-   /*** collection of IP address and hostname related types ***/
-
-   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 representations
-       implies the IP version.";
-   }
-
-   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 compressed
-       format described in RFC 4291, Section 2.2, item 2 with the
-       following additional rules: the :: substitution must be
-       applied to the longest sequence of all-zero 16-bit chunks
-       in an IPv6 address.  If there is a tie, the first sequence
-       of all-zero 16-bit chunks is replaced by ::.  Single
-       all-zero 16-bit chunks are not compressed.  The canonical
-       format uses lowercase characters and leading zeros are
-       not allowed.  The canonical format for the zone index is
-       the numerical format as described in RFC 4007, Section
-       11.2.";
-     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 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, IPv6 address is represented
-       in the compressed format described in RFC 4291, Section
-       2.2, item 2 with the following additional rules: the ::
-       substitution must be applied to the longest sequence of
-       all-zero 16-bit chunks in an IPv6 address.  If there is
-       a tie, the first sequence of all-zero 16-bit chunks is
-       replaced by ::.  Single all-zero 16-bit chunks are not
-       compressed.  The canonical format uses lowercase
-       characters and leading zeros are not allowed.";
-     reference
-      "RFC 4291: IP Version 6 Addressing Architecture";
-   }
-
-   /*** 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
-       explicitely or it 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 encoded in punycode as described in RFC
-       3492";
-     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 3492: Punycode: A Bootstring encoding of Unicode for
-                 Internationalized Domain Names in Applications
-                 (IDNA)
-       RFC 5891: Internationalizing Domain Names in Applications
-                 (IDNA): Protocol";
-   }
-
-   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/code-generator/binding-generator-impl/src/test/resources/typedef-of-typedef/ietf-inet-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/typedef-of-typedef/ietf-inet-types@2010-09-24.yang
deleted file mode 100644 (file)
index 6a6c748..0000000
+++ /dev/null
@@ -1,418 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     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) 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 6021; see
-     the RFC itself for full legal notices.";
-
-   revision 2010-09-24 {
-     description
-      "Initial revision.";
-     reference
-      "RFC 6021: Common YANG Data Types";
-   }
-
-   /*** collection of protocol field related types ***/
-
-   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 flow-label type represents 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 autonomous system related types ***/
-
-   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 ASs'.  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 4893: BGP Support for Four-octet AS Number Space
-       RFC 4001: Textual Conventions for Internet Network Addresses";
-   }
-
-   /*** collection of IP address and hostname related types ***/
-
-   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 representations
-       implies the IP version.";
-   }
-
-   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 compressed
-       format described in RFC 4291, Section 2.2, item 2 with the
-       following additional rules: the :: substitution must be
-       applied to the longest sequence of all-zero 16-bit chunks
-       in an IPv6 address.  If there is a tie, the first sequence
-       of all-zero 16-bit chunks is replaced by ::.  Single
-       all-zero 16-bit chunks are not compressed.  The canonical
-       format uses lowercase characters and leading zeros are
-       not allowed.  The canonical format for the zone index is
-       the numerical format as described in RFC 4007, Section
-       11.2.";
-     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 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, IPv6 address is represented
-       in the compressed format described in RFC 4291, Section
-       2.2, item 2 with the following additional rules: the ::
-       substitution must be applied to the longest sequence of
-       all-zero 16-bit chunks in an IPv6 address.  If there is
-       a tie, the first sequence of all-zero 16-bit chunks is
-       replaced by ::.  Single all-zero 16-bit chunks are not
-       compressed.  The canonical format uses lowercase
-       characters and leading zeros are not allowed.";
-     reference
-      "RFC 4291: IP Version 6 Addressing Architecture";
-   }
-
-   /*** 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
-       explicitely or it 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 encoded in punycode as described in RFC
-       3492";
-     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 3492: Punycode: A Bootstring encoding of Unicode for
-                 Internationalized Domain Names in Applications
-                 (IDNA)
-       RFC 5891: Internationalizing Domain Names in Applications
-                 (IDNA): Protocol";
-   }
-
-   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)";
-   }
-
- }
\ No newline at end of file
diff --git a/code-generator/binding-generator-impl/src/test/resources/union-test-models/ietf-inet-types@2010-09-24.yang b/code-generator/binding-generator-impl/src/test/resources/union-test-models/ietf-inet-types@2010-09-24.yang
deleted file mode 100644 (file)
index 6a6c748..0000000
+++ /dev/null
@@ -1,418 +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 Partain
-               <mailto:david.partain@ericsson.com>
-
-     WG Chair: David Kessens
-               <mailto:david.kessens@nsn.com>
-
-     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) 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 6021; see
-     the RFC itself for full legal notices.";
-
-   revision 2010-09-24 {
-     description
-      "Initial revision.";
-     reference
-      "RFC 6021: Common YANG Data Types";
-   }
-
-   /*** collection of protocol field related types ***/
-
-   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 flow-label type represents 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 autonomous system related types ***/
-
-   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 ASs'.  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 4893: BGP Support for Four-octet AS Number Space
-       RFC 4001: Textual Conventions for Internet Network Addresses";
-   }
-
-   /*** collection of IP address and hostname related types ***/
-
-   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 representations
-       implies the IP version.";
-   }
-
-   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 compressed
-       format described in RFC 4291, Section 2.2, item 2 with the
-       following additional rules: the :: substitution must be
-       applied to the longest sequence of all-zero 16-bit chunks
-       in an IPv6 address.  If there is a tie, the first sequence
-       of all-zero 16-bit chunks is replaced by ::.  Single
-       all-zero 16-bit chunks are not compressed.  The canonical
-       format uses lowercase characters and leading zeros are
-       not allowed.  The canonical format for the zone index is
-       the numerical format as described in RFC 4007, Section
-       11.2.";
-     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 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, IPv6 address is represented
-       in the compressed format described in RFC 4291, Section
-       2.2, item 2 with the following additional rules: the ::
-       substitution must be applied to the longest sequence of
-       all-zero 16-bit chunks in an IPv6 address.  If there is
-       a tie, the first sequence of all-zero 16-bit chunks is
-       replaced by ::.  Single all-zero 16-bit chunks are not
-       compressed.  The canonical format uses lowercase
-       characters and leading zeros are not allowed.";
-     reference
-      "RFC 4291: IP Version 6 Addressing Architecture";
-   }
-
-   /*** 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
-       explicitely or it 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 encoded in punycode as described in RFC
-       3492";
-     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 3492: Punycode: A Bootstring encoding of Unicode for
-                 Internationalized Domain Names in Applications
-                 (IDNA)
-       RFC 5891: Internationalizing Domain Names in Applications
-                 (IDNA): Protocol";
-   }
-
-   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)";
-   }
-
- }
\ No newline at end of file