diff --git a/ietf-dcpop-dc@2022-07-11.yang b/ietf-dcpop-dc@2022-07-11.yang index fcec4cd12b039230dde6278c62bfb4ae32a99959..87eab7df813b97ac85cb6486ed7c1922389ee415 100644 --- a/ietf-dcpop-dc@2022-07-11.yang +++ b/ietf-dcpop-dc@2022-07-11.yang @@ -3,45 +3,10 @@ module ietf-dcpop-dc { namespace "urn:ietf:params:xml:ns:yang:ietf-dcpop-dc"; prefix dcpop-dc; - /* Import inet-types */ - import ietf-inet-types { prefix inet; reference - "RFC 6991: Common YANG Data Types"; - } - - /* Import network */ - - import ietf-network { - prefix nw; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - - /* Import network topology */ - - import ietf-network-topology { - prefix nt; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - - /* Import TE Common types */ - - import ietf-te-types { - prefix te-types; - reference - "RFC 8776: Common YANG Data Types for Traffic Engineering"; - } - - /* Import TE Topology */ - - import ietf-te-topology { - prefix tet; - reference - "RFC 8795: YANG Data Model for Traffic Engineering (TE) - Topologies"; + ""; } import ietf-vn { @@ -103,11 +68,6 @@ module ietf-dcpop-dc { grouping datacenter { description "Datacenter related information"; - leaf id { - type string; - description - "A unique identifier for the referred datacenter"; - } list hypervisor{ key "id"; description @@ -126,6 +86,44 @@ module ietf-dcpop-dc { "The instance information"; } } + list image{ + key "id"; + description + "instance identifier"; + uses image { + description + "The image information"; + } + } + list flavor{ + key "id"; + description + "instance identifier"; + uses flavor { + description + "The flavor information"; + } + } + list dc-monitoring-param { + key "name"; + description + ""; + leaf name{ + type string; + } + leaf value-string{ + type string; + } + } + list network{ + key "id"; + description + "network identifier"; + uses network { + description + "The network information"; + } + } leaf-list ap { type leafref { path "/actn-vn:access-point/actn-vn:ap/actn-vn:ap-id"; @@ -133,6 +131,21 @@ module ietf-dcpop-dc { description "A reference to the access point node in the TE Topology"; } + leaf dcpop-ref { + type leafref { + path "/dcpop/dcpop-id"; + } + } + leaf id { + type string; + description + "A unique identifier for the referred datacenter"; + } + leaf name { + type string; + description + ""; + } } //datacenter grouping hypervisor { @@ -220,84 +233,12 @@ module ietf-dcpop-dc { container flavor { description "The flavor characteristics of the instance"; - leaf disk { - type uint32; - description - ""; - } - leaf ram { - type uint32; - description - ""; - } - leaf vcpus { - type uint16; - description - ""; - } - leaf bandwidth { - type uint32; - description - ""; - } - leaf id { - type string; - description - ""; - } - leaf name { - type string; - description - ""; - } + uses flavor; } container image { description "The image characteristics of the instance"; - leaf checksum { - type string; - description - ""; - } - leaf size { - type uint32; - description - ""; - } - container format { - description - ""; - leaf container { - type enumeration { - enum zero { - value 0; - description - "Ni idea que va aca"; - } - } - description - ""; - } - leaf disk { - type enumeration { - enum zero { - value 0; - description - "Ni idea que va aca"; - } - } - } - } - leaf id { - type string; - description - ""; - } - leaf name { - type string; - description - ""; - } + uses image; } leaf hypervisor { type leafref { @@ -339,6 +280,232 @@ module ietf-dcpop-dc { } } //instance + grouping image { + description + "The image characteristics of the instance"; + leaf checksum { + type string; + description + ""; + } + leaf size { + type uint32; + description + ""; + } + container format { + description + ""; + leaf container { + type enumeration { + enum zero { + value 0; + description + "Ni idea que va aca"; + } + } + description + ""; + } + leaf disk { + type enumeration { + enum zero { + value 0; + description + "Ni idea que va aca"; + } + } + } + } + leaf id { + type string; + description + ""; + } + leaf name { + type string; + description + ""; + } + } + + grouping flavor { + description + "The flavor characteristics of the instance"; + leaf disk { + type uint32; + description + ""; + } + leaf ram { + type uint32; + description + ""; + } + leaf vcpus { + type uint16; + description + ""; + } + leaf bandwidth { + type uint32; + description + ""; + } + leaf id { + type string; + description + ""; + } + leaf name { + type string; + description + ""; + } + } + + grouping port{ + leaf ip-address{ + type inet:ip-address; + } + leaf instance { + type leafref { + path "/dcpop/dc/instance/id"; + } + } + leaf project { + type string; + description + ""; + } + leaf status { + type enumeration { + enum zero { + value 0; + description + "Ni idea que va aca"; + } + } + } + leaf id { + type string; + description + "A unique identifier for the referred instance"; + } + leaf name { + type string; + description + ""; + } + } + + grouping dhcp-agent{ + leaf enabled { + type boolean; + } + list pools { + key "ip-address"; + leaf ip-address { + type inet:ip-address; + } + } + leaf project { + type string; + description + ""; + } + leaf status { + type enumeration { + enum zero { + value 0; + description + "Ni idea que va aca"; + } + } + } + leaf id { + type string; + description + "A unique identifier for the referred instance"; + } + leaf name { + type string; + description + ""; + } + } + + grouping subnetwork{ + list port { + key "id"; + uses port; + } + leaf project { + type string; + description + ""; + } + leaf status { + type enumeration { + enum zero { + value 0; + description + "Ni idea que va aca"; + } + } + } + leaf id { + type string; + description + "A unique identifier for the referred instance"; + } + leaf name { + type string; + description + ""; + } + } + + grouping network { + list subnetwork { + key "id"; + uses subnetwork; + } + list dhcp-agent { + key "id"; + uses dhcp-agent; + } + leaf project { + type string; + description + ""; + } + leaf status { + type enumeration { + enum zero { + value 0; + description + "Ni idea que va aca"; + } + } + } + leaf id { + type string; + description + "A unique identifier for the referred instance"; + } + leaf name { + type string; + description + ""; + } + leaf dcpop-ref { + type leafref { + path "/dcpop/dcpop-id"; + } + } + } + /* Configuration data nodes */ @@ -354,6 +521,11 @@ module ietf-dcpop-dc { "The datacanter information"; } } + leaf dcpop-id { + type string; + description + "A unique identifier for the referred dcpop"; + } reference " "; } diff --git a/uml/ietf-dcpop-dc@2022-07-11.uml b/uml/ietf-dcpop-dc@2022-07-11.uml index 89d99d4f43e7746e507ac3cffafb30182090cba9..0570c641204c0599803833277fb644e4655dfa41 100644 --- a/uml/ietf-dcpop-dc@2022-07-11.uml +++ b/uml/ietf-dcpop-dc@2022-07-11.uml @@ -14,39 +14,140 @@ page 1x1 Title ietf-dcpop-dc package "inet:ietf-inet-types" as inet_ietf_inet_types { } -package "nw:ietf-network" as nw_ietf_network { -} -package "nt:ietf-network-topology" as nt_ietf_network_topology { -} -package "te-types:ietf-te-types" as te_types_ietf_te_types { -} -package "tet:ietf-te-topology" as tet_ietf_te_topology { -} package "actn-vn:ietf-vn" as actn_vn_ietf_vn { } -note top of dcpop_dc_ietf_dcpop_dc : <b>Namespace: </b> urn:ietf:params:xml:ns:yang:ietf-dcpop-dc \n<b>Prefix: </b> dcpop-dc \n<b>Organization : </b>\nIETF Traffic Engineering Architecture and Signaling (TEAS) \nWorking Group \n<b>Contact : </b>\nWG Web: <https://tools.ietf.org/wg/teas/> \nWG List: <mailto:teas@ietf.org> \nEditor: Young Lee <younglee.tx@gmail.com> \n : Dhruv Dhody <dhruv.ietf@gmail.com> \n<b>Revision : </b> 2022-11-16 \n +note top of dcpop_dc_ietf_dcpop_dc : <b>Namespace: </b> urn:ietf:params:xml:ns:yang:ietf-dcpop-dc \n<b>Prefix: </b> dcpop-dc \n<b>Organization : </b>\nIETF Traffic Engineering Architecture and Signaling (TEAS) \nWorking Group \n<b>Contact : </b>\nWG Web: <https://tools.ietf.org/wg/teas/> \nWG List: <mailto:teas@ietf.org> \nEditor: Young Lee <younglee.tx@gmail.com> \n : Dhruv Dhody <dhruv.ietf@gmail.com> \n<b>Revision : </b> 2022-07-11 \n package "dcpop-dc:ietf-dcpop-dc" as dcpop_dc_ietf_dcpop_dc { inet_ietf_inet_types +-- dcpop_dc_ietf_dcpop_dc -nw_ietf_network +-- dcpop_dc_ietf_dcpop_dc -nt_ietf_network_topology +-- dcpop_dc_ietf_dcpop_dc -te_types_ietf_te_types +-- dcpop_dc_ietf_dcpop_dc -tet_ietf_te_topology +-- dcpop_dc_ietf_dcpop_dc actn_vn_ietf_vn +-- dcpop_dc_ietf_dcpop_dc class "ietf-dcpop-dc" as ietf_dcpop_dc << (M, #33CCFF) module>> -class "dc-id" as dc_id << (T, YellowGreen) typedef>> -dc_id : string class "datacenter" as ietf_dcpop_dc_I_datacenter_grouping <<(G,Lime) grouping>> -ietf_dcpop_dc_I_datacenter_grouping : dc-id : dc-id +class "hypervisor" as ietf_dcpop_dc_I_datacenter_I_hypervisor << (L, #FF7700) list>> +ietf_dcpop_dc_I_datacenter_grouping *-- "0..N" ietf_dcpop_dc_I_datacenter_I_hypervisor +ietf_dcpop_dc_I_datacenter_I_hypervisor : hypervisor {uses} +class "instance" as ietf_dcpop_dc_I_datacenter_I_instance << (L, #FF7700) list>> +ietf_dcpop_dc_I_datacenter_grouping *-- "0..N" ietf_dcpop_dc_I_datacenter_I_instance +ietf_dcpop_dc_I_datacenter_I_instance : instance {uses} +class "image" as ietf_dcpop_dc_I_datacenter_I_image << (L, #FF7700) list>> +ietf_dcpop_dc_I_datacenter_grouping *-- "0..N" ietf_dcpop_dc_I_datacenter_I_image +ietf_dcpop_dc_I_datacenter_I_image : image {uses} +class "flavor" as ietf_dcpop_dc_I_datacenter_I_flavor << (L, #FF7700) list>> +ietf_dcpop_dc_I_datacenter_grouping *-- "0..N" ietf_dcpop_dc_I_datacenter_I_flavor +ietf_dcpop_dc_I_datacenter_I_flavor : flavor {uses} +class "dc-monitoring-param" as ietf_dcpop_dc_I_datacenter_I_dc_monitoring_param << (L, #FF7700) list>> +ietf_dcpop_dc_I_datacenter_grouping *-- "0..N" ietf_dcpop_dc_I_datacenter_I_dc_monitoring_param +ietf_dcpop_dc_I_datacenter_I_dc_monitoring_param : +name : string {key} +ietf_dcpop_dc_I_datacenter_I_dc_monitoring_param : value-string : string +class "network" as ietf_dcpop_dc_I_datacenter_I_network << (L, #FF7700) list>> +ietf_dcpop_dc_I_datacenter_grouping *-- "0..N" ietf_dcpop_dc_I_datacenter_I_network +ietf_dcpop_dc_I_datacenter_I_network : network {uses} ietf_dcpop_dc_I_datacenter_grouping : ap []: leafref : /actn-vn:access-point/actn-vn:ap/actn-vn:ap-id +ietf_dcpop_dc_I_datacenter_grouping : dcpop-ref : leafref : /dcpop/dcpop-id +ietf_dcpop_dc_I_datacenter_grouping : +id : string {key} +ietf_dcpop_dc_I_datacenter_grouping : name : string +class "hypervisor" as ietf_dcpop_dc_I_hypervisor_grouping <<(G,Lime) grouping>> +class "ram" as ietf_dcpop_dc_I_hypervisor_I_ram <<container>> +ietf_dcpop_dc_I_hypervisor_grouping *-- "1" ietf_dcpop_dc_I_hypervisor_I_ram +ietf_dcpop_dc_I_hypervisor_I_ram : total : uint32 +ietf_dcpop_dc_I_hypervisor_I_ram : used : uint32 +ietf_dcpop_dc_I_hypervisor_I_ram : free : uint32 +class "disk" as ietf_dcpop_dc_I_hypervisor_I_disk <<container>> +ietf_dcpop_dc_I_hypervisor_grouping *-- "1" ietf_dcpop_dc_I_hypervisor_I_disk +ietf_dcpop_dc_I_hypervisor_I_disk : total : uint32 +ietf_dcpop_dc_I_hypervisor_I_disk : used : uint32 +ietf_dcpop_dc_I_hypervisor_I_disk : free : uint32 +class "vcpu" as ietf_dcpop_dc_I_hypervisor_I_vcpu <<container>> +ietf_dcpop_dc_I_hypervisor_grouping *-- "1" ietf_dcpop_dc_I_hypervisor_I_vcpu +ietf_dcpop_dc_I_hypervisor_I_vcpu : total : uint16 +ietf_dcpop_dc_I_hypervisor_I_vcpu : used : uint16 +ietf_dcpop_dc_I_hypervisor_I_vcpu : free : uint16 +ietf_dcpop_dc_I_hypervisor_grouping : instance []: leafref : /dcpop/dc/instance/id +ietf_dcpop_dc_I_hypervisor_grouping : +id : string {key} +ietf_dcpop_dc_I_hypervisor_grouping : name : string +class "instance" as ietf_dcpop_dc_I_instance_grouping <<(G,Lime) grouping>> +class "flavor" as ietf_dcpop_dc_I_instance_I_flavor <<container>> +ietf_dcpop_dc_I_instance_grouping *-- "1" ietf_dcpop_dc_I_instance_I_flavor +ietf_dcpop_dc_I_instance_I_flavor : flavor {uses} +class "image" as ietf_dcpop_dc_I_instance_I_image <<container>> +ietf_dcpop_dc_I_instance_grouping *-- "1" ietf_dcpop_dc_I_instance_I_image +ietf_dcpop_dc_I_instance_I_image : image {uses} +ietf_dcpop_dc_I_instance_grouping : hypervisor : leafref : /dcpop/dc/hypervisor/id +ietf_dcpop_dc_I_instance_grouping : project : string +ietf_dcpop_dc_I_instance_grouping : status : enumeration : {zero,} +ietf_dcpop_dc_I_instance_grouping : +id : string {key} +ietf_dcpop_dc_I_instance_grouping : name : string +class "image" as ietf_dcpop_dc_I_image_grouping <<(G,Lime) grouping>> +ietf_dcpop_dc_I_image_grouping : checksum : string +ietf_dcpop_dc_I_image_grouping : size : uint32 +class "format" as ietf_dcpop_dc_I_image_I_format <<container>> +ietf_dcpop_dc_I_image_grouping *-- "1" ietf_dcpop_dc_I_image_I_format +ietf_dcpop_dc_I_image_I_format : container : enumeration : {zero,} +ietf_dcpop_dc_I_image_I_format : disk : enumeration : {zero,} +ietf_dcpop_dc_I_image_grouping : +id : string {key} +ietf_dcpop_dc_I_image_grouping : name : string +class "flavor" as ietf_dcpop_dc_I_flavor_grouping <<(G,Lime) grouping>> +ietf_dcpop_dc_I_flavor_grouping : disk : uint32 +ietf_dcpop_dc_I_flavor_grouping : ram : uint32 +ietf_dcpop_dc_I_flavor_grouping : vcpus : uint16 +ietf_dcpop_dc_I_flavor_grouping : bandwidth : uint32 +ietf_dcpop_dc_I_flavor_grouping : +id : string {key} +ietf_dcpop_dc_I_flavor_grouping : name : string +class "port" as ietf_dcpop_dc_I_port_grouping <<(G,Lime) grouping>> +ietf_dcpop_dc_I_port_grouping : ip-address : inet:ip-address +ietf_dcpop_dc_I_port_grouping : instance : leafref : /dcpop/dc/instance/id +ietf_dcpop_dc_I_port_grouping : project : string +ietf_dcpop_dc_I_port_grouping : status : enumeration : {zero,} +ietf_dcpop_dc_I_port_grouping : +id : string {key} +ietf_dcpop_dc_I_port_grouping : name : string +class "dhcp-agent" as ietf_dcpop_dc_I_dhcp_agent_grouping <<(G,Lime) grouping>> +ietf_dcpop_dc_I_dhcp_agent_grouping : enabled : boolean +class "pools" as ietf_dcpop_dc_I_dhcp_agent_I_pools << (L, #FF7700) list>> +ietf_dcpop_dc_I_dhcp_agent_grouping *-- "0..N" ietf_dcpop_dc_I_dhcp_agent_I_pools +ietf_dcpop_dc_I_dhcp_agent_I_pools : +ip-address : inet:ip-address {key} +ietf_dcpop_dc_I_dhcp_agent_grouping : project : string +ietf_dcpop_dc_I_dhcp_agent_grouping : status : enumeration : {zero,} +ietf_dcpop_dc_I_dhcp_agent_grouping : id : string +ietf_dcpop_dc_I_dhcp_agent_grouping : name : string +class "subnetwork" as ietf_dcpop_dc_I_subnetwork_grouping <<(G,Lime) grouping>> +class "port" as ietf_dcpop_dc_I_subnetwork_I_port << (L, #FF7700) list>> +ietf_dcpop_dc_I_subnetwork_grouping *-- "0..N" ietf_dcpop_dc_I_subnetwork_I_port +ietf_dcpop_dc_I_subnetwork_I_port : port {uses} +ietf_dcpop_dc_I_subnetwork_grouping : project : string +ietf_dcpop_dc_I_subnetwork_grouping : status : enumeration : {zero,} +ietf_dcpop_dc_I_subnetwork_grouping : +id : string {key} +ietf_dcpop_dc_I_subnetwork_grouping : name : string +class "network" as ietf_dcpop_dc_I_network_grouping <<(G,Lime) grouping>> +class "subnetwork" as ietf_dcpop_dc_I_network_I_subnetwork << (L, #FF7700) list>> +ietf_dcpop_dc_I_network_grouping *-- "0..N" ietf_dcpop_dc_I_network_I_subnetwork +ietf_dcpop_dc_I_network_I_subnetwork : subnetwork {uses} +class "dhcp-agent" as ietf_dcpop_dc_I_network_I_dhcp_agent << (L, #FF7700) list>> +ietf_dcpop_dc_I_network_grouping *-- "0..N" ietf_dcpop_dc_I_network_I_dhcp_agent +ietf_dcpop_dc_I_network_I_dhcp_agent : dhcp-agent {uses} +ietf_dcpop_dc_I_network_grouping : project : string +ietf_dcpop_dc_I_network_grouping : status : enumeration : {zero,} +ietf_dcpop_dc_I_network_grouping : +id : string {key} +ietf_dcpop_dc_I_network_grouping : name : string +ietf_dcpop_dc_I_network_grouping : dcpop-ref : leafref : /dcpop/dcpop-id class "dcpop" as ietf_dcpop_dc_I_dcpop <<container>> ietf_dcpop_dc *-- "1" ietf_dcpop_dc_I_dcpop class "dc" as ietf_dcpop_dc_I_dcpop_I_dc << (L, #FF7700) list>> ietf_dcpop_dc_I_dcpop *-- "0..N" ietf_dcpop_dc_I_dcpop_I_dc ietf_dcpop_dc_I_dcpop_I_dc : datacenter {uses} +ietf_dcpop_dc_I_dcpop : dcpop-id : string } +ietf_dcpop_dc_I_datacenter_I_hypervisor --> ietf_dcpop_dc_I_hypervisor_grouping : uses +ietf_dcpop_dc_I_datacenter_I_instance --> ietf_dcpop_dc_I_instance_grouping : uses +ietf_dcpop_dc_I_datacenter_I_image --> ietf_dcpop_dc_I_image_grouping : uses +ietf_dcpop_dc_I_datacenter_I_flavor --> ietf_dcpop_dc_I_flavor_grouping : uses +ietf_dcpop_dc_I_datacenter_I_network --> ietf_dcpop_dc_I_network_grouping : uses +ietf_dcpop_dc_I_instance_I_flavor --> ietf_dcpop_dc_I_flavor_grouping : uses +ietf_dcpop_dc_I_instance_I_image --> ietf_dcpop_dc_I_image_grouping : uses +ietf_dcpop_dc_I_subnetwork_I_port --> ietf_dcpop_dc_I_port_grouping : uses +ietf_dcpop_dc_I_network_I_subnetwork --> ietf_dcpop_dc_I_subnetwork_grouping : uses +ietf_dcpop_dc_I_network_I_dhcp_agent --> ietf_dcpop_dc_I_dhcp_agent_grouping : uses ietf_dcpop_dc_I_dcpop_I_dc --> ietf_dcpop_dc_I_datacenter_grouping : uses center footer - <size:20> UML Generated : 2022-11-17 16:51 </size> + <size:20> UML Generated : 2022-11-18 16:25 </size> endfooter @enduml