1 module ietf-eth-tran-service {
3 namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-service";
7 import ietf-yang-types {
11 import ietf-te-types {
15 import ietf-eth-tran-types {
20 "Internet Engineering Task Force (IETF) CCAMP WG";
23 WG List: <mailto:ccamp@ietf.org>
25 Haomian Zheng (zhenghaomian@huawei.com);
26 Italo Busi (italo.busi@huawei.com);
27 Aihua Guo (aihuaguo@huawei.com);
28 Yunbin Xu (xuyunbin@ritt.cn);
29 Yang Zhao (zhaoyangyjy@chinamobile.com);
30 Xufeng Liu (Xufeng_Liu@jabil.com);
31 Giuseppe Fioccola (giuseppe.fioccola@telecomitalia.it);
35 "This module defines a YANG data model for describing
36 the Ethernet transport services.";
42 "draft-zheng-ccamp-client-signal-yang";
49 grouping vlan-classification {
51 "A grouping which represents classification on an 802.1Q VLAN tag.";
54 type etht-types:eth-tag-classify;
56 "The tag type used for VLAN classification.";
58 choice individual-bundling-vlan {
60 "VLAN based classification can be individual
62 case individual-vlan {
64 type etht-types:vlanid;
72 type etht-types:vid-range-type;
74 "List of VLAN ID values.";
82 "A grouping which represents push/pop operations
83 of an 802.1Q VLAN tag.";
86 type etht-types:eth-tag-type;
88 "The VLAN tag type to push/swap.";
91 type etht-types:vlanid;
93 "The VLAN ID value to push/swap.";
97 grouping vlan-operations {
99 "A grouping which represents VLAN operations.";
106 "The number of VLAN tags to pop (or swap if used in
107 conjunction with push-tags)";
109 container push-tags {
111 "The VLAN tags to push (or swap if used in
112 conjunction with pop-tags)";
114 container outer-tag {
116 "Indicates existence of the outermost VLAN tag to
120 "The outermost VLAN tag to push/swap.";
124 container second-tag {
126 '../outer-tag/tag-type = "s-vlan-tag-type" and ' +
127 'tag-type = "c-vlan-tag-type"'
132 When pushing/swapping two tags, the outermost tag must
133 be specified and of S-VLAN type and the second
134 outermost tag must be of C-VLAN tag type.
138 For IEEE 802.1Q interoperability, when pushing/swapping
139 two tags, it is required that the outermost tag exists
140 and is an S-VLAN, and the second outermost tag is a
146 "Indicates existence of a second outermost VLAN tag to
150 "The second outermost VLAN tag to push/swap.";
157 grouping bandwidth-profiles {
159 "A grouping which represent bandwidth profile configuration.";
163 "Whether the bandwidth profiles are symmetrical or
167 "The same bandwidth profile is used to describe the ingress
168 and the egress bandwidth profile.";
170 leaf ingress-egress-bandwidth-profile-name {
173 "Name of the bandwidth profile.";
178 "Ingress and egress bandwidth profiles can be specified.";
179 leaf ingress-bandwidth-profile-name {
182 "Name of the bandwidth profile used in
183 the ingress direction.";
185 leaf egress-bandwidth-profile-name {
188 "Name of the bandwidth profile used in
189 the egress direction.";
195 grouping etht-svc-access-parameters {
197 "ETH transport services access parameters";
199 leaf access-node-id {
200 type te-types:te-node-id;
202 "The identifier of the access node in
203 the ETH transport topology.";
206 type te-types:te-tp-id;
208 "The TE link termination point identifier, used
209 together with access-node-id to identify the
212 leaf service-classification-type {
214 base etht-types:service-classification-type;
217 "Service classification type.";
220 choice service-classification {
222 "Access classification can be port-based or
225 case port-classification {
226 /* no additional information */
229 case vlan-classification {
230 container outer-tag {
231 presence "The outermost VLAN tag exists";
233 "Classifies traffic using the outermost VLAN tag.";
235 uses vlan-classification;
237 container second-tag {
239 '../outer-tag/tag-type = "classify-s-vlan" and ' +
240 'tag-type = "classify-c-vlan"'
245 When matching two tags, the outermost tag must be
246 specified and of S-VLAN type and the second
247 outermost tag must be of C-VLAN tag type.
251 For IEEE 802.1Q interoperability, when matching two
252 tags, it is required that the outermost tag exists
253 and is an S-VLAN, and the second outermost tag is a
257 presence "The second outermost VLAN tag exists";
260 "Classifies traffic using the second outermost VLAN tag.";
262 uses vlan-classification;
268 Open issue: can we constraints it to be used only with mp services?
270 leaf split-horizon-group {
272 description "Identify a split horizon group";
275 uses bandwidth-profiles;
277 container vlan-operations {
279 "include parameters for vlan-operation";
282 "Whether the VLAN operations are symmetrical or
285 container symmetrical-operation {
286 uses vlan-operations;
288 "Symmetrical operations.
289 Expressed in the ingress direction, but
290 the reverse operation is applied to egress traffic";
294 container asymmetrical-operation {
295 description "Asymmetrical operations";
297 uses vlan-operations;
298 description "Ingress operations";
301 uses vlan-operations;
302 description "Egress operations";
310 grouping etht-svc-tunnel-parameters {
312 "ETH transport services tunnel parameters";
317 "TE service tunnel instance name.";
319 choice svc-multiplexing-tag {
321 "Service multiplexing is optional and flexible.";
325 placeholder to support proprietary multiplexing
326 (for further discussion)
331 /* no additional information is needed */
336 No additional information is needed
337 The C-Tag or S-Tag used for service mulitplexing is defined
338 by the VLAN classification and operations configured in the
339 etht-svc-access-parameters grouping
344 /* to be completed (for further discussion) */
349 Open issue: can we constraints it to be used only with mp services?
351 leaf src-split-horizon-group {
353 description "Identify a split horizon group at the Tunnel source TTP";
355 leaf dst-split-horizon-group {
357 description "Identify a split horizon group at the Tunnel destination TTP";
361 grouping te-topology-identifier {
363 "An identifier to uniquely identify the TE topology.";
364 leaf access-provider-id {
365 type te-types:te-global-id;
367 "An identifier to uniquely identify a provider.";
369 leaf access-client-id {
370 type te-types:te-global-id;
372 "An identifier to uniquely identify a client.";
374 leaf access-topology-id {
375 type te-types:te-topology-id;
377 "Identifies the topology the
378 service access ports belong to.";
382 grouping etht-svc-pm-threshold_config {
384 "Configuraiton parameters for Ethernet service PM thresholds.";
386 leaf sending-rate-high {
389 "High threshold of packet sending rate in kbps.";
391 leaf sending-rate-low {
394 "Low threshold of packet sending rate in kbps.";
396 leaf receiving-rate-high {
399 "High threshold of packet receiving rate in kbps.";
401 leaf receiving-rate-low {
404 "Low threshold of packet receiving rate in kbps.";
408 grouping etht-svc-pm-stats {
410 "Ethernet service PM statistics.";
412 leaf sending-rate-too-high {
415 "Counter that indicates the number of times the sending rate is above the high threshold";
417 leaf sending-rate-too-low {
420 "Counter that indicates the number of times the sending rate is below the low threshold";
422 leaf receiving-rate-too-high {
425 "Counter that indicates the number of times the receiving rate is above the high threshold";
427 leaf receiving-rate-too-low {
430 "Counter that indicates the number of times the receiving rate is below the low threshold";
434 grouping etht-svc-instance_config {
436 "Configuraiton parameters for Ethernet services.";
441 "Name of the p2p ETH transport service.";
444 leaf etht-svc-descr {
447 "Description of the ETH transport service.";
451 type etht-types:service-type;
453 "Type of Ethernet service (p2p, mp2mp or rmp).";
454 /* Add default as p2p */
457 uses te-topology-identifier;
459 list etht-svc-access-ports {
464 Is it possible to limit the max-elements only for p2p services?
468 "List of the ETH trasport services access port instances.";
470 leaf access-port-id {
473 "ID of the service access port instance";
475 uses etht-svc-access-parameters;
477 list etht-svc-tunnels {
480 "List of the TE Tunnels supporting the ETH
483 uses etht-svc-tunnel-parameters;
485 container pm-config {
487 "ETH service performance monitoring";
492 "Boolean value indicating whether PM is enabled.";
494 uses etht-svc-pm-threshold_config;
498 base te-types:tunnel-state-type;
500 default te-types:tunnel-state-up;
501 description "ETH service administrative state.";
505 grouping etht-svc-instance_state {
507 "State parameters for Ethernet services.";
509 leaf operational-state {
511 base te-types:tunnel-state-type;
513 default te-types:tunnel-state-up;
514 description "ETH service operational state.";
516 leaf provisioning-state {
518 base te-types:lsp-state-type;
520 description "ETH service provisioning state.";
523 type yang:date-and-time;
525 "Time of ETH service creation.";
527 leaf last-updated-time {
528 type yang:date-and-time;
530 "Time of ETH service last update.";
532 uses etht-svc-pm-stats;
541 "ETH transport services.";
545 "ETH profile information.";
546 list etht-svc-bandwidth-profiles {
547 key bandwidth-profile-name;
549 "List of bandwidth profile templates used by
552 uses etht-types:etht-bandwidth-profiles;
556 list etht-svc-instances {
559 "The list of p2p ETH transport service instances";
561 uses etht-svc-instance_config;
566 "Ethernet Service states.";
568 uses etht-svc-instance_state;