fixes #7. I'm preserving all the typedefs inside xos-types for now but I don't think they're necessary. The intent of YANG typedef system is to define distinct forms of type for reusability but since all these typedefs are of the 'unique-identifier' type, they are largely redundant.
diff --git a/schema/xos-types.yang b/schema/xos-types.yang
index 0b786a4..da58981 100644
--- a/schema/xos-types.yang
+++ b/schema/xos-types.yang
@@ -1,6 +1,6 @@
module xos-types {
namespace "urn:onlab:xos:types";
- prefix xos-types;
+ prefix xtype;
yang-version 1.1;
organization
@@ -16,7 +16,10 @@
description "Initial revision.";
}
- grouping unique-identifier {
+ /*
+ * Typedefs
+ */
+ typedef unique-identifier {
description "defines valid formats for external reference id";
type union {
type uint32 { range 1..max; }
@@ -24,274 +27,214 @@
type inet:uri;
}
}
-
- container refs {
- grouping image {
- uses unique-identifier;
+ typedef bandwidth {
+ type uint32 {
+ range 1000000..max; // should be at least 1 Mbps?
}
-
- grouping controller-network {
- uses unique-identifier;
- }
-
- grouping site {
- uses unique-identifier;
- }
-
- grouping tenant-root-role {
- uses unique-identifier;
- }
-
- grouping slice-role {
- uses unique-identifier;
- }
-
- grouping site-deployment {
- uses unique-identifier;
- }
-
- grouping tenant-privilege {
- uses unique-identifier;
- }
-
- grouping tag {
- uses unique-identifier;
- }
-
- grouping user-credential {
- uses unique-identifier;
- }
-
- grouping invoice {
- uses unique-identifier;
- }
-
- grouping slice-privilege {
- uses unique-identifier;
- }
-
- grouping flavor {
- uses unique-identifier;
- }
-
- grouping port {
- uses unique-identifier;
- }
-
- grouping service-role {
- uses unique-identifier;
- }
-
- grouping controller-site {
- uses unique-identifier;
- }
-
- grouping controller-slice {
- uses unique-identifier;
- }
-
- grouping tenant-role {
- uses unique-identifier;
- }
-
- grouping slice {
- uses unique-identifier;
- }
-
- grouping network {
- uses unique-identifier;
- }
-
- grouping controller-role {
- uses unique-identifier;
- }
-
- grouping diag {
- uses unique-identifier;
- }
-
- grouping service-class {
- uses unique-identifier;
- }
-
- grouping tenant-attribute {
- uses unique-identifier;
- }
-
- grouping site-role {
- uses unique-identifier;
- }
-
- grouping subscriber {
- uses unique-identifier;
- }
-
- grouping instance {
- uses unique-identifier;
- }
-
- grouping charge {
- uses unique-identifier;
- }
-
- grouping program {
- uses unique-identifier;
- }
-
- grouping role {
- uses unique-identifier;
- }
-
- grouping usable-object {
- uses unique-identifier;
- }
-
- grouping node-label {
- uses unique-identifier;
- }
-
- grouping slice-credential {
- uses unique-identifier;
- }
-
- grouping node {
- uses unique-identifier;
- }
-
- grouping address-pool {
- uses unique-identifier;
- }
-
- grouping dashboard-view {
- uses unique-identifier;
- }
-
- grouping network-parameter {
- uses unique-identifier;
- }
-
- grouping image-deployments {
- uses unique-identifier;
- }
-
- grouping controller-user {
- uses unique-identifier;
- }
-
- grouping reserved-resource {
- uses unique-identifier;
- }
-
- grouping network-template {
- uses unique-identifier;
- }
-
- grouping controller-dashboard-view {
- uses unique-identifier;
- }
-
- grouping user-dashboard-view {
- uses unique-identifier;
- }
-
- grouping controller {
- uses unique-identifier;
- }
-
- grouping user {
- uses unique-identifier;
- }
-
- grouping deployment {
- uses unique-identifier;
- }
-
- grouping reservation {
- uses unique-identifier;
- }
-
- grouping site-privilege {
- uses unique-identifier;
- }
-
- grouping payment {
- uses unique-identifier;
- }
-
- grouping tenant {
- uses unique-identifier;
- }
-
- grouping network-slice {
- uses unique-identifier;
- }
-
- grouping account {
- uses unique-identifier;
- }
-
- grouping tenant-root {
- uses unique-identifier;
- }
-
- grouping service {
- uses unique-identifier;
- }
-
- grouping controller-slice-privilege {
- uses unique-identifier;
- }
-
- grouping site-credential {
- uses unique-identifier;
- }
-
- grouping deployment-privilege {
- uses unique-identifier;
- }
-
- grouping network-parameter-type {
- uses unique-identifier;
- }
-
- grouping provider {
- uses unique-identifier;
- }
-
- grouping tenant-with-container {
- uses unique-identifier;
- }
-
- grouping deployment-role {
- uses unique-identifier;
- }
-
- grouping project {
- uses unique-identifier;
- }
-
- grouping tenant-root-privilege {
- uses unique-identifier;
- }
-
- grouping slice-tag {
- uses unique-identifier;
- }
-
- grouping coarse-tenant {
- uses unique-identifier;
- }
-
- grouping router {
- uses unique-identifier;
- }
-
- grouping service-resource {
- uses unique-identifier;
- }
-
- grouping service-privilege {
- uses unique-identifier;
- }
+ units 'bps';
+ }
+ typedef vlan {
+ type uint16 { range 0..4095; }
+ }
+ typedef image {
+ type unique-identifier;
+ }
+ typedef controller-network {
+ type unique-identifier;
+ }
+ typedef site {
+ type unique-identifier;
+ }
+ typedef tenant-root-role {
+ type unique-identifier;
+ }
+ typedef slice-role {
+ type unique-identifier;
+ }
+ typedef site-deployment {
+ type unique-identifier;
+ }
+ typedef tenant-privilege {
+ type unique-identifier;
+ }
+ typedef tag {
+ type unique-identifier;
+ }
+ typedef user-credential {
+ type unique-identifier;
+ }
+ typedef invoice {
+ type unique-identifier;
+ }
+ typedef slice-privilege {
+ type unique-identifier;
+ }
+ typedef flavor {
+ type unique-identifier;
+ }
+ typedef port {
+ type unique-identifier;
+ }
+ typedef service-role {
+ type unique-identifier;
+ }
+ typedef controller-site {
+ type unique-identifier;
+ }
+ typedef controller-slice {
+ type unique-identifier;
+ }
+ typedef tenant-role {
+ type unique-identifier;
+ }
+ typedef slice {
+ type unique-identifier;
+ }
+ typedef network {
+ type unique-identifier;
+ }
+ typedef controller-role {
+ type unique-identifier;
+ }
+ typedef diag {
+ type unique-identifier;
+ }
+ typedef service-class {
+ type unique-identifier;
+ }
+ typedef tenant-attribute {
+ type unique-identifier;
+ }
+ typedef site-role {
+ type unique-identifier;
+ }
+ typedef subscriber {
+ type unique-identifier;
+ }
+ typedef instance {
+ type unique-identifier;
+ }
+ typedef charge {
+ type unique-identifier;
+ }
+ typedef program {
+ type unique-identifier;
+ }
+ typedef role {
+ type unique-identifier;
+ }
+ typedef usable-object {
+ type unique-identifier;
+ }
+ typedef node-label {
+ type unique-identifier;
+ }
+ typedef slice-credential {
+ type unique-identifier;
+ }
+ typedef node {
+ type unique-identifier;
+ }
+ typedef address-pool {
+ type unique-identifier;
+ }
+ typedef dashboard-view {
+ type unique-identifier;
+ }
+ typedef network-parameter {
+ type unique-identifier;
+ }
+ typedef image-deployments {
+ type unique-identifier;
+ }
+ typedef controller-user {
+ type unique-identifier;
+ }
+ typedef reserved-resource {
+ type unique-identifier;
+ }
+ typedef network-template {
+ type unique-identifier;
+ }
+ typedef controller-dashboard-view {
+ type unique-identifier;
+ }
+ typedef user-dashboard-view {
+ type unique-identifier;
+ }
+ typedef controller {
+ type unique-identifier;
+ }
+ typedef user {
+ type unique-identifier;
+ }
+ typedef deployment {
+ type unique-identifier;
+ }
+ typedef reservation {
+ type unique-identifier;
+ }
+ typedef site-privilege {
+ type unique-identifier;
+ }
+ typedef payment {
+ type unique-identifier;
+ }
+ typedef tenant {
+ type unique-identifier;
+ }
+ typedef network-slice {
+ type unique-identifier;
+ }
+ typedef account {
+ type unique-identifier;
+ }
+ typedef tenant-root {
+ type unique-identifier;
+ }
+ typedef service {
+ type unique-identifier;
+ }
+ typedef controller-slice-privilege {
+ type unique-identifier;
+ }
+ typedef site-credential {
+ type unique-identifier;
+ }
+ typedef deployment-privilege {
+ type unique-identifier;
+ }
+ typedef network-parameter-type {
+ type unique-identifier;
+ }
+ typedef provider {
+ type unique-identifier;
+ }
+ typedef tenant-with-container {
+ type unique-identifier;
+ }
+ typedef deployment-role {
+ type unique-identifier;
+ }
+ typedef project {
+ type unique-identifier;
+ }
+ typedef tenant-root-privilege {
+ type unique-identifier;
+ }
+ typedef slice-tag {
+ type unique-identifier;
+ }
+ typedef coarse-tenant {
+ type unique-identifier;
+ }
+ typedef router {
+ type unique-identifier;
+ }
+ typedef service-resource {
+ type unique-identifier;
+ }
+ typedef service-privilege {
+ type unique-identifier;
}
}