Well when the Cisco 9800 came out there was lots of talk/ marketing about the programability of it. Well what exactly does that mean? I though it would mean that every feature of it could be API driven – and was hoping there would be easy to understand/ consume documentation available, but given my past utilisation of APIs with Cisco’s CMX and Prime Infrastructure i wasnt holding my breath on the quality of the documentation. Due to this i left it along and focused more on the differences of the 9800 from AIROS and forgot about the programability side of it.
That was until I found a requirement to automate a task of staging APs without the help of APIC-EM or DNA-C. At first i figured i could just do this via a Python script using netmiko and a bunch of CLI commands, but ran into issues in parsing the returned output. So i figured that this programability might be the way forward (or otherwise i will be writing multiple text parsers for each show command), so I now needed to find how to use this NETCONF/YANG feature.
Well after searching high and low I couldn’t find any documentation the best i could find was the Cisco Catalyst 9800 Series Wireless Controller Programmability Guide didn’t really help me. Firstly I had never used NETCONF/ YANG before and secondly it doesnt really show me what call i need to make to see if AP1 is registered to the controller and what its config is. Unlike other products (Meraki/ Mist to name a few) who have really good API documentation available I was a little stuck here.
I couldn’t even work out how to make a simple call to the WLC to get any information at this stage.
So I did a bunch more searching and I then stumbled onto a guide of using NETCONF and YANG with Cisco routers. Well how much different could it actually be, after all the 9800 is built on the same IOS–XE code as the 9300 series switches so I decided to try it out, and it worked – well for seeing the running config of an interface at this stage.
So i have managed to work through how to get the wireless information out of the 9800 so i am going to share this with you in a multi part series.
This multi part series will go through the following:
- Setting up the 9800 to be able to utilise NETCONF/YANG
- Using the Advanced NETCONF Explorer (ANX) with the 9800
- Using NETCONF/ YANG with a simple Python script to get information from the WLC
- Using NETCONF/YANG with a simple Python Script to update something on the WLC