diff options
author | Jan Srnicek <jsrnicek@cisco.com> | 2017-04-20 16:07:43 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2017-04-27 07:50:26 +0000 |
commit | f681f003b874d1c2ce031ed48d7696802a23a190 (patch) | |
tree | 962a534a9af54c9d46973d95c682240249b004b6 /interface-role/api/src | |
parent | 1bdb94bca4f7202e5565ab15b9b290a19126b25c (diff) |
HC2VPP-128 - interface role specification api
Change-Id: I534e4d67d43006e61b8cb7355460bf440b20476f
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'interface-role/api/src')
-rw-r--r-- | interface-role/api/src/main/yang/interface-role.yang | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/interface-role/api/src/main/yang/interface-role.yang b/interface-role/api/src/main/yang/interface-role.yang new file mode 100644 index 000000000..72af173b6 --- /dev/null +++ b/interface-role/api/src/main/yang/interface-role.yang @@ -0,0 +1,78 @@ +module interface-role { + + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:interface:role"; + prefix "if-role"; + + // TODO - update revision number to 17.07 release date + revision "2017-03-15" { + description "Basic specification of interface roles"; + } + + import ietf-interfaces { + prefix "if"; + } + + import yang-ext { + prefix "ext"; + } + + identity network-role-base { + description "Base identity for network interface roles"; + } + + identity virtual-domain-interface { + base network-role-base; + description "Tenant network interface. Interface must be enabled and have ip assigned"; + } + + identity public-interface { + base network-role-base; + description "Public interface for external access. Interface must be enabled and have ip assigned"; + } + + typedef network-role { + type identityref { + base network-role-base; + } + description "Base type for network interface roles"; + } + + grouping interface-role-grouping { + container roles { + list role { + key role-name; + + leaf role-name { + type string; + description "Unique name for role"; + mandatory true; + } + + leaf role-type { + type network-role; + description "Specifies type of network role"; + mandatory true; + } + + leaf description { + type string; + description "Any additional metadata for this assignment of network role"; + } + } + } + } + + augment /if:interfaces/if:interface { + ext:augment-identifier "interface-role-augmentation"; + + uses interface-role-grouping; + } + + augment /if:interfaces-state/if:interface { + ext:augment-identifier "interface-role-state-augmentation"; + + uses interface-role-grouping; + } +} + |