Commit d4227217 authored by chada's avatar chada
Browse files

Delete etsi-qkd-sdn-topology.yang

parent 2cf5d1bc
Loading
Loading
Loading
Loading

etsi-qkd-sdn-topology.yang

deleted100644 → 0
+0 −246
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-sdn-topology {

  yang-version "1.1";

  namespace "urn:etsi:qkd:yang:etsi-qkd-sdn-tplg"; //TBD. Replaced when assigned.

  prefix "qkdnw-tplg";
  
  import ietf-yang-types { prefix "yang"; }
  import etsi-qkd-node-types { prefix "etsi-qkdn-types"; }

  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 
    topology information models specified in ETSI GS QKD 018 V0.0.7";
  
  revision 2021-07-30 {
    description "This revision changes the naming of YANG module and its namespace.";
  }

  revision 2021-06-17 {
    description "This revision is in sync with inventory and connectivity YANG modules.";
  }

  revision 2021-06-04 {
    description "Initial revision";    
  }

  grouping qkdn_id_ref {
    leaf qkdn_id_ref {
      type leafref {
        path "/qkdnw-tplg:qkd_network/qkdnw-tplg:sdqkd_nodes/qkdnw-tplg:qkdn/qkdnw-tplg:qkdn_id";
      }
      description "Used to reference a SD-QKD node.";
    }
  }

  grouping qkdi_id_ref {
    leaf qkdi_id_ref {
      type leafref {
        path "/qkdnw-tplg:qkd_network/qkdnw-tplg:sdqkd_nodes/qkdnw-tplg:qkdn[qkdnw-tplg:qkdn_id=current()/../qkdn_id_ref]"+
          "/qkdnw-tplg:qkd_interfaces/qkdnw-tplg:qkdi/qkdnw-tplg: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 qkdn_qkdi_id_ref {    
    uses qkdn_id_ref;
    uses qkdi_id_ref;
  }

  grouping phys_link_id_ref {
    leaf phys_link_id_ref {
      type leafref {
        path "/qkdnw-tplg:qkd_network/qkdnw-tplg:qkd_links/qkdnw-tplg:qkd_phys_links/qkdnw-tplg:phys_link/qkdnw-tplg:phys_link_id";
      }
    }
    description "Used to reference a QKD physical link.";
  }

  grouping virt_link_id_ref {
    leaf virt_link_id_ref {
      type leafref {
        path "/qkdnw-tplg:qkd_network/qkdnw-tplg:qkd_links/qkdnw-tplg:qkd_virt_links/qkdnw-tplg:virt_link/qkdnw-tplg:virt_link_id";
      }
    }
    description "Used to reference a QKD virtual link.";    
  }

  grouping qkd_interfaces {
    container qkd_interfaces {
      description "A set of the physical QKD modules of the SD-QKD node";

      list qkdi {
        key "qkdi_id";
        description "List of the physical QKD modules of the SD-QKD node.";

        leaf qkdi_id {
          type uint32;
          description "Interface ID. A locally unique number, which is globally unique when combined with the SD-QKD node ID.";
        }
      }
    }
  }

  grouping qkdn_list {
    list qkdn {
      key "qkdn_id";
      description "List of SD-QKD nodes in QKD network";

      leaf qkdn_id {
        type yang:uuid;
        mandatory true;
        description "Uniquely identifies a SD-QKD node within the containing QKD network.";
      }
       
      uses qkd_interfaces;
    }
  }

  grouping phys_link_local_qkdn {
    container phys_link_local_qkdn {
      description "Container for the local (source) SD-QKD node of the QKD physical link.";

      uses qkdn_qkdi_id_ref {
        refine qkdn_id_ref {
          description "Uniquely identifies the local (source) SD-QKD node. Must be in the same topology.";
        }
        refine qkdi_id_ref {
          description "Interface ID of the local (source) SD-QKD node which is connected to the QKD physical link.
            This interface is located within the local SD-QKD node and terminates the QKD physical link";
        }
      }            
    }
  }

  grouping phys_link_remote_qkdn {
    container phys_link_remote_qkdn {
      description "Container for the remote (destination) SD-QKD node of the QKD physical link.";

      uses qkdn_qkdi_id_ref {
        refine qkdn_id_ref {
          description "Uniquely identifies the remote (destination) SD-QKD node. Must be in the same topology.";
        }
        refine qkdi_id_ref {
          description "Interface ID of the remote (destination) SD-QKD node which is connected to the QKD physical link.
            This interface is located within the remote SD-QKD node and terminates the QKD physical link";
        }
      } 
    }
  }

  grouping phys_link_list {
    list phys_link {
      key "phys_link_id";
      description "List of QKD physical links to directly connect SD-QKD nodes in QKD network";

      leaf phys_link_id {
        type yang:uuid;
        mandatory true;
        description "Uniquely identifies a QKD physical link within the containing QKD network.";
      }
       
      leaf link_type {
        type identityref {
          base etsi-qkdn-types:QKD-LINK-TYPES;
        }
        description "QKD physical link type is included. The identity is PHYS.";
      }

      uses phys_link_local_qkdn;
      uses phys_link_remote_qkdn;
    }
  }

  grouping virt_link_local_qkdn {
    container virt_link_local_qkdn {
      description "Container for the local (source) SD-QKD node of the QKD virtual link.";

      uses qkdn_qkdi_id_ref {
        refine qkdn_id_ref {
          description "Uniquely identifies the local (source) SD-QKD node.";
        }
        refine qkdi_id_ref {
          description "Interface ID of the local (source) SD-QKD node which is connected to the QKD virtual link.
            This interface is located within the local SD-QKD node and terminates the QKD virtual link";
        }
      }
    }
  }

  grouping virt_link_remote_qkdn { 
    container virt_link_remote_qkdn {
      description "Container holds the remote (destination) SD-QKD node of the QKD link.";

      uses qkdn_qkdi_id_ref {
        refine qkdn_id_ref {
          description "Uniquely identifies the remote (destination) SD-QKD node.";
        }
        refine qkdi_id_ref {
          description "Interface ID of the remote (destination) SD-QKD node which is connected to the QKD virtual link.
            This interface is located within the remote SD-QKD node and terminates the QKD virtual link";
        }
      }            
    }
  }

  grouping virt_link_list {
    list virt_link {
      key "virt_link_id";
      description "List of QKD virtual links (end-to-end key association links).";

      leaf virt_link_id {
        type yang:uuid;
        mandatory true;
        description "Uniquely identifies a QKD virtual link within the containing QKD network.";
      }
       
      leaf link_type {
        type identityref {
          base etsi-qkdn-types:QKD-LINK-TYPES;
        }
        description "QKD virtual link type is included. The identity is VIRT.";
      }

      uses virt_link_local_qkdn;
      uses virt_link_remote_qkdn;
    }
  }


  container qkd_network {
    description "Container for a list of software-defined QKD (SD-QKD) nodes and QKD links in QKD network.";
    
    container sdqkd_nodes {
      description "A set of SD-QKD nodes in QKD network.";

      uses qkdn_list;
     }

    container qkd_links {
      description "Container for both QKD physical links and virtual links.";

      container qkd_phys_links {
        description "A set of QKD physical links to directly connect SD-QKD nodes in QKD network";

        uses phys_link_list;
      }

      container qkd_virt_links {
        description "A set of QKD virtual links (end-to-end key association links).";

        uses virt_link_list;
      }
    }
  }
}
 No newline at end of file