Resource module to configure VRF Address family.
Version added: 10.0.0
- This module configures and manages the attributes of VRF address family on Cisco IOS-XR devices.
Note
- Tested against Cisco IOSXR Version 10.0.0
- This module works with connection
network_cli
. See the IOS_XR Platform Options - For more information on using Ansible to manage network devices see the :ref:`Ansible Network Guide <network_guide>`
- For more information on using Ansible to manage Cisco devices see the Cisco integration page <https://www.ansible.com/integrations/networks/cisco>.
# Using merged
#
# Before state:
# -------------
#
# RP/0/0/CPU0:iosxr#show running-config vrf
# vrf test
#
- name: Merge provided configuration with device configuration
cisco.iosxr.iosxr_vrf_address_family:
config:
- name: VRF4
address_families:
- afi: "ipv4"
safi: "unicast"
export:
route_target: "192.0.2.1:400"
route_policy: "rm-policy"
to:
default_vrf:
route_policy: "rm-policy"
vrf:
allow_imported_vpn: true
import_config:
route_target: "192.0.2.6:200"
route_policy: "test-policy"
from_config:
bridge_domain:
advertise_as_vpn: true
default_vrf:
route_policy: "test-policy"
vrf:
advertise_as_vpn: true
maximum:
prefix: 100
state: merged
# Task Output:
# ------------
#
# before: []
#
# commands:
# - vrf VRF4
# - address-family ipv4 unicast
# - export route-policy rm-policy
# - export route-target 192.0.2.1:400
# - export to default-vrf route-policy rm-policy
# - export to vrf allow-imported-vpn
# - import route-target 192.0.2.6:200
# - import route-policy test-policy
# - import from bridge-domain advertise-as-vpn
# - import from default-vrf route-policy test-policy
# - import from vrf advertise-as-vpn
# - maximum prefix 100
#
# after:
# - name: VRF4
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.1:400"
# route_policy: "rm-policy"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: true
# import_config:
# route_target: "192.0.2.6:200"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: true
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: true
# maximum:
# prefix: 100
#
# After state:
# ------------
#
# RP/0/0/CPU0:iosxr#show running-config vrf
# vrf VRF4
# address-family ipv4 unicast
# export route-policy rm-policy
# export route-target 192.0.2.1:400
# export to default-vrf route-policy rm-policy
# export to vrf allow-imported-vpn
# import route-target 192.0.2.6:200
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# maximum prefix 100
# Using replaced
#
# Before state:
# -------------
#
# RP/0/0/CPU0:iosxr#show running-config vrf
# vrf VRF4
# address-family ipv4 unicast
# export route-policy rm-policy
# export route-target 192.0.2.1:400
# export to default-vrf route-policy rm-policy
# export to vrf allow-imported-vpn
# import route-target 192.0.2.6:200
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# maximum prefix 100
- name: Replace the provided configuration with the existing running configuration
cisco.iosxr.iosxr_vrf_address_family:
config:
- name: VRF7
address_families:
- afi: "ipv4"
safi: "unicast"
export:
route_target: "192.0.2.2:400"
route_policy: "rm-policy"
to:
default_vrf:
route_policy: "rm-policy"
vrf:
allow_imported_vpn: true
import_config:
route_target: "192.0.2.4:400"
route_policy: "test-policy"
from_config:
bridge_domain:
advertise_as_vpn: true
default_vrf:
route_policy: "test-policy"
vrf:
advertise_as_vpn: true
maximum:
prefix: 200
state: replaced
# Task Output:
# ------------
#
# - name: VRF4
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.1:400"
# route_policy: "rm-policy"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: true
# import_config:
# route_target: "192.0.2.6:200"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: true
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: true
# maximum:
# prefix: 100
#
# commands:
# - vrf VRF7
# - address-family ipv4 unicast
# - export route-policy rm-policy
# - export route-target 192.0.2.2:400
# - export to default-vrf route-policy rm-policy
# - export to vrf allow-imported-vpn
# - import route-target 192.0.2.4:400
# - import route-policy test-policy
# - import from bridge-domain advertise-as-vpn
# - import from default-vrf route-policy test-policy
# - import from vrf advertise-as-vpn
# - maximum prefix 200
#
# after:
# - name: VRF7
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.2:400"
# route_policy: "rm-policy"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: true
# import_config:
# route_target: "192.0.2.4:400"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: true
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: true
# maximum:
# prefix: 200
#
# After state:
# ------------
#
# RP/0/RP0/CPU0:iosxr(config)#show running-config vrf
# vrf VRF7
# address-family ipv4 unicast
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# import route-target
# 192.0.2.4:400
# !
# export route-policy rm-policy
# export to vrf allow-imported-vpn
# export to default-vrf route-policy rm-policy
# export route-target
# 192.0.2.2:400
# !
# maximum prefix 200
# Using overridden
#
# Before state:
# -------------
#
# RP/0/RP0/CPU0:iosxr(config)#show running-config vrf
# vrf VRF7
# address-family ipv4 unicast
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# import route-target
# 192.0.2.4:400
# !
# export route-policy rm-policy
# export to vrf allow-imported-vpn
# export to default-vrf route-policy rm-policy
# export route-target
# 192.0.2.2:400
# !
# maximum prefix 200
- name: Override the provided configuration with the existing running configuration
cisco.iosxr.iosxr_vrf_address_family:
state: overridden
config:
- name: VRF6
address_families:
- afi: "ipv4"
safi: "unicast"
export:
route_target: "192.0.2.8:200"
route_policy: "rm-policy1"
to:
default_vrf:
route_policy: "rm-policy"
vrf:
allow_imported_vpn: "true"
import_config:
route_target: "192.0.2.2:200"
route_policy: "test-policy"
from_config:
bridge_domain:
advertise_as_vpn: "true"
default_vrf:
route_policy: "test-policy"
vrf:
advertise_as_vpn: "true"
maximum:
prefix: 500
# Task Output:
# ------------
#
# before:
# - name: VRF7
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.2:400"
# route_policy: "rm-policy"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: true
# import_config:
# route_target: "192.0.2.4:400"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: true
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: true
# maximum:
# prefix: 200
#
# commands:
# - vrf VRF7
# - address-family ipv4 unicast
# - no import route-policy test-policy
# - no import from bridge-domain advertise-as-vpn
# - no import from default-vrf route-policy test-policy
# - no import from vrf advertise-as-vpn
# - no import route-target 192.0.2.4:400
# - no export route-policy rm-policy
# - no export route-target 192.0.2.2:400
# - no export to default-vrf route-policy rm-policy
# - no export to vrf allow-imported-vpn
# - no maximum prefix 200
# - vrf VRF6
# - address-family ipv4 unicast
# - export route-policy rm-policy1
# - export route-target 192.0.2.8:200
# - export to default-vrf route-policy rm-policy
# - export to vrf allow-imported-vpn
# - import route-target 192.0.2.2:200
# - import route-policy test-policy
# - import from bridge-domain advertise-as-vpn
# - import from default-vrf route-policy test-policy
# - import from vrf advertise-as-vpn
# - maximum prefix 500
#
# after:
# - name: VRF4
# - name: VRF6
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.8:200"
# route_policy: "rm-policy1"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: "true"
# import_config:
# route_target: "192.0.2.2:200"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: "true"
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: "true"
# maximum:
# prefix: 500
# - name: VRF7
#
# After state:
# -------------
# RP/0/RP0/CPU0:iosxr(config)#show running-config vrf
# vrf VRF4
# vrf VRF6
# address-family ipv4 unicast
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# import route-target
# 192.0.2.2:200
# export route-policy rm-policy1
# export to vrf allow-imported-vpn
# export to default-vrf route-policy rm-policy
# export route-target
# 192.0.2.8:200
# maximum prefix 500
# vrf VRF7
# Using deleted
#
# Before state:
# -------------
#
# RP/0/RP0/CPU0:iosxr(config)#show running-config vrf
# vrf VRF4
# vrf VRF6
# address-family ipv4 unicast
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# import route-target
# 192.0.2.2:200
# export route-policy rm-policy1
# export to vrf allow-imported-vpn
# export to default-vrf route-policy rm-policy
# export route-target
# 192.0.2.8:200
# maximum prefix 500
# vrf VRF7
- name: Delete the provided configuration
cisco.iosxr.iosxr_vrf_address_family:
config:
state: deleted
# Task Output:
# ------------
#
# before:
# - name: VRF4
# - name: VRF6
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.8:200"
# route_policy: "rm-policy1"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: "true"
# import_config:
# route_target: "192.0.2.2:200"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: "true"
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: "true"
# maximum:
# prefix: 500
# - name: VRF7
# commands:
# - vrf VRF4
# - vrf VRF6
# - no address-family ipv4 unicast
# - vrf VRF7
#
# after:
# - name: VRF4
# - name: VRF6
# - name: VRF7
#
# After state:
# ------------
#
# RP/0/RP0/CPU0:iosxr(config)#show running-config vrf
# vrf VRF4
# vrf VRF6
# vrf VRF7
# Using rendered
#
- name: Render provided configuration with device configuration
cisco.iosxr.iosxr_vrf_address_family:
config:
- name: VRF4
address_families:
- afi: "ipv4"
safi: "unicast"
export:
route_target: "192.0.2.1:400"
route_policy: "rm-policy"
to:
default_vrf:
route_policy: "rm-policy"
vrf:
allow_imported_vpn: true
import_config:
route_target: "192.0.2.6:200"
route_policy: "test-policy"
from_config:
bridge_domain:
advertise_as_vpn: true
default_vrf:
route_policy: "test-policy"
vrf:
advertise_as_vpn: true
maximum:
prefix: 100
state: rendered
# Task Output:
# ------------
#
# rendered:
# - vrf VRF4
# - address-family ipv4 unicast
# - export route-policy rm-policy
# - export route-target 192.0.2.1:400
# - export to default-vrf route-policy rm-policy
# - export to vrf allow-imported-vpn
# - import route-target 192.0.2.6:200
# - import route-policy test-policy
# - import from bridge-domain advertise-as-vpn
# - import from default-vrf route-policy test-policy
# - import from vrf advertise-as-vpn
# - maximum prefix 100
# Using gathered
#
# Before state:
# -------------
#
# RP/0/RP0/CPU0:iosxr(config)#show running-config vrf
# vrf VRF4
# address-family ipv4 unicast
# export route-policy rm-policy
# export route-target 192.0.2.1:400
# export to default-vrf route-policy rm-policy
# export to vrf allow-imported-vpn
# import route-target 192.0.2.6:200
# import route-policy test-policy
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy test-policy
# import from vrf advertise-as-vpn
# maximum prefix 100
- name: Gather existing running configuration
cisco.iosxr.iosxr_vrf_address_family:
state: gathered
# Task Output:
# ------------
#
# gathered:
# - name: VRF4
# address_families:
# - afi: "ipv4"
# safi: "unicast"
# export:
# route_target: "192.0.2.1:400"
# route_policy: "rm-policy"
# to:
# default_vrf:
# route_policy: "rm-policy"
# vrf:
# allow_imported_vpn: true
# import_config:
# route_target: "192.0.2.6:200"
# route_policy: "test-policy"
# from_config:
# bridge_domain:
# advertise_as_vpn: true
# default_vrf:
# route_policy: "test-policy"
# vrf:
# advertise_as_vpn: true
# maximum:
# prefix: 100
# Using parsed
#
# File: parsed.cfg
# ----------------
#
# vrf test
# address-family ipv4 unicast
# export to default-vrf route-policy "rm-policy"
# export to vrf allow-imported-vpn
# export route-policy "export-policy"
# export route-target
# 192.0.2.1:400
# import route-target
# 192.0.2.2:200
# import route-policy "test-policy"
# import from bridge-domain advertise-as-vpn
# import from default-vrf route-policy "new-policy"
# import from vrf advertise-as-vpn
# maximum prefix 23
- name: Parse the provided configuration
cisco.iosxr.iosxr_vrf_address_family:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task Output:
# ------------
#
# parsed:
# - address_families:
# - afi: ipv4
# export:
# route_policy: export-policy
# route_target: 192.0.2.1:400
# to:
# default_vrf:
# route_policy: rm-policy
# vrf:
# allow_imported_vpn: true
# import_config:
# from_config:
# bridge_domain:
# advertise_as_vpn: true
# default_vrf:
# route_policy: new-policy
# vrf:
# advertise_as_vpn: true
# route_policy: test-policy
# route_target: 192.0.2.2:200
# maximum:
# prefix: 23
# safi: unicast
# name: test
Common return values are documented here, the following are the fields unique to this module:
- Ruchi Pakhle (@Ruchip16)