This document describes how to use Per-Device Configuration in Catalyst Center to manage an existing Catalyst 9800 Wireless LAN Controller.
Cisco recommends that you have knowledge of these topics:
Before you begin, ensure that:
The information in this document is based on these software and hardware versions:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
This document can also be used with these hardware and software versions:
Catalyst Center traditionally manages wireless controllers with intent-based provisioning: you define the wireless design at the site level (service set identifiers (SSIDs), network profiles, RF profiles, and model configurations) and Catalyst Center generates and pushes the controller configuration. For controllers that already run a production configuration, this approach requires the configuration to be recreated or learned into the design.
In Catalyst Center Release 2.3.7.9, the Learn Device Configuration workflow was deprecated, and Per-Device Configuration for Catalyst 9800 Series Wireless LAN Controllers (WLCs) was introduced. Per-Device Configuration lets you create, edit, clone, and delete configuration objects on a single controller directly from Catalyst Center, in a way similar to the controller web interface. With it, Cisco Catalyst Center can manage an existing (brownfield) controller without moving its configuration to intent-based network profiles. The feature is disabled by default and is enabled per controller.
| Per-Device Configuration |
Intent-based provisioning |
|
| Source of the configuration |
The objects that exist on the controller |
Site-level design (network profiles, network settings, model configurations) |
| Best fit |
Brownfield controllers, controller-specific settings |
Greenfield deployments, standardized multi-site designs |
| Redesign required |
No |
Yes, for existing controllers |
| Software-Defined Access (SD-Access) wireless |
Not supported |
Supported |
| Coexistence on the same controller |
Not supported. A controller provisioned with intent-based provisioning shows Per-Device Configuration in read-only mode |
- |
In Release 3.2.3, the Configuration tab of the device details window groups the controller features as shown in this table. The menu names are shown as they appear in the GUI. The available options depend on the Cisco IOS XE release that runs on the controller.
| Menu |
Features |
| SSID |
WLAN Profiles, Policy Profiles, Remote LAN Profiles, Remote LAN Policies, Policy Tags, 802.11be Profiles |
| RF |
RF Profiles, Radio Profiles, RF Tags, Multi BSSID Profiles, URWB Network Profile, RF Defaults |
| AP |
AP Join Profiles, Mesh, Power Profiles, Flex Profiles, Site Tags, Calendar Profiles |
| Tag Mapping |
AP Priming, Tag Mapping (tag priority, static, location-based, and rule-based mapping) |
| Security |
AAA, AAA Policy, ACL, EAP, URL Filters, Guest User, Web Auth, TrustSec, WPP, LSC, AP Certificate Policy |
| Global Wireless |
CleanAir, High Throughput, Media Parameters, ATF, Network Parameters, Global Parameters, RRM, Advanced, mDNS, Multicast, Location, Country, Cisco DNA Integration Settings, AP Policy, Wireless Geolocation |
| Services |
Local Policy, QoS, AVC, EoGRE, Media Stream, Guest LAN, Excluded Clients |
| Layer 2 |
VLAN, Interfaces, Discovery Protocols |
| Network Settings |
DNS, DHCP Pools, HTTP/HTTPS, SNMP, NTP |
| Layer 3 |
Routing |
| Administration |
Device, User Administration, AP Upgrade Configuration |
| Mobility |
Mobility |
Note: The menus were reorganized in Release 3.2.2. In Releases 2.3.7.x and 3.1.x, the same features are grouped under WLAN, RF, AP Join, Flex Profiles, Tags, Security, Global Radio, Global Wireless, Other, Layer 2, Network Settings, Layer 3, and Administration.
| Catalyst Center release |
Change |
| 2.3.7.9 |
Per-Device Configuration introduced. Learn Device Configuration deprecated. |
| 2.3.7.11 |
802.11be enhancements for Cisco IOS XE 17.18.1 |
| 3.1.3 |
Additional parameters. Configure Access Points adds virtual LAN (VLAN) tag, Domain Name System (DNS), LAN port, and basic service set (BSS) color. Clone profiles across controllers. AP priming. Catalyst 9800-CL on Microsoft Azure. |
| 3.2.2 |
Menu reorganization. Cisco TrustSec (CTS) over HTTPS, SGT Exchange Protocol (SXP) over IPv6, MACsec. Support for Cisco IOS XE 17.18.2 and 26.1.1. Warnings for insecure options such as Lightweight Extensible Authentication Protocol (LEAP). |
This image shows the topology used in this example. Catalyst Center manages the controller with NETCONF, and the access points join the controller with Control and Provisioning of Wireless Access Points (CAPWAP).

In this example, the controller already runs WLANs, tags, and profiles, as in a brownfield deployment. Per-Device Configuration is used to add a WLAN, preview and deploy it, map it to a policy profile in a policy tag, clone an RF profile, and assign tags to the APs. Every change in Per-Device Configuration Uses the same Review and Provision, Preview, and Deploy flow, shown in detail in Step 5.
Catalyst Center uses NETCONF to read and write the controller configuration. Ensure NETCONF is enabled on the controller:
WLC# configure terminal
WLC(config)# netconf-yang
WLC(config)# end
Note: NETCONF requires aaa new-model and a privilege level 15 user that is authorized by the authentication, authorization, and accounting (AAA) method lists in use. On a production controller, do not change the existing AAA method lists without review, because that can affect administrator access.
Verify that the NETCONF processes run:
WLC# show platform software yang-management process
confd : Running
nesd : Running
syncfd : Running
ncsshd : Running
dmiauthd : Running
nginx : Running
ndbmand : Running
pubd : Running
gnmib : Not Running




After the resync, the Configuration tab shows the label Per-device configuration and lists the existing objects of the controller. The left menu groups the features (SSID, RF, AP, Tag Mapping, Security, Global Wireless, Services, Layer 2, Network Settings, Layer 3, Administration, and Mobility), and each table offers Add and Clone from another WLC.

The information icon next to the label displays: Per-device configuration allows changes to be made by editing the configuration directly on this page.
Note: Per-Device Configuration cannot be disabled after it is enabled.






The Generated CLI for this example is:
wlan PDC-LAB 50 PDC-LAB
security wpa psk set-key ascii 8 <encrypted-key>
no security wpa akm dot1x
security wpa akm psk
radio policy dot11 24ghz
radio policy dot11 5ghz
slot 0
slot 1
slot 2



Cloning reuses an existing object of the controller as a starting point.


Tip: To copy objects from another Catalyst 9800 that is managed by the same Catalyst Center, use Clone from another WLC in the table of the object type.


Caution: A tag change can make the AP rejoin the controller or reset its radios, which disconnects its clients. Plan tag changes for production APs in a maintenance window. Before you change the tags, record the current tags of the APs so that you can revert them.
Per-Device Configuration also removes objects from the controller with the same preview and deploy flow. This example deletes the WLAN PDC-LAB:
no wlan PDC-LAB 50 PDC-LAB

Use this section to confirm that your configuration works properly.

You can run these commands on the controller CLI, or from Run commands (Command Runner) in the header of the device details window.
This is the WLAN configuration on the controller after the deployment:
WLC# show running-config | section wlan PDC-LAB
wlan PDC-LAB 50 PDC-LAB
radio policy dot11 24ghz
radio policy dot11 5ghz
slot 0
slot 1
slot 2
security wpa psk set-key ascii 8 xxxxxxxx
no security wpa akm dot1x
security wpa akm psk
The controller logs show that Catalyst Center (10.X.X.X) opened a NETCONF session and configured the wireless feature:
WLC# show logging | include DMI-5-AUTH_PASSED|NDBMAN-5-CONFIG_I
Oct 27 21:22:58.653: %DMI-5-AUTH_PASSED: Chassis 1 R0/0: dmiauthd: User 'USERX'
authenticated successfully from 192.168.10.10:62453 for netconf over ssh.
External groups: PRIV15
Oct 27 21:24:13.977: %NDBMAN-5-CONFIG_I: Chassis 1 R0/0: ndbmand: Configured
feature 'wireless' from 192.168.10.10:62453 via NETCONF user dnac
session 5311, transaction-id 5924
The %NDBMAN-5-CONFIG_I message shows the feature that was configured, the Catalyst Center address, and the NETCONF username.
After the APs use the policy tag, connect a client to PDC-LAB and confirm with show wireless client summary that the client reaches the Run state.
Catalyst Center detects changes that are made outside Catalyst Center, for example from the controller CLI or web interface. As the warning icon next to the Per-device configuration label explains (Image 15), these changes are imported at the next inventory sync and can cause conflicts. To keep the configuration consistent, use Catalyst Center for all the supported configurations.
Image 15. Warning about configurations made outside Catalyst Center
From Release 3.1.3, a configuration change event resyncs only the controller. To refresh AP data, run a full resync with Actions > Inventory > Resync Device.
This section provides information you can use to troubleshoot your configuration.
This is expected when the controller was already provisioned with intent-based (network profile) provisioning. The two models cannot be combined on the same controller. In the Configuration tab of the device details window, the label Managed via Site-Based Network Profiles is shown, and its information icon displays: This device is managed using site-based Network Profiles. All configurations are in read-only mode. Changes can only be made via the Network Profile.
Image 16. Controller managed by site-based network profiles in read-only mode
Resync the controller with Actions > Inventory > Resync Device. From Release 3.1.3, a configuration change event resyncs only the controller, not its APs, so a full resync is required to refresh AP data.
| Revision | Publish Date | Comments |
|---|---|---|
1.0 |
29-Oct-2026
|
Initial Release |