summaryrefslogtreecommitdiffstats
path: root/yang/frr-igmp.yang
diff options
context:
space:
mode:
Diffstat (limited to 'yang/frr-igmp.yang')
-rw-r--r--yang/frr-igmp.yang147
1 files changed, 147 insertions, 0 deletions
diff --git a/yang/frr-igmp.yang b/yang/frr-igmp.yang
new file mode 100644
index 000000000..7f750dcf3
--- /dev/null
+++ b/yang/frr-igmp.yang
@@ -0,0 +1,147 @@
+module frr-igmp {
+ yang-version "1.1";
+ namespace "http://frrouting.org/yang/igmp";
+
+ prefix frr-igmp;
+
+ import frr-routing {
+ prefix "frr-rt";
+ }
+
+ import ietf-routing-types {
+ prefix "rt-types";
+ }
+
+ import ietf-inet-types {
+ prefix "inet";
+ }
+
+ import frr-interface {
+ prefix frr-interface;
+ }
+
+ organization
+ "Free Range Routing";
+
+ contact
+ "FRR Users List: <mailto:frog@lists.frrouting.org>
+ FRR Development List: <mailto:dev@lists.frrouting.org>";
+
+ description
+ "This module defines a model for managing FRR pimd daemon.";
+
+ revision 2019-11-06 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 2236: IGMP v2.
+ RFC 3376: IGMP v3.";
+ }
+
+ grouping interface-config-attributes {
+ description
+ "Configuration attributes applied to the interface level.";
+
+ leaf igmp-enable {
+ type boolean;
+ default "false";
+ description
+ "Enable IGMP protocol on the interface.";
+ }
+
+ leaf version {
+ type uint8 {
+ range "2..3";
+ }
+ default "3";
+ description
+ "IGMP version.";
+ }
+
+ leaf query-interval {
+ type uint16 {
+ range "1..1800";
+ }
+ units seconds;
+ default "125";
+ description
+ "The Query Interval is the interval between General Queries
+ sent by the Querier.";
+ }
+
+ leaf query-max-response-time {
+ type uint8 {
+ range "10..250";
+ }
+ units deciseconds;
+ default "100";
+ description
+ "Query maximum response time specifies the maximum time
+ allowed before sending a responding report.";
+ }
+
+ leaf last-member-query-interval {
+ type uint8 {
+ range "1..255";
+ }
+ units deciseconds;
+ default "10";
+ description
+ "Last Member Query Interval, which may be tuned to modify
+ the leave latency of the network.";
+ }
+
+ leaf robustness-variable {
+ type uint8 {
+ range "1..7";
+ }
+ default "2";
+ description
+ "Querier's Robustness Variable allows tuning for the
+ expected packet loss on a network.";
+ }
+ }
+
+ grouping per-af-interface-config-attributes {
+ description
+ "Configuration attributes applied to the interface level per address family.";
+
+ list static-group {
+ key "group-addr source-addr";
+ description
+ "A static multicast route, (*,G) or (S,G).
+ The version of IGMP must be 3 to support (S,G).";
+
+ leaf group-addr {
+ type rt-types:ip-multicast-group-address;
+ description
+ "Multicast group address.";
+ }
+ leaf source-addr {
+ type inet:ip-address;
+ description
+ "Multicast source address.";
+ }
+ }
+
+ } // per-af-interface-config-attributes
+
+ /*
+ * Per-interface configuration data
+ */
+ augment "/frr-interface:lib/frr-interface:interface" {
+ container igmp {
+ description
+ "IGMP interface parameters.";
+ uses interface-config-attributes;
+ list address-family {
+ key "address-family";
+ description
+ "Each list entry for one address family.";
+ uses frr-rt:address-family;
+ uses per-af-interface-config-attributes;
+
+ } //address-family
+ }
+ }
+}