]> git.proxmox.com Git - mirror_frr.git/blobdiff - yang/frr-route-types.yang
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / yang / frr-route-types.yang
index 057c32a7e7c4fb122a84992fc5d150844f42c51d..728607cabe64711a3ec80a8575752636fa6c794f 100644 (file)
@@ -1,8 +1,13 @@
+// SPDX-License-Identifier: BSD-2-Clause
 module frr-route-types {
   yang-version 1.1;
   namespace "http://frrouting.org/yang/route-types";
   prefix frr-route-types;
 
+  import ietf-inet-types {
+    prefix inet;
+  }
+
   organization
     "FRRouting";
   contact
@@ -76,6 +81,9 @@ module frr-route-types {
       enum vnc {
         value 17;
       }
+      enum vnc-direct {
+        value 18;
+      }
       enum babel {
         value 22;
       }
@@ -120,6 +128,9 @@ module frr-route-types {
       enum vnc {
         value 17;
       }
+      enum vnc-direct {
+        value 18;
+      }
       enum babel {
         value 22;
       }
@@ -139,4 +150,33 @@ 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]{2}[0-9a-fA-F]{2}):).*';
+    }
+    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;
+    }
+  }
 }