Model for managing mobility configurations Copyright (c) 2016-2019, 2021 by Cisco Systems, Inc. All rights reserved.
Version: 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.