Newer
Older
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-topology";
prefix "qkdnw-tplg";
import ietf-yang-types { prefix "yang"; }
import etsi-qkd-sdn-node { prefix "etsi-qkdn"; }
import etsi-qkd-node-types { prefix "etsi-qkdn-types"; }
organization "ETSI ISG QKD";
contact
"https://www.etsi.org/committee/qkd
djcha@sktelecom.com";
description
"This module contains the groupings and containers composing the software-defined QKD network
topology information models specified in ETSI GS QKD 018 V1.1.1";
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
revision 2022-02-22 {
description "Refinement of the YANG model to make it compatible with the ETSI ISG QKD 015 V2.1.1.";
}
revision 2021-09-20 {
description "The YANG module for QKD network topology.";
}
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 svc_link_id_ref {
leaf svc_link_id_ref {
type leafref {
path "/qkdnw-tplg:qkd_network/qkdnw-tplg:qkd_links/qkdnw-tplg:qkd_svc_links/qkdnw-tplg:svc_link/qkdnw-tplg:svc_link_id";
}
}
description "Used to reference a QKD service 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.";
uses etsi-qkdn:qkdi_id;
}
}
}
grouping qkdn_list {
list qkdn {
key "qkdn_id";
description "List of SD-QKD nodes in QKD network.";
uses etsi-qkdn:qkdn_id {
refine qkdn_id {
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 that 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 that 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 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 svc_link_local_qkdn {
container svc_link_local_qkdn {
description "Container for the local (source) SD-QKD node of the QKD service 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 that is connected to the QKD service link.
This interface is located within the local SD-QKD node and terminates the QKD service link.";
}
}
}
}
grouping svc_link_remote_qkdn {
container svc_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 that is connected to the QKD service link.
This interface is located within the remote SD-QKD node and terminates the QKD service link.";
}
}
}
}
grouping svc_link_list {
list svc_link {
key "svc_link_id";
description "List of QKD service links (end-to-end key association links).";
leaf svc_link_id {
type yang:uuid;
mandatory true;
description "Uniquely identifies a QKD service link within the containing QKD network.";
}
leaf link_type {
type etsi-qkdn-types:qkd-link-types;
description "QKD service link type is included. The identity is VIRT.";
}
uses svc_link_local_qkdn;
uses svc_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 service 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_svc_links {
description "A set of QKD service links (end-to-end key association links).";
uses svc_link_list;
}
}
}
}