summaryrefslogtreecommitdiffstats
path: root/yang
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@opensourcerouting.org>2021-05-21 12:42:01 +0200
committerRafael Zalamena <rzalamena@opensourcerouting.org>2021-05-21 12:55:51 +0200
commite51da3f817ba2533f3efae3b6cda6a2a48bea318 (patch)
treeebddb1be57e394e18bf3c7bb4eefe355541c0e1d /yang
parentMerge pull request #8709 from dslicenc/ospf-intf-area (diff)
downloadfrr-e51da3f817ba2533f3efae3b6cda6a2a48bea318.tar.xz
frr-e51da3f817ba2533f3efae3b6cda6a2a48bea318.zip
yang: move multicast prefix type definition
Move the multicast prefix type to a common YANG model so other models can use it. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'yang')
-rw-r--r--yang/frr-pim-rp.yang41
-rw-r--r--yang/frr-route-types.yang35
2 files changed, 40 insertions, 36 deletions
diff --git a/yang/frr-pim-rp.yang b/yang/frr-pim-rp.yang
index a2eca5100..33b453b29 100644
--- a/yang/frr-pim-rp.yang
+++ b/yang/frr-pim-rp.yang
@@ -8,10 +8,6 @@ module frr-pim-rp {
prefix "inet";
}
- import ietf-routing-types {
- prefix "rt-types";
- }
-
import frr-routing {
prefix "frr-rt";
}
@@ -20,6 +16,10 @@ module frr-pim-rp {
prefix "frr-pim";
}
+ import frr-route-types {
+ prefix frr-route-types;
+ }
+
organization
"FRRouting";
@@ -63,37 +63,6 @@ module frr-pim-rp {
"RFC XXXX: A YANG Data Model for PIM RP";
}
- typedef ipv4-multicast-group-address-prefix {
- type inet:ipv4-prefix{
- pattern '(2((2[4-9])|(3[0-9]))\.)(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(/(([4-9])|([1-2][0-9])|(3[0-2])))';
- }
- description
- "This type represents an IPv4 multicast group prefix,
- which is in the range from 224.0.0.0 to 239.255.255.255.";
- }
-
- typedef ipv6-multicast-group-address-prefix {
- type inet:ipv6-prefix {
- pattern
- '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/((1[6-9])|([2-9][0-9])|(1[0-1][0-9])|(12[0-8])))';
- pattern
- '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)';
- }
- description
- "This type represents an IPv6 multicast group prefix,
- which is in the range of FF00::/8.";
- }
-
- typedef ip-multicast-group-address-prefix {
- description "The IP-Multicast-Group-Address-Prefix type represents an IP multicast address
- prefix and is IP version neutral. The format of the textual representations implies the IP
- version. It includes a prefix-length, separated by a '/' sign.";
- type union {
- type ipv4-multicast-group-address-prefix;
- type ipv6-multicast-group-address-prefix;
- }
- } // typedef ip-multicast-group-address-prefix
-
typedef plist-ref {
type string;
}
@@ -124,7 +93,7 @@ module frr-pim-rp {
description "Use group-list or prefix-list";
case group-list {
leaf-list group-list{
- type ip-multicast-group-address-prefix;
+ type frr-route-types:ip-multicast-group-prefix;
description
"List of multicast group address.";
}
diff --git a/yang/frr-route-types.yang b/yang/frr-route-types.yang
index 5a0f58071..aeb52a652 100644
--- a/yang/frr-route-types.yang
+++ b/yang/frr-route-types.yang
@@ -3,6 +3,10 @@ module frr-route-types {
namespace "http://frrouting.org/yang/route-types";
prefix frr-route-types;
+ import ietf-inet-types {
+ prefix inet;
+ }
+
organization
"FRRouting";
contact
@@ -145,4 +149,35 @@ module frr-route-types {
type frr-route-types-v6;
}
}
+
+ typedef ipv4-multicast-group-prefix {
+ type inet:ipv4-prefix {
+ pattern '(2((2[4-9])|(3[0-9]))\.)(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(/(([4-9])|([1-2][0-9])|(3[0-2])))';
+ }
+ description
+ "This type represents an IPv4 multicast group prefix,
+ which is in the range from 224.0.0.0 to 239.255.255.255.";
+ }
+
+ typedef ipv6-multicast-group-prefix {
+ type inet:ipv6-prefix {
+ pattern
+ '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/((1[6-9])|([2-9][0-9])|(1[0-1][0-9])|(12[0-8])))';
+ pattern
+ '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)';
+ }
+ description
+ "This type represents an IPv6 multicast group prefix,
+ which is in the range of FF00::/8.";
+ }
+
+ typedef ip-multicast-group-prefix {
+ description "The IP-Multicast-Group-Address-Prefix type represents an IP multicast address
+ prefix and is IP version neutral. The format of the textual representations implies the IP
+ version. It includes a prefix-length, separated by a '/' sign.";
+ type union {
+ type ipv4-multicast-group-prefix;
+ type ipv6-multicast-group-prefix;
+ }
+ }
}