Skip to content

Commit 9a0837e

Browse files
authored
Merge pull request #236 from boucadair/l3-tunnel-service
l3-tunnel-service
2 parents ae6baf1 + 4dc52cf commit 9a0837e

File tree

7 files changed

+182
-117
lines changed

7 files changed

+182
-117
lines changed

draft-ietf-opsawg-teas-attachment-circuit.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,9 @@ This structure relies upon the common groupings defined in {{!I-D.ietf-opsawg-te
646646

647647
The 'ip-connection' container is used to configure the relevant IP properties of an AC. The model supports the usage of dynamic and static addressing. This structure relies upon the common groupings defined in {{!I-D.ietf-opsawg-teas-common-ac}}. Both IPv4 and IPv6 parameters are supported.
648648

649+
For ACs that require Layer 3 tunnel establishment, the ACaaS includes a provision for future augmentations to define
650+
tunnel-specific data nodes ('l3-tunnel-service'). Such augmentations MUST be conditional based on the tunnel type ('type').
651+
649652
{{ipv4-svc-tree}} shows the structure of the IPv4 connection.
650653

651654
~~~~

yang/full-trees/ac-svc-without-groupings.txt

Lines changed: 82 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -88,43 +88,47 @@ module: ietf-ac-svc
8888
| | | failure-detection-profile-reference
8989
| | | {vpn-common:bfd}?
9090
| | +--rw ipv6 {vpn-common:ipv6}?
91-
| | +--rw local-address?
92-
| | | inet:ipv6-address
93-
| | +--rw virtual-address?
94-
| | | inet:ipv6-address
95-
| | +--rw prefix-length? uint8
96-
| | +--rw address-allocation-type?
97-
| | | identityref
98-
| | +--rw (allocation-type)?
99-
| | +--:(dynamic)
100-
| | | +--rw (address-assign)?
101-
| | | | +--:(number)
102-
| | | | | +--rw number-of-dynamic-address? uint16
103-
| | | | +--:(explicit)
104-
| | | | +--rw customer-addresses
105-
| | | | +--rw address-pool* [pool-id]
106-
| | | | +--rw pool-id string
107-
| | | | +--rw start-address
108-
| | | | | inet:ipv6-address
109-
| | | | +--rw end-address?
110-
| | | | inet:ipv6-address
111-
| | | +--rw (provider-dhcp)?
112-
| | | | +--:(dhcp-service-type)
113-
| | | | +--rw dhcp-service-type?
114-
| | | | enumeration
115-
| | | +--rw (dhcp-relay)?
116-
| | | +--:(customer-dhcp-servers)
117-
| | | +--rw customer-dhcp-servers
118-
| | | +--rw server-ip-address*
119-
| | | inet:ipv6-address
120-
| | +--:(static-addresses)
121-
| | +--rw address* [address-id]
122-
| | +--rw address-id string
123-
| | +--rw customer-address?
124-
| | | inet:ipv6-address
125-
| | +--rw failure-detection-profile?
126-
| | failure-detection-profile-reference
127-
| | {vpn-common:bfd}?
91+
| | | +--rw local-address?
92+
| | | | inet:ipv6-address
93+
| | | +--rw virtual-address?
94+
| | | | inet:ipv6-address
95+
| | | +--rw prefix-length? uint8
96+
| | | +--rw address-allocation-type?
97+
| | | | identityref
98+
| | | +--rw (allocation-type)?
99+
| | | +--:(dynamic)
100+
| | | | +--rw (address-assign)?
101+
| | | | | +--:(number)
102+
| | | | | | +--rw number-of-dynamic-address? uint16
103+
| | | | | +--:(explicit)
104+
| | | | | +--rw customer-addresses
105+
| | | | | +--rw address-pool* [pool-id]
106+
| | | | | +--rw pool-id string
107+
| | | | | +--rw start-address
108+
| | | | | | inet:ipv6-address
109+
| | | | | +--rw end-address?
110+
| | | | | inet:ipv6-address
111+
| | | | +--rw (provider-dhcp)?
112+
| | | | | +--:(dhcp-service-type)
113+
| | | | | +--rw dhcp-service-type?
114+
| | | | | enumeration
115+
| | | | +--rw (dhcp-relay)?
116+
| | | | +--:(customer-dhcp-servers)
117+
| | | | +--rw customer-dhcp-servers
118+
| | | | +--rw server-ip-address*
119+
| | | | inet:ipv6-address
120+
| | | +--:(static-addresses)
121+
| | | +--rw address* [address-id]
122+
| | | +--rw address-id string
123+
| | | +--rw customer-address?
124+
| | | | inet:ipv6-address
125+
| | | +--rw failure-detection-profile?
126+
| | | failure-detection-profile-reference
127+
| | | {vpn-common:bfd}?
128+
| | +--rw (l3-service)?
129+
| | +--:(l3-tunnel-service)
130+
| | +--rw l3-tunnel-service
131+
| | +--rw type? identityref
128132
| +--rw routing-protocols
129133
| | +--rw routing-protocol* [id]
130134
| | +--rw id string
@@ -504,43 +508,47 @@ module: ietf-ac-svc
504508
| | failure-detection-profile-reference
505509
| | {vpn-common:bfd}?
506510
| +--rw ipv6 {vpn-common:ipv6}?
507-
| +--rw local-address?
508-
| | inet:ipv6-address
509-
| +--rw virtual-address?
510-
| | inet:ipv6-address
511-
| +--rw prefix-length? uint8
512-
| +--rw address-allocation-type?
513-
| | identityref
514-
| +--rw (allocation-type)?
515-
| +--:(dynamic)
516-
| | +--rw (address-assign)?
517-
| | | +--:(number)
518-
| | | | +--rw number-of-dynamic-address? uint16
519-
| | | +--:(explicit)
520-
| | | +--rw customer-addresses
521-
| | | +--rw address-pool* [pool-id]
522-
| | | +--rw pool-id string
523-
| | | +--rw start-address
524-
| | | | inet:ipv6-address
525-
| | | +--rw end-address?
526-
| | | inet:ipv6-address
527-
| | +--rw (provider-dhcp)?
528-
| | | +--:(dhcp-service-type)
529-
| | | +--rw dhcp-service-type?
530-
| | | enumeration
531-
| | +--rw (dhcp-relay)?
532-
| | +--:(customer-dhcp-servers)
533-
| | +--rw customer-dhcp-servers
534-
| | +--rw server-ip-address*
535-
| | inet:ipv6-address
536-
| +--:(static-addresses)
537-
| +--rw address* [address-id]
538-
| +--rw address-id string
539-
| +--rw customer-address?
540-
| | inet:ipv6-address
541-
| +--rw failure-detection-profile?
542-
| failure-detection-profile-reference
543-
| {vpn-common:bfd}?
511+
| | +--rw local-address?
512+
| | | inet:ipv6-address
513+
| | +--rw virtual-address?
514+
| | | inet:ipv6-address
515+
| | +--rw prefix-length? uint8
516+
| | +--rw address-allocation-type?
517+
| | | identityref
518+
| | +--rw (allocation-type)?
519+
| | +--:(dynamic)
520+
| | | +--rw (address-assign)?
521+
| | | | +--:(number)
522+
| | | | | +--rw number-of-dynamic-address? uint16
523+
| | | | +--:(explicit)
524+
| | | | +--rw customer-addresses
525+
| | | | +--rw address-pool* [pool-id]
526+
| | | | +--rw pool-id string
527+
| | | | +--rw start-address
528+
| | | | | inet:ipv6-address
529+
| | | | +--rw end-address?
530+
| | | | inet:ipv6-address
531+
| | | +--rw (provider-dhcp)?
532+
| | | | +--:(dhcp-service-type)
533+
| | | | +--rw dhcp-service-type?
534+
| | | | enumeration
535+
| | | +--rw (dhcp-relay)?
536+
| | | +--:(customer-dhcp-servers)
537+
| | | +--rw customer-dhcp-servers
538+
| | | +--rw server-ip-address*
539+
| | | inet:ipv6-address
540+
| | +--:(static-addresses)
541+
| | +--rw address* [address-id]
542+
| | +--rw address-id string
543+
| | +--rw customer-address?
544+
| | | inet:ipv6-address
545+
| | +--rw failure-detection-profile?
546+
| | failure-detection-profile-reference
547+
| | {vpn-common:bfd}?
548+
| +--rw (l3-service)?
549+
| +--:(l3-tunnel-service)
550+
| +--rw l3-tunnel-service
551+
| +--rw type? identityref
544552
+--rw routing-protocols
545553
| +--rw routing-protocol* [id]
546554
| +--rw id string

yang/ietf-ac-common.yang

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,31 @@ module ietf-ac-common {
193193
termination for the AC.";
194194
}
195195

196+
// Layer 3 tunnel types
197+
198+
identity l3-tunnel-type {
199+
description
200+
"Base identity for Layer 3 tunnel selection for an AC.";
201+
}
202+
203+
identity ip-in-ip {
204+
base l3-tunnel-type;
205+
description
206+
"IP in IP Tunneling.";
207+
}
208+
209+
identity ipsec {
210+
base l3-tunnel-type;
211+
description
212+
"IP Security (IPsec).";
213+
}
214+
215+
identity gre {
216+
base l3-tunnel-type;
217+
description
218+
"Generic Routing Encapsulation (GRE).";
219+
}
220+
196221
// Tagging precedence
197222

198223
identity precedence-type {

yang/ietf-ac-svc.yang

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,23 @@ module ietf-ac-svc {
334334
}
335335
}
336336
}
337+
choice l3-service {
338+
description
339+
"The Layer 3 connectivity service can be provided by
340+
specifying a Layer 3 tunnel service.";
341+
container l3-tunnel-service {
342+
description
343+
"Defines a Layer 3 tunnel termination.
344+
It is only applicable when a tunnel is required.";
345+
leaf type {
346+
type identityref {
347+
base ac-common:l3-tunnel-type;
348+
}
349+
description
350+
"Selects the tunnel termination type for an AC.";
351+
}
352+
}
353+
}
337354
}
338355

339356
// Routing protocol list

yang/subtrees/svc/ipv4-stree.txt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
| ...
2-
+--rw ip-connection {ac-common:layer3-ac}?
2+
+--rw ip-connection {ac-common:layer3-ac}?
33
| +--rw ipv4 {vpn-common:ipv4}?
44
| | +--rw local-address?
55
| | | inet:ipv4-address
@@ -34,8 +34,12 @@
3434
| | +--rw address* [address-id]
3535
| | +--rw address-id string
3636
| | +--rw customer-address? inet:ipv4-address
37-
| | +--rw failure-detection-profile?
38-
| | failure-detection-profile-reference
39-
| | {vpn-common:bfd}?
37+
| | +--rw failure-detection-profile?
38+
| | failure-detection-profile-reference
39+
| | {vpn-common:bfd}?
4040
| +--rw ipv6 {vpn-common:ipv6}?
41-
| ...
41+
| | ...
42+
| +--rw (l3-service)?
43+
| +--:(l3-tunnel-service)
44+
| +--rw l3-tunnel-service
45+
| +--rw type? identityref

yang/subtrees/svc/ipv6-stree.txt

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,44 @@
33
| +--rw ipv4 {vpn-common:ipv4}?
44
| | ...
55
| +--rw ipv6 {vpn-common:ipv6}?
6-
| +--rw local-address?
7-
| | inet:ipv6-address
8-
| +--rw virtual-address?
9-
| | inet:ipv6-address
10-
| +--rw prefix-length? uint8
11-
| +--rw address-allocation-type?
12-
| | identityref
13-
| +--rw (allocation-type)?
14-
| +--:(dynamic)
15-
| | +--rw (address-assign)?
16-
| | | +--:(number)
17-
| | | | +--rw number-of-dynamic-address? uint16
18-
| | | +--:(explicit)
19-
| | | +--rw customer-addresses
20-
| | | +--rw address-pool* [pool-id]
21-
| | | +--rw pool-id string
22-
| | | +--rw start-address
23-
| | | | inet:ipv6-address
24-
| | | +--rw end-address?
25-
| | | inet:ipv6-address
26-
| | +--rw (provider-dhcp)?
27-
| | | +--:(dhcp-service-type)
28-
| | | +--rw dhcp-service-type?
29-
| | | enumeration
30-
| | +--rw (dhcp-relay)?
31-
| | +--:(customer-dhcp-servers)
32-
| | +--rw customer-dhcp-servers
33-
| | +--rw server-ip-address*
34-
| | inet:ipv6-address
35-
| +--:(static-addresses)
36-
| +--rw address* [address-id]
37-
| +--rw address-id string
38-
| +--rw customer-address? inet:ipv6-address
39-
| +--rw failure-detection-profile?
40-
| failure-detection-profile-reference
41-
| {vpn-common:bfd}?
6+
| | +--rw local-address?
7+
| | | inet:ipv6-address
8+
| | +--rw virtual-address?
9+
| | | inet:ipv6-address
10+
| | +--rw prefix-length? uint8
11+
| | +--rw address-allocation-type?
12+
| | | identityref
13+
| | +--rw (allocation-type)?
14+
| | +--:(dynamic)
15+
| | | +--rw (address-assign)?
16+
| | | | +--:(number)
17+
| | | | | +--rw number-of-dynamic-address? uint16
18+
| | | | +--:(explicit)
19+
| | | | +--rw customer-addresses
20+
| | | | +--rw address-pool* [pool-id]
21+
| | | | +--rw pool-id string
22+
| | | | +--rw start-address
23+
| | | | | inet:ipv6-address
24+
| | | | +--rw end-address?
25+
| | | | inet:ipv6-address
26+
| | | +--rw (provider-dhcp)?
27+
| | | | +--:(dhcp-service-type)
28+
| | | | +--rw dhcp-service-type?
29+
| | | | enumeration
30+
| | | +--rw (dhcp-relay)?
31+
| | | +--:(customer-dhcp-servers)
32+
| | | +--rw customer-dhcp-servers
33+
| | | +--rw server-ip-address*
34+
| | | inet:ipv6-address
35+
| | +--:(static-addresses)
36+
| | +--rw address* [address-id]
37+
| | +--rw address-id string
38+
| | +--rw customer-address? inet:ipv6-address
39+
| | +--rw failure-detection-profile?
40+
| | failure-detection-profile-reference
41+
| | {vpn-common:bfd}?
42+
| +--rw (l3-service)?
43+
| +--:(l3-tunnel-service)
44+
| +--rw l3-tunnel-service
45+
| +--rw type? identityref
4246
| ...

yang/subtrees/svc/overall-ip-connection-stree.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,15 @@
1212
+--rw name string
1313
+--rw l2-connection {ac-common:layer2-ac}?
1414
| ...
15-
+--rw ip-connection {ac-common:layer3-ac}?
15+
+--rw ip-connection {ac-common:layer3-ac}?
1616
| +--rw ipv4 {vpn-common:ipv4}?
1717
| | ...
1818
| +--rw ipv6 {vpn-common:ipv6}?
19-
| ...
19+
| | ...
20+
| +--rw (l3-service)?
21+
| +--:(l3-tunnel-service)
22+
| +--rw l3-tunnel-service
23+
| +--rw type? identityref
2024
+--rw routing-protocols
2125
| ...
2226
+--rw oam

0 commit comments

Comments
 (0)