cisco.nxos.nxos_ospfv3 – OSPFv3 resource module

Note

This plugin is part of the cisco.nxos collection (version 1.4.0).

To install it use: ansible-galaxy collection install cisco.nxos.

To use it in a playbook, specify: cisco.nxos.nxos_ospfv3.

New in version 1.2.0: of cisco.nxos

Synopsis

  • This module manages OSPFv3 configuration on devices running Cisco NX-OS.

Note

This module has a corresponding action plugin.

Parameters

Parameter Choices/Defaults Comments
config
dictionary
A list of OSPFv3 process configuration.
processes
list / elements=dictionary
A list of OSPFv3 instances' configurations.
address_family
dictionary
IPv6 unicast address-family OSPFv3 settings.
afi
string
    Choices:
  • ipv6
Configure OSPFv3 settings under IPv6 address-family.
areas
list / elements=dictionary
Configure properties of OSPF Areas under address-family.
area_id
string / required
The Area ID as an integer or IP Address.
default_cost
integer
Specify the default cost.
filter_list
list / elements=dictionary
Filter prefixes between OSPF areas.
direction
string / required
    Choices:
  • in
  • out
The direction to apply the route map.
route_map
string / required
The Route-map name.
ranges
list / elements=dictionary
Configure an address range for the area.
cost
integer
Cost to use for the range.
not_advertise
boolean
    Choices:
  • no
  • yes
Suppress advertising the specified range.
prefix
string / required
IP in Prefix format (x.x.x.x/len)
default_information
dictionary
Control distribution of default routes.
originate
dictionary
Distribute a default route.
always
boolean
    Choices:
  • no
  • yes
Always advertise a default route.
route_map
string
Policy to control distribution of default routes
set
boolean
    Choices:
  • no
  • yes
Enable distribution of default route.
distance
integer
Configure the OSPF administrative distance.
maximum_paths
integer
Maximum paths per destination.
redistribute
list / elements=dictionary
Redistribute information from another routing protocol.
id
string
The identifier for the protocol specified.
protocol
string / required
    Choices:
  • bgp
  • direct
  • eigrp
  • isis
  • lisp
  • ospfv3
  • rip
  • static
The name of the protocol.
route_map
string / required
The route map policy to constrain redistribution.
safi
string
    Choices:
  • unicast
Configure OSPFv3 settings under IPv6 unicast address-family.
summary_address
list / elements=dictionary
Configure route summarization for redistribution.
not_advertise
boolean
    Choices:
  • no
  • yes
Supress advertising the specified summary.
prefix
string / required
IPv6 prefix format 'xxxx:xxxx/ml', 'xxxx:xxxx::/ml' or 'xxxx::xx/128'
tag
integer
A 32-bit tag value.
table_map
dictionary
Policy for filtering/modifying OSPF routes before sending them to RIB.
filter
boolean
    Choices:
  • no
  • yes
Block the OSPF routes from being sent to RIB.
name
string / required
The Route Map name.
timers
dictionary
Configure timer related constants.
throttle
dictionary
Configure throttle related constants.
spf
dictionary
Set OSPF SPF timers.
initial_spf_delay
integer
Initial SPF schedule delay in milliseconds.
max_wait_time
integer
Maximum wait time between SPF calculations.
min_hold_time
integer
Minimum hold time between SPF calculations.
areas
list / elements=dictionary
Configure properties of OSPF Areas.
area_id
string / required
The Area ID as an integer or IP Address.
nssa
dictionary
NSSA settings for the area.
default_information_originate
boolean
    Choices:
  • no
  • yes
Originate Type-7 default LSA into NSSA area.
no_redistribution
boolean
    Choices:
  • no
  • yes
Do not send redistributed LSAs into NSSA area.
no_summary
boolean
    Choices:
  • no
  • yes
Do not send summary LSAs into NSSA area.
route_map
string
Policy to control distribution of default route.
set
boolean
    Choices:
  • no
  • yes
Configure area as NSSA.
translate
dictionary
Translate LSA.
type7
dictionary
Translate from Type 7 to Type 5.
always
boolean
    Choices:
  • no
  • yes
Always translate LSAs
never
boolean
    Choices:
  • no
  • yes
Never translate LSAs
supress_fa
boolean
    Choices:
  • no
  • yes
Suppress forwarding address in translated LSAs.
stub
dictionary
Settings for configuring the area as a stub.
no_summary
boolean
    Choices:
  • no
  • yes
Prevent ABR from sending summary LSAs into stub area.
set
boolean
    Choices:
  • no
  • yes
Configure the area as a stub.
auto_cost
dictionary
Calculate OSPF cost according to bandwidth.
reference_bandwidth
integer / required
Reference bandwidth used to assign OSPF cost.
unit
string / required
    Choices:
  • Gbps
  • Mbps
Specify in which unit the reference bandwidth is specified.
flush_routes
boolean
    Choices:
  • no
  • yes
Flush routes on a non-graceful controlled restart.
graceful_restart
dictionary
Configure graceful restart.
grace_period
integer
Configure maximum interval to restart gracefully.
helper_disable
boolean
    Choices:
  • no
  • yes
Enable/Disable helper mode.
planned_only
boolean
    Choices:
  • no
  • yes
Enable graceful restart only for a planned restart
set
boolean
    Choices:
  • no
  • yes
Enable graceful-restart.
isolate
boolean
    Choices:
  • no
  • yes
Isolate this router from OSPF perspective.
log_adjacency_changes
dictionary
Log changes in adjacency state.
detail
boolean
    Choices:
  • no
  • yes
Notify all state changes.
log
boolean
    Choices:
  • no
  • yes
Enable/disable logging changes in adjacency state.
max_lsa
dictionary
Feature to limit the number of non-self-originated LSAs.
ignore_count
integer
Set count on how many times adjacencies can be suppressed.
ignore_time
integer
Set time during which all adjacencies are suppressed.
max_non_self_generated_lsa
integer / required
Set the maximum number of non self-generated LSAs.
reset_time
integer
Set number of minutes after which ignore-count is reset to zero.
threshold
integer
Threshold value (%) at which to generate a warning message.
warning_only
boolean
    Choices:
  • no
  • yes
Log a warning message when limit is exceeded.
max_metric
dictionary
Maximize the cost metric.
router_lsa
dictionary
Router LSA configuration.
external_lsa
dictionary
External LSA configuration.
max_metric_value
integer
Set max metric value for external LSAs.
set
boolean
    Choices:
  • no
  • yes
Set external-lsa attribute.
inter_area_prefix_lsa
dictionary
Inter-area-prefix LSAs configuration.
max_metric_value
integer
Max metric value for summary LSAs.
set
boolean
    Choices:
  • no
  • yes
Set summary-lsa attribute.
on_startup
dictionary
Effective only at startup.
set
boolean
    Choices:
  • no
  • yes
Set on-startup attribute.
wait_for_bgp_asn
integer
ASN of BGP to wait for.
wait_period
integer
Wait period in seconds after startup.
set
boolean
    Choices:
  • no
  • yes
Set router-lsa attribute.
stub_prefix_lsa
boolean
    Choices:
  • no
  • yes
Advertise Max metric for Stub links as well.
name_lookup
boolean
    Choices:
  • no
  • yes
Display OSPF router ids as DNS names.
passive_interface
dictionary
Suppress routing updates on the interface.
default
boolean
    Choices:
  • no
  • yes
Interfaces passive by default.
process_id
string / required
The OSPF process tag.
router_id
string
Set OSPF process router-id.
shutdown
boolean
    Choices:
  • no
  • yes
Shutdown the OSPF protocol instance.
timers
dictionary
Configure timer related constants.
lsa_arrival
integer
Mimimum interval between arrival of a LSA.
lsa_group_pacing
integer
LSA group refresh/maxage interval.
throttle
dictionary
Configure throttle related constants.
lsa
dictionary
Set rate-limiting for LSA generation.
hold_interval
integer
The hold interval.
max_interval
integer
The max interval.
start_interval
integer
The start interval.
vrfs
list / elements=dictionary
Configure VRF specific OSPF settings.
areas
list / elements=dictionary
Configure properties of OSPF Areas.
area_id
string / required
The Area ID as an integer or IP Address.
nssa
dictionary
NSSA settings for the area.
default_information_originate
boolean
    Choices:
  • no
  • yes
Originate Type-7 default LSA into NSSA area.
no_redistribution
boolean
    Choices:
  • no
  • yes
Do not send redistributed LSAs into NSSA area.
no_summary
boolean
    Choices:
  • no
  • yes
Do not send summary LSAs into NSSA area.
route_map
string
Policy to control distribution of default route.
set
boolean
    Choices:
  • no
  • yes
Configure area as NSSA.
translate
dictionary
Translate LSA.
type7
dictionary
Translate from Type 7 to Type 5.
always
boolean
    Choices:
  • no
  • yes
Always translate LSAs
never
boolean
    Choices:
  • no
  • yes
Never translate LSAs
supress_fa
boolean
    Choices:
  • no
  • yes
Suppress forwarding address in translated LSAs.
stub
dictionary
Settings for configuring the area as a stub.
no_summary
boolean
    Choices:
  • no
  • yes
Prevent ABR from sending summary LSAs into stub area.
set
boolean
    Choices:
  • no
  • yes
Configure the area as a stub.
auto_cost
dictionary
Calculate OSPF cost according to bandwidth.
reference_bandwidth
integer / required
Reference bandwidth used to assign OSPF cost.
unit
string / required
    Choices:
  • Gbps
  • Mbps
Specify in which unit the reference bandwidth is specified.
graceful_restart
dictionary
Configure graceful restart.
grace_period
integer
Configure maximum interval to restart gracefully.
helper_disable
boolean
    Choices:
  • no
  • yes
Enable/Disable helper mode.
planned_only
boolean
    Choices:
  • no
  • yes
Enable graceful restart only for a planned restart
set
boolean
    Choices:
  • no
  • yes
Enable graceful-restart.
log_adjacency_changes
dictionary
Log changes in adjacency state.
detail
boolean
    Choices:
  • no
  • yes
Notify all state changes.
log
boolean
    Choices:
  • no
  • yes
Enable/disable logging changes in adjacency state.
max_lsa
dictionary
Feature to limit the number of non-self-originated LSAs.
ignore_count
integer
Set count on how many times adjacencies can be suppressed.
ignore_time
integer
Set time during which all adjacencies are suppressed.
max_non_self_generated_lsa
integer / required
Set the maximum number of non self-generated LSAs.
reset_time
integer
Set number of minutes after which ignore-count is reset to zero.
threshold
integer
Threshold value (%) at which to generate a warning message.
warning_only
boolean
    Choices:
  • no
  • yes
Log a warning message when limit is exceeded.
max_metric
dictionary
Maximize the cost metric.
router_lsa
dictionary
Router LSA configuration.
external_lsa
dictionary
External LSA configuration.
max_metric_value
integer
Set max metric value for external LSAs.
set
boolean
    Choices:
  • no
  • yes
Set external-lsa attribute.
inter_area_prefix_lsa
dictionary
Inter-area-prefix LSAs configuration.
max_metric_value
integer
Max metric value for summary LSAs.
set
boolean
    Choices:
  • no
  • yes
Set summary-lsa attribute.
on_startup
dictionary
Effective only at startup.
set
boolean
    Choices:
  • no
  • yes
Set on-startup attribute.
wait_for_bgp_asn
integer
ASN of BGP to wait for.
wait_period
integer
Wait period in seconds after startup.
set
boolean
    Choices:
  • no
  • yes
Set router-lsa attribute.
stub_prefix_lsa
boolean
    Choices:
  • no
  • yes
Advertise Max metric for Stub links as well.
name_lookup
boolean
    Choices:
  • no
  • yes
Display OSPF router ids as DNS names.
passive_interface
dictionary
Suppress routing updates on the interface.
default
boolean
    Choices:
  • no
  • yes
Interfaces passive by default.
router_id
string
Set OSPF process router-id.
shutdown
boolean
    Choices:
  • no
  • yes
Shutdown the OSPF protocol instance.
timers
dictionary
Configure timer related constants.
lsa_arrival
integer
Mimimum interval between arrival of a LSA.
lsa_group_pacing
integer
LSA group refresh/maxage interval.
throttle
dictionary
Configure throttle related constants.
lsa
dictionary
Set rate-limiting for LSA generation.
hold_interval
integer
The hold interval.
max_interval
integer
The max interval.
start_interval
integer
The start interval.
vrf
string / required
Name/Identifier of the VRF.
running_config
string
This option is used only with state parsed.
The value of this option should be the output received from the NX-OS device by executing the command show running-config | section "^router ospfv3".
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
    Choices:
  • merged ←
  • replaced
  • overridden
  • deleted
  • gathered
  • parsed
  • rendered
The state the configuration should be left in.

Notes

Note

  • Tested against NX-OS 7.0(3)I5(1).

  • This module works with connection network_cli and httpapi.

Examples

# Using merged

# Before state:
# -------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# nxos-9k-rdo#

- name: Merge the provided configuration with the exisiting running configuration
  cisco.nxos.nxos_ospfv3:
    config:
      processes:
      - process_id: 100
        router_id: 203.0.113.20
      - process_id: 102
        router_id: 198.51.100.1
        address_family:
          afi: ipv6
          safi: unicast
          areas:
          - area_id: 0.0.0.100
            filter_list:
            - route_map: rmap_1
              direction: in
            - route_map: rmap_2
              direction: out
            ranges:
            - prefix: 2001:db2::/32
              not_advertise: true
            - prefix: 2001:db3::/32
              cost: 120
          redistribute:
          - protocol: eigrp
            id: 120
            route_map: rmap_1
          - protocol: direct
            route_map: ospf102-direct-connect
        vrfs:
        - vrf: zone1
          router_id: 198.51.100.129
          areas:
          - area_id: 0.0.0.102
            nssa:
              default_information_originate: true
              no_summary: true
          - area_id: 0.0.0.103
            nssa:
              no_summary: true
              translate:
                type7:
                  always: true
        - vrf: zone2
          auto_cost:
            reference_bandwidth: 45
            unit: Gbps
    state: merged

# Task output
# -------------
# before: {}
#
# commands:
#  - router ospf 102
#  - router-id 198.51.100.1
#  - address-family ipv6 unicast
#  - redistribute eigrp 120 route-map rmap_1
#  - redistribute direct route-map ospf102-direct-connect
#  - area 0.0.0.100 filter-list route-map rmap_1 in
#  - area 0.0.0.100 filter-list route-map rmap_2 out
#  - area 0.0.0.100 range 2001:db2::/32 not-advertise
#  - area 0.0.0.100 range 2001:db3::/32 cost 120
#  - vrf zone1
#  - router-id 198.51.100.129
#  - area 0.0.0.102 nssa no-summary default-information-originate
#  - area 0.0.0.103 nssa no-summary
#  - area 0.0.0.103 nssa translate type7 always
#  - vrf zone2
#  - auto-cost reference-bandwidth 45 Gbps
#  - router ospf 100
#  - router-id 203.0.113.20
#
# after:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv4
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: out
#            route_map: rmap_2
#          - direction: in
#            route_map: rmap_1
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#          - cost: 120
#            prefix: 2001:db3::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "120"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        - area_id: 0.0.0.103
#          nssa:
#            no_summary: true
#            translate:
#              type7:
#                always: true
#        router_id: 198.51.100.129
#        vrf: zone1
#      - auto_cost:
#          reference_bandwidth: 45
#          unit: Gbps
#        vrf: zone2
#

# After state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 100
#   router-id 203.0.113.20
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family ipv6 unicast
#     redistribute direct route-map ospf102-direct-connect
#     redistribute eigrp 120 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_2 out
#     area 0.0.0.100 filter-list route-map rmap_1 in
#     area 0.0.0.100 range 2001:db2::/32 not-advertise
#     area 0.0.0.100 range 2001:db3::/32 cost 120
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.0.102 nssa no-summary default-information-originate
#     area 0.0.0.103 nssa no-summary
#     area 0.0.0.103 nssa translate type7 always
#   vrf zone2
#     auto-cost reference-bandwidth 45 Gbps

# Using replaced

# Before state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 100
#   router-id 203.0.113.20
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family upv6 unicast
#     redistribute direct route-map ospf102-direct-connect
#     redistribute eigrp 120 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_2 out
#     area 0.0.0.100 filter-list route-map rmap_1 in
#     area 0.0.0.100 range 2001:db2::/32 not-advertise
#     area 0.0.0.100 range 2001:db3::/32 cost 120
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.0.102 nssa no-summary default-information-originate
#     area 0.0.0.103 nssa no-summary
#     area 0.0.0.103 nssa translate type7 always
#   vrf zone2
#     auto-cost reference-bandwidth 45 Gbps

- name: Replace device configurations of listed OSPFv3 processes with provided configurations
  cisco.nxos.nxos_ospfv3:
    config:
      processes:
      - process_id: 102
        router_id: 198.51.100.1
        address_family:
          afi: ipv6
          safi: unicast
          areas:
          - area_id: 0.0.0.100
            filter_list:
            - route_map: rmap_8
              direction: in
            ranges:
            - not_advertise: true
              prefix: 2001:db2::/32
          redistribute:
          - protocol: eigrp
            id: 130
            route_map: rmap_1
          - protocol: direct
            route_map: ospf102-direct-connect
        vrfs:
        - vrf: zone1
          router_id: 198.51.100.129
          areas:
          - area_id: 0.0.0.102
            nssa:
              default_information_originate: True
              no_summary: True
    state: replaced

# Task output
# -------------
# before:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv4
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: out
#            route_map: rmap_2
#          - direction: in
#            route_map: rmap_1
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#          - cost: 120
#            prefix: 2001:db3::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "120"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        - area_id: 0.0.0.103
#          nssa:
#            no_summary: true
#            translate:
#              type7:
#                always: true
#        router_id: 198.51.100.129
#        vrf: zone1
#      - auto_cost:
#          reference_bandwidth: 45
#          unit: Gbps
#        vrf: zone2
#
#  commands:
#  - router ospf 102
#  - address-family ipv6 unicast
#  - redistribute eigrp 130 route-map rmap_1
#  - no redistribute eigrp 120 route-map rmap_1
#  - area 0.0.0.100 filter-list route-map rmap_8 in
#  - no area 0.0.0.100 filter-list route-map rmap_2 out
#  - no area 0.0.0.100 range 2001:db3::/32
#  - vrf zone1
#  - no area 0.0.0.103 nssa
#  - no area 0.0.0.103 nssa translate type7 always
#  - no vrf zone2
#
# after:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv6
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: in
#            route_map: rmap_8
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "130"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        router_id: 198.51.100.129
#        vrf: zone1

# After state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 100
#   router-id 203.0.113.20
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family ipv6 unicast
#     redistribute direct route-map ospf102-direct-connect
#     redistribute eigrp 130 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_8 in
#     area 0.0.0.100 range 198.51.100.64/27 not-advertise
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.0.102 nssa no-summary default-information-originate

# Using overridden

# Before state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 100
#   router-id 203.0.113.20
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family ipv6 unicast
#     redistribute direct route-map ospf102-direct-connect
#     redistribute eigrp 120 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_2 out
#     area 0.0.0.100 filter-list route-map rmap_1 in
#     area 0.0.0.100 range 2001:db2::/32 not-advertise
#     area 0.0.0.100 range 2001:db3::/32 cost 120
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.0.102 nssa no-summary default-information-originate
#     area 0.0.0.103 nssa no-summary
#     area 0.0.0.103 nssa translate type7 always
#   vrf zone2
#     auto-cost reference-bandwidth 45 Gbps

- name: Overridde all OSPFv3 configuration with provided configuration
  cisco.nxos.nxos_ospfv3:
    config:
      processes:
      - process_id: 104
        router_id: 203.0.113.20
      - process_id: 102
        router_id: 198.51.100.1
        shutdown: true
    state: overridden

# Task output
# -------------
# before:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv4
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: out
#            route_map: rmap_2
#          - direction: in
#            route_map: rmap_1
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#          - cost: 120
#            prefix: 2001:db3::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "120"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        - area_id: 0.0.0.103
#          nssa:
#            no_summary: true
#            translate:
#              type7:
#                always: true
#        router_id: 198.51.100.129
#        vrf: zone1
#      - auto_cost:
#          reference_bandwidth: 45
#          unit: Gbps
#        vrf: zone2
#
# commands:
#  - no router ospfv3 100
#  - router ospfv3 104
#  - router-id 203.0.113.20
#  - router ospfv3 102
#  - shutdown
#  - address-family ipv6 unicast
#  - no redistribute direct route-map ospf102-direct-connect
#  - no redistribute eigrp 120 route-map rmap_1
#  - no area 0.0.0.100 filter-list route-map rmap_2 out
#  - no area 0.0.0.100 filter-list route-map rmap_1 in
#  - no area 0.0.0.100 range 2001:db2::/32
#  - no area 0.0.0.100 range 2001:db3::/32
#  - no vrf zone1
#  - no vrf zone2
#
# after:
#    processes:
#    - process_id: "102"
#      router_id: 198.51.100.1
#      shutdown: true
#      address_family:
#        afi: ipv6
#        safi: unicast
#    - process_id: "104"
#      router_id: 203.0.113.20

# After state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family ipv6 unicast
#   shutdown
# router ospfv3 104
#   router-id 203.0.113.20

# Using deleted to delete a single OSPF process

# Before state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospf .*"
# router ospfv3 100
#   router-id 203.0.113.20
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family ipv6 unicast
#     redistribute direct route-map ospf102-direct-connect
#     redistribute eigrp 120 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_2 out
#     area 0.0.0.100 filter-list route-map rmap_1 in
#     area 0.0.0.100 range 2001:db2::/32 not-advertise
#     area 0.0.0.100 range 2001:db3::/32 cost 120
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.0.102 nssa no-summary default-information-originate
#     area 0.0.0.103 nssa no-summary
#     area 0.0.0.103 nssa translate type7 always
#   vrf zone2
#     auto-cost reference-bandwidth 45 Gbps

- name: Delete a single OSPFv3 process
  cisco.nxos.nxos_ospfv3:
    config:
      processes:
      - process_id: 102
    state: deleted

# Task output
# -------------
# before:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv4
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: out
#            route_map: rmap_2
#          - direction: in
#            route_map: rmap_1
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#          - cost: 120
#            prefix: 2001:db3::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "120"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        - area_id: 0.0.0.103
#          nssa:
#            no_summary: true
#            translate:
#              type7:
#                always: true
#        router_id: 198.51.100.129
#        vrf: zone1
#      - auto_cost:
#          reference_bandwidth: 45
#          unit: Gbps
#        vrf: zone2
#
# commands:
#  - no router ospfv3 102
#
# after:
#   processes:
#   - process_id: "100"
#     router_id: 203.0.113.20

# After state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 100
#   router-id 203.0.113.20

# Using deleted all OSPFv3 processes from the device

# Before state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# router ospfv3 100
#   router-id 203.0.113.20
# router ospfv3 102
#   router-id 198.51.100.1
#   address-family ipv6 unicast
#     redistribute direct route-map ospf102-direct-connect
#     redistribute eigrp 120 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_2 out
#     area 0.0.0.100 filter-list route-map rmap_1 in
#     area 0.0.0.100 range 2001:db2::/32 not-advertise
#     area 0.0.0.100 range 2001:db3::/32 cost 120
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.0.102 nssa no-summary default-information-originate
#     area 0.0.0.103 nssa no-summary
#     area 0.0.0.103 nssa translate type7 always
#   vrf zone2
#     auto-cost reference-bandwidth 45 Gbps

- name: Delete all OSPFv3 processes from the device
  cisco.nxos.nxos_ospfv3:
    state: deleted

# Task output
# -------------
# before:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv4
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: out
#            route_map: rmap_2
#          - direction: in
#            route_map: rmap_1
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#          - cost: 120
#            prefix: 2001:db3::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "120"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        - area_id: 0.0.0.103
#          nssa:
#            no_summary: true
#            translate:
#              type7:
#                always: true
#        router_id: 198.51.100.129
#        vrf: zone1
#      - auto_cost:
#          reference_bandwidth: 45
#          unit: Gbps
#        vrf: zone2
#
# commands:
#  - no router ospfv3 100
#  - no router ospfv3 102
#
#  after: {}

# After state:
# ------------
# nxos-9k-rdo# sh running-config | section "^router ospfv3"
# nxos-9k-rdo#

# Using rendered

- name: Merge the provided configuration with the exisiting running configuration
  cisco.nxos.nxos_ospfv3:
    config:
      processes:
      - process_id: 100
        router_id: 203.0.113.20
      - process_id: 102
        router_id: 198.51.100.1
        address_family:
          afi: ipv6
          safi: unicast
          areas:
          - area_id: 0.0.0.100
            filter_list:
            - route_map: rmap_1
              direction: in
            - route_map: rmap_2
              direction: out
            ranges:
            - prefix: 2001:db2::/32
              not_advertise: true
            - prefix: 2001:db3::/32
              cost: 120
          redistribute:
          - protocol: eigrp
            id: 120
            route_map: rmap_1
          - protocol: direct
            route_map: ospf102-direct-connect
        vrfs:
        - vrf: zone1
          router_id: 198.51.100.129
          areas:
          - area_id: 0.0.0.102
            nssa:
              default_information_originate: true
              no_summary: true
          - area_id: 0.0.0.103
            nssa:
              no_summary: true
              translate:
                type7:
                  always: true
        - vrf: zone2
          auto_cost:
            reference_bandwidth: 45
            unit: Gbps
    state: rendered

# Task Output (redacted)
# -----------------------
# rendered:
#  - router ospfv3 100
#  - router-id 203.0.113.20
#  - router ospfv3 102
#  - router-id 198.51.100.1
#  - address-family ipv6 unicast
#  - redistribute eigrp 120 route-map rmap_1
#  - redistribute direct route-map ospf102-direct-connect
#  - area 0.0.0.100 filter-list route-map rmap_1 in
#  - area 0.0.0.100 filter-list route-map rmap_2 out
#  - area 0.0.0.100 range 2001:db2::/32 not-advertise
#  - area 0.0.0.100 range 2001:db3::/32 cost 120
#  - vrf zone1
#  - router-id 198.51.100.129
#  - area 0.0.0.102 nssa no-summary default-information-originate
#  - area 0.0.0.103 nssa no-summary
#  - area 0.0.0.103 nssa translate type7 always
#  - vrf zone2
#  - auto-cost reference-bandwidth 45 Gbps

# Using parsed

# parsed.cfg
# ------------
# router ospfv3 100
#   router-id 192.0.100.1
#   address-family ipv6 unicast
#     redistribute direct route-map ospf-direct-connect
#     redistribute eigrp 120 route-map rmap_1
#     area 0.0.0.100 filter-list route-map rmap_2 out
#     area 0.0.0.100 filter-list route-map rmap_1 in
#     area 0.0.0.100 range 2001:db2::/32 not-advertise
#     area 0.0.0.100 range 2001:db3::/32 cost 120
#   vrf zone1
#     router-id 198.51.100.129
#     area 0.0.100.1 nssa no-summary no-redistribution
# router ospfv3 102
#   router-id 198.54.100.1
#   shutdown

- name: Parse externally provided OSPFv3 config
  cisco.nxos.nxos_ospfv3:
    running_config: "{{ lookup('file', 'ospfv2.cfg') }}"
    state: parsed

# Task output (redacted)
# -----------------------
# parsed:
#   processes:
#   - process_id: "100"
#     address_family:
#       afi: ipv6
#       safi: unicast
#       areas:
#       - area_id: 0.0.0.101
#         nssa:
#           no_redistribution: true
#           no_summary: true
#       - area_id: 0.0.0.102
#         stub:
#           no_summary: true
#         filter_list:
#           - direction: out
#             route_map: rmap_2
#           - direction: in
#             route_map: rmap_1
#         ranges:
#           - not_advertise: true
#             prefix: 192.0.2.0/24
#           - cost: 120
#             prefix: 192.0.3.0/24
#       redistribute:
#       - protocol: direct
#         route_map: ospf-direct-connect
#       - id: "120"
#         protocol: eigrp
#         route_map: rmap_1
#     router_id: 192.0.100.1
#     vrfs:
#       - vrf: zone1
#         areas:
#           - area_id: 0.0.100.1
#             nssa:
#               no_redistribution: true
#               no_summary: true
#         router_id: 192.0.100.2
#   - process_id: "102"
#     router_id: 198.54.100.1
#     shutdown: True

# Using gathered

- name: Gather OSPFv3 facts using gathered
  cisco.nxos.nxos_ospfv3:
    state: gathered

# Task output (redacted)
# -----------------------
#  gathered:
#    processes:
#    - process_id: "100"
#      router_id: 203.0.113.20
#    - address_family:
#        afi: ipv4
#        safi: unicast
#        areas:
#        - area_id: 0.0.0.100
#          filter_list:
#          - direction: out
#            route_map: rmap_2
#          - direction: in
#            route_map: rmap_1
#          ranges:
#          - not_advertise: true
#            prefix: 2001:db2::/32
#          - cost: 120
#            prefix: 2001:db3::/32
#        redistribute:
#        - protocol: direct
#          route_map: ospf102-direct-connect
#        - id: "120"
#          protocol: eigrp
#          route_map: rmap_1
#      process_id: "102"
#      router_id: 198.51.100.1
#      vrfs:
#      - areas:
#        - area_id: 0.0.0.102
#          nssa:
#            default_information_originate: true
#            no_summary: true
#        - area_id: 0.0.0.103
#          nssa:
#            no_summary: true
#            translate:
#              type7:
#                always: true
#        router_id: 198.51.100.129
#        vrf: zone1
#      - auto_cost:
#          reference_bandwidth: 45
#          unit: Gbps
#        vrf: zone2
#

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
after
dictionary
when changed
The resulting configuration model invocation.

Sample:
The configuration returned will always be in the same format of the parameters above.
before
dictionary
always
The configuration prior to the model invocation.

Sample:
The configuration returned will always be in the same format of the parameters above.
commands
list / elements=string
always
The set of commands pushed to the remote device.

Sample:
['router ospfv3 102', 'router-id 198.54.100.1', 'router ospfv3 100', 'router-id 192.0.100.1', 'address-family ipv6 unicast', 'redistribute eigrp 120 route-map rmap_1', 'redistribute direct route-map ospf-direct-connect', 'area 0.0.0.100 filter-list route-map rmap_1 in', 'area 0.0.0.100 filter-list route-map rmap_2 out', 'area 0.0.0.100 range 2001:db2::/32 not-advertise', 'area 0.0.0.100 range 2001:db3::/32 cost 120', 'vrf zone1', 'router-id 192.0.100.2', 'vrf zone2', 'auto-cost reference-bandwidth 45 Gbps']


Authors

  • Nilashish Chakraborty (@NilashishC)