cisco.nxos.nxos_bgp_neighbor_address_family – BGP Neighbor Address Family resource module.

Note

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

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

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

New in version 2.0.0: of cisco.nxos

Synopsis

  • This module manages BGP Neighbor Address Family configuration on devices running Cisco NX-OS.

Parameters

Parameter Choices/Defaults Comments
config
dictionary
BGP Neighbor AF configuration.
as_number
string
Autonomous System Number of the router.
neighbors
list / elements=dictionary
A list of BGP Neighbor AF configuration.
address_family
list / elements=dictionary
BGP Neighbor Address Family related configurations.
advertise_map
dictionary
Specify route-map for conditional advertisement.
exist_map
string
Condition route-map to advertise only when prefix in condition exists.
non_exist_map
string
Condition route-map to advertise only when prefix in condition does not exist.
route_map
string / required
Route-map name.
advertisement_interval
integer
Minimum interval between sending BGP routing updates.
afi
string / required
    Choices:
  • ipv4
  • ipv6
  • link-state
  • vpnv4
  • vpnv6
  • l2vpn
Address Family indicator.
allowas_in
dictionary
Accept as-path with my AS present in it.
max_occurences
integer
Number of occurrences of AS number, default is 3.
set
boolean
    Choices:
  • no
  • yes
Activate allowas-in property.
as_override
boolean
    Choices:
  • no
  • yes
Override matching AS-number while sending update.
capability
dictionary
Advertise capability to the peer.
additional_paths
dictionary
Additional paths capability.
receive
string
    Choices:
  • enable
  • disable
Additional paths Receive capability.
send
string
    Choices:
  • enable
  • disable
Additional paths Send capability.
default_originate
dictionary
Originate a default toward this peer.
route_map
string
Route-map to specify criteria for originating default.
set
boolean
    Choices:
  • no
  • yes
Set default-originate attribute.
disable_peer_as_check
boolean
    Choices:
  • no
  • yes
Disable checking of peer AS-number while advertising.
filter_list
dictionary
Name of filter-list.
inbound
string
Apply policy to incoming routes.
outbound
string
Apply policy to outgoing routes.
inherit
dictionary
Inherit a template.
sequence
integer
Sequence number.
template
string
Template name.
maximum_prefix
dictionary
Maximum number of prefixes from this neighbor.
generate_warning_threshold
integer
Threshold percentage at which to generate a warning.
max_prefix_limit
integer
Maximum prefix limit.
restart_interval
integer
Restart bgp connection after limit is exceeded.
warning_only
boolean
    Choices:
  • no
  • yes
Only give a warning message when limit is exceeded.
next_hop_self
dictionary
Set our address as nexthop (non-reflected).
all_routes
boolean
    Choices:
  • no
  • yes
Set our address as nexthop for all routes.
set
boolean
    Choices:
  • no
  • yes
Set next-hop-self attribute.
next_hop_third_party
boolean
    Choices:
  • no
  • yes
Compute a third-party nexthop if possible.
prefix_list
dictionary
Apply prefix-list.
inbound
string
Apply policy to incoming routes.
outbound
string
Apply policy to outgoing routes.
rewrite_evpn_rt_asn
boolean
    Choices:
  • no
  • yes
Auto generate RTs for EBGP neighbor.
route_map
dictionary
Apply route-map to neighbor.
inbound
string
Apply policy to incoming routes.
outbound
string
Apply policy to outgoing routes.
route_reflector_client
boolean
    Choices:
  • no
  • yes
Configure a neighbor as Route reflector client.
safi
string
    Choices:
  • unicast
  • multicast
  • mvpn
  • evpn
Sub Address Family indicator.
send_community
dictionary
Send Community attribute to this neighbor.
both
boolean
    Choices:
  • no
  • yes
Send Standard and Extended Community attributes.
extended
boolean
    Choices:
  • no
  • yes
Send Extended Community attribute.
set
boolean
    Choices:
  • no
  • yes
Set send-community attribute.
standard
boolean
    Choices:
  • no
  • yes
Send Standard Community attribute.
soft_reconfiguration_inbound
dictionary
Soft reconfiguration.
always
boolean
    Choices:
  • no
  • yes
Always perform inbound soft reconfiguration.
set
boolean
    Choices:
  • no
  • yes
Set soft-reconfiguration inbound attribute.
soo
string
Specify Site-of-origin extcommunity.
suppress_inactive
boolean
    Choices:
  • no
  • yes
Advertise only active routes to peer.
unsuppress_map
string
Route-map to selectively unsuppress suppressed routes.
weight
integer
Set default weight for routes from this neighbor.
neighbor_address
string / required
IP/IPv6 address of the neighbor.
vrfs
list / elements=dictionary
Virtual Router Context.
neighbors
list / elements=dictionary
A list of BGP Neighbor AF configuration.
address_family
list / elements=dictionary
BGP Neighbor Address Family related configurations.
advertise_map
dictionary
Specify route-map for conditional advertisement.
exist_map
string
Condition route-map to advertise only when prefix in condition exists.
non_exist_map
string
Condition route-map to advertise only when prefix in condition does not exist.
route_map
string / required
Route-map name.
advertisement_interval
integer
Minimum interval between sending BGP routing updates.
afi
string / required
    Choices:
  • ipv4
  • ipv6
  • link-state
  • vpnv4
  • vpnv6
  • l2vpn
Address Family indicator.
allowas_in
dictionary
Accept as-path with my AS present in it.
max_occurences
integer
Number of occurrences of AS number, default is 3.
set
boolean
    Choices:
  • no
  • yes
Activate allowas-in property.
as_override
boolean
    Choices:
  • no
  • yes
Override matching AS-number while sending update.
capability
dictionary
Advertise capability to the peer.
additional_paths
dictionary
Additional paths capability.
receive
string
    Choices:
  • enable
  • disable
Additional paths Receive capability.
send
string
    Choices:
  • enable
  • disable
Additional paths Send capability.
default_originate
dictionary
Originate a default toward this peer.
route_map
string
Route-map to specify criteria for originating default.
set
boolean
    Choices:
  • no
  • yes
Set default-originate attribute.
disable_peer_as_check
boolean
    Choices:
  • no
  • yes
Disable checking of peer AS-number while advertising.
filter_list
dictionary
Name of filter-list.
inbound
string
Apply policy to incoming routes.
outbound
string
Apply policy to outgoing routes.
inherit
dictionary
Inherit a template.
sequence
integer
Sequence number.
template
string
Template name.
maximum_prefix
dictionary
Maximum number of prefixes from this neighbor.
generate_warning_threshold
integer
Threshold percentage at which to generate a warning.
max_prefix_limit
integer
Maximum prefix limit.
restart_interval
integer
Restart bgp connection after limit is exceeded.
warning_only
boolean
    Choices:
  • no
  • yes
Only give a warning message when limit is exceeded.
next_hop_self
dictionary
Set our address as nexthop (non-reflected).
all_routes
boolean
    Choices:
  • no
  • yes
Set our address as nexthop for all routes.
set
boolean
    Choices:
  • no
  • yes
Set next-hop-self attribute.
next_hop_third_party
boolean
    Choices:
  • no
  • yes
Compute a third-party nexthop if possible.
prefix_list
dictionary
Apply prefix-list.
inbound
string
Apply policy to incoming routes.
outbound
string
Apply policy to outgoing routes.
rewrite_evpn_rt_asn
boolean
    Choices:
  • no
  • yes
Auto generate RTs for EBGP neighbor.
route_map
dictionary
Apply route-map to neighbor.
inbound
string
Apply policy to incoming routes.
outbound
string
Apply policy to outgoing routes.
route_reflector_client
boolean
    Choices:
  • no
  • yes
Configure a neighbor as Route reflector client.
safi
string
    Choices:
  • unicast
  • multicast
  • mvpn
  • evpn
Sub Address Family indicator.
send_community
dictionary
Send Community attribute to this neighbor.
both
boolean
    Choices:
  • no
  • yes
Send Standard and Extended Community attributes.
extended
boolean
    Choices:
  • no
  • yes
Send Extended Community attribute.
set
boolean
    Choices:
  • no
  • yes
Set send-community attribute.
standard
boolean
    Choices:
  • no
  • yes
Send Standard Community attribute.
soft_reconfiguration_inbound
dictionary
Soft reconfiguration.
always
boolean
    Choices:
  • no
  • yes
Always perform inbound soft reconfiguration.
set
boolean
    Choices:
  • no
  • yes
Set soft-reconfiguration inbound attribute.
soo
string
Specify Site-of-origin extcommunity.
suppress_inactive
boolean
    Choices:
  • no
  • yes
Advertise only active routes to peer.
unsuppress_map
string
Route-map to selectively unsuppress suppressed routes.
weight
integer
Set default weight for routes from this neighbor.
neighbor_address
string / required
IP/IPv6 address of the neighbor.
vrf
string
VRF name.
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 bgp'.
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
  • parsed
  • gathered
  • rendered
The state the configuration should be left in.
State deleted only removes BGP attributes that this modules manages and does not negate the BGP process completely.
Refer to examples for more details.

Notes

Note

  • Tested against NX-OS 9.3.6.

  • Unsupported for Cisco MDS

  • For managing BGP address family configurations please use the cisco.nxos.nxos_bgp_address_family module.

  • This module works with connection network_cli and httpapi.

Examples

# Using merged

# Before state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# Nexus9000v#

- name: Merge the provided configuration with the existing running configuration
  cisco.nxos.nxos_bgp_neighbor_address_family: &id001
    config:
      as_number: 65536
      neighbors:
        - neighbor_address: 192.0.2.32
          address_family:
            - afi: ipv4
              safi: unicast
              maximum_prefix:
                max_prefix_limit: 20
                generate_warning_threshold: 75
              weight: 100
              prefix_list:
                inbound: rmap1
                outbound: rmap2
            - afi: ipv6
              safi: unicast
        - neighbor_address: 192.0.2.33
          address_family:
            - afi: ipv4
              safi: multicast
              inherit:
                template: BasePolicy
                sequence: 200
      vrfs:
        - vrf: site-1
          neighbors:
            - neighbor_address: 203.0.113.1
              address_family:
                - afi: ipv4
                  safi: unicast
                  suppress_inactive: True
                  next_hop_self:
                    set: True
            - neighbor_address: 203.0.113.2
              address_family:
                - afi: ipv6
                  safi: unicast
                - afi: ipv4
                  safi: multicast
                  send_community:
                    set: True

# Task output
# -------------
#  before: {}
#
#  commands:
#  - router bgp 65536
#  - neighbor 192.0.2.32
#  - address-family ipv4 unicast
#  - maximum-prefix 20 75
#  - weight 100
#  - prefix-list rmap1 in
#  - prefix-list rmap2 out
#  - address-family ipv6 unicast
#  - neighbor 192.0.2.33
#  - address-family ipv4 multicast
#  - inherit peer-policy BasePolicy 200
#  - vrf site-1
#  - neighbor 203.0.113.1
#  - address-family ipv4 unicast
#  - suppress-inactive
#  - next-hop-self
#  - neighbor 203.0.113.2
#  - address-family ipv6 unicast
#  - address-family ipv4 multicast
#  - send-community
#
#  after:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#            maximum_prefix:
#              max_prefix_limit: 20
#              generate_warning_threshold: 75
#            weight: 100
#            prefix_list:
#              inbound: rmap1
#              outbound: rmap2
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast

# After state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       maximum-prefix 20 75
#       weight 100
#       prefix-list rmap1 in
#       prefix-list rmap2 out
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast
#

# Using replaced

# Before state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       maximum-prefix 20 75
#       weight 100
#       prefix-list rmap1 in
#       prefix-list rmap2 out
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast
#

- name: Replace specified neighbor AFs with given configuration
  cisco.nxos.nxos_bgp_neighbor_address_family: &replaced
    config:
      as_number: 65536
      neighbors:
        - neighbor_address: 192.0.2.32
          address_family:
            - afi: ipv4
              safi: unicast
              weight: 110
            - afi: ipv6
              safi: unicast
        - neighbor_address: 192.0.2.33
          address_family:
            - afi: ipv4
              safi: multicast
              inherit:
                template: BasePolicy
                sequence: 200
      vrfs:
        - vrf: site-1
          neighbors:
            - neighbor_address: 203.0.113.1
              address_family:
                - afi: ipv4
                  safi: unicast
            - neighbor_address: 203.0.113.2
              address_family:
                - afi: ipv6
                  safi: unicast
                - afi: ipv4
                  safi: multicast
                  send_community:
                    set: True
    state: replaced

# Task output
# -------------
#  before:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#            maximum_prefix:
#              max_prefix_limit: 20
#              generate_warning_threshold: 75
#            weight: 100
#            prefix_list:
#              inbound: rmap1
#              outbound: rmap2
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast
#
#  commands:
#    - router bgp 65536
#    - neighbor 192.0.2.32
#    - address-family ipv4 unicast
#    - no maximum-prefix 20 75
#    - weight 110
#    - no prefix-list rmap1 in
#    - no prefix-list rmap2 out
#    - vrf site-1
#    - neighbor 203.0.113.1
#    - address-family ipv4 unicast
#    - no suppress-inactive
#    - no next-hop-self
#
#  after:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#            weight: 110
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast

# After state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       weight 110
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast
#

# Using overridden

# Before state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       maximum-prefix 20 75
#       weight 100
#       prefix-list rmap1 in
#       prefix-list rmap2 out
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast
#

- name: Override all BGP AF configuration with provided configuration
  cisco.nxos.nxos_bgp_neighbor_address_family:
    config:
      as_number: 65536
      neighbors:
        - neighbor_address: 192.0.2.32
          address_family:
            - afi: ipv4
              safi: unicast
      vrfs:
        - vrf: site-1
          neighbors:
            - neighbor_address: 203.0.113.1
              address_family:
                - afi: ipv4
                  safi: unicast
                  suppress_inactive: True
                  next_hop_self:
                    set: True
    state: overridden

# Task output
# -------------
#  before:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#            maximum_prefix:
#              max_prefix_limit: 20
#              generate_warning_threshold: 75
#            weight: 100
#            prefix_list:
#              inbound: rmap1
#              outbound: rmap2
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast
#
#  commands:
#    - router bgp 65536
#    - neighbor 192.0.2.32
#    - address-family ipv4 unicast
#    - no maximum-prefix 20 75
#    - no weight 100
#    - no prefix-list rmap1 in
#    - no prefix-list rmap2 out
#    - no address-family ipv6 unicast
#    - neighbor 192.0.2.33
#    - no address-family ipv4 multicast
#    - vrf site-1
#    - neighbor 203.0.113.2
#    - no address-family ipv4 multicast
#    - no address-family ipv6 unicast
#
#  after:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: True
#                next_hop_self:
#                  set: True

# After state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self

# Using deleted to remove specified neighbor AFs

# Before state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       maximum-prefix 20 75
#       weight 100
#       prefix-list rmap1 in
#       prefix-list rmap2 out
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast
#

- name: Delete BGP configs handled by this module
  cisco.nxos.nxos_bgp_neighbor_address_family:
    config:
      as_number: 65536
      neighbors:
        - neighbor_address: 192.0.2.32
          address_family:
            - afi: ipv4
              safi: unicast
      vrfs:
        - vrf: site-1
          neighbors:
            - neighbor_address: 203.0.113.2
              address_family:
                - afi: ipv6
                  safi: unicast
    state: deleted

# Task output
# -------------
#  before:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#            maximum_prefix:
#              max_prefix_limit: 20
#              generate_warning_threshold: 75
#            weight: 100
#            prefix_list:
#              inbound: rmap1
#              outbound: rmap2
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast
#
#  commands:
#    - router bgp 65536
#    - neighbor 192.0.2.32
#    - no address-family ipv4 unicast
#    - vrf site-1
#    - neighbor 203.0.113.2
#    - no address-family ipv6 unicast
#
#  after:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#
# After state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#

# Using deleted to remove all neighbor AFs

# Before state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       maximum-prefix 20 75
#       weight 100
#       prefix-list rmap1 in
#       prefix-list rmap2 out
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast
#

- name: Delete all BGP neighbor AF configs handled by this module
  cisco.nxos.nxos_bgp_neighbor_address_family:
    state: deleted

# Task output
# -------------
#  before:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#            safi: unicast
#            maximum_prefix:
#              max_prefix_limit: 20
#              generate_warning_threshold: 75
#            weight: 100
#            prefix_list:
#              inbound: rmap1
#              outbound: rmap2
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast
#
#  commands:
#    - router bgp 65536
#    - neighbor 192.0.2.32
#    - no address-family ipv4 unicast
#    - no address-family ipv6 unicast
#    - neighbor 192.0.2.33
#    - no address-family ipv4 multicast
#    - vrf site-1
#    - neighbor 203.0.113.1
#    - no address-family ipv4 unicast
#    - neighbor 203.0.113.2
#    - no address-family ipv6 unicast
#    - no address-family ipv4 multicast
#
#  after:
#    as_number: "65536"
#
# After state:
# -------------
# Nexus9000v# show running-config | section "^router bgp"
# router bgp 65536
#   neighbor 192.0.2.32
#   neighbor 192.0.2.33
#   vrf site-1
#     neighbor 203.0.113.1
#     neighbor 203.0.113.2
#

# Using rendered

- name: Render platform specific configuration lines with state rendered (without connecting to the device)
  cisco.nxos.nxos_bgp_neighbor_address_family:
    config:
      as_number: 65536
      neighbors:
        - neighbor_address: 192.0.2.32
          address_family:
            - afi: ipv4
              safi: unicast
              maximum_prefix:
                max_prefix_limit: 20
                generate_warning_threshold: 75
              weight: 100
              prefix_list:
                inbound: rmap1
                outbound: rmap2
            - afi: ipv6
              safi: unicast
        - neighbor_address: 192.0.2.33
          address_family:
            - afi: ipv4
              safi: multicast
              inherit:
                template: BasePolicy
                sequence: 200
      vrfs:
        - vrf: site-1
          neighbors:
            - neighbor_address: 203.0.113.1
              address_family:
                - afi: ipv4
                  safi: unicast
                  suppress_inactive: True
                  next_hop_self:
                    set: True
            - neighbor_address: 203.0.113.2
              address_family:
                - afi: ipv6
                  safi: unicast
                - afi: ipv4
                  safi: multicast
                  send_community:
                    set: True
    state: rendered

# Task Output (redacted)
# -----------------------
#  rendered:
#    - router bgp 65536
#    - neighbor 192.0.2.32
#    - address-family ipv4 unicast
#    - maximum-prefix 20 75
#    - weight 100
#    - prefix-list rmap1 in
#    - prefix-list rmap2 out
#    - address-family ipv6 unicast
#    - neighbor 192.0.2.33
#    - address-family ipv4 multicast
#    - inherit peer-policy BasePolicy 200
#    - vrf site-1
#    - neighbor 203.0.113.1
#    - address-family ipv4 unicast
#    - suppress-inactive
#    - next-hop-self
#    - neighbor 203.0.113.2
#    - address-family ipv6 unicast
#    - address-family ipv4 multicast
#    - send-community

# Using parsed

# parsed.cfg
# ------------
# router bgp 65536
#   neighbor 192.0.2.32
#     address-family ipv4 unicast
#       maximum-prefix 20 75
#       weight 100
#       prefix-list rmap1 in
#       prefix-list rmap2 out
#     address-family ipv6 unicast
#   neighbor 192.0.2.33
#     address-family ipv4 multicast
#       inherit peer-policy BasePolicy 200
#   vrf site-1
#     neighbor 203.0.113.1
#       address-family ipv4 unicast
#         suppress-inactive
#         next-hop-self
#     neighbor 203.0.113.2
#       address-family ipv4 multicast
#         send-community
#       address-family ipv6 unicast

- name: Parse externally provided BGP neighbor AF config
  register: result
  cisco.nxos.nxos_bgp_neighbor_address_family:
    running_config: "{{ lookup('file', 'parsed.cfg') }}"
    state: parsed

# Task output (redacted)
# -----------------------
#  parsed:
#    as_number: "65536"
#    neighbors:
#      - neighbor_address: 192.0.2.32
#        address_family:
#          - afi: ipv4
#           safi: unicast
#           maximum_prefix:
#              max_prefix_limit: 20
#              generate_warning_threshold: 75
#           weight: 100
#            prefix_list:
#              inbound: rmap1
#              outbound: rmap2
#          - afi: ipv6
#            safi: unicast
#      - neighbor_address: 192.0.2.33
#        address_family:
#          - afi: ipv4
#            safi: multicast
#            inherit:
#              template: BasePolicy
#              sequence: 200
#    vrfs:
#      - vrf: site-1
#        neighbors:
#          - neighbor_address: 203.0.113.1
#            address_family:
#              - afi: ipv4
#                safi: unicast
#                suppress_inactive: true
#                next_hop_self:
#                  set: true
#          - neighbor_address: 203.0.113.2
#            address_family:
#              - afi: ipv4
#                safi: multicast
#                send_community:
#                  set: True
#              - afi: ipv6
#                safi: unicast

Authors

  • Nilashish Chakraborty (@NilashishC)