cisco.iosxr.iosxr_ospf_interfaces – OSPF Interfaces Resource Module.
Note
This plugin is part of the cisco.iosxr collection (version 1.2.0).
To install it use: ansible-galaxy collection install cisco.iosxr.
To use it in a playbook, specify: cisco.iosxr.iosxr_ospf_interfaces.
New in version 1.2.0: of cisco.iosxr
Synopsis
- This module manages OSPF(v2/v3) configuration of interfaces on devices running Cisco IOS-XR.
Note
This module has a corresponding action plugin.
Parameters
| Parameter | Choices/Defaults | Comments | ||||||
|---|---|---|---|---|---|---|---|---|
| config list / elements=dictionary | A list of OSPF configuration for interfaces. | |||||||
| address_family list / elements=dictionary | OSPF settings on the interfaces in address-family context. | |||||||
| afi string / required |
| Address Family Identifier (AFI) for OSPF settings on the interfaces. | ||||||
| apply_group_option dictionary | Specify configuration from a group | |||||||
| group_name string | Specify the name of the group | |||||||
| operation string |
| Specify the group config operation | ||||||
| authentication dictionary | Enable authentication | |||||||
| message_digest dictionary | Use message-digest authentication | |||||||
| keychain string | Specify keychain name | |||||||
| null_auth boolean |
| Use no authentication | ||||||
| authentication_key dictionary | Specify authentication password (key) | |||||||
| clear string | Specifies an UNENCRYPTED password (key) will follow | |||||||
| encrypted string | Specifies an ENCRYPTED password (key) will follow | |||||||
| password string | The OSPFv2 password (key) | |||||||
| bfd dictionary | Configure BFD parameters | |||||||
| fast_detect dictionary | Configure fast detection | |||||||
| set boolean |
| Enable fast detection only | ||||||
| strict_mode boolean |
| Hold down neighbor session until BFD session is up | ||||||
| minimum_interval integer | Hello interval in milli-seconds | |||||||
| multiplier integer | Detect multiplier | |||||||
| cost integer | Specify Interface cost | |||||||
| cost_fallback dictionary | Specify Cost when cumulative bandwidth goes below the theshold | |||||||
| cost integer | Specify cost w.r.t cummulative bandwidth | |||||||
| threshold integer | Specify threshold bandwidth when cost-fallback is applied | |||||||
| database_filter dictionary | Filter OSPF LSAs during synchronization and flooding | |||||||
| all_outgoing_lsa boolean |
| Filter all outgoing LSA | ||||||
| dead_interval integer | Specify interval after which a neighbor is declared dead | |||||||
| demand_circuit boolean |
| Enable/Disable demand circuits | ||||||
| fast_reroute dictionary | Specify IP Fast Reroute | |||||||
| disabled boolean |
| Disable IP fast reroute | ||||||
| per_link dictionary | Specify per-prefix computation | |||||||
| information_type string |
| Specify per-link LFA exclusion or FRR LFA candidate information | ||||||
| interface dictionary | Specify Per-link LFA exclusion information | |||||||
| bundle_ether list / elements=dictionary | Specify Aggregated Ethernet interface(s) | |||||||
| name integer | Specify the interface id | |||||||
| bvi list / elements=dictionary | Specify Bridge-Group Virtual Interface | |||||||
| name integer | Specify the interface id | |||||||
| fast_ethernet list / elements=dictionary | Specify FastEthernet/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| fiftygige list / elements=dictionary | Specify FiftyGigE/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| fortygige list / elements=dictionary | Specify FortyGigE/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| fourhundredgige list / elements=dictionary | Specify FourHundredGigE/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| gigabitethernet list / elements=dictionary | Specify GigabitEthernet/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| hundredgige list / elements=dictionary | Specify HundredGigE/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| mgmteth list / elements=dictionary | Specify MgmtEth/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| multilink list / elements=dictionary | Specify Multilink network interface(s) | |||||||
| name string | Specify the interface id | |||||||
| nve list / elements=dictionary | Specify Network Virtualization Endpoint Interface(s) | |||||||
| name integer | Specify the interface id | |||||||
| pos_int list / elements=dictionary | Specify Aggregated pos interface(s) | |||||||
| name integer | Specify the interface id | |||||||
| pw_ether list / elements=dictionary | Specify PWHE Ethernet Interface | |||||||
| name integer | Specify the interface id | |||||||
| pw_iw list / elements=dictionary | Specify PWHE VC11 IP Interworking Interface | |||||||
| name integer | Specify the interface id | |||||||
| serial list / elements=dictionary | Specify Serial network interface(s) | |||||||
| name string | Specify the interface id | |||||||
| srp list / elements=dictionary | Specify SRP interface(s) | |||||||
| name string | Specify the interface id | |||||||
| tengige list / elements=dictionary | Specify TenGigabitEthernet/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| tunnel_ip list / elements=dictionary | Specify GRE/IPinIP Tunnel Interface(s) | |||||||
| name integer | Specify the interface id | |||||||
| tunnel_ipsec list / elements=dictionary | Specify IPSec Tunnel interface(s) | |||||||
| name integer | Specify the interface id | |||||||
| tunnel_mpls list / elements=dictionary | MPLS Transport Protocol Tunnel interface | |||||||
| name string | Specify the interface id | |||||||
| tunnel_mte list / elements=dictionary | Specify MPLS Traffic Engineering P2MP Tunnel interface(s) | |||||||
| name integer | Specify the interface id | |||||||
| twentyfivegige list / elements=dictionary | Specify TwentyFiveGigabitEthernet/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| twohundredgige list / elements=dictionary | Specify TwoHundredGigE/IEEE 802.3 interface(s) | |||||||
| name string | Specify the interface id | |||||||
| use_candidate_only boolean |
| Enable/Disable backup selection from candidate-list only | ||||||
| flood_reduction boolean |
| Enable/Disable flood reduction | ||||||
| hello_interval integer | Specify Time between HELLO packets | |||||||
| link_down_fast_detect boolean |
| Configure interface down parameters | ||||||
| message_digest_key dictionary | Message digest authentication password (key) | |||||||
| id integer / required | Key ID | |||||||
| md5 dictionary / required | Use MD5 Algorithm | |||||||
| clear boolean |
| Specifies an UNENCRYPTED password (key) will follow | ||||||
| encrypted boolean |
| Specifies an ENCRYPTED password (key) will follow | ||||||
| password string | The OSPFv2 password (key) | |||||||
| mpls_ldp_sync boolean |
| Enable/Disable MPLS LDP Sync | ||||||
| mtu_ignore boolean |
| Enable/Disable ignoring of MTU in DBD packets | ||||||
| neighbors list / elements=dictionary | Specify a neighbor routers | |||||||
| cost integer | Specify OSPF cost for point-to-multipoint neighbor | |||||||
| db_filter_all_out boolean |
| Specify Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor | ||||||
| neighbor_id string | Specify Neighbor address (name) | |||||||
| poll_interval integer | Specify OSPF dead-router polling interval | |||||||
| priority integer | Specify OSPF priority of non-broadcast neighbor | |||||||
| network string |
| Specify Network type | ||||||
| packet_size integer | Customize size of OSPF packets upto MTU | |||||||
| passive boolean |
| Enable/Disable passive | ||||||
| prefix_suppression boolean |
| Suppress advertisement of the prefixes | ||||||
| priority integer | Specify Router priority | |||||||
| processes list / elements=dictionary | Interfaces configuration for an OSPF process. | |||||||
| area dictionary | Specify the area-id | |||||||
| area_id string | OSPF interfaces area ID as a decimal value. Please refer vendor documentation of Valid values. OSPF interfaces area ID in IP address format(e.g. A.B.C.D) | |||||||
| process_id string / required | OSPF process tag. | |||||||
| retransmit_interval integer | Specify time between retransmitting lost link state advertisements | |||||||
| security_ttl dictionary | Enable security | |||||||
| hops integer | Maximum number of IP hops allowed <1-254> | |||||||
| set boolean |
| Enable ttl security | ||||||
| transmit_delay integer | Specify estimated time needed to send link-state update packet | |||||||
| name string / required | Name/Identifier of the interface. | |||||||
| type string / required | Type of the interface. | |||||||
| running_config string | This option is used only with state parsed. The value of this option should be the output received from the IOS-XR device by executing the command show running-config router ospf'. The state parsed reads the configuration from running_config option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the parsed key within the result. | |||||||
| state string |
| The state the configuration should be left in. | ||||||
Notes
Note
- Tested against IOS-XR 6.1.3
- This module works with connection
network_cli. See the IOS-XR Platform Options
Examples
# Using merged
# Before state:
# -------------
#
# RP/0/RP0/CPU0:anton#show running-config router ospf
# % No such configuration item(s)
#
- name: Merge provided OSPF interfaces configuration with the existing configuration
cisco.iosxr.iosxr_ospf_interfaces:
config:
- name: GigabitEthernet0/0/0/0
type: gigabitethernet
address_family:
- afi: ipv4
processes:
- process_id: "LAB3"
area:
area_id: 0.0.0.3
cost: 20
authentication:
message_digest:
keychain: cisco
- afi: ipv6
processes:
- process_id: "LAB3"
area:
area_id: 0.0.0.2
cost: 30
state: merged
#
#
# ------------------------
# Module Execution Result
# ------------------------
#
# "before": []
#
# "commands": [
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 cost 20",
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 authentication message-digest",
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 authentication message-digest keychain cisco",
# "router ospfv3 LAB3 area 0.0.0.2 interface GigabitEthernet 0/0/0/0 cost 30"
# ]
#
# "after": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "cisco"
# }
# },
# "cost": 20,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB3"
# }
# ]
# },
# {
# "afi": "ipv6",
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.2"
# },
# "process_id": "LAB3"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/0",
# "type": "gigabitethernet"
# }
# ]
#
#
# ------------
# After state
# ------------
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:00:57.217 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# !
# !
# router ospf LAB3
# area 0.0.0.3
# interface GigabitEthernet0/0/0/0
# cost 20
# authentication message-digest keychain cisco
# !
# !
# !
# router ospf ipv4
# !
# Using replaced
#
# ------------
# Before state
# ------------
#
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:00:57.217 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# !
# !
# router ospf LAB3
# area 0.0.0.3
# interface GigabitEthernet0/0/0/0
# cost 20
# authentication message-digest keychain cisco
# !
# !
# !
# router ospf ipv4
# !
- name: Replace OSPF interfaces configuration
cisco.iosxr.iosxr_ospf_interfaces:
config:
- name: GigabitEthernet0/0/0/0
type: gigabitethernet
address_family:
- afi: ipv4
processes:
- process_id: "LAB3"
area:
area_id: 0.0.0.3
cost: 30
authentication:
message_digest:
keychain: ciscoiosxr
- afi: ipv6
processes:
- process_id: "LAB3"
area:
area_id: 0.0.0.2
cost: 30
state: replaced
#
#
# ------------------------
# Module Execution Result
# ------------------------
#
# "before": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "cisco"
# }
# },
# "cost": 20,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB3"
# }
# ]
# },
# {
# "afi": "ipv6",
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.2"
# },
# "process_id": "LAB3"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/0",
# "type": "gigabitethernet"
# }
# ]
#
# "commands": [
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 cost 30",
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 authentication message-digest",
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 authentication message-digest keychain ciscoiosxr"
# ]
#
# "after": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "ciscoiosxr"
# }
# },
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB3"
# }
# ]
# },
# {
# "afi": "ipv6",
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.2"
# },
# "process_id": "LAB3"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/0",
# "type": "gigabitethernet"
# }
# ]
#
#
# -----------
# After state
# -----------
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:10:39.827 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# !
# !
# router ospf LAB3
# area 0.0.0.3
# interface GigabitEthernet0/0/0/0
# cost 30
# authentication message-digest keychain ciscoiosxr
# !
# !
# !
# router ospf ipv4
# !
- name: Override existing OSPF interfaces configuration
cisco.iosxr.iosxr_ospf_interfaces:
config:
- name: GigabitEthernet0/0/0/1
type: gigabitethernet
address_family:
- afi: ipv4
processes:
- process_id: "LAB1"
area:
area_id: 0.0.0.3
cost: 10
authentication:
message_digest:
keychain: iosxr
state: overridden
#
#
# ------------------------
# Module Execution Result
# ------------------------
#
# "before": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "ciscoiosxr"
# }
# },
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB3"
# }
# ]
# },
# {
# "afi": "ipv6",
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.2"
# },
# "process_id": "LAB3"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/0",
# "type": "gigabitethernet"
# }
# ]
#
# "commands": [
# "no router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0",
# "no router ospfv3 LAB3 area 0.0.0.2 interface GigabitEthernet 0/0/0/0",
# "router ospf LAB1 area 0.0.0.3 interface GigabitEthernet 0/0/0/1 cost 10",
# "router ospf LAB1 area 0.0.0.3 interface GigabitEthernet 0/0/0/1 authentication message-digest",
# "router ospf LAB1 area 0.0.0.3 interface GigabitEthernet 0/0/0/1 authentication message-digest keychain iosxr"
# ]
#
# "after": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "iosxr"
# }
# },
# "cost": 10,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB1"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/1",
# "type": "gigabitethernet"
# }
# ]
#
#
# -----------
# After state
# -----------
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:28:15.025 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# interface GigabitEthernet0/0/0/1
# cost 10
# authentication message-digest keychain iosxr
# !
# !
# !
# router ospf LAB3
# area 0.0.0.3
# !
# !
# router ospf ipv4
# !
# Using deleted
#
# ------------
# Before state
# ------------
#
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:28:15.025 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# interface GigabitEthernet0/0/0/1
# cost 10
# authentication message-digest keychain iosxr
# !
# !
# !
# router ospf LAB3
# area 0.0.0.3
# !
# !
# router ospf ipv4
# !
- name: Deleted existing OSPF interfaces from the device
cisco.iosxr.iosxr_ospf_interfaces:
config:
- name: GigabitEthernet0/0/0/1
type: gigabitethernet
state: deleted
#
#
# ------------------------
# Module Execution Result
# ------------------------
#
# "before": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "iosxr"
# }
# },
# "cost": 10,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB1"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/1",
# "type": "gigabitethernet"
# }
# ],
#
# "commands": [
# "no router ospf LAB1 area 0.0.0.3 interface GigabitEthernet 0/0/0/1"
# ]
#
# "after": []
#
#
# -----------
# After state
# -----------
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:34:38.319 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# !
# !
# router ospf LAB3
# area 0.0.0.3
# !
# !
# router ospf ipv4
# !
# Using parsed
# parsed.cfg
# ------------
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# !
# !
# router ospf LAB3
# area 0.0.0.3
# interface GigabitEthernet0/0/0/0
# cost 20
# authentication message-digest keychain cisco
# !
# !
# !
# router ospf ipv4
# !
- name: Parsed the device configuration to get output commands
cisco.iosxr.iosxr_ospf_interfaces:
running_config: "{{ lookup('file', './parsed.cfg') }}"
state: parsed
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "parsed": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "cisco"
# }
# },
# "cost": 20,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB3"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/0",
# "type": "gigabitethernet"
# }
# ]
#
# Using rendered
#
#
- name: Render the commands for provided configuration
cisco.iosxr.iosxr_ospf_interfaces:
config:
- name: GigabitEthernet0/0/0/0
type: gigabitethernet
address_family:
- afi: ipv4
processes:
- process_id: "LAB3"
area:
area_id: 0.0.0.3
cost: 20
authentication:
message_digest:
keychain: cisco
- afi: ipv6
processes:
- process_id: "LAB3"
area:
area_id: 0.0.0.2
cost: 30
state: rendered
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "rendered": [
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 cost 20",
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 authentication message-digest",
# "router ospf LAB3 area 0.0.0.3 interface GigabitEthernet 0/0/0/0 authentication message-digest keychain cisco",
# "router ospfv3 LAB3 area 0.0.0.2 interface GigabitEthernet 0/0/0/0 cost 30"
# ]
# Using gathered
#
# Before state:
# -------------
#
# RP/0/0/CPU0:an-iosxr-02#show running-config router ospf
# Thu Oct 23 06:50:38.743 UTC
# router ospf LAB
# area 0.0.0.0
# !
# area 0.0.0.9
# !
# !
# router ospf LAB1
# area 0.0.0.1
# !
# area 0.0.0.3
# !
# !
# router ospf LAB3
# area 0.0.0.3
# interface GigabitEthernet0/0/0/0
# cost 20
# authentication message-digest keychain cisco
# !
# !
# !
# router ospf ipv4
# !
- name: Gather ospf_interfaces routes configuration
cisco.iosxr.iosxr_ospf_interfaces:
state: gathered
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
# "gathered": [
# {
# "address_family": [
# {
# "afi": "ipv4",
# "authentication": {
# "message_digest": {
# "keychain": "cisco"
# }
# },
# "cost": 20,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.3"
# },
# "process_id": "LAB3"
# }
# ]
# },
# {
# "afi": "ipv6",
# "cost": 30,
# "processes": [
# {
# "area": {
# "area_id": "0.0.0.2"
# },
# "process_id": "LAB3"
# }
# ]
# }
# ],
# "name": "GigabitEthernet0/0/0/0",
# "type": "gigabitethernet"
# }
# ]
#
Authors
- Rohit Thakur (@rohitthakur2590)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/cisco/iosxr/iosxr_ospf_interfaces_module.html