This module contains a collection of YANG definitions for Cisco IOS-XR router igmp/amt/mld configuration. Copyright (c) 2019-20...
Version: 2021-01-28
module Cisco-IOS-XR-um-router-igmp-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-router-igmp-cfg"; prefix um-router-igmp-cfg; import cisco-semver { prefix semver; } import Cisco-IOS-XR-types { prefix xr; } import ietf-inet-types { prefix inet; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 West Tasman Drive San Jose, CA 95134 Tel: +1 800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for Cisco IOS-XR router igmp/amt/mld configuration. Copyright (c) 2019-2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-01-28" { description "Added cisco-support task yang nodes 2021-01-11 Added support for specific platforms 2021-01-07 Added dvmrp-enable 2020-12-07 Removed un-supported nodes"; } revision "2019-08-20" { description "Initial release"; } semver:module-version "1.1.0"; semver:module-version "1.0.0"; feature igmp-plat-depend { description "Platform dependent configuration"; } container router { description "Enable a routing process"; container igmp { presence "Indicates a igmp node is configured."; description "IPv4 Address Family"; container vrfs { description "VRF configs"; list vrf { key "vrf-name"; description "VRF configs"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "VRF configs"; } container dvmrp-enable { presence "Indicates a dvmrp-enable node is configured."; description "Configure dvmrp to allow dvmrp processing on all interfaces"; } // container dvmrp-enable leaf robustness-count { type uint32 { range "2..10"; } description "IGMP robustness variable"; } container maximum { description "Maximum resource enforced by this router"; leaf groups { type uint32 { range "1..75000"; } description "Maximum number of groups accepted by this router"; } container groups-per-interface { presence "Indicates a groups-per-interface node is configured."; description "Maximum number of groups accepted per interface by this router"; leaf maximum-number { type uint32 { range "1..40000"; } mandatory true; description "Maximum number of groups accepted per interface by this router"; } leaf threshold { type uint32 { range "1..40000"; } must ". <= ../maximum-number"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Name of ACL"; } } // container groups-per-interface } // container maximum leaf version { type uint32 { range "1..3"; } description "IGMP version"; } leaf query-interval { type uint32 { range "1..3600"; } description "IGMP host query interval"; } leaf query-timeout { type uint32 { range "60..300"; } description "IGMP previous querier timeout"; } leaf query-max-response-time { type uint32 { range "1..25"; } description "IGMP max query response value"; } container explicit-tracking { presence "Indicates a explicit-tracking node is configured."; description "IGMPv3 explicit host tracking"; leaf access-list { type xr:Cisco-ios-xr-string; description "Access list specifying tracking group range"; } } // container explicit-tracking leaf access-group { type xr:Cisco-ios-xr-string { length "1..32"; } description "IGMP group access group"; } container ssm { description "Configure SSM specific options"; container map { description "Configure mappings of SSM group membership to sources"; container statics { description "Configure a static mapping of a source to a set of SSM groups"; list static { key "address"; description "Configure a static mapping of a source to a set of SSM groups"; leaf address { type inet:ipv4-address-no-zone; description "Source address"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } mandatory true; description "Access list of ssm groups that should map to the given source"; } } // list static } // container statics container query { description "Configure a mapping of sources to groups quering external database"; container dns { presence "Indicates a dns node is configured."; description "Configure a dns mapping for sources to a set of SSM groups"; } // container dns } // container query } // container map } // container ssm container traffic { description "IGMP traffic variables"; leaf profile { type xr:Route-policy-name; description "Configure route-policy to be used to map the bandwidth profile"; } } // container traffic container interfaces { description "IGMP interface configuration subcommands"; list interface { key "interface-name"; description "Select an interface to configure"; leaf interface-name { type xr:Interface-name; description "Select an interface to configure"; } leaf version { type uint32 { range "1..3"; } description "IGMP version"; } container router { description "Enable/Disable Router side functionality in IGMP"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Router side functionality in IGMP"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Router side functionality in IGMP"; } // container disable } // container router container dvmrp-enable { presence "Indicates a dvmrp-enable node is configured."; description "Configure dvmrp to allow dvmrp processing on all interfaces"; } // container dvmrp-enable leaf query-interval { type uint32 { range "1..3600"; } description "IGMP host query interval"; } leaf query-timeout { type uint32 { range "60..300"; } description "IGMP previous querier timeout"; } leaf query-max-response-time { type uint32 { range "1..25"; } description "IGMP max query response value"; } container explicit-tracking { description "IGMPv3 explicit host tracking"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Disable IGMPv3 explicit host tracking"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable IGMPv3 explicit host tracking"; } // container disable leaf access-list { type xr:Cisco-ios-xr-string; must "../enable"; description "Access list specifying tracking group range"; } } // container explicit-tracking leaf access-group { type xr:Cisco-ios-xr-string { length "1..32"; } description "IGMP group access group"; } container maximum { description "Maximum resource per interface enforced by this router"; container groups-per-interface { presence "Indicates a groups-per-interface node is configured."; description "Maxinum number of groups accepted per interface by this router"; leaf maximum-number { type uint32 { range "1..40000"; } mandatory true; description "Maxinum number of groups accepted per interface by this router"; } leaf threshold { type uint32 { range "1..40000"; } must ". <= ../maximum-number"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Name of ACL"; } } // container groups-per-interface } // container maximum container static-group { description "IGMP static multicast group"; list group-address { must "group-address-only or group-address-inc-mask or group-address-inc-mask-source-address or group-address-source-address or group-address-source-address-inc-mask or group-inc-mask-source-inc-mask"; key "group-address"; description "IGMP static multicast group"; leaf group-address { type inet:ipv4-address-no-zone; description "IP group address"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Group-address without increment mask/source-address"; container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // container group-address-only container group-address-inc-mask { description "Group-address with increment-mask"; list inc-mask { key "group-mask-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-address-inc-mask container group-address-source-address { description "Group-address with source-address"; list source-address { key "source-address"; description "IGMP static multicast group"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list source-address } // container group-address-source-address container group-address-inc-mask-source-address { description "Group-address with increment-mask and source-address"; list inc-mask { key "group-mask-address source-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-address-inc-mask-source-address container group-address-source-address-inc-mask { description "Group-address and source-address with increment-mask"; list inc-mask { key "source-address source-mask-address"; description "Increment mask for source address"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-address-source-address-inc-mask container group-inc-mask-source-inc-mask { description "Group-address with increment-mask and source-address with increment-mask"; list inc-mask { key "group-mask-address source-address source-mask-address"; description "Increment mask for source address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-inc-mask-source-inc-mask } // list group-address } // container static-group container join-groups { description "IGMP join multicast group"; list join-group { must "group-address-only or includes or excludes"; key "group-address"; description "IGMP join multicast group"; leaf group-address { type inet:ipv4-address-no-zone; description "IP group address"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Join multicast group without source address"; } // container group-address-only container includes { description "Include only the following source address"; list include { key "source-address"; description "Source address to include"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to include"; } } // list include } // container includes container excludes { description "Exclude the only following source address"; list exclude { key "source-address"; description "Exclude the only following source address"; leaf source-address { type inet:ipv4-address-no-zone; description "Exclude the only following source address"; } } // list exclude } // container excludes } // list join-group } // container join-groups } // list interface } // container interfaces } // list vrf } // container vrfs container accounting { description "Configure IGMP accounting"; leaf max-history { type uint32 { range "0..365"; } description "Set the maximum history for the accounting in days"; } } // container accounting container nsf { description "Configure NSF specific options"; leaf lifetime { type uint32 { range "10..3600"; } description "Configure maximum time for IGMP NSF mode"; } } // container nsf container dvmrp-enable { presence "Indicates a dvmrp-enable node is configured."; description "Configure dvmrp to allow dvmrp processing on all interfaces"; } // container dvmrp-enable leaf robustness-count { type uint32 { range "2..10"; } description "IGMP robustness variable"; } container maximum { description "Maximum resource enforced by this router"; leaf groups { type uint32 { range "1..75000"; } description "Maximum number of groups accepted by this router"; } container groups-per-interface { presence "Indicates a groups-per-interface node is configured."; description "Maximum number of groups accepted per interface by this router"; leaf maximum-number { type uint32 { range "1..40000"; } mandatory true; description "Maximum number of groups accepted per interface by this router"; } leaf threshold { type uint32 { range "1..40000"; } must ". <= ../maximum-number"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Name of ACL"; } } // container groups-per-interface } // container maximum leaf version { type uint32 { range "1..3"; } description "IGMP version"; } leaf query-interval { type uint32 { range "1..3600"; } description "IGMP host query interval"; } leaf query-timeout { type uint32 { range "60..300"; } description "IGMP previous querier timeout"; } leaf query-max-response-time { type uint32 { range "1..25"; } description "IGMP max query response value"; } container explicit-tracking { presence "Indicates a explicit-tracking node is configured."; description "IGMPv3 explicit host tracking"; leaf access-list { type xr:Cisco-ios-xr-string; description "Access list specifying tracking group range"; } } // container explicit-tracking leaf access-group { type xr:Cisco-ios-xr-string { length "1..32"; } description "IGMP group access group"; } container ssm { description "Configure SSM specific options"; container map { description "Configure mappings of SSM group membership to sources"; container statics { description "Configure a static mapping of a source to a set of SSM groups"; list static { key "address"; description "Configure a static mapping of a source to a set of SSM groups"; leaf address { type inet:ipv4-address-no-zone; description "Source address"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } mandatory true; description "Configure a static mapping of a source to a set of SSM groups"; } } // list static } // container statics container query { description "Configure a mapping of sources to groups quering external database"; container dns { presence "Indicates a dns node is configured."; description "Configure a dns mapping for sources to a set of SSM groups"; } // container dns } // container query } // container map } // container ssm container traffic { if-feature igmp-plat-depend; description "IGMP traffic variables"; leaf profile { type xr:Route-policy-name; description "Configure route-policy to be used to map the bandwidth profile"; } } // container traffic container unicast-qos-adjust { if-feature igmp-plat-depend; description "IGMP QOS shaper for subscriber unicast traffic"; leaf holdoff { type uint32 { range "5..1800"; } description "Configure the hold-off time before QOS clears the stale entries"; } leaf adjusment-delay { type uint32 { range "0..10"; } description "Configure the time to wait before programming rate in QOS"; } leaf download-interval { type uint32 { range "10..500"; } description "Configure the time before downloading a batch of interfaces to QOS"; } } // container unicast-qos-adjust container interfaces { description "IGMP interface configuration subcommands"; list interface { key "interface-name"; description "Select an interface to configure"; leaf interface-name { type xr:Interface-name; description "Select an interface to configure"; } leaf version { type uint32 { range "1..3"; } description "IGMP version"; } container router { description "Enable/Disable Router side functionality in IGMP"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Router side functionality in IGMP"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Router side functionality in IGMP"; } // container disable } // container router container dvmrp-enable { presence "Indicates a dvmrp-enable node is configured."; description "Configure dvmrp to allow dvmrp processing on all interfaces"; } // container dvmrp-enable leaf query-interval { type uint32 { range "1..3600"; } description "IGMP host query interval"; } leaf query-timeout { type uint32 { range "60..300"; } description "IGMP previous querier timeout"; } leaf query-max-response-time { type uint32 { range "1..25"; } description "IGMP max query response value"; } container explicit-tracking { description "IGMPv3 explicit host tracking"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Disable IGMPv3 explicit host tracking"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable IGMPv3 explicit host tracking"; } // container disable leaf access-list { type xr:Cisco-ios-xr-string; must "../enable"; description "Access list specifying tracking group range"; } } // container explicit-tracking leaf access-group { type xr:Cisco-ios-xr-string { length "1..32"; } description "IGMP group access group"; } container maximum { description "Maximum resource per interface enforced by this router"; container groups-per-interface { presence "Indicates a groups-per-interface node is configured."; leaf maximum-number { type uint32 { range "1..40000"; } mandatory true; description "Maxinum number of groups accepted per interface by this router"; } leaf threshold { type uint32 { range "1..40000"; } must ". <= ../maximum-number"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Name of ACL"; } } // container groups-per-interface } // container maximum container static-groups { description "IGMP static multicast group"; list group-address { must "group-address-only or group-address-inc-mask or group-address-inc-mask-source-address or group-address-source-address or group-address-source-address-inc-mask or group-inc-mask-source-inc-mask"; key "group-address"; description "IGMP static multicast group"; leaf group-address { type inet:ipv4-address-no-zone; description "IP group address"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Group-address without increment mask/source-address"; container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // container group-address-only container group-address-inc-mask { description "Group-address with increment-mask"; list inc-mask { key "group-mask-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-address-inc-mask container group-address-source-address { description "Group-address with source-address"; list source-address { key "source-address"; description "IGMP static multicast group"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list source-address } // container group-address-source-address container group-address-inc-mask-source-address { description "Group-address with increment-mask and source-address"; list inc-mask { key "group-mask-address source-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-address-inc-mask-source-address container group-address-source-address-inc-mask { description "Group-address and source-address with increment-mask"; list inc-mask { key "source-address source-mask-address"; description "Increment mask for source address"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-address-source-address-inc-mask container group-inc-mask-source-inc-mask { description "Group-address with increment-mask and source-address with increment-mask"; list inc-mask { key "group-mask-address source-address source-mask-address"; description "Increment mask for source address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } container suppress-reports { presence "Indicates a suppress-reports node is configured."; description "Suppress IGMP reports"; } // container suppress-reports } // list inc-mask } // container group-inc-mask-source-inc-mask } // list group-address } // container static-groups container join-groups { description "IGMP join multicast group"; list join-group { must "group-address-only or includes or excludes"; key "group-address"; description "IGMP join multicast group"; leaf group-address { type inet:ipv4-address-no-zone; description "IP group address"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Join multicast group without source address"; } // container group-address-only container includes { description "Include only the following source address"; list include { key "source-address"; description "Source address to include"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to include"; } } // list include } // container includes container excludes { description "Exclude the only following source address"; list exclude { key "source-address"; description "Exclude the only following source address"; leaf source-address { type inet:ipv4-address-no-zone; description "Exclude the only following source address"; } } // list exclude } // container excludes } // list join-group } // container join-groups } // list interface } // container interfaces } // container igmp } // container router } // module Cisco-IOS-XR-um-router-igmp-cfg
© 2023 YumaWorks, Inc. All rights reserved.