cisco.ios.ios_route_maps module – Resource module to configure route maps.

Note

This module is part of the cisco.ios collection (version 2.8.1).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install cisco.ios.

To use it in a playbook, specify: cisco.ios.ios_route_maps.

New in version 2.1.0: of cisco.ios

Synopsis

  • This module configures and manages the attributes of Route maps on Cisco IOS.

Parameters

Parameter

Comments

config

list / elements=dictionary

A list of configurations for Route maps.

entries

list / elements=dictionary

A list of configurations entries for Route maps.

action

string

Route map set operations

Choices:

  • deny

  • permit

continue_entry

dictionary

Continue on a different entry within the route-map

entry_sequence

integer

Route-map entry sequence number

Please refer vendor documentation for valid values

set

boolean

Set continue

Choices:

  • no

  • yes

description

string

Route-map comment

match

dictionary

Match values from routing table

additional_paths

dictionary

BGP Add-Path match policie

BGP Add-Path advertise-set policy

all

boolean

BGP Add-Path advertise all paths

Choices:

  • no

  • yes

best

integer

BGP Add-Path advertise best n paths (1-3)

best_range

dictionary

BGP Add-Path advertise best paths (range m to n)

lower_limit

integer

BGP Add-Path best paths to advertise (lower limit) (1-3)

upper_limit

integer

BGP Add-Path best paths to advertise (upper limit) (1-3)

group_best

boolean

BGP Add-Path advertise group-best path

Choices:

  • no

  • yes

as_path

dictionary

Match BGP AS path list

acls

list / elements=integer

AS path access-list

Please refer vendor documentation for valid values

set

boolean

Set AS path list

Choices:

  • no

  • yes

clns

dictionary

CLNS information

address

string

Match address of route or match packet

next_hop

string

Match next-hop address of route

route_source

string

Match advertising source address of route

community

dictionary

Match BGP community list

exact_match

boolean

Do exact matching of communities

Choices:

  • no

  • yes

name

list / elements=string

Community-list number/Community-list name

Please refer vendor documentation for valid values

extcommunity

list / elements=string

Match BGP/VPN extended community list

Extended community-list number

Please refer vendor documentation for valid values

interfaces

list / elements=string

Match first hop interface of route

ip

dictionary

IP specific information

address

dictionary

Match address of route or match packet

acls

list / elements=string

Match entries of acl

IP acl name/number

Please refer vendor documentation for valid values

prefix_lists

list / elements=string

Match entries of prefix-lists

IP prefix-list name

flowspec

dictionary

Match src/dest prefix component of flowspec prefix

acls

list / elements=string

Match entries of acl

IP acl name/number

Please refer vendor documentation for valid values

dest_pfx

boolean

Match dest prefix component of flowspec prefix

Choices:

  • no

  • yes

prefix_lists

list / elements=string

Match entries of prefix-lists

IP prefix-list name

src_pfx

boolean

Match source prefix component of flowspec prefix

Choices:

  • no

  • yes

next_hop

dictionary

Match next-hop address of route

acls

list / elements=string

Match entries of acl

IP acl name/number

Please refer vendor documentation for valid values

prefix_lists

list / elements=string

Match entries of prefix-lists

IP prefix-list name

set

boolean

Set next-hop address

Choices:

  • no

  • yes

redistribution_source

dictionary

route redistribution source (EIGRP only)

acls

list / elements=string

Match entries of acl

IP acl name/number

Please refer vendor documentation for valid values

prefix_lists

list / elements=string

Match entries of prefix-lists

IP prefix-list name

set

boolean

Set redistribution-source

Choices:

  • no

  • yes

route_source

dictionary

Match advertising source address of route

acls

list / elements=string

Match entries of acl

IP acl name/number

Please refer vendor documentation for valid values

prefix_lists

list / elements=string

Match entries of prefix-lists

IP prefix-list name

redistribution_source

boolean

route redistribution source (EIGRP only)

Choices:

  • no

  • yes

set

boolean

Set redistribution-source

Choices:

  • no

  • yes

ipv6

dictionary

IPv6 specific information

address

dictionary

Match address of route or match packet

acl

string

IPv6 access-list name

prefix_list

string

IPv6 prefix-list name

flowspec

dictionary

Match next-hop address of route

acl

string

IPv6 access-list name

dest_pfx

boolean

Match dest prefix component of flowspec prefix

Choices:

  • no

  • yes

prefix_list

string

IPv6 prefix-list name

src_pfx

boolean

Match source prefix component of flowspec prefix

Choices:

  • no

  • yes

next_hop

dictionary

Match next-hop address of route

acl

string

IPv6 access-list name

prefix_list

string

IPv6 prefix-list name

route_source

dictionary

Match advertising source address of route

acl

string

IPv6 access-list name

prefix_list

string

IPv6 prefix-list name

length

dictionary

Packet length

maximum

integer

Maximum packet length

Please refer vendor documentation for valid values

minimum

integer

Minimum packet length

Please refer vendor documentation for valid values

local_preference

dictionary

Local preference for route

set

boolean

Set the Local preference for route

Choices:

  • no

  • yes

value

list / elements=string

Local preference value

Please refer vendor documentation for valid values

mdt_group

dictionary

Match routes corresponding to MDT group

acls

list / elements=string

IP access-list number/IP standard access-list name

Please refer vendor documentation for valid values

set

boolean

Set and Match routes corresponding to MDT group

Choices:

  • no

  • yes

metric

dictionary

Match metric of route

deviation

boolean

Deviation option to match metric in a range

Choices:

  • no

  • yes

deviation_value

integer

deviation value, 500 +- 10 creates the range 490 - 510

Please refer vendor documentation for valid values

external

boolean

Match route using external protocol metric

Choices:

  • no

  • yes

value

integer

Metric value

Please refer vendor documentation for valid values

mpls_label

boolean

Match routes which have MPLS labels

Choices:

  • no

  • yes

policy_lists

list / elements=string

Match IP policy list

route_type

dictionary

Match route-type of route

external

dictionary

external route (BGP, EIGRP and OSPF type 1/2)

set

boolean

Set external route

Choices:

  • no

  • yes

type_1

boolean

OSPF external type 1 route

Choices:

  • no

  • yes

type_2

boolean

OSPF external type 2 route

Choices:

  • no

  • yes

internal

boolean

internal route (including OSPF intra/inter area)

Choices:

  • no

  • yes

level_1

boolean

IS-IS level-1 route

Choices:

  • no

  • yes

level_2

boolean

IS-IS level-2 route

Choices:

  • no

  • yes

local

boolean

locally generated route

Choices:

  • no

  • yes

nssa_external

dictionary

nssa-external route (OSPF type 1/2)

set

boolean

Set nssa-external route

Choices:

  • no

  • yes

type_1

boolean

OSPF external type 1 route

Choices:

  • no

  • yes

type_2

boolean

OSPF external type 2 route

Choices:

  • no

  • yes

rpki

dictionary

Match RPKI state of route

invalid

boolean

RPKI Invalid State

Choices:

  • no

  • yes

not_found

boolean

RPKI Not Found State

Choices:

  • no

  • yes

valid

boolean

RPKI Valid State

Choices:

  • no

  • yes

security_group

dictionary

Security Group

destination

list / elements=integer

Destination Security Group, destination Security tag

Please refer vendor documentation for valid values

source

list / elements=integer

Source Security Group, source Security tag

Please refer vendor documentation for valid values

source_protocol

dictionary

Match source-protocol of route

bgp

string

Border Gateway Protocol (BGP)

Autonomous system number

Please refer vendor documentation for valid values

connected

boolean

Connected

Choices:

  • no

  • yes

eigrp

integer

Enhanced Interior Gateway Routing Protocol (EIGRP)

Autonomous system number

Please refer vendor documentation for valid values

isis

boolean

ISO IS-IS

Choices:

  • no

  • yes

lisp

boolean

Locator ID Separation Protocol (LISP)

Choices:

  • no

  • yes

mobile

boolean

Mobile routes

Choices:

  • no

  • yes

ospf

integer

Open Shortest Path First (OSPF) Process ID

Please refer vendor documentation for valid values

ospfv3

integer

OSPFv3 Process ID

Please refer vendor documentation for valid values

rip

boolean

Routing Information Protocol (RIP)

Choices:

  • no

  • yes

static

boolean

Static routes

Choices:

  • no

  • yes

tag

dictionary

Match tag of route

tag_list

list / elements=string

Route Tag List/Tag list name

value

list / elements=string

Tag value/Tag in Dotted Decimal eg, 10.10.10.10

track

integer

tracking object

sequence

integer

Sequence to insert to/delete from existing route-map entry

Please refer vendor documentation for valid values

set

dictionary

Match source-protocol of route

aigp_metric

dictionary

accumulated metric value

igp_metric

boolean

metric value from rib

Choices:

  • no

  • yes

value

integer

manual value

as_path

dictionary

Prepend string for a BGP AS-path attribute

prepend

dictionary

Prepend to the as-path

as_number

list / elements=string

AS number

Please refer vendor documentation for valid values

last_as

integer

Prepend last AS to the as-path

Number of last-AS prepends

Please refer vendor documentation for valid values

tag

boolean

Set the tag as an AS-path attribute

Choices:

  • no

  • yes

automatic_tag

boolean

Automatically compute TAG value

Choices:

  • no

  • yes

clns

string

OSI summary address

Next hop address

CLNS summary prefix

comm_list

string

set BGP community list (for deletion)

Community-list name/number

Delete matching communities

community

dictionary

BGP community attribute

additive

boolean

Add to the existing community

Choices:

  • no

  • yes

gshut

boolean

Graceful Shutdown (well-known community)

Choices:

  • no

  • yes

internet

boolean

Internet (well-known community)

Choices:

  • no

  • yes

local_as

boolean

Do not send outside local AS (well-known community)

Choices:

  • no

  • yes

no_advertise

boolean

Do not advertise to any peer (well-known community)

Choices:

  • no

  • yes

no_export

boolean

Do not export to next AS (well-known community)

Choices:

  • no

  • yes

none

boolean

No community attribute

Choices:

  • no

  • yes

number

string

community number

community number in aa:nn format

Please refer vendor documentation for valid values

dampening

dictionary

Set BGP route flap dampening parameters

max_suppress

integer

Maximum duration to suppress a stable route

Please refer vendor documentation for valid values

penalty_half_time

integer

half-life time for the penalty

Please refer vendor documentation for valid values

reuse_route_val

integer

Penalty to start reusing a route

Please refer vendor documentation for valid values

suppress_route_val

integer

Penalty to start suppressing a route

Please refer vendor documentation for valid values

default

string

Set default information

Default output interface

extcomm_list

string

Set BGP/VPN extended community list (for deletion)

Extended community-list number/name

Delete matching extended communities

extcommunity

dictionary

BGP extended community attribute

cost

dictionary

Cost extended community

cost_value

integer

Cost Value (No-preference Cost = 2147483647)

Please refer vendor documentation for valid values

id

string

Community ID

Please refer vendor documentation for valid values

igp

boolean

Compare following IGP cost comparison

Choices:

  • no

  • yes

pre_bestpath

boolean

Compare before all other steps in bestpath calculation

Choices:

  • no

  • yes

rt

dictionary

Route Target extended community

additive

boolean

Add to the existing extcommunity

Choices:

  • no

  • yes

address

string

VPN extended community

range

dictionary

Specify a range of extended community

lower_limit

string

VPN extended community

upper_limit

string

VPN extended community

soo

string

Site-of-Origin extended community

vpn_distinguisher

dictionary

VPN Distinguisher

additive

boolean

Add to the existing extcommunity

Choices:

  • no

  • yes

address

string

VPN extended community

range

dictionary

Specify a range of extended community

lower_limit

string

VPN extended community

upper_limit

string

VPN extended community

global_route

boolean

Set to global routing table

Choices:

  • no

  • yes

interfaces

list / elements=string

Output interface

ip

dictionary

IP specific information

address

string

Specify IP address

Prefix-list name to set ip address

df

integer

Set DF bit

Choices:

  • 0

  • 1

global_route

dictionary

global routing table

address

string

IP address of next hop

verify_availability

dictionary

Verify if nexthop is reachable

address

string

IP address of next hop

sequence

integer

Sequence to insert into next-hop list

Please refer vendor documentation for valid values

track

integer

Set the next hop depending on the state of a tracked object

tracked object number

Please refer vendor documentation for valid values

next_hop

dictionary

Next hop address

address

string

IP address of next hop

dynamic

boolean

application dynamically sets next hop

DHCP learned next hop

Choices:

  • no

  • yes

encapsulate

string

Encapsulation profile for VPN nexthop

L3VPN

Encapsulation profile name

peer_address

boolean

Use peer address (for BGP only)

Choices:

  • no

  • yes

recursive

dictionary

Recursive next-hop

address

string

IP address of recursive next hop

global_route

boolean

global routing table

Choices:

  • no

  • yes

vrf

string

VRF

self

boolean

Use self address (for BGP only)

Choices:

  • no

  • yes

verify_availability

dictionary

Verify if nexthop is reachable

address

string

IP address of next hop

sequence

integer

Sequence to insert into next-hop list

Please refer vendor documentation for valid values

set

boolean

Set and Verify if nexthop is reachable

Choices:

  • no

  • yes

track

integer

Set the next hop depending on the state of a tracked object

tracked object number

Please refer vendor documentation for valid values

precedence

dictionary

Set precedence field

critical

boolean

Set critical precedence (5)

Choices:

  • no

  • yes

flash

boolean

Set flash precedence (3)

Choices:

  • no

  • yes

flash_override

boolean

Set flash override precedence (4)

Choices:

  • no

  • yes

immediate

boolean

Set immediate precedence (2)

Choices:

  • no

  • yes

internet

boolean

Set internetwork control precedence (6)

Choices:

  • no

  • yes

network

boolean

Set network control precedence (7)

Choices:

  • no

  • yes

priority

boolean

Set priority precedence (1)

Choices:

  • no

  • yes

routine

boolean

Set routine precedence (0)

Choices:

  • no

  • yes

set

boolean

Just set precedence field

Choices:

  • no

  • yes

qos_group

integer

Set QOS Group ID

Please refer vendor documentation for valid values

tos

dictionary

Set type of service field

max_reliability

boolean

Set max reliable TOS (2)

Choices:

  • no

  • yes

max_throughput

boolean

Set max throughput TOS (4)

Choices:

  • no

  • yes

min_delay

boolean

Set min delay TOS (8)

Choices:

  • no

  • yes

min_monetary_cost

boolean

Set min monetary cost TOS (1)

Choices:

  • no

  • yes

normal

boolean

Set normal TOS (0)

Choices:

  • no

  • yes

set

boolean

Just set type of service field

Choices:

  • no

  • yes

vrf

dictionary

VRF

address

string

IP address of next hop

name

string

VRF name

verify_availability

dictionary

Verify if nexthop is reachable

address

string

IP address of next hop

sequence

integer

Sequence to insert into next-hop list

Please refer vendor documentation for valid values

set

boolean

Set and Verify if nexthop is reachable

Choices:

  • no

  • yes

track

integer

Set the next hop depending on the state of a tracked object

tracked object number

Please refer vendor documentation for valid values

ipv6

dictionary

IPv6 specific information

address

string

IPv6 address

IPv6 prefix-list

default

boolean

Set default information

Choices:

  • no

  • yes

global_route

dictionary

global routing table

address

string

Next hop address (X:X:X:X::X)

verify_availability

dictionary

Verify if nexthop is reachable

address

string

Next hop address (X:X:X:X::X)

sequence

integer

Sequence to insert into next-hop list

Please refer vendor documentation for valid values

track

integer

Set the next hop depending on the state of a tracked object

tracked object number

Please refer vendor documentation for valid values

next_hop

dictionary

IPv6 Next hop

address

string

Next hop address (X:X:X:X::X)

encapsulate

string

Encapsulation profile for VPN nexthop

L3VPN

Encapsulation profile name

peer_address

boolean

Use peer address (for BGP only)

Choices:

  • no

  • yes

recursive

string

Recursive next-hop

IPv6 address of recursive next-hop

precedence

integer

Set precedence field

Precedence value

Please refer vendor documentation for valid values

vrf

dictionary

VRF name

name

string

VRF name

verify_availability

dictionary

Verify if nexthop is reachable

address

string

IPv6 address of next hop

sequence

integer

Sequence to insert into next-hop list

Please refer vendor documentation for valid values

track

integer

Set the next hop depending on the state of a tracked object

tracked object number

Please refer vendor documentation for valid values

level

dictionary

Where to import route

level_1

boolean

Import into a level-1 area

Choices:

  • no

  • yes

level_1_2

boolean

Import into level-1 and level-2

Choices:

  • no

  • yes

level_2

boolean

Import into level-2 sub-domain

Choices:

  • no

  • yes

nssa_only

boolean

Import only into OSPF NSSA areas and don’t propagate

Choices:

  • no

  • yes

lisp

string

Locator ID Separation Protocol specific information

Specify a locator-set to use in LISP route-import

The name of the locator set

local_preference

integer

BGP local preference path attribute

Please refer vendor documentation for valid values

metric

dictionary

Metric value for destination routing protocol

deviation

string

Add or subtract metric

Choices:

  • plus

  • minus

eigrp_delay

integer

EIGRP delay metric, in 10 microsecond units

Please refer vendor documentation for valid values

metric_bandwidth

integer

EIGRP Effective bandwidth metric (Loading) where 255 is 100 loaded

Please refer vendor documentation for valid values

metric_reliability

integer

EIGRP reliability metric where 255 is 100 reliable

Please refer vendor documentation for valid values

metric_value

integer

Metric value or Bandwidth in Kbits per second

Please refer vendor documentation for valid values

mtu

integer

EIGRP MTU of the path

Please refer vendor documentation for valid values

metric_type

dictionary

Type of metric for destination routing protocol

external

boolean

IS-IS external metric

Choices:

  • no

  • yes

internal

boolean

IS-IS internal metric or Use IGP metric as the MED for BGP

Choices:

  • no

  • yes

type_1

boolean

OSPF external type 1 metric

Choices:

  • no

  • yes

type_2

boolean

OSPF external type 2 metric

Choices:

  • no

  • yes

mpls_label

boolean

Set MPLS label for prefix

Choices:

  • no

  • yes

origin

dictionary

BGP origin code

igp

boolean

local IGP

Choices:

  • no

  • yes

incomplete

boolean

unknown heritage

Choices:

  • no

  • yes

tag

string

Tag value for destination routing protocol

Tag value A.B.C.D(dotted decimal format)/Tag value

traffic_index

integer

BGP traffic classification number for accounting

Please refer vendor documentation for valid values

vrf

string

Define VRF name

VPN Routing/Forwarding instance name

weight

integer

BGP weight for routing table

Please refer vendor documentation for valid values

route_map

string

Route map tag/name

running_config

string

This option is used only with state parsed.

The value of this option should be the output received from the IOS device by executing the command sh running-config | section ^route-map.

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

The states rendered, gathered and parsed does not perform any change on the device.

The state rendered will transform the configuration in config option to platform specific CLI commands which will be returned in the rendered key within the result. For state rendered active connection to remote host is not required.

The state 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 gathered key within the result.

The state parsed reads the configuration from running_config option and transforms it into JSON format as per the resource module parameters and the value is returned in the parsed key within the result. The value of running_config option should be the same format as the output of command sh running-config | section ^route-map executed on device. For state parsed active connection to remote host is not required.

Choices:

  • merged ← (default)

  • replaced

  • overridden

  • deleted

  • gathered

  • parsed

  • rendered

Notes

Note

Examples

# Using deleted

# Before state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

- name: Delete provided Route maps config
  cisco.ios.ios_route_maps:
    config:
      - route_map: test_1
    state: deleted

#  Commands Fired:
#  ---------------
#
#  "commands": [
#         "no route-map test_1"
#     ]

# After state:
# -------------
# router-ios#sh running-config | section ^route-map
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

# Using deleted without any config passed (NOTE: This will delete all Route maps configuration from device)

# Before state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

- name: Delete all Route maps config
  cisco.ios.ios_route_maps:
    state: deleted

# Commands Fired:
# ---------------
#
#  "commands": [
#         "no route-map test_1",
#         "no route-map test_2"
#     ]

# After state:
# -------------
# router-ios#sh running-config | section ^route-map
# router-ios#

# Using merged

# Before state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# router-ios#

- name: Merge provided Route maps configuration
  cisco.ios.ios_route_maps:
    config:
      - route_map: test_1
        entries:
          - sequence: 10
            action: deny
            description: this is test route
            match:
              ip:
                next_hop:
                  prefix_lists:
                    - test_1_new
                    - test_2_new
                route_source:
                  acls:
                    - 10
              security_group:
                source:
                  - 10
                  - 20
              local_preference:
                value:
                  - 50
                  - 100
              mpls_label: true
          - sequence: 20
            action: deny
            continue_entry:
              entry_sequence: 100
            match:
              additional_paths:
                all: true
                group_best: true
              as_path:
                acls:
                  - 100
                  - 200
              ipv6:
                address:
                  acl: test_acl_20
              route_type:
                level_1: true
              tag:
                tag_list:
                  - test_match_tag
              track: 105
      - route_map: test_2
        entries:
          - sequence: 10
            action: deny
            match:
              ipv6:
                address:
                  acl: test_ip_acl
                next_hop:
                  prefix_list: test_new
                route_source:
                  acl: route_src_acl
              security_group:
                source:
                  - 10
                  - 20
              local_preference:
                value:
                  - 55
                  - 105
              mpls_label: true
            set:
              aigp_metric:
                value: 100
              automatic_tag: true
              extcommunity:
                cost:
                  id: 10
                  cost_value: 100
                  pre_bestpath: true
              ip:
                address: 192.0.2.1
                df: 1
                next_hop:
                  recursive:
                    global_route: true
                    address: 198.51.110.1
                  verify_availability:
                    address: 198.51.111.1
                    sequence: 100
                    track: 10
                precedence:
                  critical: true
    state: merged

#  Commands Fired:
#  ---------------
#
#   "commands": [
#      "route-map test_2 deny 10",
#      "match security-group source tag 10 20",
#      "match local-preference 55 105",
#      "match mpls-label",
#      "match ipv6 next-hop prefix-list test_new",
#      "match ipv6 route-source route_src_acl",
#      "match ipv6 address test_ip_acl",
#      "set extcommunity cost pre-bestpath 10 100",
#      "set ip df 1",
#      "set ip next-hop recursive global 198.51.110.1",
#      "set ip next-hop verify-availability 198.51.111.1 100 track 10",
#      "set ip precedence critical",
#      "set ip address prefix-list 192.0.2.1",
#      "set automatic-tag",
#      "set aigp-metric 100",
#      "route-map test_1 deny 20",
#      "continue 100",
#      "match track 105",
#      "match tag list test_match_tag",
#      "match ipv6 address test_acl_20",
#      "match route-type level-1",
#      "match as-path 200 100",
#      "match additional-paths advertise-set all group-best",
#      "route-map test_1 deny 10",
#      "description this is test route",
#      "match security-group source tag 10 20",
#      "match ip next-hop prefix-list test_2_new test_1_new",
#      "match ip route-source 10",
#      "match local-preference 100 50",
#      "match mpls-label"
#     ]

# After state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

# Using overridden

# Before state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

- name: Override provided Route maps configuration
  cisco.ios.ios_route_maps:
    config:
      - route_map: test_1
        entries:
          - sequence: 10
            action: deny
            description: this is override route
            match:
              ip:
                next_hop:
                  acls:
                    - 10
                    - test1_acl
                flowspec:
                  dest_pfx: true
                  acls:
                    - test_acl_1
                    - test_acl_2
              length:
                minimum: 10
                maximum: 100
              metric:
                value: 10
                external: true
              security_group:
                source:
                  - 10
                  - 20
              mpls_label: true
            set:
              extcommunity:
                vpn_distinguisher:
                  address: 192.0.2.1:12
                  additive: true
              metric:
                metric_value: 100
                deviation: plus
                eigrp_delay: 100
                metric_reliability: 10
                metric_bandwidth: 20
                mtu: 30
      - route_map: test_override
        entries:
          - sequence: 10
            action: deny
            match:
              ipv6:
                address:
                  acl: test_acl
                next_hop:
                  prefix_list: test_new
                route_source:
                  acl: route_src_acl
              security_group:
                source:
                  - 15
                  - 20
              local_preference:
                value:
                  - 105
                  - 110
              mpls_label: true
            set:
              aigp_metric:
                value: 100
              automatic_tag: true
              extcommunity:
                cost:
                  id: 10
                  cost_value: 100
                  pre_bestpath: true
              ip:
                address: 192.0.2.1
                df: 1
                next_hop:
                  recursive:
                    global_route: true
                    address: 198.110.51.1
                  verify_availability:
                    address: 198.110.51.2
                    sequence: 100
                    track: 10
                precedence:
                  critical: true
    state: overridden

# Commands Fired:
# ---------------
#
#  "commands": [
#         "no route-map test_2",
#         "route-map test_override deny 10",
#         "match security-group source tag 15 20",
#         "match local-preference 110 105",
#         "match mpls-label",
#         "match ipv6 next-hop prefix-list test_new",
#         "match ipv6 route-source route_src_acl",
#         "match ipv6 address test_acl",
#         "set extcommunity cost pre-bestpath 10 100",
#         "set ip df 1",
#         "set ip next-hop recursive global 198.110.51.1",
#         "set ip next-hop verify-availability 198.110.51.2 100 track 10",
#         "set ip precedence critical",
#         "set ip address prefix-list 192.0.2.1",
#         "set automatic-tag",
#         "set aigp-metric 100",
#         "route-map test_1 deny 10",
#         "no description this is test route",
#         "description this is override route",
#         "match ip flowspec dest-pfx test_acl_1 test_acl_2",
#         "no match ip next-hop prefix-list test_2_new test_1_new",
#         "match ip next-hop test1_acl 10",
#         "no match ip route-source 10",
#         "match metric external 10",
#         "match length 10 100",
#         "no match local-preference 100 50",
#         "set extcommunity vpn-distinguisher 192.0.2.1:12 additive",
#         "set metric 100 +100 10 20 30",
#         "no route-map test_1 deny 20"
#     ]

# After state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_override deny 10
#  match security-group source tag 15 20
#  match local-preference 110 105
#  match mpls-label
#  match ipv6 address test_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.110.51.2 100 track 10
#  set ip next-hop recursive global 198.110.51.1
# route-map test_1 deny 10
#  description this is override route
#  match ip flowspec dest-pfx test_acl_1 test_acl_2
#  match ip next-hop test1_acl 10
#  match security-group source tag 10 20
#  match metric external 10
#  match mpls-label
#  match length 10 100
#  set metric 100 +100 10 20 30
#  set extcommunity vpn-distinguisher 192.0.2.1:12 additive

# Using replaced

# Before state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

- name: Replaced provided Route maps configuration
  cisco.ios.ios_route_maps:
    config:
      - route_map: test_1
        entries:
          - sequence: 10
            action: deny
            description: this is replaced route
            match:
              ip:
                next_hop:
                  acls:
                    - 10
                    - test1_acl
                flowspec:
                  dest_pfx: true
                  acls:
                    - test_acl_1
                    - test_acl_2
              length:
                minimum: 10
                maximum: 100
              metric:
                value: 10
                external: true
              security_group:
                source:
                  - 10
                  - 20
              mpls_label: true
            set:
              extcommunity:
                vpn_distinguisher:
                  address: 192.0.2.1:12
                  additive: true
              metric:
                metric_value: 100
                deviation: plus
                eigrp_delay: 100
                metric_reliability: 10
                metric_bandwidth: 20
                mtu: 30
      - route_map: test_replaced
        entries:
          - sequence: 10
            action: deny
            match:
              ipv6:
                address:
                  acl: test_acl
                next_hop:
                  prefix_list: test_new
                route_source:
                  acl: route_src_acl
              security_group:
                source:
                  - 15
                  - 20
              local_preference:
                value:
                  - 105
                  - 110
              mpls_label: true
            set:
              aigp_metric:
                value: 100
              automatic_tag: true
              extcommunity:
                cost:
                  id: 10
                  cost_value: 100
                  pre_bestpath: true
              ip:
                address: 192.0.2.1
                df: 1
                next_hop:
                  recursive:
                    global_route: true
                    address: 198.110.51.1
                  verify_availability:
                    address: 198.110.51.2
                    sequence: 100
                    track: 10
                precedence:
                  critical: true
    state: replaced

# Commands Fired:
# ---------------
#  "commands": [
#         "route-map test_replaced deny 10",
#         "match security-group source tag 15 20",
#         "match local-preference 110 105",
#         "match mpls-label",
#         "match ipv6 next-hop prefix-list test_new",
#         "match ipv6 route-source route_src_acl",
#         "match ipv6 address test_acl",
#         "set extcommunity cost pre-bestpath 10 100",
#         "set ip df 1",
#         "set ip next-hop recursive global 198.110.51.1",
#         "set ip next-hop verify-availability 198.110.51.2 100 track 10",
#         "set ip precedence critical",
#         "set ip address prefix-list 192.0.2.1",
#         "set automatic-tag",
#         "set aigp-metric 100",
#         "route-map test_1 deny 10",
#         "no description this is test route",
#         "description this is replaced route",
#         "match ip flowspec dest-pfx test_acl_1 test_acl_2",
#         "no match ip next-hop prefix-list test_2_new test_1_new",
#         "match ip next-hop test1_acl 10",
#         "no match ip route-source 10",
#         "match metric external 10",
#         "match length 10 100",
#         "no match local-preference 100 50",
#         "set extcommunity vpn-distinguisher 192.0.2.1:12 additive",
#         "set metric 100 +100 10 20 30",
#         "no route-map test_1 deny 20"
#     ]

# After state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_replaced deny 10
#  match security-group source tag 15 20
#  match local-preference 110 105
#  match mpls-label
#  match ipv6 address test_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.110.51.2 100 track 10
#  set ip next-hop recursive global 198.110.51.1
# route-map test_1 deny 10
#  description this is replaced route
#  match ip flowspec dest-pfx test_acl_1 test_acl_2
#  match ip next-hop test1_acl 10
#  match security-group source tag 10 20
#  match metric external 10
#  match mpls-label
#  match length 10 100
#  set metric 100 +100 10 20 30
#  set extcommunity vpn-distinguisher 192.0.2.1:12 additive
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

# Using Gathered

# Before state:
# -------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

- name: Gather Route maps provided configurations
  cisco.ios.ios_route_maps:
    config:
    state: gathered

# Module Execution Result:
# ------------------------
#
# "gathered": [
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "description": "this is test route",
#                     "match": {
#                         "ip": {
#                             "next_hop": {
#                                 "prefix_lists": [
#                                     "test_2_new",
#                                     "test_1_new"
#                                 ]
#                             },
#                             "route_source": {
#                                 "acls": [
#                                     "10"
#                                 ]
#                             }
#                         },
#                         "local_preference": {
#                             "value": [
#                                 "100",
#                                 "50"
#                             ]
#                         },
#                         "mpls_label": true,
#                         "security_group": {
#                             "source": [
#                                 10,
#                                 20
#                             ]
#                         }
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_entry": {
#                         "entry_sequence": 100
#                     },
#                     "match": {
#                         "additional_paths": {
#                             "all": true,
#                             "group_best": true
#                         },
#                         "as_path": {
#                             "acls": [
#                                 200,
#                                 100
#                             ]
#                         },
#                         "ipv6": {
#                             "address": {
#                                 "acl": "test_acl_20"
#                             }
#                         },
#                         "route_type": {
#                             "external": {
#                                 "set": true
#                             },
#                             "level_1": true,
#                             "nssa_external": {
#                                 "set": true
#                             }
#                         },
#                         "tag": {
#                             "tag_list": [
#                                 "test_match_tag"
#                             ]
#                         },
#                         "track": 105
#                     },
#                     "sequence": 20
#                 }
#             ],
#             "route_map": "test_1"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "address": {
#                                 "acl": "test_ip_acl"
#                             },
#                             "next_hop": {
#                                 "prefix_list": "test_new"
#                             },
#                             "route_source": {
#                                 "acl": "route_src_acl"
#                             }
#                         },
#                         "local_preference": {
#                             "value": [
#                                 "55",
#                                 "105"
#                             ]
#                         },
#                         "mpls_label": true,
#                         "security_group": {
#                             "source": [
#                                 10,
#                                 20
#                             ]
#                         }
#                     },
#                     "sequence": 10,
#                     "set": {
#                         "aigp_metric": {
#                             "value": 100
#                         },
#                         "automatic_tag": true,
#                         "extcommunity": {
#                             "cost": {
#                                 "cost_value": 100,
#                                 "id": "10",
#                                 "pre_bestpath": true
#                             }
#                         },
#                         "ip": {
#                             "address": "192.0.2.1",
#                             "df": 1,
#                             "next_hop": {
#                                 "recursive": {
#                                     "address": "198.51.110.1",
#                                     "global_route": true
#                                 },
#                                 "verify_availability": {
#                                     "address": "198.51.111.1",
#                                     "sequence": 100,
#                                     "track": 10
#                                 }
#                             },
#                             "precedence": {
#                                 "critical": true
#                             }
#                         }
#                     }
#                 }
#             ],
#             "route_map": "test_2"
#         }
#     ]

# After state:
# ------------
#
# router-ios#sh running-config | section ^route-map
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

# Using Rendered

- name: Render the commands for provided  configuration
  cisco.ios.ios_route_maps:
    config:
      - route_map: test_1
        entries:
          - sequence: 10
            action: deny
            description: this is test route
            match:
              ip:
                next_hop:
                  prefix_lists:
                    - test_1_new
                    - test_2_new
                route_source:
                  acls:
                    - 10
              security_group:
                source:
                  - 10
                  - 20
              local_preference:
                value:
                  - 50
                  - 100
              mpls_label: true
          - sequence: 20
            action: deny
            continue_entry:
              entry_sequence: 100
            match:
              additional_paths:
                all: true
                group_best: true
              as_path:
                acls:
                  - 100
                  - 200
              ipv6:
                address:
                  acl: test_acl_20
              route_type:
                level_1: true
              tag:
                tag_list:
                  - test_match_tag
              track: 105
      - route_map: test_2
        entries:
          - sequence: 10
            action: deny
            match:
              ipv6:
                address:
                  acl: test_ip_acl
                next_hop:
                  prefix_list: test_new
                route_source:
                  acl: route_src_acl
              security_group:
                source:
                  - 10
                  - 20
              local_preference:
                value:
                  - 55
                  - 105
              mpls_label: true
            set:
              aigp_metric:
                value: 100
              automatic_tag: true
              extcommunity:
                cost:
                  id: 10
                  cost_value: 100
                  pre_bestpath: true
              ip:
                address: 192.0.2.1
                df: 1
                next_hop:
                  recursive:
                    global_route: true
                    address: 198.51.110.1
                  verify_availability:
                    address: 198.51.111.1
                    sequence: 100
                    track: 10
                precedence:
                  critical: true
    state: rendered

# Module Execution Result:
# ------------------------
#
#  "rendered": [
#      "route-map test_2 deny 10",
#      "match security-group source tag 10 20",
#      "match local-preference 55 105",
#      "match mpls-label",
#      "match ipv6 next-hop prefix-list test_new",
#      "match ipv6 route-source route_src_acl",
#      "match ipv6 address test_ip_acl",
#      "set extcommunity cost pre-bestpath 10 100",
#      "set ip df 1",
#      "set ip next-hop recursive global 198.51.110.1",
#      "set ip next-hop verify-availability 198.51.111.1 100 track 10",
#      "set ip precedence critical",
#      "set ip address prefix-list 192.0.2.1",
#      "set automatic-tag",
#      "set aigp-metric 100",
#      "route-map test_1 deny 20",
#      "continue 100",
#      "match track 105",
#      "match tag list test_match_tag",
#      "match ipv6 address test_acl_20",
#      "match route-type level-1",
#      "match as-path 200 100",
#      "match additional-paths advertise-set all group-best",
#      "route-map test_1 deny 10",
#      "description this is test route",
#      "match security-group source tag 10 20",
#      "match ip next-hop prefix-list test_2_new test_1_new",
#      "match ip route-source 10",
#      "match local-preference 100 50",
#      "match mpls-label"
#     ]

# Using Parsed

# File: parsed.cfg
# ----------------
#
# route-map test_1 deny 10
#  description this is test route
#  match ip next-hop prefix-list test_2_new test_1_new
#  match ip route-source 10
#  match security-group source tag 10 20
#  match local-preference 100 50
#  match mpls-label
# route-map test_1 deny 20
#  match track  105
#  match tag list test_match_tag
#  match route-type level-1
#  match additional-paths advertise-set all group-best
#  match as-path 200 100
#  match ipv6 address test_acl_20
#  continue 100
# route-map test_2 deny 10
#  match security-group source tag 10 20
#  match local-preference 55 105
#  match mpls-label
#  match ipv6 address test_ip_acl
#  match ipv6 next-hop prefix-list test_new
#  match ipv6 route-source route_src_acl
#  set automatic-tag
#  set ip precedence critical
#  set ip address prefix-list 192.0.2.1
#  set aigp-metric 100
#  set extcommunity cost pre-bestpath 10 100
#  set ip df 1
#  set ip next-hop verify-availability 198.51.111.1 100 track 10
#  set ip next-hop recursive global 198.51.110.1

- name: Parse the provided configuration with the existing running configuration
  cisco.ios.ios_route_maps:
    running_config: "{{ lookup('file', 'parsed.cfg') }}"
    state: parsed

# Module Execution Result:
# ------------------------
#
# "parsed": [
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "description": "this is test route",
#                     "match": {
#                         "ip": {
#                             "next_hop": {
#                                 "prefix_lists": [
#                                     "test_2_new",
#                                     "test_1_new"
#                                 ]
#                             },
#                             "route_source": {
#                                 "acls": [
#                                     "10"
#                                 ]
#                             }
#                         },
#                         "local_preference": {
#                             "value": [
#                                 "100",
#                                 "50"
#                             ]
#                         },
#                         "mpls_label": true,
#                         "security_group": {
#                             "source": [
#                                 10,
#                                 20
#                             ]
#                         }
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_entry": {
#                         "entry_sequence": 100
#                     },
#                     "match": {
#                         "additional_paths": {
#                             "all": true,
#                             "group_best": true
#                         },
#                         "as_path": {
#                             "acls": [
#                                 200,
#                                 100
#                             ]
#                         },
#                         "ipv6": {
#                             "address": {
#                                 "acl": "test_acl_20"
#                             }
#                         },
#                         "route_type": {
#                             "external": {
#                                 "set": true
#                             },
#                             "level_1": true,
#                             "nssa_external": {
#                                 "set": true
#                             }
#                         },
#                         "tag": {
#                             "tag_list": [
#                                 "test_match_tag"
#                             ]
#                         },
#                         "track": 105
#                     },
#                     "sequence": 20
#                 }
#             ],
#             "route_map": "test_1"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "address": {
#                                 "acl": "test_ip_acl"
#                             },
#                             "next_hop": {
#                                 "prefix_list": "test_new"
#                             },
#                             "route_source": {
#                                 "acl": "route_src_acl"
#                             }
#                         },
#                         "local_preference": {
#                             "value": [
#                                 "55",
#                                 "105"
#                             ]
#                         },
#                         "mpls_label": true,
#                         "security_group": {
#                             "source": [
#                                 10,
#                                 20
#                             ]
#                         }
#                     },
#                     "sequence": 10,
#                     "set": {
#                         "aigp_metric": {
#                             "value": 100
#                         },
#                         "automatic_tag": true,
#                         "extcommunity": {
#                             "cost": {
#                                 "cost_value": 100,
#                                 "id": "10",
#                                 "pre_bestpath": true
#                             }
#                         },
#                         "ip": {
#                             "address": "192.0.2.1",
#                             "df": 1,
#                             "next_hop": {
#                                 "recursive": {
#                                     "address": "198.51.110.1",
#                                     "global_route": true
#                                 },
#                                 "verify_availability": {
#                                     "address": "198.51.111.1",
#                                     "sequence": 100,
#                                     "track": 10
#                                 }
#                             },
#                             "precedence": {
#                                 "critical": true
#                             }
#                         }
#                     }
#                 }
#             ],
#             "route_map": "test_2"
#         }
#     ]

Return Values

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

Key

Description

after

list / elements=string

The resulting configuration model invocation.

Returned: when changed

Sample: “The configuration returned will always be in the same format\n of the parameters above.\n”

before

list / elements=string

The configuration prior to the model invocation.

Returned: always

Sample: “The configuration returned will always be in the same format\n of the parameters above.\n”

commands

list / elements=string

The set of commands pushed to the remote device.

Returned: always

Sample: [“route-map test_1 deny 10”, “description this is test route”, “match ip route-source 10”, “match track 105”]

Authors

  • Sumit Jaiswal (@justjais)