Cisco-IOS-XE-wireless-mobility-cfg

Model for managing mobility configurations Copyright (c) 2016-2019, 2021 by Cisco Systems, Inc. All rights reserved.

  • Version: 2021-03-01

    Cisco-IOS-XE-wireless-mobility-cfg@2021-03-01


    
      module Cisco-IOS-XE-wireless-mobility-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XE-wireless-mobility-cfg";
    
        prefix wireless-mobility-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import cisco-semver {
          prefix cisco-semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
    
         Postal: 170 W Tasman Drive
         San Jose, CA 95134
    
         Tel: +1 1800 553-NETS
    
         E-mail: cs-yang@cisco.com";
    
        description
          "Model for managing mobility configurations
         Copyright (c) 2016-2019, 2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-03-01" {
          description
            "Configuration support for mobility DTLS high cipher";
          reference
            "6.1.0";
    
        }
    
        revision "2019-11-01" {
          description
            "- Added checks for peer IP and NAT IP addresses.
           - Added constraint for remote group multicast addresses.";
          reference
            "6.0.0";
    
        }
    
        revision "2019-05-01" {
          description "Added semantic version";
          reference
            "5.1.0";
    
        }
    
        revision "2018-12-15" {
          description
            " - Cleaned up spelling errors in descriptions.
            - Added boolean config parameters to indicate multicast support.";
          reference
            "5.0.0";
    
        }
    
        revision "2018-09-06" {
          description
            "- Renamed mobility and hidden configurations
           - removed Mobility mode config
           - Added units for mm-hb-delay";
          reference
            "4.0.0";
    
        }
    
        revision "2018-03-01" {
          description
            "Add mobility peer configuration";
          reference
            "3.0.0";
    
        }
    
        revision "2018-01-24" {
          description
            "The first generally available version";
          reference
            "2.0.0";
    
        }
    
        revision "2017-05-05" {
          description "Initial revision";
          reference
            "1.0.0";
    
        }
    
        cisco-semver:module-version "6.1.0";
        cisco-semver:module-version "6.0.0";
        cisco-semver:module-version "5.1.0";
        cisco-semver:module-version "5.0.0";
        cisco-semver:module-version "4.0.0";
        cisco-semver:module-version "3.0.0";
        cisco-semver:module-version "2.0.0";
        cisco-semver:module-version "1.0.0";
    
        grouping mmgroupinfo {
          description
            "Mobility group config information";
          leaf group-name {
            type string {
              length "1..32";
            }
            must
              '../group-name != ../../../mobility-config/local-group' {
              error-message
                "Group name is conflicting with local group name";
              error-app-tag "must-violation";
            }
            must
              "(../mcast-addr-enabled != 'false') or (../mcast-addrv6-enabled != 'false')" {
              error-message
                "Multicast address must be specified for remote mobility group";
              error-app-tag "must-violation";
            }
            description
              "Group name for remote mobility group";
          }
    
          leaf mcast-addr-enabled {
            type boolean;
            default "false";
            description
              "Enable IPv4 multicast support for mobility group";
          }
    
          leaf multicast-address {
            type inet:ipv4-address;
            must
              "(../mcast-addr-enabled = 'false') or (../multicast-address != ../../../mobility-config/local-multicast-address)" {
              error-message
                "Non-local mobility group IPv4 multicast address conflicts with local group multicast address";
              error-app-tag "must-violation";
            }
            must
              "(../mcast-addr-enabled = 'false') or
                starts-with(../multicast-address, '224.') or starts-with(../multicast-address, '225.') or
                starts-with(../multicast-address, '226.') or starts-with(../multicast-address, '227.') or
                starts-with(../multicast-address, '228.') or starts-with(../multicast-address, '229.') or
                starts-with(../multicast-address, '230.') or starts-with(../multicast-address, '231.') or
                starts-with(../multicast-address, '232.') or starts-with(../multicast-address, '233.') or
                starts-with(../multicast-address, '234.') or starts-with(../multicast-address, '235.') or
                starts-with(../multicast-address, '236.') or starts-with(../multicast-address, '237.') or
                starts-with(../multicast-address, '238.') or starts-with(../multicast-address, '239.')" {
              error-message
                "Invalid IPv4 multicast address";
              error-app-tag "must-violation";
            }
            must
              "(../mcast-addr-enabled = 'false') or
                (count(../../../mobility-groups/mobility-group/multicast-address[current()=.]) = 1)" {
              error-message
                "Non-local mobility group IPv4 multicast address conflicts with another group's multicast address";
              error-app-tag "must-violation";
            }
            default "0.0.0.0";
            description
              "Mobility multicast ipv4 address for remote group";
          }
    
          leaf mcast-addrv6-enabled {
            type boolean;
            default "false";
            description
              "Enable IPv6 multicast support for mobility group";
          }
    
          leaf multicast-addressv6 {
            type inet:ipv6-address;
            must
              "(../mcast-addrv6-enabled = 'false') or (../multicast-addressv6 != ../../../mobility-config/local-ipv6-multicast-address)" {
              error-message
                "Non-local mobility group IPv6 multicast address conflicts with local group multicast address";
              error-app-tag "must-violation";
            }
            must
              "(../mcast-addrv6-enabled = 'false') or (contains(substring(../multicast-addressv6, 1, 4), 'ff00'))" {
              error-message
                "Invalid IPv6 multicast address";
              error-app-tag "must-violation";
            }
            must
              "(../mcast-addrv6-enabled = 'false') or
                (count(../../../mobility-groups/mobility-group/multicast-addressv6[current()=.]) = 1)" {
              error-message
                "Non-local mobility group IPv6 multicast address conflicts with another group's multicast address";
              error-app-tag "must-violation";
            }
            default "0:0:0:0:0:0:0:0";
            description
              "Mobility multicast ipv6 address for remote group";
          }
        }  // grouping mmgroupinfo
    
        grouping mmpeer {
          description "Mobility Peer Config";
          leaf mac-addr {
            type yang:mac-address;
            description
              "Mobility peer MAC address";
          }
    
          leaf ip-address {
            type inet:ip-address;
            must
              "(../nat-ip = current()) or
                (count(../../../mobility-peers/mobility-peer[nat-ip = current()]) < 1)" {
              error-message
                "A peer cannot have the private IP that is configured as the public IP of another peer";
              error-app-tag "must-violation";
            }
            description "Peer IP Address";
          }
    
          leaf group-name {
            type string {
              length "1..32";
            }
            mandatory true;
            description "Peer group name";
          }
    
          leaf nat-ip {
            type inet:ip-address;
            must
              "(count(../../../mobility-peers/mobility-peer[nat-ip = current()]) = 1) or
                (current() = '0.0.0.0')" {
              error-message
                "Different mobility peers cannot have the same public IP address (with the exception of 0.0.0.0)";
              error-app-tag "must-violation";
            }
            must
              "(../ip-address = current()) or
                (count(../../../mobility-peers/mobility-peer[ip-address = current()]) < 1)" {
              error-message
                "A peer cannot have the public IP that is configured as the private IP of another peer";
              error-app-tag "must-violation";
            }
            must
              "(contains(../ip-address, ':') and contains(current(), ':')) or
                (not(contains(../ip-address, ':') or contains(current(), ':')))" {
              error-message
                "Peer's public and private addresses have to be of the same type";
              error-app-tag "must-violation";
            }
            default "0.0.0.0";
            description "Peer Public IP";
          }
    
          leaf data-link-encryption {
            type boolean;
            default "false";
            description
              "Peer data link encryption status";
          }
    
          leaf ssc-hash {
            type string;
            default "";
            description "Peer SSC HASH";
          }
        }  // grouping mmpeer
    
        grouping mmcfg {
          description "Mobility Configuration";
          leaf local-group {
            type string {
              length "1..32";
            }
            default "default";
            description
              "Local Mobility group name";
          }
    
          leaf local-mcast-addr-enabled {
            type boolean;
            default "false";
            description
              "Enable IPv4 multicast support for local mobility group";
          }
    
          leaf local-multicast-address {
            type inet:ipv4-address;
            must
              "(../local-mcast-addr-enabled != 'true') or
                starts-with(../local-multicast-address, '224.') or starts-with(../local-multicast-address, '225.') or
                starts-with(../local-multicast-address, '226.') or starts-with(../local-multicast-address, '227.') or
                starts-with(../local-multicast-address, '228.') or starts-with(../local-multicast-address, '229.') or
                starts-with(../local-multicast-address, '230.') or starts-with(../local-multicast-address, '231.') or
                starts-with(../local-multicast-address, '232.') or starts-with(../local-multicast-address, '233.') or
                starts-with(../local-multicast-address, '234.') or starts-with(../local-multicast-address, '235.') or
                starts-with(../local-multicast-address, '236.') or starts-with(../local-multicast-address, '237.') or
                starts-with(../local-multicast-address, '238.') or starts-with(../local-multicast-address, '239.')" {
              error-message
                "Invalid IPv4 multicast address";
              error-app-tag "must-violation";
            }
            default "0.0.0.0";
            description
              "Local mobility Multicast IPv4 address";
          }
    
          leaf local-ipv6-mcast-addr-enabled {
            type boolean;
            default "false";
            description
              "Enable IPv6 multicast support for local mobility group";
          }
    
          leaf local-ipv6-multicast-address {
            type inet:ipv6-address;
            must
              "(../local-ipv6-mcast-addr-enabled != 'true') or contains(substring(../local-ipv6-multicast-address, 1, 4), 'ff00')" {
              error-message
                "Invalid IPv6 multicast address";
              error-app-tag "must-violation";
            }
            default "0::0";
            description
              "Local mobility Multicast IPv6 address";
          }
    
          leaf mobility-keepalive-interval {
            type uint16 {
              range "1 .. 30";
            }
            units "seconds";
            default "10";
            description
              "Mobility Keep Alive interval";
          }
    
          leaf mobility-keepalive-count {
            type uint16 {
              range "3 .. 20";
            }
            default "3";
            description
              "Mobility Keep Alive count";
          }
    
          leaf mobility-dscp {
            type uint8 {
              range "0 .. 63";
            }
            default "48";
            description "mobility dcsp value";
          }
    
          leaf mac-address {
            type yang:mac-address;
            default "00:00:00:00:00:00";
            description
              "Mobility local Mac Address";
          }
    
          container mobility-peers {
            description
              "Mobility Peers configuration";
            list mobility-peer {
              key "mac-addr";
              unique "ip-address";
              max-elements 72;
              description
                "List of Mobility Peers";
              uses wireless-mobility-cfg:mmpeer;
            }  // list mobility-peer
          }  // container mobility-peers
    
          leaf mm-dtls-high-cipher {
            type boolean;
            default "false";
            description
              "Enable/Disable DTLS high cipher for mobility";
          }
        }  // grouping mmcfg
    
        container mobility-cfg-data {
          description
            "Yang model for wireless mobility config";
          container mobility-config {
            description
              "Mobility configuration database";
            uses wireless-mobility-cfg:mmcfg;
          }  // container mobility-config
    
          container mobility-groups {
            description
              "Mobility Groups configuration";
            list mobility-group {
              key "group-name";
              description
                "List of Mobility Groups";
              uses wireless-mobility-cfg:mmgroupinfo;
            }  // list mobility-group
          }  // container mobility-groups
        }  // container mobility-cfg-data
      }  // module Cisco-IOS-XE-wireless-mobility-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.