diff options
author | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2021-05-21 12:42:01 +0200 |
---|---|---|
committer | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2021-05-21 12:55:51 +0200 |
commit | e51da3f817ba2533f3efae3b6cda6a2a48bea318 (patch) | |
tree | ebddb1be57e394e18bf3c7bb4eefe355541c0e1d /yang | |
parent | Merge pull request #8709 from dslicenc/ospf-intf-area (diff) | |
download | frr-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.yang | 41 | ||||
-rw-r--r-- | yang/frr-route-types.yang | 35 |
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; + } + } } |