Introduction
This document explains the procedure and requirements in order to upgrade software on a Wireless LAN Controller (WLC).
Prerequisites
Requirements
In addition to basic networking knowledge and familiarity with the basic configuration and installation of Cisco Wireless LAN Controllers, ensure that you meet these requirements before you attempt to upgrade your WLC. Note that each main requirement also includes a version-specific requirement:
-
A TFTP server on your network that is reachable from the management IP address of the WLC
Make sure that you have a TFTP server available for the software upgrade. Keep these guidelines in mind when you set up a TFTP server:
-
If you upgrade through the service port, the TFTP server must be on the same subnet as the service port because the service port is not routable; otherwise, you must create static routes on the controller.
-
If you upgrade through the distribution system network port, the TFTP server can be on the same or a different subnet because the distribution system port is routable.
-
A third-party TFTP server cannot run on the same computer as the WCS because the WCS built-in TFTP server and the third-party TFTP server require the same communication port.
-
The newer controller software releases are greater than 32 MB in size, so you must make sure that your TFTP server supports files larger than 32 MB. Some TFTP servers that support files of this size are tftpd32
and the TFTP server within the WCS.
-
Upgrade Path to a Controller Software Release - You can upgrade or downgrade the controller software only between certain releases. In some instances, you must first install an intermediate release before you upgrade to a software release. The release notes for the Wireless LAN controller software can provide information on the upgrade path specific to a software release. The release notes for the different Wireless LAN Controller software versions can be found in the documentation page for the controller. For example for the 4400 WLC, the release notes can be found at Cisco 4400 Series Wireless LAN Controllers - Release Notes.
Components Used
The information in this document is based on these software and hardware versions:
Platforms Supported
This document is also applicable to these hardware platforms:
-
Cisco 2000 Series Wireless LAN Controllers
-
Cisco 2100 Series Wireless LAN Controllers
-
Cisco 2500 Series Wireless LAN Controllers
-
Cisco 4100 Series Wireless LAN Controllers
-
Cisco 4400 Series Wireless LAN Controllers
-
Cisco 5500 Series Wireless LAN Controllers
-
Cisco Airespace 3500 Series WLAN Controller
-
Cisco Airespace 4000 Series Wireless LAN Controller
-
Cisco Wireless LAN Controller Module (WLCM)
-
Cisco Catalyst 3750 Series Integrated Wireless LAN Controllers
-
Cisco Catalyst 6500 Series/7600 Series Wireless Services Module (WiSM)
-
Cisco Wireless Services Module 2 (WiSM-2)
-
Cisco Flex 7500 Series Wireless LAN Controllers
-
Cisco Wireless Controller Software for SRE
Note: See Release and General Information for more information on release notes for upgrades that pertain to the respective codes and hardware platform of Wireless products.
WLC Software Upgrade Procedure
You can use either one of these two methods in order to upgrade the Cisco WLC:
This sequence is recommended for your WLC software upgrade:
-
Upload a backup of your controller configuration to a TFTP server.
-
Disable the 802.11a and 802.11b/g networks on your controller.
-
Upgrade the primary image on your controller.
-
Upgrade the boot image on your controller.
Note: This is a required step for upgrades to 4.1 on the WiSM, 3750G Wireless LAN Controller, and 4400 Series Controllers.
-
Re-enable the 802.11a and 802.11b/g networks on your controller.
Note: It is highly recommended to back up the configuration on the Wireless LAN controller before you perform the upgrade.
GUI Upgrade Procedure
In this section, you are presented with the information to upgrade the WLC with the use of the GUI on the controller.
When you upgrade the WLC with use of the GUI, you lose Layer 3 (IP) connectivity within the periods of time when the controller reboots. For this reason, it is recommended that you use a console port connection in order to check the state of the controller during the upgrade process and expedite any recovery procedures, if necessary.
When you upgrade the controller's software, the software on the controller's associated access points is also automatically upgraded. While an access point loads software, each of its LEDs blinks in succession. Up to 10 access points can be concurrently upgraded from the controller. Do not power down the controller or any access point during this process; otherwise, you might corrupt the software image. When you upgrade the controller to an intermediate software release (for example, to 4.0.217.0), wait until all the access points joined to the controller are upgraded to the intermediate release before you install the next release of the software. Upgrade of a controller with a large number of access points can take as long as 30 minutes, dependent upon the size of your network. However, with the increased number of concurrent access point upgrades supported in software release 4.0.206.0 and later, the upgrade time should be significantly reduced. The access points must remain powered, and the controller must not be reset during this time.
Step-by-Step Instructions
Complete these steps:
-
Complete these steps in order to log into the controller through your browser:
-
You are prompted for user credentials.
-
Enter the username and password of the controller and click OK.
The default username and password on the WLC are both admin.
The Monitor window appears. The Controller Summary information shows you the current software version that runs on the WLC.
-
Complete these steps in order to define the download parameters for the software upgrade:
-
Click Commands in the menu at the top of the window.
The Download File to Controller window appears.
-
Enter the download parameters.
The parameters to define include:
-
TFTP server IP Address
-
File Path
-
Maximum retries
-
Timeout
-
File Name
The parameters used in this example are:
-
Click Download in order to start the upgrade process.
Here is an example:
Note: When you perform the upgrade from the GUI, for File Path, you can insert a dot (.) as long as the image is in the root directory of your TFTP server. This way, you do not have to enter the path where the image is saved.
-
Reboot the system after the file transfer is complete in order for the new software to take effect.
Click Click Here in order to reboot, as this example shows:
-
In the the System Reboot window, click Reboot at the top right side of the window.
-
Click Save and Reboot in the Reboot System > Save window.
After the reboot, you can log back into the controller and verify that the new version runs.
Note: The new version is 4.1.170.0.
-
Upgrade the boot image (version 4.1 and later version upgrades only). The procedure is identical to steps 1 through 5 of this procedure, except you load the AIR-WLCxxxx-K9-5-2-157-0-ER.aes image.
CLI Upgrade Procedure
In this section, you are presented with the information to upgrade the WLC with use of the CLI on the controller.
Step-by-Step Instructions
Complete these steps:
-
Make sure that the TFTP server is reachable from the controller, and make sure the upgrade file resides in the Root directory of the TFTP server.
Refer to the Wireless Software Center (registered customers only) in order to download the latest software images. Copy the files to the default directory on the TFTP server.
-
It is best to complete this procedure via the console port, but you can also SSH or Telnet (if enabled) to the controller's management IP address in order to complete the procedure. The use of SSH or Telnet results in the loss of connectivity with the controller during the reboot process following the image download. Therefore, console access should be available in order to expedite troubleshooting and recovery of the controller if the upgrade fails. Log in to the controller and issue the show sysinfo command in order to verify the current software that runs on the controller.
This is sample output of the show sysinfo command, which shows that the controller runs 4.0.217.0:
(Cisco Controller) >show sysinfo
Manufacturer's Name.............................. Cisco Systems Inc.
Product Name..................................... Cisco Controller
Product Version.................................. 5.0.148.0
RTOS Version..................................... 5.0.148.0
Bootloader Version............................... 4.2.99.0
Build Type....................................... DATA + WPS
System Name...................................... Cisco_48:53:c3
System Location..................................
System Contact...................................
System ObjectID.................................. 1.3.6.1.4.1.14179.1.1.4.3
IP Address....................................... 10.77.244.204
System Up Time................................... 0 days 0 hrs 1 mins 58 sec
System Timezone Location.........................
Current Boot License Level.......................
Next Boot License Level..........................
Configured Country............................... IN - India
Operating Environment............................ Commercial (0 to 40 C)
Internal Temp Alarm Limits....................... 0 to 65 C
-
Complete these steps in order to define the download parameters:
-
Issue the transfer download mode tftp command in order to define the mode of file transfer.
-
Issue the transfer download serverip TFTP_server_IP_address command in order to define the TFTP server IP address.
-
Issue the transfer download path 'TFTP_server_path' command in order to define the path of the TFTP default directory where the controller OS software is located.
-
Issue the transfer download filename filename command in order to specify the name of the image.
Here is an example:
(Cisco Controller) >transfer download datatype code
(Cisco Controller) >transfer download mode tftp
(Cisco Controller) >transfer download serverip 10.77.244.196
(Cisco Controller) >transfer download path .
(Cisco Controller) >transfer download filename AIR-WLC4400-K9-5-2-178-0.aes
-
Issue the transfer download start command in order to initiate the upgrade process.
Here is an example of the upgrade process:
(Cisco Controller) >transfer download start
Mode............................................. TFTP
Data Type........................................ Code
TFTP Server IP................................... 10.77.244.196
TFTP Packet Timeout.............................. 6
TFTP Max Retries................................. 10
TFTP Path........................................ ./
TFTP Filename.................................... AIR-WLC4400-K9-5-2-178-0.aes
This may take some time.
Are you sure you want to start? (y/N) y
TFTP Code transfer starting.
TFTP receive complete... extracting components.
Executing backup script.
Writing new RTOS to flash disk.
Writing new Code to flash disk.
Writing new APIB to flash disk.
Executing install_apib script.
Executing fini script.
TFTP File transfer is successful.
Reboot the switch for update to complete.
-
Reboot the controller after the upgrade process is complete in order for the new code to take effect.
-
Issue the reset system command, and enter y or yes in response to the question "Would you like to save them now?".
-
Upgrade the bootloader version (4.1 and later version upgrades only) using the AIR-WLCxxxx-K9-5-2-157-0-ER.aes file. The process is identical to steps 1 through 6 of this procedure.
Note: In the 2100 Series WLC, you cannot upgrade the bootloader version due to hardware limitations. Also, this model does not require a bootloader upgrade as do the larger WLC models.
Note: You can upgrade the boot image before or after the main image.
Here is an example of the boot image CLI upgrade process:
(Cisco Controller) >transfer download start
Mode....................... TFTP
Data Type.................. Code
TFTP Server IP............. 10.77.244.196
TFTP Packet Timeout........ 6
TFTP Max Retries........... 10
TFTP Path.................. ./
TFTP Filename.............. AIR-WLC4400-K9-5-2-157-0-ER.aes
This may take some time.
Are you sure you want to start? (y/N) y
TFTP Code transfer starting.
TFTP receive complete... extracting components.
Writing new Emergency Bootloader to flash disk.
Writing new Emergency Bootloader RTOS to flash disk.
TFTP File transfer is successful.
Reboot the switch for update to complete.
The configuration is not kept when you downgrade versions of controller code. Controllers can be upgraded from one release to another. Should you require a downgrade from one release to another, you possibly cannot use the higher release configuration. The workaround is to reload the previous controller configuration files that were saved on the backup server or reconfigure the controller.
This video posted to the Cisco Support Community
explains with a demo, the upgrade procedure for a Wireless LAN Controller (WLC) using the GUI and CLI:
Use the Wireless Control System to Upgrade the Wireless LAN Controller
Complete these steps in order to update controller (and access points) software with the Wireless Control System (WCS).
-
Enter ping ip address in the command prompt window in order to be sure that the WCS server can reach the controller. If you use an external TFTP server, enter ping ip address in order to be sure that the WCS server can reach TFTP server.
-
In the GUI interface, choose Configure > Controllers in order to navigate to the All Controllers page.
-
Check the check box of the desired controller, choose Download Software from the Select a Command drop-down list, and click Go. The WCS displays the Download Software to Controller page.
-
If you use the built-in WCS TFTP server, check the TFTP Server on WCS System check box. If you use an external TFTP server, uncheck this check box and add the external TFTP server IP address.
-
Click Browse and navigate to the software update file (for example, AS_2000_release.aes for 2000 series controllers).
The files are uploaded to the root directory which was configured for use by the TFTP server. You can change to a different directory.
-
Click Download.
WCS downloads the software to the controller, and the controller writes the code to Flash RAM. As WCS performs this function, it displays its progress in the Status field.
Verify
In order to verify the version of WLC software that is running, log in to the controller after the system reboots.
From the GUI:
Debugging Options
You can use the debug transfer trace enable command in order to view the events that occur during the controller software upgrade process. Here is an example, which shows the debug command output used and the for a successful software upgrade:
(Cisco Controller) >debug transfer trace enable
(Cisco Controller) >transfer download datatype code
(Cisco Controller) >transfer download mode tftp
(Cisco Controller) >transfer download serverip 10.77.244.04
(Cisco Controller) >transfer download path .
(Cisco Controller) >transfer download filename AIR-WLC4400-K9-5-2-157-0-ER.aes
(Cisco Controller) >transfer download start
Mode...................... TFTP
Data Type................. Code
TFTP Server IP............ 10.7.244.204
TFTP Packet Timeout....... 6
TFTP Max Retries.......... 10
TFTP Path................. ./
TFTP Filename............. AIR-WLC4400-K9-5-2-157-0-ER.aes
This may take some time.
Are you sure you want to start? (y/N) y
Thu Apr 26 19:21:21 2007: RESULT_STRING: TFTP Code transfer starting.
Thu Apr 26 19:21:21 2007: RESULT_CODE:1
TFTP Code transfer starting.
Thu Apr 26 19:21:24 2007: Still waiting! Status = 2
Thu Apr 26 19:21:25 2007: Locking tftp semaphore,
pHost=10.7.244.204 pFilename=./
AIR-WLC4400-K9-5-2-157-0-ER.aes
Thu Apr 26 19:21:26 2007: Semaphore locked, now unlocking,
pHost=10.7.244.204 pFilename=./
AIR-WLC4400-K9-5-2-157-0-ER.aes
Thu Apr 26 19:21:26 2007: Semaphore successfully unlocked,
pHost=10.7.244.204 pFilename=./
AIR-WLC4400-K9-5-2-157-0-ER.aes
Thu Apr 26 19:21:26 2007: TFTP: Binding to local=0.0.0.0
remote=10.7.244.204
Thu Apr 26 19:21:36 2007: Still waiting! Status = 1
Thu Apr 26 19:21:39 2007: Still waiting! Status = 1
Thu Apr 26 19:21:42 2007: Still waiting! Status = 1
Thu Apr 26 19:21:48 2007: Still waiting! Status = 1
Thu Apr 26 19:22:23 2007: TFP End: 33862788 bytes transferred
(1 retransmitted packets)
Thu Apr 26 19:22:23 2007: tftp rc=0, pHost=10.7.244.204
pFilename=./AIR-WLC4400-K9-5-2-157-0-ER.aes
pLocalFilename=/mnt/download/local.tgz
Thu Apr 26 19:22:23 2007: tftp = 6, file_name=.
/AIR-WLC4400-K9-5-2-157-0-ER.aes,
ip_address=10.7.244.204,
msg=Unknown error - refer to log
Thu Apr 26 19:22:23 2007: upd_get_code_via_tftp =
6 (target=268435457
msg=Unknown error - refer to log)
Thu Apr 26 19:22:23 2007: RESULT_STRING:
TFTP receive complete...
extracting components.
Thu Apr 26 19:22:23 2007: RESULT_CODE:6
TFTP receive complete... extracting components.
Thu Apr 26 19:22:24 2007: Still waiting! Status = 2
Thu Apr 26 19:22:27 2007: Still waiting! Status = 1
Thu Apr 26 19:22:28 2007: RESULT_STRING: Executing product check script.
Thu Apr 26 19:22:28 2007: RESULT_STRING: Executing init script.
Thu Apr 26 19:22:28 2007: RESULT_STRING: Executing backup script.
Executing backup script.
Thu Apr 26 19:22:30 2007: Still waiting! Status = 2
Thu Apr 26 19:22:33 2007: Still waiting! Status = 1
Thu Apr 26 19:22:37 2007: Still waiting! Status = 1
Thu Apr 26 19:23:18 2007: RESULT_STRING: Writing new RTOS to flash disk.
Writing new RTOS to flash disk.
Thu Apr 26 19:23:19 2007: Still waiting! Status = 2
Thu Apr 26 19:23:19 2007: RESULT_STRING: Writing new Code to flash disk.
Writing new Code to flash disk.
Thu Apr 26 19:23:22 2007: Still waiting! Status = 2
Thu Apr 26 19:23:24 2007: Still waiting! Status = 1
Thu Apr 26 19:23:24 2007: Still waiting! Status = 1
Thu Apr 26 19:23:41 2007: RESULT_STRING: Writing new APIB to flash disk.
Writing new APIB to flash disk.
Thu Apr 26 19:23:44 2007: Still waiting! Status = 2
Thu Apr 26 19:23:47 2007: Still waiting! Status = 1
Thu Apr 26 19:23:50 2007: Still waiting! Status = 1
Thu Apr 26 19:24:12 2007: RESULT_STRING: Executing install_apib script.
Executing install_apib script.
Thu Apr 26 19:24:15 2007: Still waiting! Status = 2
Thu Apr 26 19:24:40 2007: Still waiting! Status = 1
Thu Apr 26 19:24:43 2007: Still waiting! Status = 1
Thu Apr 26 19:24:46 2007: RESULT_STRING: Executing fini script.
Thu Apr 26 19:24:46 2007: RESULT_STRING:
TFTP File transfer is successful.
Reboot the switch for update to complete.
Thu Apr 26 19:24:46 2007: RESULT_CODE:11
TFTP File transfer is successful.
Reboot the switch for update to complete.
Thu Apr 26 19:24:46 2007: Still waiting! Status = 2
Thu Apr 26 19:24:49 2007: Still waiting! Status = 1
Thu Apr 26 19:24:50 2007: ummounting: <umount /mnt/download/>
cwd = /mnt/application
Thu Apr 26 19:24:50 2007: finished umounting
Troubleshoot
Use this section to troubleshoot your software upgrade.
During the upgrade process, you might encounter errors. This section explains several common errors, along with typical causes and corrective actions you can take to complete the WLC software upgrade.
-
Code file transfer failed - No reply from the TFTP server - You get this error message if the TFTP server is not active. Determine if the TFTP service is enabled on the server.
-
Code file transfer failed - Error from server: File not found. Aborting transfer - You get this error message if the software upgrade file is not present in the default directory of the TFTP server or if you have entered the incorrect file name in the 'File Name' field of the controller upgrade page. In order to eliminate this error, copy the image file to the default directory on the TFTP server and verify that the name and file extension are exactly the same on the TFTP server and the 'File Name' field of the Controller Upgrade page.
-
TFTP Failure while storing in flash! - You get this error if there is a problem with the TFTP server or TFTP client. When you upgrade to version 4.1, it is particularly important to have a TFTP server that supports file transfers greater than 32 MB. It is recommended that you use the TFTP server Tftpd32
for controller upgrades.
You can also receive this error message when the upgrade was attempted over a WAN link, and the complete image was not downloaded from the daemon. This is a rather common error that occurs because of a failed transfer. It does not necessarily indicate a 'bad flash' on the controller. It is recommended that the upgrade be performed over a LAN or other high-speed, low-latency link. A very slow network connection can cause the TFTP server to timeout and make the upgrade unsuccessful. If remote upgrade is the only option available, ensure to have a good link speed, match the setting for maximum number of retries and timeout on the TFTP server and controller. If you increase these values, that can help.
Note: Proper TFTP servers send result codes to the controller if they do not support the size of the file transfer. The controller shows the result code in the CLI output, but not necessarily in the GUI output. Examples of result codes to look for in your TFTP server log include:
- The File too large for TFTP Protocol error, which is seen in SolarWinds TFTP server version 8.2.4.
- The File is too big, try increasing block size. error, which is seen in Pumpkin TFTP server version 2.7.2.
These two errors are visible in the TFTP server logs and are reported to the controller when the upgrade fails. These errors indicate that the TFTP server does not support large file transfers to support controller upgrades.
-
Sanity check failed on file. The file was not downloaded completely! - You get this error when the file does not completely download. You see this error if you try to upgrade directly to version 4.1 software from versions earlier than 3.2.195.10 or from versions earlier than 4.0.206.0. You must follow the correct upgrade path to 4.1 by first ensuring that you run 3.2.195.10 (or a later 3.2 code) or 4.0.206.0 (or a later 4.0 code) before you upgrade to version 4.1. You can also see this error if you have a TFTP server that does not support file transfers greater than 32 MB, but fails to properly report a result code to the controller.
-
The install partitions are destroyed or the image is corrupted - If you are still unsuccessful after an attempt to upgrade the software, there is a possibility that your image is corrupted or that you have faulty hardware. You should try to download another copy of the upgrade image in order to rule out a corrupt file. This is not a common issue, so it is important to verify you do not hit one of these listed issues before you contact Cisco Technical Support for assistance. If you do require assistance, see this Debugging Options section for helpful debugging options.
-
Firewall blocking the TFTP transfer - Ensure that the TFTP traffic is not blocked by any firewall in the network. In some cases the machine that runs the TFTP server application might have the firewall turned on. By default, firewalls block all TFTP traffic. This could be one reason why the WLC upgrade does not happen as expected.
Other common reasons for a WLC software upgrade failure are:
-
Network issues like congestion or very slow network connection, which cause TFTP to timeout.
-
A TFTP server with multiple IP addresses.
-
No route between the TFTP server and the controller.
-
No or an incorrect default gateway configured on the TFTP server or the controller.
-
There is an issue with the TFTP server application. Some TFTP servers have a limitation on the size of the files that you can transfer. It is recommended that you use the Tftpd32
version 3.0 TFTP server.
-
If you download the image from a TFTP server through a WAN or wireless link, it can result in failure since the links are unreliable. In order to have a stable transfer, it is always recommended to use a TFTP server that is available in the LAN through Ethernet.
-
Remove the Primary or Secondary Image on the Wireless LAN Controller
The WLC, by default, maintains two images. These images are the primary image and the backup image. The primary image is the active image used by the WLC while the backup image is used as a backup for the active image.
When you upgrade the WLC with a new image, the WLC automatically copies the new image over the backup image.
In order to see the active image that your controller currently runs (the primary image), click Monitor from the WLC GUI and look at the Software Version field under Controller Summary on the controller GUI. From the CLI, you can use the command show boot in order to view the primary and backup image present on the WLC. Here is an example.
(Cisco Controller) >show boot
Primary Boot Image............................... Code 5.2.178.0 <active>
Backup Boot Image................................ Code 5.0.148.0
In order to remove or overwrite an image on the WLC, boot up the WLC with the image that you want to keep and perform an upgrade. This way, the new image replaces the backup image.
You can also change the active booting image of the WLC manually with the command config boot <primary/backup>.
(Cisco Controller) >config boot ?
primary Sets the primary image as active.
backup Sets the backup image as active.
Note: You need to save and reboot the WLC configuration so that the WLC uses the new active image.
Software Upgrade can Fail if Certain Characters are used in the Previous Configuration
In controller software release 4.2.61.0 and later, the bootup configuration file of the controller is stored in an Extensible Markup Language (XML) format, rather than in binary format. When you upgrade a controller to 4.2.61.0 or a later software release, the binary configuration file migrates and converts to XML, but the configuration file does not migrate correctly if it contains any of these characters as part of a user configuration string: &, <, >, ', "".
For example, a WLAN profile named R&D causes an XML parsing error after the second reboot, even though this profile name is valid in 4.1 and previous configurations.
Note: You cannot download a binary configuration file onto a controller that runs software release 5.0.148.0. Also, do not attempt to make changes to the configuration file. If you do so and then download the file to a controller, the controller displays a cyclic redundancy checksum (CRC) error while it reboots and returns the configuration parameters to their default value.
LWAPP Mode Changes
When you upgrade to controller software release 5.0.148.0 or later, the LWAPP mode changes to Layer 3 if it was previously configured for Layer 2. If you downgrade from controller software release 6.0.196.0, 6.0.188.0, 5.2.178.0, 5.2.157.0, 5.1.151.0, or 5.0.148.0 to 4.2.61.0 or an earlier release, the LWAPP mode changes from Layer 3 to Layer 2. Access points might not join the controller, and you must manually reset the controller to Layer 3 in order to resolve this issue.
Predownload an Image to an Access Point
Related Information