Loading etsi-qkd-network-inventory.yangdeleted 100644 → 0 +0 −412 Original line number Diff line number Diff line /* Copyright 2021 ETSI Licensed under the BSD-3 Clause (https://forge.etsi.org/legal-matters) */ module etsi-qkd-network-inventory { yang-version "1.1"; namespace "urn:etsi:qkd:yang:etsi-qkd-network-inventory"; //TBD. Replaced when assigned. prefix "nw-inv"; import etsi-qkd-node-types { prefix "etsi-qkdn-types"; } import etsi-qkd-network-topology { prefix "nw-top";} organization "ETSI ISG QKD"; contact "https://www.etsi.org/committee/qkd djcha@sk.com"; description "This module contains the groupings and containers composing the software-defined QKD network inventory information models specified in ETSI GS QKD 018 V0.0.6"; revision 2021-06-04 { description "Initial revision"; } identity QKDN-STATUS-TYPES { description "Base identity used to identify the SD-QKD node status."; } identity OPERATING { base QKDN-STATUS-TYPES; description "The QKD node is up."; } identity IDLE { base QKDN-STATUS-TYPES; description "The QKD node is down."; } identity DORMANT { base QKDN-STATUS-TYPES; description "The QKD node has failed."; } identity FAILURE { base QKDN-STATUS-TYPES; description "The QKD node has failed."; } typedef qkdn-status-types { type identityref { base QKDN-STATUS-TYPES; } description "This type represents the status of the SD-QKD node."; } identity PATH-RESTORATION-TYPE { description "Base identity from which path restoration types are derived."; } identity AUTOMATIC { base PATH-RESTORATION-TYPE; description "The path restoration starts automatically."; } identity MANUAL { base PATH-RESTORATION-TYPE; description "The path restoration starts manually."; } typedef path-restoration-type { type identityref { base PATH-RESTORATION-TYPE; } description "This type represents path restoration types of QKD virtual link."; } grouping qkdn_id_ref { leaf qkdn_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn/nw-top:qkdn_id"; } description "Used to reference a SD-QKD node."; } } grouping qkdi_id_ref { leaf qkdi_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn[nw-top:qkdn_id=current()/../qkdn_id_ref]"+ "/nw-top:qkd_interfaces/nw-top:qkdi/nw-top:qkdi_id"; } description "Used to reference an interface of the SD-QKD node. Interfaces are identified to the SD-QKD node that contains them."; } } grouping phys_link_id_ref { leaf phys_link_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_phys_links/nw-top:phys_link/nw-top:phys_link_id"; } } description "Used to reference a QKD physical link."; } grouping virt_link_id_ref { leaf virt_link_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_virt_links/nw-top:virt_link/nw-top:virt_link_id"; } } description "Used to reference a QKD virtual link."; } grouping qkdn_capabilities_supported { leaf link_stats_support { type boolean; default true; description "If true, the SD-QKD node exposes link-related statistics (key generation rate, link consumption, status)."; } leaf application_stats_support { type boolean; default true; description "If true, the SD-QKD node exposes application related statistics (application consumption, alerts)."; } leaf key_relay_mode_enable { type boolean; default true; description "If true, the SD-QKD node supports key relay (multi-hop) mode services."; } } grouping key_rate_perf_common { leaf expected_consumption { type uint32; units "bps"; description "Sum of the bandwidths (bps) of the application's that are consuming keys from the key association link."; } leaf skr { type uint32; units "bps"; description "Total secret key rate (bps) generation of the key association link."; } leaf eskr { type uint32; units "bps"; description "Effective secret key rate (bps) generated by the key association link. i.e. the available rate to the applications after internal consumption."; } } grouping phys_link_perf { list phys_link_perf { config false; key "type"; leaf type { type identityref { base etsi-qkdn-types:PHYS-PERF-TYPES; } description "Type of the physical performance value to be exposed to the controller."; } leaf value { type uint32; description "Numerical value for the performance parameter."; } } } grouping qkdn_details { leaf qkdn_version { type string; description "Hardware or software version of the SD-QKD node."; } container qkdn_capabilities { uses qkdn_capabilities_supported; description "Capabilities of the SD-QKD node."; } leaf location_id { type string; description "The location of the secure area that contains the SD-QKD node to be specified."; } } grouping qkdn_status { leaf qkdn_status { config false; type qkdn-status-types; description "Status of the SD-QKD node."; } } grouping att_point { container att_point { description "Interface attachment point to an optical switch."; leaf device { type string; description "Unique ID of the optical switch (or passive component) to which the interface is connected."; } leaf port { type uint32; description "Port ID of the device to which the interface is connected."; } } } grouping qkdi_details { leaf role_support { type identityref { base etsi-qkdn-types:QKD-ROLE-TYPES; } description "Support for transmit, receive or both."; } leaf model { type string; description "Device model (vendor/device)."; } leaf type { type identityref { base etsi-qkdn-types:QKD-TECHNOLOGY-TYPES; } description "Interface type (QKD technology)."; } uses att_point; } grouping qkdi_status { leaf qkdi_status { config false; type identityref { base etsi-qkdn-types:IFACE-STATUS-TYPES; } description "Status of a QKD interface of the SD-QKD node."; } } grouping phys_link_details { leaf enable { type boolean; default true; description "This value allows the key generation process for a given link to be enabled or disabled. If true, the key generation process is enabled."; } leaf wavelength { type etsi-qkdn-types:wavelength; units "nm"; description "Wavelength (nm) to be used for the quantum channel. If the interface is not tunable, this parameter can by bypassed."; } container performance { uses key_rate_perf_common; uses phys_link_perf { when "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_phys_links/nw-top:phys_link/nw-top:link_type = 'PHYS'"; description "Performance of the specific physical link."; } } } grouping phys_link_status { leaf phys_link_status { config false; type identityref { base etsi-qkdn-types:LINK-STATUS-TYPES; } description "Status of a QKD physical link."; } } grouping virt_link_details { leaf bandwidth { type uint32; units "bps"; description "Required bandwidth (bps) for the key association link. Used to reserve bandwidth from the physical link to support the virtual link as an internal application."; } container performance { uses key_rate_perf_common; } container path_restoration { description "Container for path restoration conditions when any failure happens in the end-to-end key relay path."; leaf type { type path-restoration-type; description "path restoration type of QKD virtual link."; } leaf hold_off_time { type uint32; units "milli-seconds"; description "Time to wait before attempting restoration."; } } } grouping virt_link_status { leaf virt_link_status { config false; type identityref { base etsi-qkdn-types:LINK-STATUS-TYPES; } description "Status of a QKD virtual link."; } } augment "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn" { description "The inventory of a SD-QKD node."; uses qkdn_details; uses qkdn_status; } augment "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn/nw-top:qkd_interfaces/nw-top:qkdi" { description "The inventory of an interface (QKD module) of the SD-QKD node."; uses qkdi_details; uses qkdi_status; } augment "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_phys_links/nw-top:phys_link" { description "The inventory of a QKD physical link."; uses phys_link_details; uses phys_link_status; } augment "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_virt_links/nw-top:virt_link" { description "The inventory of a QKD virtual link."; uses virt_link_details; uses virt_link_status; } rpc get-QKD-node-details-and-status { description "Get the information of the SD-QKD node in QKD network."; input { uses qkdn_id_ref; } output { uses qkdn_details; uses qkdn_status; } } rpc get-QKD-interface-details { description "Get the information of the SD-QKD node interface in QKD network."; input { uses qkdn_id_ref; uses qkdi_id_ref; } output { uses qkdi_details; uses qkdi_status; } } rpc get-QKD-phys-link-details { description "Get the information of the QKD physical link in QKD network "; input { uses phys_link_id_ref; } output { uses phys_link_details; uses phys_link_status; } } rpc get-QKD-virt-link-details { description "Get the information of the QKD virtual link in QKD network "; input { uses virt_link_id_ref; } output { uses virt_link_details; uses virt_link_status; } } notification qkdn_alarm { container qkdn { uses qkdn_id_ref; leaf qkdn_status { type qkdn-status-types; } leaf reason { type string; } } } } No newline at end of file Loading
etsi-qkd-network-inventory.yangdeleted 100644 → 0 +0 −412 Original line number Diff line number Diff line /* Copyright 2021 ETSI Licensed under the BSD-3 Clause (https://forge.etsi.org/legal-matters) */ module etsi-qkd-network-inventory { yang-version "1.1"; namespace "urn:etsi:qkd:yang:etsi-qkd-network-inventory"; //TBD. Replaced when assigned. prefix "nw-inv"; import etsi-qkd-node-types { prefix "etsi-qkdn-types"; } import etsi-qkd-network-topology { prefix "nw-top";} organization "ETSI ISG QKD"; contact "https://www.etsi.org/committee/qkd djcha@sk.com"; description "This module contains the groupings and containers composing the software-defined QKD network inventory information models specified in ETSI GS QKD 018 V0.0.6"; revision 2021-06-04 { description "Initial revision"; } identity QKDN-STATUS-TYPES { description "Base identity used to identify the SD-QKD node status."; } identity OPERATING { base QKDN-STATUS-TYPES; description "The QKD node is up."; } identity IDLE { base QKDN-STATUS-TYPES; description "The QKD node is down."; } identity DORMANT { base QKDN-STATUS-TYPES; description "The QKD node has failed."; } identity FAILURE { base QKDN-STATUS-TYPES; description "The QKD node has failed."; } typedef qkdn-status-types { type identityref { base QKDN-STATUS-TYPES; } description "This type represents the status of the SD-QKD node."; } identity PATH-RESTORATION-TYPE { description "Base identity from which path restoration types are derived."; } identity AUTOMATIC { base PATH-RESTORATION-TYPE; description "The path restoration starts automatically."; } identity MANUAL { base PATH-RESTORATION-TYPE; description "The path restoration starts manually."; } typedef path-restoration-type { type identityref { base PATH-RESTORATION-TYPE; } description "This type represents path restoration types of QKD virtual link."; } grouping qkdn_id_ref { leaf qkdn_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn/nw-top:qkdn_id"; } description "Used to reference a SD-QKD node."; } } grouping qkdi_id_ref { leaf qkdi_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn[nw-top:qkdn_id=current()/../qkdn_id_ref]"+ "/nw-top:qkd_interfaces/nw-top:qkdi/nw-top:qkdi_id"; } description "Used to reference an interface of the SD-QKD node. Interfaces are identified to the SD-QKD node that contains them."; } } grouping phys_link_id_ref { leaf phys_link_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_phys_links/nw-top:phys_link/nw-top:phys_link_id"; } } description "Used to reference a QKD physical link."; } grouping virt_link_id_ref { leaf virt_link_id_ref { type leafref { path "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_virt_links/nw-top:virt_link/nw-top:virt_link_id"; } } description "Used to reference a QKD virtual link."; } grouping qkdn_capabilities_supported { leaf link_stats_support { type boolean; default true; description "If true, the SD-QKD node exposes link-related statistics (key generation rate, link consumption, status)."; } leaf application_stats_support { type boolean; default true; description "If true, the SD-QKD node exposes application related statistics (application consumption, alerts)."; } leaf key_relay_mode_enable { type boolean; default true; description "If true, the SD-QKD node supports key relay (multi-hop) mode services."; } } grouping key_rate_perf_common { leaf expected_consumption { type uint32; units "bps"; description "Sum of the bandwidths (bps) of the application's that are consuming keys from the key association link."; } leaf skr { type uint32; units "bps"; description "Total secret key rate (bps) generation of the key association link."; } leaf eskr { type uint32; units "bps"; description "Effective secret key rate (bps) generated by the key association link. i.e. the available rate to the applications after internal consumption."; } } grouping phys_link_perf { list phys_link_perf { config false; key "type"; leaf type { type identityref { base etsi-qkdn-types:PHYS-PERF-TYPES; } description "Type of the physical performance value to be exposed to the controller."; } leaf value { type uint32; description "Numerical value for the performance parameter."; } } } grouping qkdn_details { leaf qkdn_version { type string; description "Hardware or software version of the SD-QKD node."; } container qkdn_capabilities { uses qkdn_capabilities_supported; description "Capabilities of the SD-QKD node."; } leaf location_id { type string; description "The location of the secure area that contains the SD-QKD node to be specified."; } } grouping qkdn_status { leaf qkdn_status { config false; type qkdn-status-types; description "Status of the SD-QKD node."; } } grouping att_point { container att_point { description "Interface attachment point to an optical switch."; leaf device { type string; description "Unique ID of the optical switch (or passive component) to which the interface is connected."; } leaf port { type uint32; description "Port ID of the device to which the interface is connected."; } } } grouping qkdi_details { leaf role_support { type identityref { base etsi-qkdn-types:QKD-ROLE-TYPES; } description "Support for transmit, receive or both."; } leaf model { type string; description "Device model (vendor/device)."; } leaf type { type identityref { base etsi-qkdn-types:QKD-TECHNOLOGY-TYPES; } description "Interface type (QKD technology)."; } uses att_point; } grouping qkdi_status { leaf qkdi_status { config false; type identityref { base etsi-qkdn-types:IFACE-STATUS-TYPES; } description "Status of a QKD interface of the SD-QKD node."; } } grouping phys_link_details { leaf enable { type boolean; default true; description "This value allows the key generation process for a given link to be enabled or disabled. If true, the key generation process is enabled."; } leaf wavelength { type etsi-qkdn-types:wavelength; units "nm"; description "Wavelength (nm) to be used for the quantum channel. If the interface is not tunable, this parameter can by bypassed."; } container performance { uses key_rate_perf_common; uses phys_link_perf { when "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_phys_links/nw-top:phys_link/nw-top:link_type = 'PHYS'"; description "Performance of the specific physical link."; } } } grouping phys_link_status { leaf phys_link_status { config false; type identityref { base etsi-qkdn-types:LINK-STATUS-TYPES; } description "Status of a QKD physical link."; } } grouping virt_link_details { leaf bandwidth { type uint32; units "bps"; description "Required bandwidth (bps) for the key association link. Used to reserve bandwidth from the physical link to support the virtual link as an internal application."; } container performance { uses key_rate_perf_common; } container path_restoration { description "Container for path restoration conditions when any failure happens in the end-to-end key relay path."; leaf type { type path-restoration-type; description "path restoration type of QKD virtual link."; } leaf hold_off_time { type uint32; units "milli-seconds"; description "Time to wait before attempting restoration."; } } } grouping virt_link_status { leaf virt_link_status { config false; type identityref { base etsi-qkdn-types:LINK-STATUS-TYPES; } description "Status of a QKD virtual link."; } } augment "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn" { description "The inventory of a SD-QKD node."; uses qkdn_details; uses qkdn_status; } augment "/nw-top:qkd_network/nw-top:sdqkd_nodes/nw-top:qkdn/nw-top:qkd_interfaces/nw-top:qkdi" { description "The inventory of an interface (QKD module) of the SD-QKD node."; uses qkdi_details; uses qkdi_status; } augment "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_phys_links/nw-top:phys_link" { description "The inventory of a QKD physical link."; uses phys_link_details; uses phys_link_status; } augment "/nw-top:qkd_network/nw-top:qkd_links/nw-top:qkd_virt_links/nw-top:virt_link" { description "The inventory of a QKD virtual link."; uses virt_link_details; uses virt_link_status; } rpc get-QKD-node-details-and-status { description "Get the information of the SD-QKD node in QKD network."; input { uses qkdn_id_ref; } output { uses qkdn_details; uses qkdn_status; } } rpc get-QKD-interface-details { description "Get the information of the SD-QKD node interface in QKD network."; input { uses qkdn_id_ref; uses qkdi_id_ref; } output { uses qkdi_details; uses qkdi_status; } } rpc get-QKD-phys-link-details { description "Get the information of the QKD physical link in QKD network "; input { uses phys_link_id_ref; } output { uses phys_link_details; uses phys_link_status; } } rpc get-QKD-virt-link-details { description "Get the information of the QKD virtual link in QKD network "; input { uses virt_link_id_ref; } output { uses virt_link_details; uses virt_link_status; } } notification qkdn_alarm { container qkdn { uses qkdn_id_ref; leaf qkdn_status { type qkdn-status-types; } leaf reason { type string; } } } } No newline at end of file