blob: 513a61e7e82c115b71d3c5c95d7c5fbd3b67ee92 [file] [log] [blame]
Bharat saraswal45afe592017-03-19 23:34:32 +05301module ietf-l3vpn-svc {
2
3 namespace "urn:ietf:params:xml:ns:yang:ietf-l3vpn-svc";
4
5 prefix l3vpn-svc;
6
7 import yrt-ietf-inet-types {
8 prefix inet;
9 }
10
11 import yrt-ietf-yang-types {
12 prefix yang;
13 }
14
15 organization
16 "IETF L3SM Working Group";
17
18 contact
19 "WG List: <mailto:l3sm@ietf.org>
20
21 Editor:
22
23 ";
24
25 description
26 "The YANG module defines a generic service configuration
27 model for Layer 3 VPN common across all of the vendor
28 implementations.";
29
30 revision 2016-07-30 {
31 description
32 "Eliminated warnings";
33 reference
34 "draft-ietf-l3sm-l3vpn-service-yang-11";
35 }
36
37 revision 2016-07-05 {
38 description
39 "Draft text update";
40 reference
41 "draft-ietf-l3sm-l3vpn-service-yang-11";
42 }
43 revision 2016-06-27 {
44 description
45 "
46 * Removed templates
47 * Add site-network-access-type
48 * Add a leaf number-of-dynamic-address in case
49 of pe-dhcp addressing;
50
51 ";
52 reference "draft-ietf-l3sm-l3vpn-service-yang-10";
53 }
54 revision 2016-06-10 {
55 description
56 "Add site-vpn-flavor NNI";
57 reference "draft-ietf-l3sm-l3vpn-service-yang-09";
58 }
59 revision 2016-06-09 {
60 description
61 "Traffic protection moved to site level.
62 Decouple operational-requirements in two containers.
63 ";
64 reference "draft-ietf-l3sm-l3vpn-service-yang-08";
65 }
66 revision 2016-06-06 {
67 description
68 "Set config false to actual-site-start and stop
69 Add a container before cloud-access list
70 Add a container before authorized-sites list
71 Add a container before denied-sites list
72 Modified access-diversity modeling
73 Replacing type placement diversity by an identity";
74 reference "draft-ietf-l3sm-l3vpn-service-yang-07";
75 }
76 revision 2016-04-19 {
77 description
78 "* remove reference to core routing model :
79 created new address family identities
80 * added features
81 * Modified bearer parameters
82 * Modified union for ipv4/ipv6 addresses to ip-address
83 type
84 * Add BSR parameters for multicast
85 * Add applications matching for QoS classification
86 ";
87 reference "draft-ietf-l3sm-l3vpn-service-yang-06";
88 }
89 revision 2016-04-05 {
90 description
91 "
92 * Added linecard diverse for site diversity
93 * Added a new diversity enum in placement-diversity : none
94 * Added state to site location
95
96 ";
97 reference "";
98 }
99 revision 2016-03-11 {
100 description
101 "
102 * Modify VPN policy and creating a vpn-policy-list
103 * Add VPN policy reference and VPN ID reference
104 under site-network-access
105 ";
106 reference "draft-ietf-l3sm-l3vpn-service-yang-05";
107 }
108 revision 2016-01-04 {
109 description
110 "
111 * Add extranet-vpn container in vpn-svc
112 * Creating top level containers
113 * Refine groupings
114 * Added site-vpn-flavor
115 ";
116 reference "draft-ietf-l3sm-l3vpn-service-yang-03";
117 }
118 revision 2016-01-04 {
119 description
120 "
121 * qos-profile moved to choice
122 * vpn leaf moved to vpn-id in vpn-policy
123 * added ordered-by user to qos classification list
124 * moved traffic protection to access availability
125 * creating a choice in matching filter for VPN policy
126 * added dot1p matching field in flow-definition
127 ";
128 reference "";
129 }
130 revision 2015-12-07 {
131 description
132 "
133 * A site is now a collection of site-accesses.
134 This was introduced to support M to N availability.
135 * Site-availability has been removed, replaced by
136 availability parameters under site-accesses
137 * Added transport-constraints within vpn-svc
138 ";
139 reference "draft-ietf-l3sm-l3vpn-service-yang-02";
140 }
141 revision 2015-11-03 {
142 description "
143 * Add ToS support in match-flow
144 * nexthop in cascaded lan as mandatory
145 * customer-specific-info deleted and moved to routing
146 protocols
147 * customer-lan-connection modified : need prefix and CE address
148 * add choice in managing PE-CE addressing
149 * Simplifying traffic protection
150 ";
151 reference "";
152 }
153 revision 2015-09-10 {
154 description "
155 * Refine groupings for vpn-svc
156 * Removed name in vpn-svc
157 * id in vpn-svc moved to string
158 * Rename id in vpn-svc to vpn-id
159 * Changed key of vpn-svc list to vpn-id
160 * Add DSCP support in flow definition
161 ";
162 reference "";
163 }
164 revision 2015-08-07 {
165 description
166 "
167 Multicast :
168 * Removed ACL from security
169 * Add FW for site and cloud access
170 ";
171 reference "";
172 }
173 revision 2015-08-05 {
174 description
175 "
176 Multicast :
177 * Removed anycast-rp identity as discovery mechanism
178 * Added rp-group mappings for multicast
179 * Added flag for provider managed RP.
180 ";
181 reference "";
182 }
183 revision 2015-08-03 {
184 description
185 " * Creating multiple reusable groupings
186 * Added mpls leaf in vpn-svc for carrier's carrier case
187 * Modify identity single to single-site
188 * Modify site-type to site-role and also child identities.
189 * Creating OAM container under site and moved BFD in.
190 * Creating flow-definition grouping to be reused
191 in ACL, QoS ...
192 * Simplified VPN policy.
193 * Adding multicast static group to RP mappings.
194 * Removed native-vpn and site-role from global site
195 cfg, now managed within the VPN policy.
196 * Creating a separate list for site templates.
197 ";
198 reference "draft-ietf-l3sm-l3vpn-service-yang-01";
199 }
200 revision 2015-07-02 {
201 reference "draft-ietf-l3sm-l3vpn-service-yang-00";
202 }
203 revision 2015-04-24 {
204 description "
205 * Add encryption parameters
206 * Adding holdtime for BFD.
207 * Add postal address in location
208 ";
209 reference "draft-lstd-l3sm-l3vpn-service-yang-00";
210 }
211 revision 2015-02-05 {
212 description "Initial revision.";
213 reference "draft-l3vpn-service-yang-00";
214 }
215
216 /* Features */
217
218 feature cloud-access {
219 description
220 "Allow VPN to connect to a Cloud Service
221 provider.";
222 }
223 feature multicast {
224 description
225 "Enables multicast capabilities in a VPN";
226 }
227 feature ipv4 {
228 description
229 "Enables IPv4 support in a VPN";
230 }
231 feature ipv6 {
232 description
233 "Enables IPv6 support in a VPN";
234 }
235 feature carrierscarrier {
236 description
237 "Enables support of carrier's carrier";
238 }
239 feature traffic-engineering {
240 description
241 "Enables support of transport constraint.";
242 }
243 feature traffic-engineering-multicast {
244 description
245 "Enables support of transport constraint
246 for multicast.";
247 }
248 feature extranet-vpn {
249 description
250 "Enables support of extranet VPNs";
251 }
252 feature site-diversity {
253 description
254 "Enables support of site diversity constraints";
255 }
256 feature encryption {
257 description
258 "Enables support of encryption";
259 }
260 feature qos {
261 description
262 "Enables support of Class of Services";
263 }
264 feature qos-custom {
265 description
266 "Enables support of custom qos profile";
267 }
268 feature rtg-bgp {
269 description
270 "Enables support of BGP routing protocol.";
271 }
272 feature rtg-rip {
273 description
274 "Enables support of RIP routing protocol.";
275 }
276 feature rtg-ospf {
277 description
278 "Enables support of OSPF routing protocol.";
279 }
280 feature rtg-ospf-sham-link {
281 description
282 "Enables support of OSPF sham-links.";
283 }
284 feature rtg-vrrp {
285 description
286 "Enables support of VRRP routing protocol.";
287 }
288 feature fast-reroute {
289 description
290 "Enables support of Fast Reroute.";
291 }
292 feature bfd {
293 description
294 "Enables support of BFD.";
295 }
296 feature always-on {
297 description
298 "Enables support for always-on access
299 constraint.";
300 }
301 feature requested-type {
302 description
303 "Enables support for requested-type access
304 constraint.";
305 }
306 feature bearer-reference {
307 description
308 "Enables support for bearer-reference access
309 constraint.";
310 }
311
312 /* Typedefs */
313
314 typedef svc-id {
315 type string;
316 description
317 "Defining a type of service component
318 identificators.";
319 }
320
321 typedef template-id {
322 type string;
323 description
324 "Defining a type of service template
325 identificators.";
326 }
327
328 /* Identities */
329
330 identity site-network-access-type {
331 description
332 "Base identity for site-network-access type";
333 }
334 identity point-to-point {
335 base site-network-access-type;
336 description
337 "Identity for point-to-point connection";
338 }
339 identity multipoint {
340 base site-network-access-type;
341 description
342 "Identity for multipoint connection
343 Example : ethernet broadcast segment";
344 }
345 identity placement-diversity {
346 description
347 "Base identity for site placement
348 constraints";
349 }
350 identity pe-diverse {
351 base placement-diversity;
352 description
353 "Identity for PE diversity";
354 }
355 identity pop-diverse {
356 base placement-diversity;
357 description
358 "Identity for POP diversity";
359 }
360 identity linecard-diverse {
361 base placement-diversity;
362 description
363 "Identity for linecard diversity";
364 }
365 identity same-pe {
366 base placement-diversity;
367 description
368 "Identity for having sites connected
369 on the same PE";
370 }
371 identity same-bearer {
372 base placement-diversity;
373 description
374 "Identity for having sites connected
375 using the same bearer";
376 }
377 identity customer-application {
378 description
379 "Base identity for customer application";
380 }
381 identity web {
382 base customer-application;
383 description
384 "Identity for web application (e.g. HTTP,HTTPS)";
385 }
386 identity mail {
387 base customer-application;
388 description
389 "Identity for mail applications";
390 }
391 identity file-transfer {
392 base customer-application;
393 description
394 "Identity for file transfer applications (
395 e.g. FTP, SFTP, ...)";
396 }
397 identity database {
398 base customer-application;
399 description
400 "Identity for database applications";
401 }
402 identity social {
403 base customer-application;
404 description
405 "Identity for social network applications";
406 }
407 identity games {
408 base customer-application;
409 description
410 "Identity for gaming applications";
411 }
412 identity p2p {
413 base customer-application;
414 description
415 "Identity for peer to peer applications";
416 }
417 identity network-management {
418 base customer-application;
419 description
420 "Identity for management applications (e.g. telnet
421 syslog, snmp ...)";
422 }
423 identity voice {
424 base customer-application;
425 description
426 "Identity for voice applications";
427 }
428 identity video {
429 base customer-application;
430 description
431 "Identity for video conference applications";
432 }
433 identity address-family {
434 description
435 "Base identity for an address family.";
436 }
437 identity ipv4 {
438 base address-family;
439 description
440 "Identity for IPv4 address family.";
441 }
442 identity ipv6 {
443 base address-family;
444 description
445 "Identity for IPv6 address family.";
446 }
447 identity site-vpn-flavor {
448 description
449 "Base identity for the site VPN service flavor.";
450 }
451 identity site-vpn-flavor-single {
452 base site-vpn-flavor;
453 description
454 "Base identity for the site VPN service flavor.
455 Used when the site belongs to only one VPN.";
456 }
457 identity site-vpn-flavor-multi {
458 base site-vpn-flavor;
459 description
460 "Base identity for the site VPN service flavor.
461 Used when a logical connection of a site
462 belongs to multiple VPNs.";
463 }
464 identity site-vpn-flavor-sub {
465 base site-vpn-flavor;
466 description
467 "Base identity for the site VPN service flavor.
468 Used when a site has multiple logical connections.
469 Each of the connection may belong to different
470 multiple VPNs.";
471 }
472 identity site-vpn-flavor-nni {
473 base site-vpn-flavor;
474 description
475 "Base identity for the site VPN service flavor.
476 Used to describe a NNI option A connection.";
477 }
478 identity transport-constraint {
479 description
480 "Base identity for transport constraint.";
481 }
482 identity tc-latency {
483 base transport-constraint;
484 description
485 "Base identity for transport constraint
486 based on latency.";
487 }
488 identity tc-jitter {
489 base transport-constraint;
490 description
491 "Base identity for transport constraint
492 based on jitter.";
493 }
494 identity tc-bandwidth {
495 base transport-constraint;
496 description
497 "Base identity for transport constraint
498 based on bandwidth.";
499 }
500 identity tc-path-diversity {
501 base transport-constraint;
502 description
503 "Base identity for transport constraint
504 based on path diversity.";
505 }
506 identity tc-site-diversity {
507 base transport-constraint;
508 description
509 "Base identity for transport constraint
510 based on site diversity.";
511 }
512 identity management {
513 description
514 "Base identity for site management scheme.";
515 }
516 identity co-managed {
517 base management;
518 description
519 "Base identity for comanaged site.";
520 }
521 identity customer-managed {
522 base management;
523 description
524 "Base identity for customer managed site.";
525 }
526 identity provider-managed {
527 base management;
528 description
529 "Base identity for provider managed site.";
530 }
531 identity address-allocation-type {
532 description
533 "Base identity for address-allocation-type
534 for PE-CE link.";
535 }
536 identity pe-dhcp {
537 base address-allocation-type;
538 description
539 "PE router provides DHCP service to CE.";
540 }
541 identity static-address {
542 base address-allocation-type;
543 description
544 "PE-CE addressing is static.";
545 }
546 identity slaac {
547 base address-allocation-type;
548 description
549 "Use IPv6 SLAAC.";
550 }
551 identity site-role {
552 description
553 "Base identity for site type.";
554 }
555 identity any-to-any-role {
556 base site-role;
557 description
558 "Site in a any to any IPVPN.";
559 }
560 identity spoke-role {
561 base site-role;
562 description
563 "Spoke Site in a Hub & Spoke IPVPN.";
564 }
565 identity hub-role {
566 base site-role;
567 description
568 "Hub Site in a Hub & Spoke IPVPN.";
569 }
570 identity vpn-topology {
571 description
572 "Base identity for VPN topology.";
573 }
574 identity any-to-any {
575 base vpn-topology;
576 description
577 "Identity for any to any VPN topology.";
578 }
579 identity hub-spoke {
580 base vpn-topology;
581 description
582 "Identity for Hub'n'Spoke VPN topology.";
583 }
584 identity hub-spoke-disjoint {
585 base vpn-topology;
586 description
587 "Identity for Hub'n'Spoke VPN topology
588 where Hubs cannot talk between each other.";
589 }
590 identity multicast-tree-type {
591 description
592 "Base identity for multicast tree type.";
593 }
594 identity ssm-tree-type {
595 base multicast-tree-type;
596 description
597 "Identity for SSM tree type.";
598 }
599 identity asm-tree-type {
600 base multicast-tree-type;
601 description
602 "Identity for ASM tree type.";
603 }
604 identity bidir-tree-type {
605 base multicast-tree-type;
606 description
607 "Identity for BiDir tree type.";
608 }
609 identity multicast-rp-discovery-type {
610 description
611 "Base identity for rp discovery type.";
612 }
613 identity auto-rp {
614 base multicast-rp-discovery-type;
615 description
616 "Base identity for auto-rp discovery type.";
617 }
618 identity static-rp {
619 base multicast-rp-discovery-type;
620 description
621 "Base identity for static type.";
622 }
623 identity bsr-rp {
624 base multicast-rp-discovery-type;
625 description
626 "Base identity for BDR discovery type.";
627 }
628 identity routing-protocol-type {
629 description
630 "Base identity for routing-protocol type.";
631 }
632 identity ospf {
633 base routing-protocol-type;
634 description
635 "Identity for OSPF protocol type.";
636 }
637 identity bgp {
638 base routing-protocol-type;
639 description
640 "Identity for BGP protocol type.";
641 }
642 identity static {
643 base routing-protocol-type;
644 description
645 "Identity for static routing protocol type.";
646 }
647 identity rip {
648 base routing-protocol-type;
649 description
650 "Identity for RIP protocol type.";
651 }
652 identity rip-ng {
653 base routing-protocol-type;
654 description
655 "Identity for RIPng protocol type.";
656 }
657 identity vrrp {
658 base routing-protocol-type;
659 description
660 "Identity for VRRP protocol type.
661 This is to be used when LAn are directly connected
662 to provider Edge routers.";
663 }
664 identity direct {
665 base routing-protocol-type;
666 description
667 "Identity for direct protocol type.
668 .";
669 }
670 identity protocol-type {
671 description
672 "Base identity for protocol field type.";
673 }
674 identity tcp {
675 base protocol-type;
676 description
677 "TCP protocol type.";
678 }
679 identity udp {
680 base protocol-type;
681 description
682 "UDP protocol type.";
683 }
684 identity icmp {
685 base protocol-type;
686 description
687 "icmp protocol type.";
688 }
689 identity icmp6 {
690 base protocol-type;
691 description
692 "icmp v6 protocol type.";
693 }
694 identity gre {
695 base protocol-type;
696 description
697 "GRE protocol type.";
698 }
699 identity ipip {
700 base protocol-type;
701 description
702 "IPinIP protocol type.";
703 }
704 identity hop-by-hop {
705 base protocol-type;
706 description
707 "Hop by Hop IPv6 header type.";
708 }
709 identity routing {
710 base protocol-type;
711 description
712 "Routing IPv6 header type.";
713 }
714 identity esp {
715 base protocol-type;
716 description
717 "ESP header type.";
718 }
719 identity ah {
720 base protocol-type;
721 description
722 "AH header type.";
723 }
724
725 /* Groupings */
726
727 grouping vpn-service-cloud-access {
728 container cloud-accesses {
729 list cloud-access {
730 if-feature cloud-access;
731 key cloud-identifier;
732
733 leaf cloud-identifier {
734 type string;
735 description
736 "Identification of cloud service. Local
737 admin meaning.";
738 }
739 container authorized-sites {
740 list authorized-site {
741 key site-id;
742
743 leaf site-id {
744 type leafref {
745 path "/l3vpn-svc/sites/site/site-id";
746 }
747 description
748 "Site ID.";
749 }
750 description
751 "List of authorized sites.";
752 }
753 description
754 "Configuration of authorized sites";
755 }
756 container denied-sites {
757 list denied-site {
758 key site-id;
759
760 leaf site-id {
761 type leafref {
762 path "/l3vpn-svc/sites/site/site-id";
763 }
764 description
765 "Site ID.";
766 }
767 description
768 "List of denied sites.";
769 }
770 description
771 "Configuration of denied sites";
772 }
773 leaf nat-enabled {
774 type boolean;
775 description
776 "Control if NAT is required or not.";
777 }
778 leaf customer-nat-address {
779 type inet:ipv4-address;
780 description
781 "NAT address to be used in case of public
782 or shared cloud.
783 This is to be used in case customer is providing
784 the public address.";
785 }
786 description
787 "Cloud access configuration.";
788 }
789 description
790 "Container for cloud access configurations";
791 }
792 description
793 "grouping for vpn cloud definition";
794 }
795
796 grouping multicast-rp-group-cfg {
797 choice group-format {
798 case startend {
799 leaf group-start {
800 type inet:ip-address;
801 description
802 "First group address.";
803 }
804 leaf group-end {
805 type inet:ip-address;
806 description
807 "Last group address.";
808 }
809 }
810 case singleaddress {
811 leaf group-address {
812 type inet:ip-address;
813 description
814 "Group address";
815 }
816 }
817 description
818 "Choice for group format.";
819 }
820 description
821 "Definition of groups for
822 RP to group mapping.";
823 }
824
825 grouping vpn-service-multicast {
826 container multicast {
827 if-feature multicast;
828 leaf enabled {
829 type boolean;
830 default false;
831 description
832 "Enable multicast.";
833 }
834 container customer-tree-flavors {
835 list tree-flavor {
836 key type;
837
838 leaf type {
839 type identityref {
840 base multicast-tree-type;
841 }
842 description
843 "Type of tree to be used.";
844 }
845 description
846 "List of tree flavors.";
847 }
848 description
849 "Type of trees used by customer.";
850 }
851 container rp {
852 container rp-group-mappings {
853 list rp-group-mapping {
854 key "id";
855
856 leaf id {
857 type uint16;
858 description
859 "Unique identifier for the mapping.";
860 }
861 container provider-managed {
862 leaf enabled {
863 type boolean;
864 default false;
865 description
866 "Set to true, if the RP must be a
867 provider
868 managed node.
869 Set to false, if it is a customer
870 managed node.";
871 }
872
873 leaf rp-redundancy {
874 when "../enabled = 'true'" {
875 description
876 "Relevant when RP
877 is provider managed.";
878 }
879 type boolean;
880 default false;
881 description
882 "If true, redundancy
883 mechanism for RP is required.";
884 }
885 leaf optimal-traffic-delivery {
886 when "../enabled = 'true'" {
887 description
888 "Relevant when RP
889 is provider managed.";
890 }
891 type boolean;
892 default false;
893 description
894 "If true, SP must ensure
895 that traffic uses an optimal path.";
896 }
897 description
898 "Parameters for provider managed RP.";
899 }
900
901 leaf rp-address {
902 when "../provider-managed/enabled='false'" {
903 description
904 "Relevant when RP
905 is provider managed.";
906 }
907 type inet:ip-address;
908 description
909 "Defines the address of the
910 RendezvousPoint.
911 Used if RP is customer managed.";
912 }
913
914 container groups {
915 list group {
916 key id;
917
918 leaf id {
919 type uint16;
920 description
921 "Identifier for the group.";
922 }
923 uses multicast-rp-group-cfg;
924 description
925 "List of groups.";
926 }
927 description
928 "Multicast groups associated with RP.";
929 }
930
931 description
932 "List of RP to group mappings.";
933 }
934 description
935 "RP to group mappings.";
936 }
937 container rp-discovery {
938 leaf rp-discovery-type {
939 type identityref {
940 base multicast-rp-discovery-type;
941 }
942 default static-rp;
943 description
944 "Type of RP discovery used.";
945 }
946 container bsr-candidates {
947 when "../rp-discovery-type='bsr-rp'" {
948 description
949 "Only applicable if discovery type
950 is BSR-RP";
951 }
952 list bsr-candidate {
953 key address;
954
955 leaf address {
956 type inet:ip-address;
957 description
958 "Address of BSR candidate";
959 }
960
961 description
962 "List of customer BSR candidates";
963 }
964 description
965 "Customer BSR candidates address";
966 }
967 description
968 "RP discovery parameters";
969 }
970
971 description
972 "RendezvousPoint parameters.";
973 }
974 description
975 "Multicast global parameters for the VPN service.";
976 }
977 description
978 "grouping for multicast vpn definition";
979 }
980
981 grouping vpn-service-mpls {
982 leaf carrierscarrier {
983 if-feature carrierscarrier;
984 type boolean;
985 default false;
986 description
987 "The VPN is using Carrier's Carrier,
988 and so MPLS is required.";
989 }
990 description
991 "grouping for mpls CsC definition";
992 }
993
994 grouping customer-location-info {
995 container location {
996 leaf address {
997 type string;
998 description
999 "Address (number and street)
1000 of the site.";
1001
1002 }
1003 leaf zip-code {
1004 type string;
1005 description
1006 "ZIP code of the site.";
1007 }
1008 leaf state {
1009 type string;
1010 description
1011 "State of the site.
1012 This leaf can also be used
1013 to describe a region
1014 for country who does not have
1015 states.
1016 ";
1017 }
1018 leaf city {
1019 type string;
1020 description
1021 "City of the site.";
1022 }
1023 leaf country-code {
1024 type string;
1025 description
1026 "Country of the site.";
1027 }
1028 description
1029 "Location of the site.";
1030 }
1031 description
1032 "This grouping defines customer location
1033 parameters";
1034 }
1035
1036 grouping site-diversity {
1037 container site-diversity {
1038
1039 container groups {
1040 list group {
1041 key group-id;
1042
1043 leaf group-id {
1044 type string;
1045 }
1046 }
1047 }
1048 }
1049 }
1050
1051 grouping access-diversity {
1052 container access-diversity {
1053 if-feature site-diversity;
1054 container groups {
1055 list group {
1056 key group-id;
1057
1058 leaf group-id {
1059 type string;
1060 description
1061 "Group-id the site network access
1062 is belonging to";
1063 }
1064 description
1065 "List of group-id";
1066 }
1067 description
1068 "Groups the site network access
1069 is belonging to";
1070 }
1071 container constraints {
1072 list constraint {
1073 key constraint-type;
1074
1075 leaf constraint-type {
1076 type identityref {
1077 base placement-diversity;
1078 }
1079 description
1080 "Diversity constraint type.";
1081 }
1082 container target {
1083 choice target-flavor {
1084 case id {
1085 list group {
1086 key group-id;
1087
1088 leaf group-id {
1089 type string;
1090 description
1091 "The constraint will apply
1092 against this particular
1093 group-id";
1094 }
1095 description
1096 "List of groups";
1097 }
1098 }
1099 case all-accesses {
1100 leaf all-other-accesses {
1101 type empty;
1102 description
1103 "The constraint will apply
1104 against all other site network
1105 access
1106 of this site";
1107 }
1108 }
1109 case all-groups {
1110 leaf all-other-groups {
1111 type empty;
1112 description
1113 "The constraint will apply
1114 against all other groups the
1115 customer
1116 is managing";
1117 }
1118 }
1119 description
1120 "Choice for the group definition";
1121 }
1122 description
1123 "The constraint will apply against
1124 this list of groups";
1125 }
1126 description
1127 "List of constraints";
1128 }
1129 description
1130 "Constraints for placing this site
1131 network access";
1132 }
1133
1134 description
1135 "Diversity parameters.";
1136 }
1137 description
1138 "This grouping defines access diversity
1139 parameters";
1140 }
1141
1142 grouping operational-requirements {
1143 leaf requested-site-start {
1144 type yang:date-and-time;
1145 description
1146 "Optional leaf indicating requested date
1147 and time
1148 when the service at a particular site is
1149 expected
1150 to start";
1151 }
1152
1153 leaf requested-site-stop {
1154 type yang:date-and-time;
1155 description
1156 "Optional leaf indicating requested date
1157 and time
1158 when the service at a particular site is
1159 expected
1160 to stop";
1161 }
1162 description
1163 "This grouping defines some operational parameters
1164 parameters";
1165 }
1166
1167 grouping operational-requirements-ops {
1168 leaf actual-site-start {
1169 type yang:date-and-time;
1170 config false;
1171 description
1172 "Optional leaf indicating actual date
1173 and time
1174 when the service at a particular site
1175 actually
1176 started";
1177 }
1178 leaf actual-site-stop {
1179 type yang:date-and-time;
1180 config false;
1181 description
1182 "Optional leaf indicating actual date
1183 and time
1184 when the service at a particular site
1185 actually
1186 stopped";
1187 }
1188 description
1189 "This grouping defines some operational parameters
1190 parameters";
1191 }
1192
1193 grouping flow-definition {
1194 container match-flow {
1195 leaf dscp {
1196 type uint8 {
1197 range "0 .. 63";
1198 }
1199 description
1200 "DSCP value.";
1201 }
1202 leaf tos {
1203 type uint8 {
1204 range "0 .. 254";
1205 }
1206 description
1207 "TOS value.";
1208 }
1209 leaf dot1p {
1210 type uint8 {
1211 range "0 .. 7";
1212 }
1213 description
1214 "802.1p matching.";
1215 }
1216 leaf ipv4-src-prefix {
1217 type inet:ipv4-prefix;
1218 description
1219 "Match on IPv4 src address.";
1220 }
1221 leaf ipv6-src-prefix {
1222 type inet:ipv6-prefix;
1223 description
1224 "Match on IPv6 src address.";
1225 }
1226 leaf ipv4-dst-prefix {
1227 type inet:ipv4-prefix;
1228 description
1229 "Match on IPv4 dst address.";
1230 }
1231 leaf ipv6-dst-prefix {
1232 type inet:ipv6-prefix;
1233 description
1234 "Match on IPv6 dst address.";
1235 }
1236 leaf l4-src-port {
1237 type uint16;
1238 description
1239 "Match on layer 4 src port.";
1240 }
1241 leaf l4-dst-port {
1242 type uint16;
1243 description
1244 "Match on layer 4 dst port.";
1245 }
1246 leaf protocol-field {
1247 type union {
1248 type uint8;
1249 type identityref {
1250 base protocol-type;
1251 }
1252 }
1253 description
1254 "Match on IPv4 protocol or
1255 Ipv6 Next Header
1256 field.";
1257 }
1258
1259 description
1260 "Describe flow matching
1261 criterions.";
1262 }
1263 description
1264 "Flow definition based on criteria.";
1265 }
1266
1267 grouping site-service-basic {
1268 leaf svc-input-bandwidth {
1269 type uint32;
1270 units bps;
1271 description
1272 "From the PE perspective, the service input
1273 bandwidth of the connection.";
1274 }
1275 leaf svc-output-bandwidth {
1276 type uint32;
1277 units bps;
1278 description
1279 "From the PE perspective, the service output
1280 bandwidth of the connection.";
1281 }
1282 leaf svc-mtu {
1283 type uint16;
1284 units bytes;
1285 description
1286 "MTU at service level.
1287 If the service is IP,
1288 it refers to the IP MTU.";
1289 }
1290 description
1291 "Defines basic service parameters for a site.";
1292 }
1293
1294 grouping site-protection {
1295 container traffic-protection {
1296 if-feature fast-reroute;
1297 leaf enabled {
1298 type boolean;
1299 description
1300 "Enables
1301 traffic protection of access link.";
1302 }
1303
1304 description
1305 "Fast reroute service parameters
1306 for the site.";
1307 }
1308 description
1309 "Defines protection service parameters for a site.";
1310 }
1311
1312 grouping site-service-mpls {
1313 container carrierscarrier {
1314 if-feature carrierscarrier;
1315 leaf signalling-type {
1316 type enumeration {
1317 enum "ldp" {
1318 description
1319 "Use LDP as signalling
1320 protocol between PE and CE.";
1321 }
1322 enum "bgp" {
1323 description
1324 "Use BGP 3107 as signalling
1325 protocol between PE and CE.
1326 In this case, bgp must be also
1327 configured
1328 as routing-protocol.
1329 ";
1330 }
1331 }
1332 description
1333 "MPLS signalling type.";
1334 }
1335 description
1336 "This container is used when customer provides
1337 MPLS based services.
1338 This is used in case of Carrier's
1339 Carrier.";
1340 }
1341 description
1342 "Defines MPLS service parameters for a site.";
1343 }
1344
1345 grouping site-service-qos-profile {
1346 container qos {
1347 if-feature qos;
1348 container qos-classification-policy {
1349 list rule {
1350 key id;
1351 ordered-by user;
1352
1353 leaf id {
1354 type uint16;
1355 description
1356 "ID of the rule.";
1357 }
1358
1359 choice match-type {
1360 case match-flow {
1361 uses flow-definition;
1362 }
1363 case match-application {
1364 leaf match-application {
1365 type identityref {
1366 base customer-application;
1367 }
1368 description
1369 "Defines the application
1370 to match.";
1371 }
1372 }
1373 description
1374 "Choice for classification";
1375 }
1376
1377 leaf target-class-id {
1378 type string;
1379 description
1380 "Identification of the
1381 class of service.
1382 This identifier is internal to
1383 the administration.";
1384 }
1385
1386 description
1387 "List of marking rules.";
1388 }
1389 description
1390 "Need to express marking rules ...";
1391 }
1392 container qos-profile {
1393
1394 choice qos-profile {
1395 description
1396 "Choice for QoS profile.
1397 Can be standard profile or custom.";
1398 case standard {
1399 leaf profile {
1400 type string;
1401 description
1402 "QoS profile to be used";
1403 }
1404 }
1405 case custom {
1406 container classes {
1407 if-feature qos-custom;
1408 list class {
1409 key class-id;
1410
1411 leaf class-id {
1412 type string;
1413 description
1414 "Identification of the
1415 class of service.
1416 This identifier is internal to
1417 the administration.";
1418 }
1419 leaf rate-limit {
1420 type uint8;
1421 units percent;
1422 description
1423 "To be used if class must
1424 be rate
1425 limited. Expressed as
1426 percentage of the svc-bw.";
1427 }
1428 leaf priority-level {
1429 type uint8;
1430 description
1431 "Defines the level of the
1432 class in
1433 term of priority queueing.
1434 The higher the level is the
1435 higher
1436 is the priority.";
1437 }
1438 leaf guaranteed-bw-percent {
1439 type uint8;
1440 units percent;
1441 description
1442 "To be used to define the
1443 guaranteed
1444 BW in percent of the svc-bw
1445 available at the priority-level.";
1446 }
1447 description
1448 "List of class of services.";
1449 }
1450 description
1451 "Container for
1452 list of class of services.";
1453 }
1454
1455 }
1456
1457 }
1458 description
1459 "Qos profile configuration.";
1460 }
1461 description
1462 "QoS configuration.";
1463 }
1464 description
1465 "This grouping defines QoS parameters
1466 for a site";
1467
1468 }
1469
1470 grouping site-security-authentication {
1471 container authentication {
1472 description
1473 "Authentication parameters";
1474 }
1475 description
1476 "This grouping defines authentication
1477 parameters
1478 for a site";
1479 }
1480
1481 grouping site-security-encryption {
1482 container encryption {
1483 if-feature encryption;
1484 leaf enabled {
1485 type boolean;
1486 description
1487 "If true, access encryption is required.";
1488 }
1489 leaf layer {
1490 type enumeration {
1491 enum layer2 {
1492 description
1493 "Encryption will occur at layer2.";
1494 }
1495 enum layer3 {
1496 description
1497 "IPSec is requested.";
1498 }
1499 }
1500 description
1501 "Layer on which encryption is applied.";
1502 }
1503 container encryption-profile {
1504 choice profile {
1505 case provider-profile {
1506 leaf profile-name {
1507 type string;
1508 description
1509 "Name of the SP profile
1510 to be applied.";
1511 }
1512 }
1513 case customer-profile {
1514 leaf algorithm {
1515 type string;
1516 description
1517 "Encryption algorithm to
1518 be used.";
1519 }
1520 choice key-type {
1521 case psk {
1522 leaf preshared-key {
1523 type string;
1524 description
1525 "Key coming from
1526 customer.";
1527 }
1528 }
1529 case pki {
1530
1531 }
1532 description
1533 "Type of keys to be used.";
1534 }
1535 }
1536 description
1537 "Choice of profile.";
1538 }
1539 description
1540 "Profile of encryption to be applied.";
1541 }
1542 description
1543 "Encryption parameters.";
1544 }
1545 description
1546 "This grouping defines encryption parameters
1547 for a site";
1548 }
1549
1550 grouping site-attachment-bearer {
1551 container bearer {
1552 container requested-type {
1553 if-feature requested-type;
1554 leaf requested-type { /* this leaf not used*/
1555 type string;
1556 description
1557 "Type of requested bearer Ethernet, DSL,
1558 Wireless ...
1559 Operator specific.";
1560 }
1561 leaf strict { /* this leaf not used*/
1562 type boolean;
1563 default false;
1564 description
1565 "define if the requested-type is a preference
1566 or a strict requirement.";
1567 }
1568 description
1569 "Container for requested type.";
1570 }
1571 leaf always-on { /* this leaf not used*/
1572 if-feature always-on;
1573 type boolean;
1574 default true;
1575 description
1576 "Request for an always on access type.
1577 This means no Dial access type for
1578 example.";
1579 }
1580 leaf bearer-reference { /* this leaf not used*/
1581 if-feature bearer-reference;
1582 type string;
1583 description
1584 "This is an internal reference for the
1585 service provider.
1586 Used ";
1587 }
1588 description
1589 "Bearer specific parameters.
1590 To be augmented.";
1591 }
1592 description
1593 "Defines physical properties of
1594 a site attachment.";
1595 }
1596
1597 grouping site-routing {
1598 container routing-protocols {
1599 list routing-protocol {
1600 key type;
1601
1602 leaf type {
1603 type identityref {
1604 base routing-protocol-type;
1605 }
1606 description
1607 "Type of routing protocol.";
1608 }
1609
1610/* From here nothing is used*/
1611 container ospf {
1612 when "../type = 'ospf'" {
1613 description
1614 "Only applies
1615 when protocol is OSPF.";
1616 }
1617 if-feature rtg-ospf;
1618 leaf-list address-family {
1619 type identityref {
1620 base address-family;
1621 }
1622 description
1623 "Address family to be activated.";
1624 }
1625 leaf area-address {
1626 type yang:dotted-quad;
1627 description
1628 "Area address.";
1629 }
1630 leaf metric {
1631 type uint16;
1632 description
1633 "Metric of PE-CE link.";
1634 }
1635 container sham-links {
1636 if-feature rtg-ospf-sham-link;
1637 list sham-link {
1638 key target-site;
1639
1640 leaf target-site {
1641 type svc-id;
1642 description
1643 "Target site for the sham link
1644 connection.
1645 The site is referred through it's ID.";
1646 }
1647 leaf metric {
1648 type uint16;
1649 description
1650 "Metric of the sham link.";
1651 }
1652 description
1653 "Creates a shamlink with another
1654 site";
1655 }
1656 description
1657 "List of Sham links";
1658 }
1659 description
1660 "OSPF specific configuration.";
1661 }
1662
1663 container bgp {
1664
1665 when "../type = 'bgp'" {
1666 description
1667 "Only applies when
1668 protocol is BGP.";
1669 }
1670 if-feature rtg-bgp;
1671 leaf autonomous-system {
1672 type uint32;
1673 description
1674 "AS number.";
1675 }
1676 leaf-list address-family {
1677 type identityref {
1678 base address-family;
1679 }
1680 description
1681 "Address family to be activated.";
1682 }
1683 description
1684 "BGP specific configuration.";
1685 }
1686 container static {
1687 when "../type = 'static'" {
1688 description
1689 "Only applies when protocol
1690 is static.";
1691 }
1692
1693 container cascaded-lan-prefixes {
1694 list ipv4-lan-prefixes {
1695 if-feature ipv4;
1696 key "lan next-hop";
1697
1698 leaf lan {
1699 type inet:ipv4-prefix;
1700 description
1701 "Lan prefixes.";
1702 }
1703 leaf lan-tag {
1704 type string;
1705 description
1706 "Internal tag to be used in vpn
1707 policies.";
1708 }
1709 leaf next-hop {
1710 type inet:ipv4-address;
1711 description
1712 "Nexthop address to use at customer
1713 side.";
1714 }
1715 description "
1716 List of LAN prefixes for
1717 the site.
1718 ";
1719 }
1720 list ipv6-lan-prefixes {
1721 if-feature ipv6;
1722 key "lan next-hop";
1723
1724 leaf lan {
1725 type inet:ipv6-prefix;
1726 description
1727 "Lan prefixes.";
1728 }
1729 leaf lan-tag {
1730 type string;
1731 description
1732 "Internal tag to be used
1733 in vpn policies.";
1734 }
1735 leaf next-hop {
1736 type inet:ipv6-address;
1737 description
1738 "Nexthop address to use at
1739 customer side.";
1740 }
1741 description "
1742 List of LAN prefixes for the site.
1743 ";
1744 }
1745 description
1746 "LAN prefixes from the customer.";
1747 }
1748 description
1749 "Static routing
1750 specific configuration.";
1751 }
1752 container rip {
1753
1754 when "../type = 'rip'" {
1755 description
1756 "Only applies when
1757 protocol is RIP.";
1758 }
1759 if-feature rtg-rip;
1760 leaf-list address-family {
1761 type identityref {
1762 base address-family;
1763 }
1764 description
1765 "Address family to be
1766 activated.";
1767 }
1768
1769 description
1770 "RIP routing specific
1771 configuration.";
1772 }
1773
1774
1775 container vrrp {
1776
1777 when "../type = 'vrrp'" {
1778 description
1779 "Only applies when
1780 protocol is VRRP.";
1781 }
1782 if-feature rtg-vrrp;
1783 leaf-list address-family {
1784 type identityref {
1785 base address-family;
1786 }
1787 description
1788 "Address family to be activated.";
1789 }
1790 description
1791 "VRRP routing specific configuration.";
1792 }
1793
1794
1795 description
1796 "List of routing protocols used
1797 on the site.
1798 Need to be augmented.";
1799 }
1800 description
1801 "Defines routing protocols.";
1802 }
1803 description
1804 "Grouping for routing protocols.";
1805 }
1806
1807 grouping site-attachment-ip-connection {
1808 container ip-connection {
1809 container ipv4 {
1810 if-feature ipv4;
1811 leaf address-allocation-type { /*this is not used*/
1812 type identityref {
1813 base address-allocation-type;
1814 }
1815
1816 default "static-address";
1817 description
1818 "Defines how addresses are allocated.
1819 ";
1820 }
1821
1822 leaf number-of-dynamic-address { /*this is not used*/
1823 when
1824 "../address-allocation-type = 'pe-dhcp'"
1825 {
1826 description
1827 "Only applies when
1828 protocol allocation type is static";
1829 }
1830 type uint8;
1831 default 1;
1832 description
1833 "Describes the number of IP addresses the
1834 customer requires";
1835 }
1836 container addresses {
1837 when
1838 "../address-allocation-type = 'static-address'" {
1839 description
1840 "Only applies when
1841 protocol allocation type is static";
1842 }
1843 leaf provider-address {
1844 type inet:ipv4-address;
1845 description
1846 "Provider side address.";
1847 }
1848 leaf customer-address { /*this is not used*/
1849 type inet:ipv4-address;
1850 description
1851 "Customer side address.";
1852 }
1853 leaf mask {
1854 type uint8 {
1855 range "0..32";
1856 }
1857 description
1858 "Subnet mask expressed
1859 in bits";
1860 }
1861 description
1862 "Describes IP addresses used";
1863 }
1864 description
1865 "IPv4 specific parameters";
1866
1867 }
1868 container ipv6 {
1869 if-feature ipv6;
1870 leaf address-allocation-type { /*this is not used*/
1871 type identityref {
1872 base address-allocation-type;
1873 }
1874 default "static-address";
1875 description
1876 "Defines how addresses are allocated.
1877 ";
1878 }
1879 leaf number-of-dynamic-address { /*this is not used*/
1880 when
1881 "../address-allocation-type = 'pe-dhcp'" {
1882 description
1883 "Only applies when
1884 protocol allocation type is static";
1885 }
1886 type uint8;
1887 default 1;
1888 description
1889 "Describes the number of IP addresses the
1890 customer requires";
1891 }
1892 container addresses {
1893 when
1894 "../address-allocation-type = 'static-address'" {
1895 description
1896 "Only applies when
1897 protocol allocation type is static";
1898 }
1899 leaf provider-address {
1900 type inet:ipv6-address;
1901 description
1902 "Provider side address.";
1903 }
1904 leaf customer-address { /*this is not used*/
1905 type inet:ipv6-address;
1906 description
1907 "Customer side address.";
1908 }
1909 leaf mask {
1910 type uint8 {
1911 range "0..128";
1912
1913 }
1914 description
1915 "Subnet mask expressed
1916 in bits";
1917 }
1918 description
1919 "Describes IP addresses used";
1920 }
1921
1922 description
1923 "IPv6 specific parameters";
1924
1925 }
1926 container oam { /*this is not used*/
1927 container bfd {
1928 if-feature bfd;
1929 leaf bfd-enabled {
1930 type boolean;
1931 description
1932 "BFD activation";
1933 }
1934
1935 choice holdtime {
1936 case profile {
1937 leaf profile-name {
1938 type string;
1939 description
1940 "Service provider well
1941 known profile.";
1942 }
1943 description
1944 "Service provider well
1945 known profile.";
1946 }
1947 case fixed {
1948 leaf fixed-value {
1949 type uint32;
1950 units msec;
1951 description
1952 "Expected holdtime
1953 expressed
1954 in msec.";
1955 }
1956 }
1957 description
1958 "Choice for holdtime flavor.";
1959 }
1960 description
1961 "Container for BFD.";
1962 }
1963 description
1964 "Define the OAM used on the connection.";
1965 }
1966 description
1967 "Defines connection parameters.";
1968 }
1969 description
1970 "This grouping defines IP connection parameters.";
1971 }
1972
1973 grouping site-service-multicast {
1974 container multicast {
1975 if-feature multicast;
1976 leaf multicast-site-type {
1977 type enumeration {
1978 enum receiver-only {
1979 description
1980 "The site has only receivers.";
1981 }
1982 enum source-only {
1983 description
1984 "The site has only sources.";
1985 }
1986 enum source-receiver {
1987 description
1988 "The site has both
1989 sources & receivers.";
1990 }
1991 }
1992 default "source-receiver";
1993 description
1994 "Type of multicast site.";
1995 }
1996 container multicast-transport-protocol {
1997 leaf ipv4 {
1998 if-feature ipv4;
1999 type boolean;
2000 default true;
2001 description
2002 "Enables ipv4 multicast transport";
2003 }
2004 leaf ipv6 {
2005 if-feature ipv6;
2006 type boolean;
2007 default false;
2008 description
2009 "Enables ipv6 multicast transport";
2010 }
2011 description
2012 "Defines protocol to transport multicast.";
2013 }
2014 leaf protocol-type {
2015 type enumeration {
2016 enum host {
2017 description
2018 "
2019 Hosts are directly connected
2020 to the provider network.
2021 Host protocols like IGMP, MLD
2022 are required.
2023 ";
2024 }
2025 enum router {
2026 description
2027 "
2028 Hosts are behind a customer router.
2029 PIM will be implemented.
2030 ";
2031 }
2032 enum both {
2033 description
2034 "Some Hosts are behind a customer
2035 router and some others are directly
2036 connected to the provider network.
2037 Both host and routing protocols must be
2038 used. Typically IGMP and PIM will be
2039 implemented.
2040 ";
2041 }
2042 }
2043 default "both";
2044 description
2045 "Multicast protocol type to be used
2046 with the customer site.";
2047 }
2048
2049 description
2050 "Multicast parameters for the site.";
2051 }
2052 description
2053 "Multicast parameters for the site.";
2054 }
2055
2056 grouping site-management {
2057 container management {
2058 leaf type {
2059 type identityref {
2060 base management;
2061 }
2062 }
2063 leaf management-transport {
2064 type identityref {
2065 base address-family;
2066 }
2067 }
2068 leaf address {
2069 type inet:ip-address;
2070 }
2071 }
2072 }
2073
2074 grouping site-vpn-flavor-profile {
2075 leaf site-vpn-flavor {
2076 type identityref {
2077 base site-vpn-flavor;
2078 }
2079 default site-vpn-flavor-single;
2080 description
2081 "Defines if the site
2082 is a single VPN site, or multiVPN or ...";
2083 }
2084 description
2085 "Grouping for site-vpn-flavor.";
2086 }
2087
2088 grouping site-vpn-policy {
2089 container vpn-policy-list {
2090 list vpn-policy {
2091 key vpn-policy-id;
2092
2093 leaf vpn-policy-id {
2094 type svc-id;
2095 description
2096 "Unique identifier for
2097 the VPN policy.";
2098 }
2099
2100 list entries {
2101 key id;
2102
2103 leaf id {
2104 type svc-id;
2105 description
2106 "Unique identifier for
2107 the policy entry.";
2108 }
2109 container filter {
2110 choice lan {
2111 case lan-prefix {
2112 container lan-prefixes {
2113 list ipv4-lan-prefixes {
2114 if-feature ipv4;
2115 key lan;
2116
2117 leaf lan {
2118 type inet:ipv4-prefix;
2119 description
2120 "Lan prefixes.";
2121 }
2122 description "
2123 List of LAN prefixes
2124 for the site.
2125 ";
2126 }
2127 list ipv6-lan-prefixes {
2128 if-feature ipv6;
2129 key lan;
2130
2131 leaf lan {
2132 type inet:ipv6-prefix;
2133 description
2134 "Lan prefixes.";
2135 }
2136 description "
2137 List of LAN prefixes
2138 for the site.
2139 ";
2140 }
2141 description
2142 "LAN prefixes from the customer.";
2143 }
2144 }
2145 case lan-tag {
2146 leaf-list lan-tag {
2147 type string;
2148 description
2149 "List of lan-tags to be matched.";
2150 }
2151 }
2152 description
2153 "Choice for LAN matching type";
2154 }
2155 description
2156 "If used, it permit to split site LANs
2157 among multiple VPNs.
2158 If no filter used, all the LANs will be
2159 part of the same VPNs with the same
2160 role.";
2161 }
2162 container vpn {
2163 leaf vpn-id {
2164 type leafref {
2165 path "/l3vpn-svc/vpn-services/vpn-svc/vpn-id";
2166 }
2167 mandatory true;
2168 description
2169 "Reference to an IPVPN.";
2170 }
2171 leaf site-role {
2172 type identityref {
2173 base site-role;
2174 }
2175 mandatory true;
2176 description
2177 "Role of the site in the IPVPN.";
2178 }
2179 description
2180 "List of VPNs the LAN is associated to.";
2181 }
2182 description
2183 "List of entries for export policy.";
2184 }
2185 description
2186 "List of VPN policies.";
2187 }
2188 description
2189 "VPN policy.";
2190 }
2191 description
2192 "VPN policy parameters for the site.";
2193 }
2194
2195 grouping site-maximum-routes {
2196 container maximum-routes {
2197 list address-family {
2198 key af;
2199
2200 leaf af {
2201 type identityref {
2202 base address-family;
2203 }
2204 description
2205 "Address-family.";
2206 }
2207 leaf maximum-routes {
2208 type uint32;
2209 description
2210 "Maximum prefixes the VRF can
2211 accept for this
2212 address-family.";
2213 }
2214 description
2215 "List of address families.";
2216 }
2217
2218 description
2219 "Define maximum-routes for the VRF.";
2220 }
2221 description
2222 "Define maximum-routes for the site.";
2223 }
2224
2225 grouping site-security {
2226 container security {
2227 uses site-security-authentication;
2228 uses site-security-encryption;
2229
2230 description
2231 "Site specific security parameters.";
2232 }
2233 description
2234 "Grouping for security parameters.";
2235 }
2236
2237 grouping site-service {
2238 container service {
2239 uses site-service-basic;
2240 uses site-service-qos-profile;
2241 uses site-service-mpls;
2242 uses site-service-multicast;
2243
2244 description
2245 "Service parameters on the attachement.";
2246 }
2247 description
2248 "Grouping for service parameters.";
2249 }
2250
2251 grouping transport-constraint-profile {
2252 list constraint-list {
2253 key constraint-type;
2254
2255 leaf constraint-type {
2256 type identityref {
2257 base transport-constraint;
2258 }
2259 description
2260 "Constraint type to be applied.";
2261 }
2262 leaf constraint-opaque-value {
2263 type string;
2264 description
2265 "Opaque value that can be used to
2266 specify constraint parameters.";
2267 }
2268 description
2269 "List of constraints";
2270 }
2271 description
2272 "Grouping for transport constraint.";
2273 }
2274
2275 grouping transport-constraints {
2276 container transport-constraints {
2277 if-feature traffic-engineering;
2278 container unicast-transport-constraints {
2279 list constraint {
2280 key constraint-id;
2281
2282 leaf constraint-id {
2283 type svc-id;
2284 description
2285 "Defines an ID for the constraint
2286 rule.";
2287 }
2288
2289 leaf site1 {
2290 type svc-id;
2291 description
2292 "The ID refers to one site end.";
2293 }
2294 leaf site2 {
2295 type svc-id;
2296 description
2297 "The ID refers to the other
2298 site end.";
2299 }
2300 uses transport-constraint-profile;
2301 description
2302 "List of constraints.
2303 Constraints are bidirectional.";
2304 }
2305 description
2306 "Unicast transport constraints.";
2307 }
2308 container multicast-transport-constraints {
2309 if-feature traffic-engineering-multicast;
2310 list constraint {
2311 key constraint-id;
2312
2313 leaf constraint-id {
2314 type svc-id;
2315 description
2316 "Defines an ID for the constraint
2317 rule.";
2318 }
2319
2320 leaf src-site {
2321 type svc-id;
2322 description
2323 "The ID refers to source site.";
2324 }
2325 leaf dst-site {
2326 type svc-id;
2327 description
2328 "The ID refers to the receiver
2329 site.";
2330 }
2331 uses transport-constraint-profile;
2332 description
2333 "List of constraints.
2334 Constraints are unidirectional.";
2335 }
2336 description
2337 "Multicast transport constraints.";
2338 }
2339 description
2340 "transport constraints.";
2341 }
2342 description
2343 "Grouping for transport constraints
2344 description.";
2345 }
2346
2347 grouping vpn-extranet {
2348 container extranet-vpns {
2349 if-feature extranet-vpn;
2350 list extranet-vpn {
2351 key vpn-id;
2352
2353 leaf vpn-id {
2354 type svc-id;
2355 description
2356 "Identifies the target VPN";
2357 }
2358 leaf local-sites-role {
2359 type identityref {
2360 base site-role;
2361 }
2362 description
2363 "This describes the role of the
2364 local sites in the target VPN topology.";
2365 }
2366 description
2367 "List of extranet VPNs the local
2368 VPN is attached to.";
2369 }
2370 description
2371 "Container for extranet vpn cfg.";
2372 }
2373 description
2374 "grouping for extranet VPN configuration.
2375 Extranet provides a way to interconnect all sites
2376 from two VPNs in a easy way.";
2377 }
2378
2379 grouping site-attachment-availability {
2380 container availability {
2381 leaf access-priority {
2382 type uint32;
2383 default 1;
2384 description
2385 "Defines the priority for the access.
2386 The highest the priority value is,
2387 the highest the
2388 preference of the access is.";
2389 }
2390 description
2391 "Availability parameters
2392 (used for multihoming)";
2393 }
2394 description
2395 "Defines site availability parameters.";
2396 }
2397
2398 grouping access-vpn-policy {
2399 container vpn-attachment {
2400 choice attachment-flavor {
2401 case vpn-policy-id { /* this is not used */
2402 leaf vpn-policy-id {
2403 type leafref {
2404 path "/l3vpn-svc/sites/site/"+
2405 "vpn-policy-list/vpn-policy/"+
2406 "vpn-policy-id";
2407 }
2408 description
2409 "Reference to a VPN policy.";
2410 }
2411 }
2412 case vpn-id { /* this is used */
2413 leaf vpn-id {
2414 type leafref {
2415 path "/l3vpn-svc/vpn-services"+
2416 "/vpn-svc/vpn-id";
2417 }
2418 description
2419 "Reference to a VPN.";
2420 }
2421 leaf site-role {
2422 type identityref {
2423 base site-role;
2424 }
2425 mandatory true;
2426 description
2427 "Role of the site in the IPVPN.";
2428 }
2429 }
2430 mandatory true;
2431 description
2432 "Choice for VPN attachment flavor.";
2433 }
2434 description
2435 "Defines VPN attachment of a site.";
2436 }
2437 description
2438 "Defines the VPN attachment rules
2439 for a site logical access.";
2440 }
2441
2442 grouping vpn-svc-cfg {
2443 leaf vpn-id {
2444 type svc-id;
2445 description
2446 "VPN identifier. Local administration meaning.";
2447 }
2448 leaf customer-name {
2449 type string;
2450 description
2451 "Name of the customer.";
2452 }
2453 leaf topology {
2454 type identityref {
2455 base vpn-topology;
2456 }
2457 default "any-to-any";
2458 description
2459 "VPN topology.";
2460 }
2461
2462 uses vpn-service-cloud-access;
2463 uses vpn-service-multicast;
2464 uses vpn-service-mpls;
2465 uses transport-constraints;
2466 uses vpn-extranet;
2467 }
2468
2469 grouping site-top-level-cfg {
2470 uses operational-requirements; // done /* Not used*/
2471 uses customer-location-info; // done
2472 uses site-diversity; // done
2473 uses site-management; // done
2474 uses site-vpn-policy; // done
2475 uses site-vpn-flavor-profile; // done
2476 uses site-maximum-routes; // done
2477 uses site-security; // done
2478 uses site-service;
2479 uses site-protection;
2480 uses site-routing; /*Will be used later*/
2481
2482 description
2483 "Grouping for site top level cfg.";
2484 }
2485
2486 grouping site-network-access-top-level-cfg {
2487 leaf site-network-access-type { /* this is not used*/
2488 type identityref {
2489 base site-network-access-type;
2490 }
2491 default "point-to-point";
2492 description
2493 "Describes the type of connection, e.g. :
2494 point-to-point or multipoint";
2495 }
2496 uses access-diversity; /* this is not used*/
2497 uses site-attachment-bearer; /* this is used*/
2498 uses site-attachment-ip-connection; /* this is used*/
2499 uses site-security; /* this is not used*/
2500 uses site-service; /* this is not used*/
2501 uses site-routing; /* this is used*/
2502 uses site-attachment-availability; /* this is not used*/
2503 uses access-vpn-policy; /* this is used*/
2504
2505 description
2506 "Grouping for site network access
2507 top level cfg.";
2508 }
2509
2510 /* Main blocks */
2511
2512 container l3vpn-svc {
2513 container vpn-services {
2514 list vpn-svc {
2515 key vpn-id;
2516
2517 uses vpn-svc-cfg; /*Not used*/
2518
2519 description "
2520 List of VPN services.";
2521 }
2522 description
2523 "top level container
2524 for the VPN services.";
2525 }
2526
2527 container sites {
2528 list site {
2529 key site-id;
2530
2531 leaf site-id {
2532 type svc-id;
2533 }
2534
2535 uses site-top-level-cfg; /*Will be used later*/
2536 uses operational-requirements-ops; /* Not used*/
2537
2538 container site-network-accesses { /* this is used*/
2539 list site-network-access {
2540 key site-network-access-id;
2541
2542 leaf site-network-access-id {
2543 type svc-id;
2544 }
2545 uses site-network-access-top-level-cfg;
2546 /* this is used*/
2547 }
2548 }
2549 }
2550 }
2551 }
2552}