/* Copyright 2021 ETSI Licensed under the BSD-3 Clause (https://forge.etsi.org/legal-matters) */ module etsi-qkd-node-types { yang-version "1"; namespace "urn:etsi:qkd:yang:etsi-qkd-node-types"; prefix "etsi-qkdn-types"; organization "ETSI ISG QKD"; contact "https://www.etsi.org/committee/qkd vicente@fi.upm.es"; description "This module contains the base types created for the software-defined QKD node information models specified in ETSI GS QKD 015 V1.1.1 - QKD-LINK-TYPES - QKD-TECHNOLOGY-TYPES - QKD-ROLE-TYPES - QKD-APP-TYPES - Wavelength "; revision "2020-09-30" { description "First definition based on initial requirement analysis."; } identity QKD-TECHNOLOGY-TYPES { description "Quantum Key Distribution System base technology types."; } identity CV-QKD { base QKD-TECHNOLOGY-TYPES; description "Continuous Variable base technology."; } identity DV-QKD { base QKD-TECHNOLOGY-TYPES; description "Discrete Variable base technology."; } identity DV-QKD-COW { base QKD-TECHNOLOGY-TYPES; description "COW base technology."; } identity DV-QKD-2Ws { base QKD-TECHNOLOGY-TYPES; description "2-Ways base technology."; } identity QKD-LINK-TYPES { description "QKD key association link types."; } identity VIRT { base QKD-LINK-TYPES; description "Virtual Link."; } identity PHYS { base QKD-LINK-TYPES; description "Physical Link."; } identity QKD-ROLE-TYPES { description "QKD Role Type."; } identity TRANSMITTER { base QKD-ROLE-TYPES; description "QKD module working as transmitter."; } identity RECEIVER { base QKD-ROLE-TYPES; description "QKD module working as receiver."; } identity TRANSDUCER { base QKD-ROLE-TYPES; description "QKD System that can work as a transmitter or receiver."; } identity QKD-APP-TYPES { description "Application types."; } identity CLIENT { base QKD-APP-TYPES; description "Application working as client."; } identity INTERNAL { base QKD-APP-TYPES; description "Internal QKD node application."; } identity PHYS-PERF-TYPES { description "Physical performance types."; } identity QBER { base PHYS-PERF-TYPES; description "Quantum Bit Error Rate."; } identity SNR { base PHYS-PERF-TYPES; description "Signal to Noise Ratio."; } identity LINK-STATUS-TYPES { description "Status of the key association QKD link (physical and virtual)."; } identity ACTIVE { base LINK-STATUS-TYPES; description "Link actively generating keys."; } identity PASSIVE { base LINK-STATUS-TYPES; description "No key generation on key association QKD link but a pool of keys are still available."; } identity PENDING { base LINK-STATUS-TYPES; description "Waiting for activation and no keys are available."; } identity OFF { base LINK-STATUS-TYPES; description "No key generation and no keys are available."; } /// identity IFACE-STATUS-TYPES { description "Interface Status."; } identity UP { base IFACE-STATUS-TYPES; description "The interfaces is up."; } identity DOWN { base IFACE-STATUS-TYPES; description "The interfaces is down."; } identity FAILURE { base IFACE-STATUS-TYPES; description "The interfaces has failed."; } identity APP-STATUS-TYPES { description "Application types."; } identity ON { base APP-STATUS-TYPES; description "The application is on."; } identity DISCONNECTED { base APP-STATUS-TYPES; description "The application is disconnected."; } identity OUT-OF-TIME { base APP-STATUS-TYPES; description "The application is out of time."; } identity ZOMBIE { base APP-STATUS-TYPES; description "The application is in a zombie state."; } identity SEVERITY-TYPES { description "Error/Failure severity levels."; } identity MAJOR { base SEVERITY-TYPES; description "Major error/failure."; } identity MINOR { base SEVERITY-TYPES; description "Minor error/failure."; } typedef wavelength { type string { pattern "([1-9][0-9]{0,3})"; } description "A WDM channel number (starting at 1). For example: 20"; } //Pattern from "A Yang Data Model for WSON Optical Networks". typedef wavelength-range-type { type string { pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" + "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; } description "A list of WDM channel numbers (starting at 1) in ascending order. For example: 1,12-20,40,50-80"; } }