Introduction
The cisco.ios collection provides the resource modules, facts modules, and CLI/NETCONF plugins used to automate configuration of Cisco IOS and IOS XE devices with Ansible (ios_bgp_global, ios_l3_interfaces, ios_vlans, and similar *_config/*_facts modules). Version 11.7.0 has just been published on Ansible Galaxy, moving up from 11.6.0. This release brings two brand-new resource modules for flow monitoring and SPAN sessions, a round of BGP BMP (BGP Monitoring Protocol) enhancements, and several idempotency and parsing bugfixes, most of them concentrated in ios_bgp_global and ios_bgp_address_family.
Whats New
New resource modules
ios_flow_monitor_global- new resource module to manage Flexible NetFlow records, exporters, samplers, and monitors on Cisco IOS XE.ios_flow_monitor_interfaces- new resource module to manage per-interface flow monitor assignments on Cisco IOS XE.ios_monitor_sessions- new resource module for declarative management of SPAN (Switched Port Analyzer) monitor sessions on Cisco IOS-XE devices. It supports all standard states (merged,replaced,overridden,deleted,rendered,gathered,parsed), handles IOS-XE range notation, consolidates source interfaces per direction, and adds support for ERSPAN source sessions on routers such as the C8000V that reject local SPAN.
BGP BMP multi-server support
ios_bgp_global- addsbmp.serversto manage multiple BMP servers (1-4) withnumber,activate,address,description,failure_retry_delay,flapping_delay,initial_delay,set_ip_dscp,stats_reporting_period, andupdate_source. The previousbmp.serverandbmp.server_optionskeys keep working and are folded intobmp.servers, butbmp.serversis now the preferred syntax.ios_bgp_globalandios_bgp_address_family- addneighbors.bmp_activate.serversto activate several BMP servers for a single neighbor.bmp_activate.serverkeeps working and is folded intoservers.
Other minor changes
ios_bgp_global- addspeer_group_declarationto explicitly declare or remove BGP peer-groups, alongside the existing string-basedpeer_groupmember assignments.ios_l3_interfaces- addstcp_adjust_mss(ip tcp adjust-mss) andipv6_tcp_adjust_mss(ipv6 tcp adjust-mss) to adjust the TCP MSS of SYN packets passing through an interface. The valid range depends on the platform and IOS XE version and is not validated by the module.ios_route_maps- adds support forset large-communityin route-map entries, including multi-value lists, the additive flag, andlarge-community none.
Bugfixes
ios_vlans- excludes reserved VLANs 1 and 1002-1005 for stateoverridden.ios_bgp_global-neighbors.bmp_activatepreviously generated the incompleteneighbor X bmp-activatecommand (twice) and never renderedallorserver N; it now correctly rendersbmp-activate allorbmp-activate server N [server M ...].ios_bgp_global- deactivates a BMP server around a change of its address, since IOS-XE silently ignores an address change while the server is activated.ios_bgp_global- gathered facts for BMP previously returned only the lastbmp servernumber and dropped all server options because the sub-mode lines were never parsed; every server and its options are now returned underbmp.servers.ios_bgp_global- generates a validbmp serverconfiguration without relying on a trailingexit-bmp-server-modeappended to theaddressline, and makes BMP server options idempotent formerged,replaced,overridden, anddeleted.ios_bgp_global- peer-group declaration lines are now parsed into facts. Withreplacedoroverridden, setpeer_group_declaration: trueon peer-group entries before upgrading, otherwise the declaration and its member configuration are removed.ios_bgp_global- rejects carriage returns and line feeds in BMP server string options so they cannot be used to inject extra IOS configuration commands.ios_bgp_globalandios_bgp_address_family- honor an explicitfalsevalue forbmp_activate.allinmergedstate by removing an existing all-server activation.ios_bgp_globalandios_bgp_address_family- reject carriage returns and line feeds in BGP neighbor addresses before rendering CLI commands.ios_bgp_globalandios_bgp_address_family- remove the existingbmp-activateof a neighbor before applying a changed one, since IOS-XE silently ignoresbmp-activateon an already activated neighbor, and apply the new one after the neighbor's removal/re-creation where needed.
Module/plugin change overview
| Component | Change type | Summary |
|---|---|---|
ios_flow_monitor_global | New module | Flexible NetFlow records, exporters, samplers, monitors |
ios_flow_monitor_interfaces | New module | Per-interface flow monitor assignment |
ios_monitor_sessions | New module | SPAN/ERSPAN session management |
ios_bgp_global | Minor change + bugfixes | BMP multi-server, peer-group declaration, BMP idempotency fixes |
ios_bgp_address_family | Minor change + bugfixes | neighbors.bmp_activate.servers, BMP activation fixes |
ios_l3_interfaces | Minor change | tcp_adjust_mss / ipv6_tcp_adjust_mss |
ios_route_maps | Minor change | set large-community support |
ios_vlans | Bugfix | Reserved VLAN exclusion for overridden |
How to Test
Install or upgrade the collection from Ansible Galaxy and confirm the installed version before running any playbooks against production IOS/IOS XE devices.
# Install the specific version
ansible-galaxy collection install cisco.ios:11.7.0
# Or force an upgrade from 11.6.0 / any older install
ansible-galaxy collection install cisco.ios --upgrade
# Verify the installed version
ansible-galaxy collection list cisco.ios
# Check module documentation for the new resource modules
ansible-doc cisco.ios.ios_flow_monitor_global
ansible-doc cisco.ios.ios_flow_monitor_interfaces
ansible-doc cisco.ios.ios_monitor_sessions
# Gather BGP facts to confirm the new bmp.servers parsing
ansible -m cisco.ios.ios_facts -a "gather_subset=all" ios_host
For BGP BMP configurations, re-run existing playbooks with --check --diff first: environments using bmp.server/bmp.server_options or bmp_activate.server will keep working unchanged, but it is worth confirming that gathered facts now correctly list every configured BMP server under bmp.servers before migrating task definitions to the new syntax.