-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathietf-detnet.bkup
1291 lines (1249 loc) · 40.6 KB
/
ietf-detnet.bkup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
module ietf-detnet{
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-detnet";
prefix ietf-detnet;
import ietf-yang-types {
prefix yang;
reference
"RFC 6021 - Common YANG Data Types.";
}
import ietf-inet-types {
prefix inet;
reference
"RFC 6991 - Common YANG Data Types.";
}
import ietf-ethertypes {
prefix ethertypes;
reference
"RFC 8519 - YANG Data Model for Network Access Control
Lists (ACLs).";
}
import ietf-routing-types {
prefix rt-types;
reference
"RFC 8294 - Common YANG Data Types for the Routing Area.";
}
import ietf-packet-fields {
prefix packet-fields;
reference
"RFC 8519 - YANG Data Model for Network Access Control Lists
(ACLs).";
}
import ietf-interfaces {
prefix if;
reference
"RFC 8343 - A YANG Data Model for Interface Management.";
}
import ieee802-dot1q-types{
prefix dot1q-types;
reference
"IEEE 802.1Qcx-2020 - IEEE Standard for Local and Metropolitan
Area Networks--Bridges and Bridged Networks Amendment 33: YANG
Data Model for Connectivity Fault Management.";
}
organization
"IETF DetNet Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/detnet/>
WG List: <mailto: detnet@ietf.org>
Editor: Xuesong Geng
<mailto:gengxuesong@huawei.com>
Editor: Yeoncheol Ryoo
<mailto:dbduscjf@etri.re.kr>
Editor: Don Fedyk
<mailto:dfedyk@labn.net>;
Editor: Reshad Rahman
<mailto:reshad@yahoo.com>
Editor: Mach Chen
<mailto:mach.chen@huawei.com>
Editor: Zhenqiang Li
<mailto:lizhenqiang@chinamobile.com>";
description
"This YANG module describes the parameters needed
for DetNet flow configuration and flow status
reporting.";
revision 2020-12-16 {
description
"initial revision";
reference
"RFC XXXX: draft-ietf-detnet-yang-09";
}
identity app-status {
description
"Base identity from which all application-status
status types are derived.";
reference
"draft-ietf-detnet-flow-information-model Section 5.8";
}
identity none {
base app-status;
description
"This Application has no status. This type of status is
expected when the configuration is incomplete.";
reference
"draft-ietf-detnet-flow-information-model Section 5.8";
}
identity ready {
base app-status;
description
"Application ingress/egress ready.";
reference
"draft-ietf-detnet-flow-information-model Section 5.8";
}
identity failed {
base app-status;
description
"Application ingres/egresss failed.";
reference
"draft-ietf-detnet-flow-information-model Section 5.8";
}
identity out-of-service {
base app-status;
description
"Application Administratively blocked.";
reference
"draft-ietf-detnet-flow-information-model Section 5.8";
}
identity partial-failed {
base app-status;
description
"This is an Application with one or more Egress ready, and one
or more Egress failed. The DetNet flow can be used if the
Ingress is Ready.";
reference
"draft-ietf-detnet-flow-information-model Section 5.8";
}
typedef app-flow-ref {
type leafref {
path "/ietf-detnet:detnet"
+ "/ietf-detnet:app-flows"
+ "/ietf-detnet:app-flow"
+ "/ietf-detnet:name";
}
}
typedef service-sub-layer-ref {
type leafref {
path "/ietf-detnet:detnet"
+ "/ietf-detnet:service-sub-layer"
+ "/ietf-detnet:service-sub-layer-list"
+ "/ietf-detnet:name";
}
}
typedef forwarding-sub-layer-ref {
type leafref {
path "/ietf-detnet:detnet"
+ "/ietf-detnet:forwarding-sub-layer"
+ "/ietf-detnet:forwarding-sub-layer-list"
+ "/ietf-detnet:name";
}
}
typedef traffic-profile-ref {
type leafref {
path "/ietf-detnet:detnet"
+ "/ietf-detnet:traffic-profile"
+ "/ietf-detnet:profile-name";
}
}
typedef ipsec-spi {
type uint32 {
range "1..max";
}
description
"IPsec Security Parameters Index.";
reference
"IETF RFC 6071";
}
typedef service-operation-type {
type enumeration {
enum service-initiation {
description
"This is an initiating service sub-layer encapsulation. ";
}
enum service-termination {
description
"Operation for DetNet service sub-layer decapsulation.";
}
enum service-relay {
description
"Operation for DetNet service sub-layer swap.";
}
enum non-detnet {
description
"No operation for DetNet service sub-layer.";
}
}
description
"Operation type identfies the behavior for this service
sub-layer instance. Operations are described as unidirectional
but a service sub-layer may combin operation types.";
}
typedef forwarding-operations-type {
type enumeration {
enum impose-and-forward {
description
"This operation impose outgoing label(s) and forward to
next-hop.";
reference
" A YANG Data Model for MPLS Base
draft-ietf-mpls-base-yang.";
}
enum pop-and-forward {
description
"This operation pops the incoming label and forwards to
the next-hop.";
reference
" A YANG Data Model for MPLS Base
draft-ietf-mpls-base-yang";
}
enum pop-impose-and-forward {
description
"This operation pops the incoming label, imposes one or
more outgoing label(s) and forwards to the next-hop.";
reference
" A YANG Data Model for MPLS Base
draft-ietf-mpls-base-yang.";
}
enum swap-and-forward {
description
"This operation swaps incoming label, with an outgoing
label and forwards to the next-hop.";
reference
" A YANG Data Model for MPLS Base
draft-ietf-mpls-base-yang";
}
enum forward {
description
"This operation forward to next-hop.";
}
enum pop-and-lookup {
description
"This operation pops incoming label and performs a
lookup.";
}
}
description
"MPLS operations types. This is an enum modeled after the
MPLS enum. The first 4 enums are the same as A YANG Data
Model for MPLS Base. draft-ietf-mpls-base-yang.";
}
typedef service-protection-type {
type enumeration {
enum none {
description
"No service protection provided.";
}
enum replication {
description
"A Packet Replication Function (PRF) replicates DetNet
flow packets and forwards them to one or more next hops in
the DetNet domain. The number of packet copies sent to
each next hop is a DetNet flow specific parameter at the
node doing the replication. PRF can be implemented by an
edge node, a relay node, or an end system.";
}
enum elimination {
description
"A Packet Elimination Function (PEF) eliminates duplicate
copies of packets to prevent excess packets flooding the
network or duplicate packets being sent out of the DetNet
domain. PEF can be implemented by an edge node, a relay
node, or an end system.";
}
enum ordering {
description
"A Packet Ordering Function (POF) re-orders packets within
a DetNet flow that are received out of order. This
function can be implemented by an edge node, a relay node,
or an end system.";
}
enum elimination-ordering {
description
"A combination of PEF and POF that can be implemented by
an edge node, a relay node, or an end system.";
}
enum elimination-replication {
description
"A combination of PEF and PRF that can be implemented by
an edge node, a relay node, or an end system.";
}
enum elimination-ordering-replicaiton {
description
"A combination of PEF, POF and PRF that can be implemented
by an edge node, a relay node, or an end system.";
}
}
}
typedef sequence-number-generation-type {
type enumeration {
enum copy-from-app-flow {
description
"This type means copy the app-flow sequence number to the
DetNet-flow.";
}
enum generate-by-detnet-flow {
description
"This type means generate the sequence number by the
DetNet flow."; }
}
description
"An enumeration for the sequence number behaviors supported.";
}
typedef sequence-number-field {
type enumeration {
enum zero-sn {
description
"No DetNet sequence number field is used.";
}
enum short-sn {
value 16;
description
"A 16-bit DetNet sequence number field is used.";
}
enum long-sn {
value 28;
description
"A 28-bit DetNet sequence number field is used.";
}
}
description
"This type captures the sequence number behavior.";
}
grouping ip-header {
description
"This grouping captures the IPv4/IPv6 packet header
information. it is modeled after existing fields";
leaf
src-ip-address {
type inet:ip-address;
description
"The source IP address in the header.";
reference
"RFC 6021 Common YANG Data Types";
}
leaf dest-ip-address {
type inet:ip-address;
description
"The destination IP address in the header.";
reference
"RFC 6021 Common YANG Data Types";
}
leaf protocol-next-header {
type uint8;
description
"Internet Protocol number. Refers to the protocol of the
payload. In IPv6, this field is known as 'next-header',
and if extension headers are present, the protocol is
present in the 'upper-layer' header.";
reference
"RFC 791: Internet Protocol
RFC 8200: Internet Protocol, Version 6 (IPv6) Specification.";
}
leaf dscp {
type inet:dscp;
description
"The traffic class value in the header.";
reference
"RFC 6021 Common YANG Data Types";
}
leaf flow-label {
type inet:ipv6-flow-label;
description
"The flow label value of the header.IPV6 only.";
reference
"RFC 6021 Common YANG Data Types";
}
leaf source-port {
type inet:port-number;
description
"The source port number";
reference
"RFC 6021 Common YANG Data Types";
}
leaf destination-port {
type inet:port-number;
description
"The destination port number.";
reference
"RFC 6021 Common YANG Data Types";
}
}
grouping l2-header {
description
"The Ethernet or TSN packet header information";
leaf source-mac-address {
type yang:mac-address;
description
"The source MAC address value of the Ethernet header.";
}
leaf destination-mac-address {
type yang:mac-address;
description
"The destination MAC address value of the Ethernet header.";
}
leaf ethertype {
type ethertypes:ethertype;
description
"The Ethernet packet type value of the Ethernet header.";
}
leaf vlan-id {
type dot1q-types:vlanid;
description
"The VLAN value of the Ethernet header.";
reference
"IEEE 802.1Qcx-2020.";
}
leaf pcp {
type dot1q-types:priority-type;
description
"The priority value of the Ethernet header.";
reference
"IEEE 802.1Qcx-2020.";
}
}
grouping destination-ip-port-identification {
description
"The TCP/UDP port(source/destination) identification
information.";
container destination-port {
uses packet-fields:port-range-or-operator;
}
}
grouping source-ip-port-identification {
description
"The TCP/UDP port(source/destination) identification
information.";
container source-port {
uses packet-fields:port-range-or-operator;
}
}
grouping ip-flow-identification {
description
"The IPv4/IPv6 packet header identification information.";
leaf src-ip-prefix {
type inet:ip-prefix;
description
"The source IP prefix";
reference
"RFC 6021 Common YANG Data Types";
}
leaf dest-ip-prefix {
type inet:ip-prefix;
description
"The destination IP prefix";
reference
"RFC 6021 Common YANG Data Types";
}
leaf protocol-next-header {
type uint8;
description
"Internet Protocol number. Refers to the protocol of the
payload. In IPv6, this field is known as 'next-header', and
if extension headers are present, the protocol is present in
the 'upper-layer' header.";
reference
"RFC 791: Internet Protocol
RFC 8200: Internet Protocol, Version 6 (IPv6) Specification.";
}
leaf dscp {
type inet:dscp;
description
"The traffic class value in the header.";
reference
"RFC 6021 Common YANG Data Types";
}
leaf flow-label {
type inet:ipv6-flow-label;
description
"The flow label value of the header.";
reference
"RFC 6021 Common YANG Data Types";
}
uses source-ip-port-identification;
uses destination-ip-port-identification;
leaf ipsec-spi {
type ipsec-spi;
description
"IPsec Security Parameters Index of the Security Association.";
reference
"IETF RFC 6071 IP Security (IPsec) and Internet Key Exchange
(IKE) Document Roadmap.";
}
}
grouping mpls-flow-identification {
description
"The MPLS packet header identification information.";
choice label-space {
description
"Designates the label space being used.";
case context-label-space {
uses rt-types:mpls-label-stack;
}
case platform-label-space {
leaf label {
type rt-types:mpls-label;
}
}
}
}
grouping data-flow-spec {
description
"app-flow identification";
choice data-flow-type {
case tsn-app-flow {
uses l2-header;
}
case ip-app-flow {
uses ip-flow-identification;
}
case mpls-app-flow {
uses mpls-flow-identification;
}
}
}
grouping detnet-flow-spec {
description
"detnet-flow identification.";
choice detnet-flow-type {
case ip-detnet-flow {
uses ip-flow-identification;
}
case mpls-detnet-flow {
uses mpls-flow-identification;
}
}
}
grouping app-flows-ref {
description
"Incoming or outgoing app-flow reference group.";
leaf-list flow-list{
type app-flow-ref;
description
"List of ingress or egress app-flows.";
}
}
grouping service-sub-layer-ref {
description
"Incoming or outgoing service sub-layer reference group.";
leaf-list service-sub-layer {
type service-sub-layer-ref;
description
"List of incoming or outgoing service sub-layers that have
to aggregate or disaggregate.";
}
}
grouping forwarding-sub-layer-ref {
description
"Incoming or outgoing forwarding sub-layer reference group.";
leaf-list forwarding-sub-layer {
type forwarding-sub-layer-ref;
description
"List of incoming or outgoing forwarding sub-layers that
have to aggregate or disaggregate.";
}
}
grouping detnet-header {
description
"DetNet header info for DetNet encapsulation or swap.";
choice header-type {
case detnet-mpls-header {
description
"MPLS label stack for DetNet MPLS encapsulation or
forwarding.";
uses rt-types:mpls-label-stack;
}
case detnet-ip-header {
description
"IPv4/IPv6 packet header for DetNet IP encapsulation.";
uses ip-header;
}
}
}
grouping detnet-app-next-hop-content {
description
"Generic parameters of DetNet next hops.";
choice next-hop-options {
mandatory true;
description
"Options for next hops. It is expected that further cases
will be added through
augments from other modules, e.g., for recursive
next hops.";
container simple-next-hop {
description
"This case represents a simple next hop consisting of the
next-hop address and/or outgoing interface.
Modules for address families MUST augment this case with a
leaf containing a next-hop address of that address
family.";
leaf outgoing-interface {
type if:interface-ref;
}
choice flow-type {
case ip {
leaf next-hop-address {
type inet:ip-address;
}
}
case mpls {
uses rt-types:mpls-label-stack;
}
}
}
container next-hop-list {
description
"Container for multiple next hops.";
list next-hop {
key "hop-index";
description
"An entry in a next-hop list. Modules for address
families MUST augment this list with a leaf containing a
next-hop address of that address family.";
leaf hop-index {
type uint8;
description
"A user-specified identifier utilized to uniquely
reference the next-hop entry in the next-hop list.
The value of this index has no semantic meaning other
than for referencing the entry.";
}
leaf outgoing-interface {
type if:interface-ref;
description
"Name of the outgoing interface.";
}
choice flow-type {
case ip {
leaf next-hop-address {
type inet:ip-address;
}
}
case mpls {
uses rt-types:mpls-label-stack;
}
}
}
}
}
}
grouping detnet-forwarding-next-hop-content {
description
"Generic parameters of DetNet next hops.";
choice next-hop-options {
mandatory true;
description
"Options for next hops.
It is expected that further cases will be added through
augments from other modules, e.g., for recursive
next hops.";
container simple-next-hop {
description
"This case represents a simple next hop consisting of the
next-hop address and/or outgoing interface.
Modules for address families MUST augment this case with a
leaf containing a next-hop address of that address
family.";
leaf outgoing-interface {
type if:interface-ref;
}
choice flow-type {
case ip {
choice operation-type {
case ip-forwarding {
leaf next-hop-address {
type inet:ip-address;
}
}
case mpls-over-ip-encapsulation {
uses ip-header;
}
}
}
case mpls {
uses rt-types:mpls-label-stack;
}
}
}
container next-hop-list {
description
"Container for multiple next hops.";
list next-hop {
key "hop-index";
description
"An entry in a next-hop list. Modules for address
families MUST augment this list with a leaf containing a
next-hop address of that address family.";
leaf hop-index {
type uint8;
description
"The value of the index for a hop.";
}
leaf outgoing-interface {
type if:interface-ref;
}
choice flow-type {
case ip {
choice operation-type {
case ip-forwarding {
leaf next-hop-address {
type inet:ip-address;
}
}
case mpls-over-ip-encapsulation {
uses ip-header;
}
}
}
case mpls {
uses rt-types:mpls-label-stack;
}
}
}
}
}
}
container detnet {
list traffic-profile {
key "profile-name";
description
"A traffic profile.";
leaf profile-name {
type string;
description
"An Aggregation group ID. Zero means the service is not
part of a group.";
}
container traffic-requirements {
description
"FlowRequirements: defines the attributes of the App-flow
regarding bandwidth, latency, latency variation, loss, and
misordering tolerance.";
reference
"draft-ietf-detnet-flow-information-model Section 4.2";
leaf min-bandwidth {
type uint64;
units bps;
description
"MinBandwidth is the minimum bandwidth that has to be
guaranteed for the DetNet service. MinBandwidth is
specified in octets per second.";
}
leaf max-latency {
type uint32;
units nanoseconds;
description
"MaxLatency is the maximum latency from Ingress to
Egress(es) for a single packet of the DetNet flow.
MaxLatency is specified as an integer number of
nanoseconds.";
}
leaf max-latency-variation {
type uint32;
units nanoseconds;
description
"MaxLatencyVariation is the difference between the
minimum and the maximum end-to-end one-way latency.
MaxLatencyVariation is specified as an integer number of
nanoseconds.";
}
leaf max-loss {
type uint32;
description
"MaxLoss defines the maximum Packet Loss Ratio (PLR)
parameter for the DetNet service between the Ingress and
Egress(es) of the DetNet domain.";
}
leaf max-consecutive-loss-tolerance {
type uint32;
units packets;
description
"Some applications have special loss requirement, such
as MaxConsecutiveLossTolerance. The maximum consecutive
loss tolerance parameter describes the maximum number of
consecutive packets whose loss can be tolerated. The
maximum consecutive loss tolerance can be measured for
example based on sequence number.";
}
leaf max-misordering {
type uint32;
units packets;
description
"MaxMisordering describes the tolerable maximum number
of packets that can be received out of order. The
maximum allowed misordering can be measured for example
based on sequence number. The value zero for the
maximum allowed misordering indicates that in order
delivery is required, misordering cannot be tolerated.";
}
}
container traffic-specification {
description
"traffic-specification specifies how the Source transmits
packets for the flow. This is the promise/request of the
Source to the network. The network uses this traffic
specification to allocate resources and adjust queue
parameters in network nodes.";
reference
"draft-ietf-detnet-flow-information-model Section 4.1";
leaf interval {
type uint32;
units nanoseconds;
description
"The period of time in which the traffic
specification cannot be exceeded.";
}
leaf max-packets-per-interval {
type uint32;
description
"The maximum number of packets that the
source will transmit in one interval.";
}
leaf max-payload-size {
type uint32;
description
"The maximum payload size that the source
will transmit.";
}
leaf average-packets-per-interval {
type uint32;
description
"The average number of packets that the
source will transmit in one interval.";
}
leaf average-payload-size {
type uint32;
description
"The average payload size that the
source will transmit.";
}
}
leaf-list member-applications {
type app-flow-ref;
config false;
description
"Applications attached to this profile.";
}
leaf-list member-services {
type service-sub-layer-ref;
config false;
description
"Services attached to this profile.";
}
leaf-list member-forwarding-sublayers {
type forwarding-sub-layer-ref;
config false;
description
"Forwarding sub-layer attached to this profile.";
}
}
container app-flows {
description
"The DetNet app-flow configuration.";
reference
"draft-ietf-detnet-flow-information-model Section Section 4.1";
list app-flow {
key "name";
description
"A unique (management) identifier of the App-flow.";
leaf name {
type string;
description
"A unique (management) identifier of the App-flow.";
reference
"draft-ietf-detnet-flow-information-model
Sections 4.1, 5.1";
}
leaf app-flow-bidir-congruent {
type boolean;
description
"Defines the data path requirement of the App-flow
whether it must share the same data path and physical
path for both directions through the network, e.g., to
provide congruent paths in the two directions.";
reference
"draft-ietf-detnet-flow-information-model Section 4.2";
}
leaf outgoing-service {
type service-sub-layer-ref;
config false;
description
"Binding to this applications outgoing
service.";
}
leaf incoming-service {
type service-sub-layer-ref;
config false;
description
"Binding to this applications incoming service.";
}
leaf traffic-profile {
type traffic-profile-ref;
description
"The Traffic Profile for this group.";
}
container ingress {
// key "name"; This should be a list for aggregation
description
"Ingress DetNet application flows or a compound flow.";
leaf name {
type string;
description
"Ingress DetNet application.";
}
leaf app-flow-status {
type identityref {
base app-status;
}
config false;
description
"Status of ingress application flow.";
reference
"draft-ietf-detnet-flow-information-model Sections
4.1, 5.8";
}
leaf interface {
type if:interface-ref;
}
uses data-flow-spec;
} //End of app-ingress
container egress {
description
"Route's next-hop attribute.";
// key "name"; This should be a list for aggregation
leaf name {
type string;
description
"Egress DetNet application.";
}
choice application-type {
container Ethernet {
leaf Ethernet-place-holder {
type string;
description
"Place holder for matching Ethernet.";
}
}
container ip-mpls {
uses detnet-app-next-hop-content;
}
}
}
}
}
container service-sub-layer {
description
"The DetNet service sub-layer configuration.";
list service-sub-layer-list {
key "name";
description
"Services are indexed by name.";
leaf name {
type string;
description
"The name of the DetNet service sub-layer.";
}
leaf service-rank {
type uint8;
description
"The DetNet rank for this service.";
reference
"draft-ietf-detnet-flow-information-model Section 5.7.";
}
leaf traffic-profile {
type traffic-profile-ref;
description
"The Traffic Profile for this service.";
}
container service-protection {
leaf service-protection-type {
type service-protection-type;