huawei-rgm

IPv4 Direct Route Association.

  • Version: 2019-11-28

    huawei-rgm@2019-11-28


    
      module huawei-rgm {
    
        yang-version 1;
    
        namespace "urn:huawei:yang:huawei-rgm";
    
        prefix rgm;
    
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-ip {
          prefix ip;
        }
        import huawei-vrrp {
          prefix vrrp;
        }
        import huawei-route-monitor-group {
          prefix rmg;
        }
    
        organization
          "Huawei Technologies Co., Ltd.";
    
        contact
          "Huawei Industrial Base
         Bantian, Longgang
         Shenzhen 518129
         People's Republic of China
         Website: http://www.huawei.com
         Email: support@huawei.com";
    
        description
          "IPv4 Direct Route Association.";
    
        revision "2019-11-28" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "rgm";
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv4 {
          description
            "Association between direct routes and a VRRP backup group.";
          container rgm {
            description
              "Configure IPv4 direct route track VRRP, PWs, virtual-access and so on under the ifm interface.";
            choice rgm-track {
              description
                "Association between direct routes and a VRRP backup group, PW status and delay for advertising direct routes.";
              case track-vrrp {
                description
                  "Association between direct routes and a VRRP backup group.";
                container track-vrrp {
                  description
                    "Configure association between direct routes and a VRRP backup group.";
                  leaf vrrp-id {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv4/vrrp:vrrp/vrrp:groups/vrrp:group/vrrp:id";
                    }
                    mandatory true;
                    description
                      "Virtual router identifier.";
                  }
    
                  leaf cost-change {
                    type uint32 {
                      range "1..4294967295";
                    }
                    mandatory true;
                    description
                      "Value that is used as the cost of direct routes when the associated VRRP backup group status changes.";
                  }
                }  // container track-vrrp
              }  // case track-vrrp
    
              case track-pw {
                description
                  "Association between direct routes and PW status.";
                container track-pw {
                  when
                    "../../../ifm:type='Remote-Ap' or ../../../ifm:type='VBridge' or ../../../ifm:type='Virtual-Ethernet' or ../../../ifm:type='Global-VE'";
                  description
                    "Configure association between direct routes and PW status.";
                  leaf cost-change {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "Value that is used as the cost of direct routes when the associated PW status changes.";
                  }
                }  // container track-pw
              }  // case track-pw
    
              case advertise-delay {
                description
                  "Delay for advertising direct routes.";
                container advertise-delay {
                  when
                    "../../../ifm:type='Remote-Ap' or ../../../ifm:type='VBridge' or ../../../ifm:type='Virtual-Ethernet' or ../../../ifm:type='Eth-Trunk' or ../../../ifm:type='Global-VE'";
                  presence
                    "Delay for advertising direct routes.";
                  description
                    "Configure delay for advertising direct routes.";
                  leaf cost-change {
                    type uint32 {
                      range "1..4294967295";
                    }
                    mandatory true;
                    description
                      "Value that is used as the cost of direct routes when the associated object status changes.";
                  }
    
                  leaf time-delay {
                    type uint32 {
                      range "1..3600";
                    }
                    units "s";
                    mandatory true;
                    description
                      "Delay for advertising direct routes.";
                  }
                }  // container advertise-delay
              }  // case advertise-delay
            }  // choice rgm-track
    
            container track-trunk {
              when
                "../../../ifm:type='Global-VE'";
              presence
                "Track VRRP backup group under loopback interface.";
              description
                "Configure association between direct routes and Interface status.";
              leaf if-name {
                type leafref {
                  path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                }
                mandatory true;
                description
                  "Name of an interface.";
              }
    
              leaf cost-change {
                type uint32 {
                  range "1..4294967295";
                }
                mandatory true;
                description
                  "Value that is used as the cost of direct routes when the associated Trunk interface status changes.";
              }
            }  // container track-trunk
    
            container track-rtmtg {
              presence
                "Track route-monitor-group.";
              description
                "Configure association between route-monitor-group routes and interface status.";
              leaf name {
                type leafref {
                  path "/rmg:route-monitor-group/rmg:monitor-groups/rmg:monitor-group/rmg:group-name";
                }
                mandatory true;
                description
                  "The route-monitor-group was tracked under the interface.";
              }
    
              leaf down-weight {
                type uint32 {
                  range "1..1000";
                }
                description
                  "Trigger down weight of a track interface.";
              }
            }  // container track-rtmtg
          }  // container rgm
        }
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv6 {
          description
            "Association between IPv6 direct route and a VRRP backup group.";
          container rgm6 {
            description
              "Configure IPv6 direct route track VRRP6, PWs, virtual-access and so on under the ifm interface.";
            choice rgm6-track {
              description
                "Association between direct routes and a VRRP6 backup group, PW status and delay for advertising direct routes.";
              case track-vrrp6 {
                description
                  "Association between direct routes and a VRRP6 backup group.";
                container track-vrrp6s {
                  description
                    "Configure IPv6 direct route track VRRP6.";
                  leaf vrrp-id {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv6/vrrp:vrrp6/vrrp:group6s/vrrp:group6/vrrp:id";
                    }
                    must
                      "../../../vrrp:vrrp6/vrrp:group6s/vrrp:group6[vrrp:id=current()]/vrrp:id";
                    mandatory true;
                    description
                      "Virtual router identifier (VRID).";
                  }
    
                  leaf cost-change {
                    type uint32 {
                      range "1..4294967295";
                    }
                    mandatory true;
                    description
                      "IPv6 direct route cost change.";
                  }
                }  // container track-vrrp6s
              }  // case track-vrrp6
    
              case track-pw {
                description
                  "Association between direct routes and PW status.";
                container track-pw {
                  when
                    "../../../ifm:type='Virtual-Ethernet' or ../../../ifm:type='Global-VE'";
                  description
                    "Configure association between IPv6 direct route and PW status.";
                  leaf cost-change {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "Value that is used as the cost of IPv6 direct route when the associated PW status changes.";
                  }
                }  // container track-pw
              }  // case track-pw
    
              case advertise-delay {
                description
                  "Delay for advertising direct routes.";
                container advertise-delay {
                  when
                    "../../../ifm:type='Virtual-Ethernet' or ../../../ifm:type='Eth-Trunk' or ../../../ifm:type='Global-VE'";
                  description
                    "Configure delay for advertising IPv6 direct route.";
                  leaf cost-change {
                    type uint32 {
                      range "1..4294967295";
                    }
                    mandatory true;
                    description
                      "Value that is used as the cost of IPv6 direct route when the associated object status changes.";
                  }
    
                  leaf time-delay {
                    type uint32 {
                      range "1..3600";
                    }
                    units "s";
                    mandatory true;
                    description
                      "Delay for advertising IPv6 direct route.";
                  }
                }  // container advertise-delay
              }  // case advertise-delay
            }  // choice rgm6-track
          }  // container rgm6
        }
      }  // module huawei-rgm
    

© 2023 YumaWorks, Inc. All rights reserved.