1727 lines
59 KiB
Python
1727 lines
59 KiB
Python
#!/usr/bin/python
|
|
#
|
|
# -*- coding: utf-8 -*-
|
|
# Copyright 2020 Red Hat
|
|
# GNU General Public License v3.0+
|
|
# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
#############################################
|
|
# WARNING #
|
|
#############################################
|
|
#
|
|
# This file is auto generated by the resource
|
|
# module builder playbook.
|
|
#
|
|
# Do not edit this file manually.
|
|
#
|
|
# Changes to this file will be over written
|
|
# by the resource module builder.
|
|
#
|
|
# Changes should be made in the model used to
|
|
# generate this file or in the resource module
|
|
# builder template.
|
|
#
|
|
#############################################
|
|
|
|
"""
|
|
The module file for ios_ospfv2
|
|
"""
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
DOCUMENTATION = """
|
|
module: ios_ospfv2
|
|
short_description: Resource module to configure OSPFv2.
|
|
description: This module configures and manages the Open Shortest Path First (OSPF)
|
|
version 2 on IOS platforms.
|
|
version_added: 1.0.0
|
|
author: Sumit Jaiswal (@justjais)
|
|
notes:
|
|
- Tested against Cisco IOSv Version 15.2 on VIRL.
|
|
- This module works with connection C(network_cli).
|
|
See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html)
|
|
options:
|
|
config:
|
|
description: A dictionary of OSPF options.
|
|
type: dict
|
|
suboptions:
|
|
processes:
|
|
description:
|
|
- List of OSPF instance configurations.
|
|
type: list
|
|
elements: dict
|
|
suboptions:
|
|
process_id:
|
|
description: Process ID
|
|
required: true
|
|
type: int
|
|
vrf:
|
|
description: Specify parameters for a VPN Routing/Forwarding instance
|
|
type: str
|
|
address_family:
|
|
description: Router Address Family configuration mode
|
|
type: dict
|
|
suboptions:
|
|
default:
|
|
description: Set a command to its defaults
|
|
type: bool
|
|
snmp_context:
|
|
description:
|
|
- Modify snmp parameters
|
|
- Configure SNMP context name
|
|
type: str
|
|
topology:
|
|
description: Associate the routing protocol to a topology instance
|
|
type: dict
|
|
suboptions:
|
|
name:
|
|
description: Routing topology instance name
|
|
type: str
|
|
base:
|
|
description: Entering router topology sub mode
|
|
type: bool
|
|
tid:
|
|
description:
|
|
- Configuring the routing protocol topology tid
|
|
- Note, please refer vendor documentation for valid values
|
|
type: bool
|
|
adjacency:
|
|
description: To configure control adjacency formation
|
|
type: dict
|
|
suboptions:
|
|
min_adjacency:
|
|
description:
|
|
- Initial number of adjacencies allowed to be forming in an area
|
|
- Please refer vendor documentation for valid values
|
|
type: int
|
|
max_adjacency:
|
|
description:
|
|
- Maximum number of adjacencies allowed to be forming
|
|
- Please refer vendor documentation for valid values
|
|
type: int
|
|
none:
|
|
description: No initial
|
|
type: bool
|
|
areas:
|
|
description: OSPF area parameters
|
|
type: list
|
|
elements: dict
|
|
suboptions:
|
|
area_id:
|
|
description:
|
|
- OSPF area ID as a decimal value. Please refer vendor documentation
|
|
of Valid values.
|
|
- OSPF area ID in IP address format(e.g. A.B.C.D)
|
|
type: str
|
|
authentication:
|
|
description: Area authentication
|
|
type: dict
|
|
suboptions:
|
|
enable:
|
|
description: Enable area authentication
|
|
type: bool
|
|
message_digest:
|
|
description: Use IPsec authentication
|
|
type: bool
|
|
capability:
|
|
description:
|
|
- Enable area specific capability
|
|
- Enable exclusion of links from base topology
|
|
type: bool
|
|
default_cost:
|
|
description:
|
|
- Set the summary default-cost of a NSSA/stub area
|
|
- Stub's advertised external route metric
|
|
- Note, please refer vendor documentation for respective valid values
|
|
type: int
|
|
filter_list:
|
|
description: Filter networks between OSPF areas
|
|
type: list
|
|
elements: dict
|
|
suboptions:
|
|
name:
|
|
description: Name of an IP prefix-list
|
|
type: str
|
|
direction:
|
|
description: The direction to apply on the filter networks sent to and from this area.
|
|
type: str
|
|
choices: ['in', 'out']
|
|
required: true
|
|
nssa:
|
|
description: Specify a NSSA area
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Enable a NSSA area
|
|
type: bool
|
|
default_information_originate:
|
|
description: Originate Type 7 default into NSSA area
|
|
type: dict
|
|
suboptions:
|
|
metric:
|
|
description: OSPF default metric
|
|
type: int
|
|
metric_type:
|
|
description:
|
|
- OSPF metric type for default routes
|
|
- OSPF Link State type
|
|
type: int
|
|
choices: [1, 2]
|
|
nssa_only:
|
|
description: Limit default advertisement to this NSSA area
|
|
type: bool
|
|
no_ext_capability:
|
|
description: Do not send domain specific capabilities into NSSA
|
|
type: bool
|
|
no_redistribution:
|
|
description: No redistribution into this NSSA area
|
|
type: bool
|
|
no_summary:
|
|
description: Do not send summary LSA into NSSA
|
|
type: bool
|
|
translate:
|
|
description:
|
|
- Translate LSA
|
|
- Always translate LSAs on this ABR
|
|
- Suppress forwarding address in translated LSAs
|
|
type: str
|
|
choices: ['always', 'suppress-fa']
|
|
ranges:
|
|
description: Summarize routes matching address/mask (border routers only)
|
|
type: list
|
|
elements: dict
|
|
suboptions:
|
|
address:
|
|
description: IP address to match
|
|
type: str
|
|
netmask:
|
|
description: IP mask for address
|
|
type: str
|
|
advertise:
|
|
description:
|
|
- Advertise this range (default)
|
|
- Since, advertise when enabled is not shown in running-config
|
|
idempotency won't be maintained for the play in the second or
|
|
next run of the play.
|
|
type: bool
|
|
cost:
|
|
description: User specified metric for this range
|
|
type: int
|
|
not_advertise:
|
|
description: DoNotAdvertise this range
|
|
type: bool
|
|
sham_link:
|
|
description: Define a sham link and its parameters
|
|
type: dict
|
|
suboptions:
|
|
source:
|
|
description: IP addr associated with sham-link source (A.B.C.D)
|
|
type: str
|
|
destination:
|
|
description: IP addr associated with sham-link destination (A.B.C.D)
|
|
type: str
|
|
cost:
|
|
description:
|
|
- Associate a cost with the sham-link
|
|
- Cost of the sham-link
|
|
- Note, please refer vendor documentation for respective valid values
|
|
type: int
|
|
ttl_security:
|
|
description:
|
|
- TTL security check
|
|
- Maximum number of IP hops allowed
|
|
type: int
|
|
stub:
|
|
description:
|
|
- Specify a stub area
|
|
- Backbone can not be configured as stub area
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Enable a stub area
|
|
type: bool
|
|
no_ext_capability:
|
|
description: Do not send domain specific capabilities into stub area
|
|
type: bool
|
|
no_summary:
|
|
description: Do not send summary LSA into stub area
|
|
type: bool
|
|
auto_cost:
|
|
description: Calculate OSPF interface cost according to bandwidth
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Enable OSPF auto-cost
|
|
type: bool
|
|
reference_bandwidth:
|
|
description:
|
|
- Use reference bandwidth method to assign OSPF cost
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
bfd:
|
|
description:
|
|
- BFD configuration commands
|
|
- Enable BFD on all interfaces
|
|
type: bool
|
|
capability:
|
|
description: Enable specific OSPF feature
|
|
type: dict
|
|
suboptions:
|
|
lls:
|
|
description: Link-local Signaling (LLS) support
|
|
type: bool
|
|
opaque:
|
|
description: Opaque LSA
|
|
type: bool
|
|
transit:
|
|
description: Transit Area
|
|
type: bool
|
|
vrf_lite:
|
|
description: Do not perform PE specific checks
|
|
type: bool
|
|
compatible:
|
|
description: OSPF router compatibility list
|
|
type: dict
|
|
suboptions:
|
|
rfc1583:
|
|
description: compatible with RFC 1583
|
|
type: bool
|
|
rfc1587:
|
|
description: compatible with RFC 1587
|
|
type: bool
|
|
rfc5243:
|
|
description: supports DBD exchange optimization
|
|
type: bool
|
|
default_information:
|
|
description: Control distribution of default information
|
|
type: dict
|
|
suboptions:
|
|
originate:
|
|
description: Distribute a default route
|
|
type: bool
|
|
always:
|
|
description: Always advertise default route
|
|
type: bool
|
|
metric:
|
|
description:
|
|
- OSPF default metric
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
metric_type:
|
|
description:
|
|
- OSPF metric type for default routes
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
route_map:
|
|
description: Route-map reference name
|
|
type: str
|
|
default_metric:
|
|
description: Set metric of redistributed routes
|
|
type: int
|
|
discard_route:
|
|
description: Enable or disable discard-route installation
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Enable discard-route installation
|
|
type: bool
|
|
external:
|
|
description:
|
|
- Discard route for redistributed summarised routes
|
|
- Administrative distance for redistributed summarised routes
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
internal:
|
|
description:
|
|
- Discard route for summarised internal routes
|
|
- Administrative distance for summarised internal routes
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
distance:
|
|
description: Define an administrative distance
|
|
type: dict
|
|
suboptions:
|
|
admin_distance:
|
|
description: OSPF Administrative distance
|
|
type: dict
|
|
suboptions:
|
|
distance:
|
|
description: Administrative distance
|
|
type: int
|
|
address:
|
|
description: IP Source address
|
|
type: str
|
|
wildcard_bits:
|
|
description: Wildcard bits
|
|
type: str
|
|
acl:
|
|
description: Access-list name/number
|
|
type: str
|
|
ospf:
|
|
description: OSPF distance
|
|
type: dict
|
|
suboptions:
|
|
external:
|
|
description: External type 5 and type 7 routes
|
|
type: int
|
|
inter_area:
|
|
description: Inter-area routes
|
|
type: int
|
|
intra_area:
|
|
description: Intra-area routes
|
|
type: int
|
|
distribute_list:
|
|
description: Filter networks in routing updates
|
|
type: dict
|
|
suboptions:
|
|
acls:
|
|
description: IP access list
|
|
type: list
|
|
elements: dict
|
|
suboptions:
|
|
name:
|
|
description: IP access list name/number
|
|
type: str
|
|
required: true
|
|
direction:
|
|
description: Filter incoming and outgoing routing updates.
|
|
type: str
|
|
required: true
|
|
choices: ['in', 'out']
|
|
interface:
|
|
description:
|
|
- Interface configuration (GigabitEthernet A/B)
|
|
- Valid with incoming traffic
|
|
type: str
|
|
protocol:
|
|
description:
|
|
- Protocol config (bgp 1).
|
|
- Valid with outgoing traffic
|
|
type: str
|
|
prefix:
|
|
description: Filter prefixes in routing updates
|
|
type: dict
|
|
suboptions:
|
|
name:
|
|
description: Name of an IP prefix-list
|
|
type: str
|
|
required: true
|
|
gateway_name:
|
|
description: Gateway name for filtering incoming updates based on gateway
|
|
type: str
|
|
direction:
|
|
description: Filter incoming and outgoing routing updates.
|
|
type: str
|
|
required: true
|
|
choices: ['in', 'out']
|
|
interface:
|
|
description:
|
|
- Interface configuration (GigabitEthernet A/B)
|
|
- Valid with incoming traffic
|
|
type: str
|
|
protocol:
|
|
description:
|
|
- Protocol config (bgp 1).
|
|
- Valid with outgoing traffic
|
|
type: str
|
|
route_map:
|
|
description: Filter prefixes in routing updates
|
|
type: dict
|
|
suboptions:
|
|
name:
|
|
description: Route-map name
|
|
type: str
|
|
required: true
|
|
domain_id:
|
|
description: OSPF domain-id
|
|
type: dict
|
|
suboptions:
|
|
ip_address:
|
|
description: IP address
|
|
type: dict
|
|
suboptions:
|
|
address:
|
|
description: OSPF domain ID in IP address format
|
|
type: str
|
|
secondary:
|
|
description: Secondary Domain-ID
|
|
type: bool
|
|
'null':
|
|
description: Null Domain-ID
|
|
type: bool
|
|
domain_tag:
|
|
description:
|
|
- OSPF domain-tag which is OSPF domain tag - 32-bit value
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
event_log:
|
|
description: Event Logging
|
|
type: dict
|
|
suboptions:
|
|
enable:
|
|
description: Enable event Logging
|
|
type: bool
|
|
one_shot:
|
|
description: Disable Logging When Log Buffer Becomes Full
|
|
type: bool
|
|
pause:
|
|
description: Pause Event Logging
|
|
type: bool
|
|
size:
|
|
description:
|
|
- Maximum Number of Events Stored in the Event Log
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
help:
|
|
description: Description of the interactive help system
|
|
type: bool
|
|
ignore:
|
|
description:
|
|
- Do not complain about specific event
|
|
- Do not complain upon receiving LSA of the specified type, MOSPF Type 6 LSA
|
|
type: bool
|
|
interface_id:
|
|
description:
|
|
- Source of the interface ID
|
|
- SNMP MIB ifIndex
|
|
type: bool
|
|
ispf:
|
|
description: Enable incremental SPF computation
|
|
type: bool
|
|
limit:
|
|
description: Limit a specific OSPF feature and LS update, DBD, and LS request retransmissions
|
|
type: dict
|
|
suboptions:
|
|
dc:
|
|
description: Demand circuit retransmissions
|
|
type: dict
|
|
suboptions:
|
|
number:
|
|
description: The maximum number of retransmissions
|
|
type: int
|
|
disable:
|
|
description: Disble the feature
|
|
type: bool
|
|
non_dc:
|
|
description: Non-demand-circuit retransmissions
|
|
type: dict
|
|
suboptions:
|
|
number:
|
|
description: The maximum number of retransmissions
|
|
type: int
|
|
disable:
|
|
description: Disble the feature
|
|
type: bool
|
|
local_rib_criteria:
|
|
description: Enable or disable usage of local RIB as route criteria
|
|
type: dict
|
|
suboptions:
|
|
enable:
|
|
description: Enable usage of local RIB as route criteria
|
|
type: bool
|
|
forwarding_address:
|
|
description: Local RIB used to validate external/NSSA forwarding addresses
|
|
type: bool
|
|
inter_area_summary:
|
|
description: Local RIB used as criteria for inter-area summaries
|
|
type: bool
|
|
nssa_translation:
|
|
description: Local RIB used as criteria for NSSA translation
|
|
type: bool
|
|
log_adjacency_changes:
|
|
description: Log changes in adjacency state
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Log changes in adjacency state
|
|
type: bool
|
|
detail:
|
|
description: Log all state changes
|
|
type: bool
|
|
max_lsa:
|
|
description: Maximum number of non self-generated LSAs to accept
|
|
type: dict
|
|
suboptions:
|
|
number:
|
|
description:
|
|
- Maximum number of non self-generated LSAs to accept
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
threshold_value:
|
|
description:
|
|
- Threshold value (%) at which to generate a warning msg
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
ignore_count:
|
|
description:
|
|
- Maximum number of times adjacencies can be suppressed
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
ignore_time:
|
|
description:
|
|
- Number of minutes during which all adjacencies are suppressed
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
reset_time:
|
|
description:
|
|
- Number of minutes after which ignore-count is reset to zero
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
warning_only:
|
|
description: Only give a warning message when limit is exceeded
|
|
type: bool
|
|
max_metric:
|
|
description: Set maximum metric
|
|
type: dict
|
|
suboptions:
|
|
router_lsa:
|
|
description: Maximum metric in self-originated router-LSAs
|
|
type: bool
|
|
required: true
|
|
external_lsa:
|
|
description:
|
|
- Override external-lsa metric with max-metric value
|
|
- Overriding metric in external-LSAs
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
include_stub:
|
|
description: Set maximum metric for stub links in router-LSAs
|
|
type: bool
|
|
on_startup:
|
|
description: Set maximum metric temporarily after reboot
|
|
type: dict
|
|
suboptions:
|
|
time:
|
|
description:
|
|
- Time, in seconds, router-LSAs are originated with max-metric
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
wait_for_bgp:
|
|
description: Let BGP decide when to originate router-LSA with normal metric
|
|
type: bool
|
|
summary_lsa:
|
|
description:
|
|
- Override summary-lsa metric with max-metric value
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
maximum_paths:
|
|
description:
|
|
- Forward packets over multiple paths
|
|
- Number of paths
|
|
type: int
|
|
mpls:
|
|
description: Configure MPLS routing protocol parameters
|
|
type: dict
|
|
suboptions:
|
|
ldp:
|
|
description: routing protocol commands for MPLS LDP
|
|
type: dict
|
|
suboptions:
|
|
autoconfig:
|
|
description: routing protocol commands for MPLS LDP
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Configure LDP automatic configuration and set the config
|
|
type: bool
|
|
area:
|
|
description: Configure an OSPF area to run MPLS LDP
|
|
type: str
|
|
sync:
|
|
description: Configure LDP-IGP Synchronization
|
|
type: bool
|
|
traffic_eng:
|
|
description: Let BGP decide when to originate router-LSA with normal metric
|
|
type: dict
|
|
suboptions:
|
|
area:
|
|
description:
|
|
- Configure an ospf area to run MPLS Traffic Engineering
|
|
- OSPF area ID as a decimal value or in IP address format
|
|
type: str
|
|
autoroute_exclude:
|
|
description:
|
|
- MPLS TE autoroute exclude
|
|
- Filter prefixes based on name of an IP prefix-list
|
|
type: str
|
|
interface:
|
|
description: MPLS TE interface configuration for this OSPF process
|
|
type: dict
|
|
suboptions:
|
|
interface_type:
|
|
description: TE Interface configuration (GigabitEthernet A/B)
|
|
type: str
|
|
area:
|
|
description:
|
|
- Advertise MPLS TE information for this interface into area
|
|
- OSPF area ID as a decimal value
|
|
type: int
|
|
mesh_group:
|
|
description: Traffic Engineering Mesh-Group advertisement
|
|
type: dict
|
|
suboptions:
|
|
id:
|
|
description: Mesh Group Id
|
|
type: int
|
|
interface:
|
|
description: Interface configuration (GigabitEthernet A/B)
|
|
type: str
|
|
area:
|
|
description: configure flooding scope as area
|
|
type: str
|
|
multicast_intact:
|
|
description: MPLS TE and PIM interaction
|
|
type: bool
|
|
router_id_interface:
|
|
description: Router Interface configuration (GigabitEthernet A/B)
|
|
type: str
|
|
neighbor:
|
|
description: Specify a neighbor router
|
|
type: dict
|
|
suboptions:
|
|
address:
|
|
description: Neighbor address (A.B.C.D)
|
|
type: str
|
|
cost:
|
|
description:
|
|
- OSPF cost for point-to-multipoint neighbor metric
|
|
- Note, please refer vendor documentation for respective valid range
|
|
type: int
|
|
database_filter:
|
|
description:
|
|
- Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor
|
|
- Filter all outgoing LSA
|
|
type: bool
|
|
poll_interval:
|
|
description: OSPF dead-router polling interval of non-broadcast neighbor in Seconds
|
|
type: int
|
|
priority:
|
|
description: OSPF priority of non-broadcast neighbor priority
|
|
type: int
|
|
network:
|
|
description: Enable routing on an IP network
|
|
type: list
|
|
elements: dict
|
|
suboptions:
|
|
address:
|
|
description: Network number
|
|
type: str
|
|
wildcard_bits:
|
|
description: OSPF wild card bits
|
|
type: str
|
|
area:
|
|
description: Set the OSPF area ID
|
|
type: str
|
|
nsf:
|
|
description: Non-stop forwarding
|
|
type: dict
|
|
suboptions:
|
|
cisco:
|
|
description: Cisco Non-stop forwarding
|
|
type: dict
|
|
suboptions:
|
|
helper:
|
|
description: helper support
|
|
type: bool
|
|
disable:
|
|
description: disable helper support
|
|
type: bool
|
|
ietf:
|
|
description: IETF graceful restart
|
|
type: dict
|
|
suboptions:
|
|
helper:
|
|
description: helper support
|
|
type: bool
|
|
disable:
|
|
description: disable helper support
|
|
type: bool
|
|
strict_lsa_checking:
|
|
description: enable helper strict LSA checking
|
|
type: bool
|
|
passive_interface:
|
|
description:
|
|
- passive_interface param is deprecated and a newer param passive_interfaces
|
|
with added functionality's is introduced, please meke use of the new available
|
|
passive_interfaces instead.
|
|
- Suppress routing updates on an interface (GigabitEthernet A/B)
|
|
- Interface name with respective interface number
|
|
type: str
|
|
passive_interfaces:
|
|
description: Suppress routing updates on an interface
|
|
type: dict
|
|
suboptions:
|
|
default:
|
|
description: Suppress routing updates on all interfaces
|
|
type: bool
|
|
interface:
|
|
description: Suppress/Un-Suppress routing updates on interface
|
|
type: dict
|
|
suboptions:
|
|
set_interface:
|
|
description: Suppress/Un-Suppress routing updates
|
|
type: bool
|
|
name:
|
|
description: Name of interface (GigabitEthernet A/B)
|
|
type: list
|
|
elements: str
|
|
prefix_suppression:
|
|
description: Enable prefix suppression
|
|
type: bool
|
|
priority:
|
|
description:
|
|
- OSPF topology priority
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
queue_depth:
|
|
description: Hello/Router process queue depth
|
|
type: dict
|
|
suboptions:
|
|
hello:
|
|
description: OSPF Hello process queue depth
|
|
type: dict
|
|
suboptions:
|
|
max_packets:
|
|
description: maximum number of packets in the queue
|
|
type: int
|
|
unlimited:
|
|
description: Unlimited queue depth
|
|
type: bool
|
|
update:
|
|
description: OSPF Router process queue depth
|
|
type: dict
|
|
suboptions:
|
|
max_packets:
|
|
description: maximum number of packets in the queue
|
|
type: int
|
|
unlimited:
|
|
description: Unlimited queue depth
|
|
type: bool
|
|
router_id:
|
|
description:
|
|
- Router-id address for this OSPF process
|
|
- OSPF router-id in IP address format (A.B.C.D)
|
|
type: str
|
|
shutdown:
|
|
description: Shutdown the router process
|
|
type: bool
|
|
summary_address:
|
|
description: Configure IP address summaries
|
|
type: dict
|
|
suboptions:
|
|
address:
|
|
description: IP summary address
|
|
type: str
|
|
mask:
|
|
description: IP Summary mask
|
|
type: str
|
|
not_advertise:
|
|
description: Do not advertise or translate
|
|
type: bool
|
|
nssa_only:
|
|
description: Limit summary to NSSA areas
|
|
type: bool
|
|
tag:
|
|
description: Set tag
|
|
type: int
|
|
timers:
|
|
description: Adjust routing timers
|
|
type: dict
|
|
suboptions:
|
|
lsa:
|
|
description:
|
|
- OSPF LSA timers, arrival timer
|
|
- The minimum interval in milliseconds between accepting the same LSA
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
pacing:
|
|
description: OSPF pacing timers
|
|
type: dict
|
|
suboptions:
|
|
flood:
|
|
description:
|
|
- OSPF flood pacing timer
|
|
- The minimum interval in msec to pace limit flooding on interface
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
lsa_group:
|
|
description:
|
|
- OSPF LSA group pacing timer
|
|
- Interval in sec between group of LSA being refreshed or maxaged
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
retransmission:
|
|
description:
|
|
- OSPF retransmission pacing timer
|
|
- The minimum interval in msec between neighbor retransmissions
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
throttle:
|
|
description: OSPF throttle timers
|
|
type: dict
|
|
suboptions:
|
|
lsa:
|
|
description: OSPF LSA throttle timers
|
|
type: dict
|
|
suboptions:
|
|
first_delay:
|
|
description:
|
|
- Delay to generate first occurrence of LSA in milliseconds
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
min_delay:
|
|
description:
|
|
- Minimum delay between originating the same LSA in milliseconds
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
max_delay:
|
|
description:
|
|
- Maximum delay between originating the same LSA in milliseconds
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
spf:
|
|
description: OSPF SPF throttle timers
|
|
- Delay between receiving a change to SPF calculation in milliseconds
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: dict
|
|
suboptions:
|
|
receive_delay:
|
|
description:
|
|
- Delay between receiving a change to SPF calculation in milliseconds
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
between_delay:
|
|
description:
|
|
- Delay between first and second SPF calculation in milliseconds
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
max_delay:
|
|
description:
|
|
- Maximum wait time in milliseconds for SPF calculations
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
traffic_share:
|
|
description:
|
|
- How to compute traffic share over alternate paths
|
|
- All traffic shared among min metric paths
|
|
- Use different interfaces for equal-cost paths
|
|
type: bool
|
|
ttl_security:
|
|
description: TTL security check
|
|
type: dict
|
|
suboptions:
|
|
set:
|
|
description: Enable TTL Security on all interfaces
|
|
type: bool
|
|
hops:
|
|
description:
|
|
- Maximum number of IP hops allowed
|
|
- Note, refer vendor documentation for respective valid values
|
|
type: int
|
|
running_config:
|
|
description:
|
|
- This option is used only with state I(parsed).
|
|
- The value of this option should be the output received from the IOS
|
|
device by executing the command B(sh running-config | section ^router ospf).
|
|
- The state I(parsed) reads the configuration from C(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
|
|
I(parsed) key within the result.
|
|
type: str
|
|
state:
|
|
description:
|
|
- The state the configuration should be left in
|
|
- The states I(rendered), I(gathered) and I(parsed) does not perform any change
|
|
on the device.
|
|
- The state I(rendered) will transform the configuration in C(config) option to
|
|
platform specific CLI commands which will be returned in the I(rendered) key
|
|
within the result. For state I(rendered) active connection to remote host is
|
|
not required.
|
|
- The state I(gathered) will fetch the running configuration from device and transform
|
|
it into structured data in the format as per the resource module argspec and
|
|
the value is returned in the I(gathered) key within the result.
|
|
- The state I(parsed) reads the configuration from C(running_config) option and
|
|
transforms it into JSON format as per the resource module parameters and the
|
|
value is returned in the I(parsed) key within the result. The value of C(running_config)
|
|
option should be the same format as the output of command I(show running-config
|
|
| include ip route|ipv6 route) executed on device. For state I(parsed) active
|
|
connection to remote host is not required.
|
|
type: str
|
|
choices:
|
|
- merged
|
|
- replaced
|
|
- overridden
|
|
- deleted
|
|
- gathered
|
|
- parsed
|
|
- rendered
|
|
default: merged
|
|
|
|
"""
|
|
EXAMPLES = """
|
|
|
|
# Using deleted
|
|
|
|
# Before state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
- name: Delete provided OSPF V2 processes
|
|
cisco.ios.ios_ospfv2:
|
|
config:
|
|
processes:
|
|
- process_id: 1
|
|
- process_id: 200
|
|
vrf: blue
|
|
state: deleted
|
|
|
|
# Commands Fired:
|
|
# ---------------
|
|
#
|
|
# "commands": [
|
|
# "no router ospf 1"
|
|
# ]
|
|
|
|
# After state:
|
|
# -------------
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
|
|
# Using deleted without any config passed (NOTE: This will delete all OSPFV2 configuration from device)
|
|
|
|
# Before state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
- name: Delete all OSPF processes
|
|
cisco.ios.ios_ospfv2:
|
|
state: deleted
|
|
|
|
# Commands Fired:
|
|
# ---------------
|
|
#
|
|
# "commands": [
|
|
# "no router ospf 200 vrf blue",
|
|
# "no router ospf 1"
|
|
# ]
|
|
|
|
# After state:
|
|
# -------------
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router-ios#
|
|
|
|
# Using merged
|
|
|
|
# Before state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router-ios#
|
|
|
|
- name: Merge provided OSPF V2 configuration
|
|
cisco.ios.ios_ospfv2:
|
|
config:
|
|
processes:
|
|
- process_id: 1
|
|
max_metric:
|
|
router_lsa: true
|
|
on_startup:
|
|
time: 110
|
|
areas:
|
|
- area_id: '5'
|
|
capability: true
|
|
authentication:
|
|
enable: true
|
|
- area_id: '10'
|
|
authentication:
|
|
message_digest: true
|
|
nssa:
|
|
default_information_originate:
|
|
metric: 10
|
|
translate: suppress-fa
|
|
default_cost: 10
|
|
filter_list:
|
|
- name: test_prefix_in
|
|
direction: in
|
|
- name: test_prefix_out
|
|
direction: out
|
|
network:
|
|
address: 198.51.100.0
|
|
wildcard_bits: 0.0.0.255
|
|
area: 5
|
|
default_information:
|
|
originate: true
|
|
passive_interfaces:
|
|
default: true
|
|
interface:
|
|
set_interface: False
|
|
name:
|
|
- GigabitEthernet0/1
|
|
- GigabitEthernet0/2
|
|
- process_id: 200
|
|
vrf: blue
|
|
domain_id:
|
|
ip_address:
|
|
address: 192.0.3.1
|
|
max_metric:
|
|
router_lsa: true
|
|
on_startup:
|
|
time: 100
|
|
auto_cost:
|
|
reference_bandwidth: 4
|
|
areas:
|
|
- area_id: '10'
|
|
capability: true
|
|
distribute_list:
|
|
acls:
|
|
- name: 10
|
|
direction: out
|
|
- name: 123
|
|
direction: in
|
|
state: merged
|
|
|
|
# Commands Fired:
|
|
# ---------------
|
|
#
|
|
# "commands": [
|
|
# "router ospf 200 vrf blue",
|
|
# "auto-cost reference-bandwidth 4",
|
|
# "distribute-list 10 out",
|
|
# "distribute-list 123 in",
|
|
# "domain-id 192.0.3.1",
|
|
# "max-metric router-lsa on-startup 100",
|
|
# "area 10 capability default-exclusion",
|
|
# "router ospf 1",
|
|
# "default-information originate",
|
|
# "max-metric router-lsa on-startup 110",
|
|
# "network 198.51.100.0 0.0.0.255 area 5",
|
|
# "area 10 authentication message-digest",
|
|
# "area 10 default-cost 10",
|
|
# "area 10 nssa translate type7 suppress-fa",
|
|
# "area 10 nssa default-information-originate metric 10",
|
|
# "area 10 filter-list prefix test_prefix_out out",
|
|
# "area 10 filter-list prefix test_prefix_in in",
|
|
# "area 5 authentication",
|
|
# "area 5 capability default-exclusion"
|
|
# "passive-interface default"
|
|
# "no passive-interface GigabitEthernet0/1"
|
|
# ]
|
|
|
|
# After state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
# passive-interface default
|
|
# no passive-interface GigabitEthernet0/1
|
|
# no passive-interface GigabitEthernet0/2
|
|
|
|
# Using overridden
|
|
|
|
# Before state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
- name: Override provided OSPF V2 configuration
|
|
cisco.ios.ios_ospfv2:
|
|
config:
|
|
processes:
|
|
- process_id: 200
|
|
vrf: blue
|
|
domain_id:
|
|
ip_address:
|
|
address: 192.0.4.1
|
|
max_metric:
|
|
router_lsa: true
|
|
on_startup:
|
|
time: 200
|
|
maximum_paths: 15
|
|
ttl_security:
|
|
hops: 7
|
|
areas:
|
|
- area_id: '10'
|
|
default_cost: 10
|
|
authentication:
|
|
message_digest: true
|
|
- process_id: 100
|
|
vrf: ospf_vrf
|
|
domain_id:
|
|
ip_address:
|
|
address: 192.0.5.1
|
|
auto_cost:
|
|
reference_bandwidth: 5
|
|
areas:
|
|
- area_id: '5'
|
|
authentication:
|
|
message_digest: true
|
|
nssa:
|
|
default_information_originate:
|
|
metric: 10
|
|
translate: suppress-fa
|
|
state: overridden
|
|
|
|
# Commands Fired:
|
|
# ---------------
|
|
#
|
|
# "commands": [
|
|
# "no router ospf 1",
|
|
# "router ospf 100 vrf ospf_vrf",
|
|
# "auto-cost reference-bandwidth 5",
|
|
# "domain-id 192.0.5.1",
|
|
# "area 5 authentication message-digest",
|
|
# "area 5 nssa translate type7 suppress-fa",
|
|
# "area 5 nssa default-information-originate metric 10",
|
|
# "router ospf 200 vrf blue",
|
|
# "no auto-cost reference-bandwidth 4",
|
|
# "no distribute-list 10 out",
|
|
# "no distribute-list 123 in",
|
|
# "domain-id 192.0.4.1",
|
|
# "max-metric router-lsa on-startup 200",
|
|
# "maximum-paths 15",
|
|
# "ttl-security all-interfaces hops 7",
|
|
# "area 10 authentication message-digest",
|
|
# "no area 10 capability default-exclusion",
|
|
# "area 10 default-cost 10"
|
|
# ]
|
|
|
|
# After state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.4.1
|
|
# max-metric router-lsa on-startup 200
|
|
# ttl-security all-interfaces hops 7
|
|
# area 10 authentication message-digest
|
|
# area 10 default-cost 10
|
|
# maximum-paths 15
|
|
# router ospf 100 vrf ospf_vrf
|
|
# domain-id 192.0.5.1
|
|
# auto-cost reference-bandwidth 5
|
|
# area 5 authentication message-digest
|
|
# area 5 nssa default-information-originate metric 10
|
|
# area 5 nssa translate type7 suppress-fa
|
|
|
|
# Using replaced
|
|
|
|
# Before state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
- name: Replaced provided OSPF V2 configuration
|
|
cisco.ios.ios_ospfv2:
|
|
config:
|
|
processes:
|
|
- process_id: 200
|
|
vrf: blue
|
|
domain_id:
|
|
ip_address:
|
|
address: 192.0.4.1
|
|
max_metric:
|
|
router_lsa: true
|
|
on_startup:
|
|
time: 200
|
|
maximum_paths: 15
|
|
ttl_security:
|
|
hops: 7
|
|
areas:
|
|
- area_id: '10'
|
|
default_cost: 10
|
|
authentication:
|
|
message_digest: true
|
|
- process_id: 100
|
|
vrf: ospf_vrf
|
|
domain_id:
|
|
ip_address:
|
|
address: 192.0.5.1
|
|
auto_cost:
|
|
reference_bandwidth: 5
|
|
areas:
|
|
- area_id: '5'
|
|
authentication:
|
|
message_digest: true
|
|
nssa:
|
|
default_information_originate:
|
|
metric: 10
|
|
translate: suppress-fa
|
|
state: replaced
|
|
|
|
# Commands Fired:
|
|
# ---------------
|
|
# "commands": [
|
|
# "router ospf 100 vrf ospf_vrf",
|
|
# "auto-cost reference-bandwidth 5",
|
|
# "domain-id 192.0.5.1",
|
|
# "area 5 authentication message-digest",
|
|
# "area 5 nssa translate type7 suppress-fa",
|
|
# "area 5 nssa default-information-originate metric 10",
|
|
# "router ospf 200 vrf blue",
|
|
# "no auto-cost reference-bandwidth 4",
|
|
# "no distribute-list 10 out",
|
|
# "no distribute-list 123 in",
|
|
# "domain-id 192.0.4.1",
|
|
# "max-metric router-lsa on-startup 200",
|
|
# "maximum-paths 15",
|
|
# "ttl-security all-interfaces hops 7",
|
|
# "area 10 authentication message-digest",
|
|
# "no area 10 capability default-exclusion",
|
|
# "area 10 default-cost 10"
|
|
# ]
|
|
|
|
# After state:
|
|
# -------------
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.4.1
|
|
# max-metric router-lsa on-startup 200
|
|
# ttl-security all-interfaces hops 7
|
|
# area 10 authentication message-digest
|
|
# area 10 default-cost 10
|
|
# maximum-paths 15
|
|
# router ospf 100 vrf ospf_vrf
|
|
# domain-id 192.0.5.1
|
|
# auto-cost reference-bandwidth 5
|
|
# area 5 authentication message-digest
|
|
# area 5 nssa default-information-originate metric 10
|
|
# area 5 nssa translate type7 suppress-fa
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 5 capability default-exclusion
|
|
# area 5 authentication
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_in in
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
# Using Gathered
|
|
|
|
# Before state:
|
|
# -------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
- name: Gather OSPFV2 provided configurations
|
|
cisco.ios.ios_ospfv2:
|
|
config:
|
|
state: gathered
|
|
|
|
# Module Execution Result:
|
|
# ------------------------
|
|
#
|
|
# "gathered": {
|
|
# "processes": [
|
|
# {
|
|
# "areas": [
|
|
# {
|
|
# "area_id": "5",
|
|
# "authentication": {
|
|
# "enable": true
|
|
# },
|
|
# "capability": true
|
|
# },
|
|
# {
|
|
# "area_id": "10",
|
|
# "authentication": {
|
|
# "message_digest": true
|
|
# },
|
|
# "default_cost": 10,
|
|
# "filter_list": [
|
|
# {
|
|
# "direction": "in",
|
|
# "name": "test_prefix_in"
|
|
# },
|
|
# {
|
|
# "direction": "out",
|
|
# "name": "test_prefix_out"
|
|
# }
|
|
# ],
|
|
# "nssa": {
|
|
# "default_information_originate": {
|
|
# "metric": 10
|
|
# },
|
|
# "translate": "suppress-fa"
|
|
# }
|
|
# }
|
|
# ],
|
|
# "default_information": {
|
|
# "originate": true
|
|
# },
|
|
# "max_metric": {
|
|
# "on_startup": {
|
|
# "time": 110
|
|
# },
|
|
# "router_lsa": true
|
|
# },
|
|
# "network": {
|
|
# "address": "198.51.100.0",
|
|
# "area": "5",
|
|
# "wildcard_bits": "0.0.0.255"
|
|
# },
|
|
# "process_id": 1
|
|
# },
|
|
# {
|
|
# "areas": [
|
|
# {
|
|
# "area_id": "10",
|
|
# "capability": true
|
|
# }
|
|
# ],
|
|
# "auto_cost": {
|
|
# "reference_bandwidth": 4
|
|
# },
|
|
# "distribute_list": {
|
|
# "acls": [
|
|
# {
|
|
# "direction": "out",
|
|
# "name": "10"
|
|
# },
|
|
# {
|
|
# "direction": "in",
|
|
# "name": "123"
|
|
# }
|
|
# ]
|
|
# },
|
|
# "domain_id": {
|
|
# "ip_address": {
|
|
# "address": "192.0.3.1"
|
|
# }
|
|
# },
|
|
# "max_metric": {
|
|
# "on_startup": {
|
|
# "time": 100
|
|
# },
|
|
# "router_lsa": true
|
|
# },
|
|
# "process_id": 200,
|
|
# "vrf": "blue"
|
|
# }
|
|
# ]
|
|
# }
|
|
|
|
# After state:
|
|
# ------------
|
|
#
|
|
# router-ios#sh running-config | section ^router ospf
|
|
# router ospf 200 vrf blue
|
|
# domain-id 192.0.3.1
|
|
# max-metric router-lsa on-startup 100
|
|
# auto-cost reference-bandwidth 4
|
|
# area 10 capability default-exclusion
|
|
# distribute-list 10 out
|
|
# distribute-list 123 in
|
|
# router ospf 1
|
|
# max-metric router-lsa on-startup 110
|
|
# area 10 authentication message-digest
|
|
# area 10 nssa default-information-originate metric 10
|
|
# area 10 nssa translate type7 suppress-fa
|
|
# area 10 default-cost 10
|
|
# area 10 filter-list prefix test_prefix_out out
|
|
# network 198.51.100.0 0.0.0.255 area 5
|
|
# default-information originate
|
|
|
|
# Using Rendered
|
|
|
|
- name: Render the commands for provided configuration
|
|
cisco.ios.ios_ospfv2:
|
|
config:
|
|
processes:
|
|
- process_id: 1
|
|
max_metric:
|
|
router_lsa: true
|
|
on_startup:
|
|
time: 110
|
|
areas:
|
|
- area_id: '5'
|
|
capability: true
|
|
authentication:
|
|
enable: true
|
|
- area_id: '10'
|
|
authentication:
|
|
message_digest: true
|
|
nssa:
|
|
default_information_originate:
|
|
metric: 10
|
|
translate: suppress-fa
|
|
default_cost: 10
|
|
filter_list:
|
|
- name: test_prefix_in
|
|
direction: in
|
|
- name: test_prefix_out
|
|
direction: out
|
|
network:
|
|
address: 198.51.100.0
|
|
wildcard_bits: 0.0.0.255
|
|
area: 5
|
|
default_information:
|
|
originate: true
|
|
- process_id: 200
|
|
vrf: blue
|
|
domain_id:
|
|
ip_address:
|
|
address: 192.0.3.1
|
|
max_metric:
|
|
router_lsa: true
|
|
on_startup:
|
|
time: 100
|
|
auto_cost:
|
|
reference_bandwidth: 4
|
|
areas:
|
|
- area_id: '10'
|
|
capability: true
|
|
distribute_list:
|
|
acls:
|
|
- name: 10
|
|
direction: out
|
|
- name: 123
|
|
direction: in
|
|
state: rendered
|
|
|
|
# Module Execution Result:
|
|
# ------------------------
|
|
#
|
|
# "rendered": [
|
|
# "router ospf 200 vrf blue",
|
|
# "auto-cost reference-bandwidth 4",
|
|
# "distribute-list 10 out",
|
|
# "distribute-list 123 in",
|
|
# "domain-id 192.0.3.1",
|
|
# "max-metric router-lsa on-startup 100",
|
|
# "area 10 capability default-exclusion",
|
|
# "router ospf 1",
|
|
# "default-information originate",
|
|
# "max-metric router-lsa on-startup 110",
|
|
# "network 198.51.100.0 0.0.0.255 area 5",
|
|
# "area 10 authentication message-digest",
|
|
# "area 10 default-cost 10",
|
|
# "area 10 nssa translate type7 suppress-fa",
|
|
# "area 10 nssa default-information-originate metric 10",
|
|
# "area 10 filter-list prefix test_prefix_out out",
|
|
# "area 10 filter-list prefix test_prefix_in in",
|
|
# "area 5 authentication",
|
|
# "area 5 capability default-exclusion"
|
|
# ]
|
|
|
|
# Using Parsed
|
|
|
|
# File: parsed.cfg
|
|
# ----------------
|
|
#
|
|
# router ospf 100
|
|
# auto-cost reference-bandwidth 5
|
|
# domain-id 192.0.5.1
|
|
# area 5 authentication message-digest
|
|
# area 5 nssa translate type7 suppress-fa
|
|
# area 5 nssa default-information-originate metric 10
|
|
|
|
- name: Parse the provided configuration with the existing running configuration
|
|
cisco.ios.ios_ospfv2:
|
|
running_config: "{{ lookup('file', 'parsed.cfg') }}"
|
|
state: parsed
|
|
|
|
# Module Execution Result:
|
|
# ------------------------
|
|
#
|
|
# "parsed": {
|
|
# "processes": [
|
|
# {
|
|
# "areas": [
|
|
# {
|
|
# "area_id": "5",
|
|
# "authentication": {
|
|
# "message_digest": true
|
|
# },
|
|
# "nssa": {
|
|
# "default_information_originate": {
|
|
# "metric": 10
|
|
# },
|
|
# "translate": "suppress-fa"
|
|
# }
|
|
# }
|
|
# ],
|
|
# "auto_cost": {
|
|
# "reference_bandwidth": 5
|
|
# },
|
|
# "domain_id": {
|
|
# "ip_address": {
|
|
# "address": "192.0.5.1"
|
|
# }
|
|
# },
|
|
# "process_id": 100
|
|
# }
|
|
# ]
|
|
# }
|
|
|
|
"""
|
|
RETURN = """
|
|
before:
|
|
description: The configuration prior to the model invocation.
|
|
returned: always
|
|
sample: >
|
|
The configuration returned will always be in the same format
|
|
of the parameters above.
|
|
type: dict
|
|
after:
|
|
description: The resulting configuration model invocation.
|
|
returned: when changed
|
|
sample: >
|
|
The configuration returned will always be in the same format
|
|
of the parameters above.
|
|
type: dict
|
|
commands:
|
|
description: The set of commands pushed to the remote device.
|
|
returned: always
|
|
type: list
|
|
sample: ['router ospf 200 vrf blue', 'auto-cost reference-bandwidth 5', 'domain-id 192.0.4.1']
|
|
"""
|
|
|
|
|
|
from ansible.module_utils.basic import AnsibleModule
|
|
from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.ospfv2.ospfv2 import (
|
|
Ospfv2Args,
|
|
)
|
|
from ansible_collections.cisco.ios.plugins.module_utils.network.ios.config.ospfv2.ospfv2 import (
|
|
Ospfv2,
|
|
)
|
|
|
|
|
|
def main():
|
|
"""
|
|
Main entry point for module execution
|
|
:returns: the result form module invocation
|
|
"""
|
|
required_if = [
|
|
("state", "merged", ("config",)),
|
|
("state", "replaced", ("config",)),
|
|
("state", "overridden", ("config",)),
|
|
("state", "rendered", ("config",)),
|
|
("state", "parsed", ("running_config",)),
|
|
]
|
|
|
|
mutually_exclusive = [("config", "running_config")]
|
|
|
|
module = AnsibleModule(
|
|
argument_spec=Ospfv2Args.argument_spec,
|
|
required_if=required_if,
|
|
mutually_exclusive=mutually_exclusive,
|
|
supports_check_mode=True,
|
|
)
|
|
|
|
result = Ospfv2(module).execute_module()
|
|
module.exit_json(**result)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|