dellemc.enterprise_sonic.sonic_bgp_af (2.4.0) — module

Manage global BGP address-family and its parameters

| "added in version" 1.0.0 of dellemc.enterprise_sonic"

Authors: Niraimadaiselvam M (@niraimadaiselvamm)

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install dellemc.enterprise_sonic:==2.4.0


Add to requirements.yml

  collections:
    - name: dellemc.enterprise_sonic
      version: 2.4.0

Description

This module provides configuration management of global BGP_AF parameters on devices running Enterprise SONiC.

bgp_as and vrf_name must be created in advance on the device.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Using deleted
#
# Before state:
# -------------
#
#do show running-configuration bgp
#!
#router bgp 51
# router-id 111.2.2.41
# timers 60 180
# !
# address-family ipv4 unicast
#  maximum-paths 1
#  maximum-paths ibgp 1
#  dampening
# !
# address-family ipv6 unicast
#  redistribute connected route-map bb metric 21
#  redistribute ospf route-map aa metric 27
#  redistribute static route-map bb metric 26
#  maximum-paths 4
#  maximum-paths ibgp 5
# !
# address-family l2vpn evpn
#  advertise-svi-ip
#  advertise ipv6 unicast route-map aa
#  rd 3.3.3.3:33
#  route-target import 22:22
#  route-target export 33:33
#  advertise-pip ip 1.1.1.1 peer-ip 2.2.2.2
#  !
#  vni 1
#   advertise-default-gw
#   advertise-svi-ip
#   rd 5.5.5.5:55
#   route-target import 88:88
#   route-target export 77:77
#
- name: Delete BGP Address family configuration from the device
  dellemc.enterprise_sonic.sonic_bgp_af:
     config:
       - bgp_as: 51
         address_family:
           afis:
             - afi: l2vpn
               safi: evpn
               advertise_pip: True
               advertise_pip_ip: "1.1.1.1"
               advertise_pip_peer_ip: "2.2.2.2"
               advertise_svi_ip: True
               advertise_all_vni: False
               advertise_default_gw: False
               route_advertise_list:
                 - advertise_afi: ipv6
                   route_map: aa
               rd: "3.3.3.3:33"
               rt_in:
                 - "22:22"
               rt_out:
                 - "33:33"
               vnis:
                 - vni_number: 1
             - afi: ipv4
               safi: unicast
             - afi: ipv6
               safi: unicast
               max_path:
                 ebgp: 2
                 ibgp: 5
               redistribute:
                 - metric: "21"
                   protocol: connected
                   route_map: bb
                 - metric: "27"
                   protocol: ospf
                   route_map: aa
                 - metric: "26"
                   protocol: static
                   route_map: bb
     state: deleted
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# After state:
# ------------
#
#do show running-configuration bgp
#!
#router bgp 51
# router-id 111.2.2.41
# timers 60 180
# !
# address-family ipv6 unicast
# !
# address-family l2vpn evpn
#
# Using deleted
#
# Before state:
# -------------
#
#do show running-configuration bgp
#!
#router bgp 51
# router-id 111.2.2.41
# timers 60 180
# !
# address-family ipv6 unicast
# !
# address-family l2vpn evpn
#
- name: Delete All BGP address family configurations
  dellemc.enterprise_sonic.sonic_bgp_af:
     config:
     state: deleted
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

# After state:
# ------------
#
#do show running-configuration bgp
#!
#router bgp 51
# router-id 111.2.2.41
# timers 60 180
#
# Using merged
#
# Before state:
# -------------
#
#do show running-configuration bgp
#!
#router bgp 51
# router-id 111.2.2.41
# timers 60 180
# !
# address-family l2vpn evpn
#
- name: Merge provided BGP address family configuration on the device.
  dellemc.enterprise_sonic.sonic_bgp_af:
     config:
       - bgp_as: 51
         address_family:
           afis:
             - afi: l2vpn
               safi: evpn
               advertise_pip: True
               advertise_pip_ip: "3.3.3.3"
               advertise_pip_peer_ip: "4.4.4.4"
               advertise_svi_ip: True
               advertise_all_vni: False
               advertise_default_gw: False
               route_advertise_list:
                 - advertise_afi: ipv4
                   route_map: bb
               rd: "1.1.1.1:11"
               rt_in:
                 - "12:12"
               rt_out:
                 - "13:13"
               vnis:
                 - vni_number: 1
                   advertise_default_gw: True
                   advertise_svi_ip: True
                   rd: "5.5.5.5:55"
                   rt_in:
                     - "88:88"
                   rt_out:
                     - "77:77"
             - afi: ipv4
               safi: unicast
               network:
                 - 2.2.2.2/16
                 - 192.168.10.1/32
               dampening: True
             - afi: ipv6
               safi: unicast
               max_path:
                 ebgp: 4
                 ibgp: 5
               redistribute:
                 - metric: "21"
                   protocol: connected
                   route_map: bb
                 - metric: "27"
                   protocol: ospf
                   route_map: aa
                 - metric: "26"
                   protocol: static
                   route_map: bb
     state: merged
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# After state:
# ------------
#
#do show running-configuration bgp
#!
#router bgp 51
# router-id 111.2.2.41
# timers 60 180
# !
# address-family ipv4 unicast
#  network 2.2.2.2/16
#  network 192.168.10.1/32
#  dampening
# !
# address-family ipv6 unicast
#  redistribute connected route-map bb metric 21
#  redistribute ospf route-map aa metric 27
#  redistribute static route-map bb metric 26
#  maximum-paths 4
#  maximum-paths ibgp 5
# !
# address-family l2vpn evpn
#  advertise-svi-ip
#  advertise ipv4 unicast route-map bb
#  rd 1.1.1.1:11
#  route-target import 12:12
#  route-target import 13:13
#  advertise-pip ip 3.3.3.3 peer-ip 4.4.4.4
#  !
#  vni 1
#   advertise-default-gw
#   advertise-svi-ip
#   rd 5.5.5.5:55
#   route-target import 88:88
#   route-target export 77:77
#


# Using replaced
#
# Before state:
# -------------
#
#do show running-configuration bgp
#!
#router bgp 52 vrf VrfReg1
# log-neighbor-changes
# timers 60 180
# !
# address-family ipv4 unicast
#  maximum-paths 1
#  maximum-paths ibgp 1
#  network 3.3.3.3/16
#  dampening
#!
#router bgp 51
# router-id 111.2.2.41
# log-neighbor-changes
# timers 60 180
# !
# address-family ipv4 unicast
#  redistribute connected route-map bb metric 21
#  redistribute ospf route-map bb metric 27
#  maximum-paths 1
#  maximum-paths ibgp 1
#  network 2.2.2.2/16
#  network 192.168.10.1/32
#  dampening
# !
# address-family ipv6 unicast
#  redistribute static route-map aa metric 26
#  maximum-paths 4
#  maximum-paths ibgp 5
# !
# address-family l2vpn evpn
#  advertise-all-vni
#  advertise-svi-ip
#  advertise ipv4 unicast route-map bb
#  rd 1.1.1.1:11
#  route-target import 12:12
#  route-target export 13:13
#  dup-addr-detection
#  advertise-pip ip 3.3.3.3 peer-ip 4.4.4.4
#  !
#  vni 1
#   advertise-default-gw
#   advertise-svi-ip
#   rd 5.5.5.5:55
#   route-target import 88:88
#   route-target export 77:77

- name: Replace device configuration of address families of specified BGP AS with provided configuration.
  dellemc.enterprise_sonic.sonic_bgp_af:
    config:
      - bgp_as: 51
        address_family:
          afis:
            - afi: l2vpn
              safi: evpn
              advertise_pip: True
              advertise_pip_ip: "3.3.3.3"
              advertise_pip_peer_ip: "4.4.4.4"
              advertise_svi_ip: True
              advertise_all_vni: False
              advertise_default_gw: False
              route_advertise_list:
                - advertise_afi: ipv4
                  route_map: bb
              rd: "1.1.1.1:11"
              rt_in:
                - "22:22"
              rt_out:
                - "13:13"
              vnis:
                - vni_number: 5
                  advertise_default_gw: True
                  advertise_svi_ip: True
                  rd: "10.10.10.10:55"
                  rt_in:
                    - "88:88"
                  rt_out:
                    - "77:77"
            - afi: ipv4
              safi: unicast
              network:
                - 2.2.2.2/16
                - 192.168.10.1/32
              dampening: True
              redistribute:
                - protocol: connected
                - protocol: ospf
                  metric: 30
    state: replaced
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# After state:
# ------------
#
#do show running-configuration bgp
#!
#router bgp 52 vrf VrfReg1
# log-neighbor-changes
# timers 60 180
# !
# address-family ipv4 unicast
#  maximum-paths 1
#  maximum-paths ibgp 1
#  network 3.3.3.3/16
#  dampening
#!
#router bgp 51
# router-id 111.2.2.41
# log-neighbor-changes
# timers 60 180
# !
# address-family ipv4 unicast
#  redistribute connected
#  redistribute ospf metric 30
#  maximum-paths 1
#  maximum-paths ibgp 1
#  network 2.2.2.2/16
#  network 192.168.10.1/32
#  dampening
# !
# address-family l2vpn evpn
#  advertise-all-vni
#  advertise-svi-ip
#  advertise ipv4 unicast route-map bb
#  rd 1.1.1.1:11
#  route-target import 22:22
#  route-target export 13:13
#  dup-addr-detection
#  advertise-pip ip 3.3.3.3 peer-ip 4.4.4.4
#  !
#  vni 5
#   advertise-default-gw
#   advertise-svi-ip
#   rd 10.10.10.10:55
#   route-target import 88:88
#   route-target export 77:77


# Using overridden
#
# Before state:
# -------------
#
#do show running-configuration bgp
#!
#router bgp 52 vrf VrfReg1
# log-neighbor-changes
# timers 60 180
# !
# address-family ipv4 unicast
#  maximum-paths 1
#  maximum-paths ibgp 1
#  network 3.3.3.3/16
#  dampening
#!
#router bgp 51
# router-id 111.2.2.41
# log-neighbor-changes
# timers 60 180
# !
# address-family ipv4 unicast
#  redistribute connected route-map bb metric 21
#  redistribute ospf route-map bb metric 27
#  maximum-paths 1
#  maximum-paths ibgp 1
#  network 2.2.2.2/16
#  network 192.168.10.1/32
#  dampening
# !
# address-family ipv6 unicast
#  redistribute static route-map aa metric 26
#  maximum-paths 4
#  maximum-paths ibgp 5
# !
# address-family l2vpn evpn
#  advertise-all-vni
#  advertise-svi-ip
#  advertise ipv4 unicast route-map bb
#  rd 1.1.1.1:11
#  route-target import 12:12
#  route-target export 13:13
#  dup-addr-detection
#  advertise-pip ip 3.3.3.3 peer-ip 4.4.4.4
#  !
#  vni 1
#   advertise-default-gw
#   advertise-svi-ip
#   rd 5.5.5.5:55
#   route-target import 88:88
#   route-target export 77:77

- name: Override device configuration of BGP address families with provided configuration.
  dellemc.enterprise_sonic.sonic_bgp_af:
    config:
      - bgp_as: 51
        address_family:
          afis:
            - afi: l2vpn
              safi: evpn
              advertise_pip: True
              advertise_pip_ip: "3.3.3.3"
              advertise_pip_peer_ip: "4.4.4.4"
              advertise_svi_ip: True
              advertise_all_vni: False
              advertise_default_gw: False
              route_advertise_list:
                - advertise_afi: ipv4
                  route_map: bb
              rd: "1.1.1.1:11"
              rt_in:
                - "22:22"
              rt_out:
                - "13:13"
              vnis:
                - vni_number: 5
                  advertise_default_gw: True
                  advertise_svi_ip: True
                  rd: "10.10.10.10:55"
                  rt_in:
                    - "88:88"
                  rt_out:
                    - "77:77"
            - afi: ipv4
              safi: unicast
              network:
                - 2.2.2.2/16
                - 192.168.10.1/32
              dampening: True
              redistribute:
                - protocol: connected
                - protocol: ospf
                  metric: 30
    state: overridden

Inputs

    
state:
    choices:
    - merged
    - deleted
    - overridden
    - replaced
    default: merged
    description:
    - Specifies the operation to be performed on the BGP_AF process configured on the
      device.
    - In case of merged, the input configuration is merged with the existing BGP_AF configuration
      on the device.
    - In case of deleted, the existing BGP_AF configuration is removed from the device.
    - In case of replaced, the existing BGP_AF of specified BGP AS will be replaced with
      provided configuration.
    - In case of overridden, the existing BGP_AF configuration will be overridden with
      the provided configuration.
    type: str

config:
    description:
    - Specifies the BGP_AF related configuration.
    elements: dict
    suboptions:
      address_family:
        description:
        - Specifies BGP address family related configurations.
        suboptions:
          afis:
            description:
            - List of address families, such as ipv4, ipv6, and l2vpn.
            - afi and safi are required together.
            elements: dict
            suboptions:
              advertise_all_vni:
                description:
                - Specifies the advertise all vni flag.
                type: bool
              advertise_default_gw:
                description:
                - Specifies the advertise default gateway flag.
                type: bool
              advertise_pip:
                description:
                - Enables advertise PIP
                type: bool
              advertise_pip_ip:
                description:
                - PIP IPv4 address
                type: str
              advertise_pip_peer_ip:
                description:
                - PIP peer IPv4 address
                type: str
              advertise_svi_ip:
                description:
                - Enables advertise SVI MACIP routes
                type: bool
              afi:
                choices:
                - ipv4
                - ipv6
                - l2vpn
                description:
                - Type of address family to configure.
                required: true
                type: str
              dampening:
                description:
                - Enable route flap dampening if set to true
                type: bool
              max_path:
                description:
                - Specifies the maximum paths of ibgp and ebgp count.
                suboptions:
                  ebgp:
                    description:
                    - Specifies the count of the ebgp multipaths count.
                    type: int
                  ibgp:
                    description:
                    - Specifies the count of the ibgp multipaths count.
                    type: int
                type: dict
              network:
                description:
                - Enable routing on an IP network for each prefix provided in the network
                elements: str
                type: list
              rd:
                description:
                - Specifies the route distiguisher to be used by the VRF instance.
                type: str
              redistribute:
                description:
                - Specifies the redistribute information from another routing protocol.
                elements: dict
                suboptions:
                  metric:
                    description:
                    - Specifies the metric for redistributed routes.
                    type: str
                  protocol:
                    choices:
                    - ospf
                    - static
                    - connected
                    description:
                    - Specifies the protocol for configuring redistribute information.
                    required: true
                    type: str
                  route_map:
                    description:
                    - Specifies the route map reference.
                    type: str
                type: list
              route_advertise_list:
                description:
                - List of advertise routes
                elements: dict
                suboptions:
                  advertise_afi:
                    choices:
                    - ipv4
                    - ipv6
                    description:
                    - Specifies the address family
                    required: true
                    type: str
                  route_map:
                    description:
                    - Specifies the route-map reference
                    type: str
                type: list
              rt_in:
                description:
                - Route-targets to be imported.
                elements: str
                type: list
              rt_out:
                description:
                - Route-targets to be exported.
                elements: str
                type: list
              safi:
                choices:
                - unicast
                - evpn
                default: unicast
                description:
                - Specifies the type of communication for the address family.
                type: str
              vnis:
                description:
                - VNI configuration for the EVPN.
                elements: dict
                suboptions:
                  advertise_default_gw:
                    description:
                    - Specifies the advertise default gateway flag.
                    type: bool
                  advertise_svi_ip:
                    description:
                    - Enables advertise SVI MACIP routes
                    type: bool
                  rd:
                    description:
                    - Specifies the route distiguisher to be used by the VRF instance.
                    type: str
                  rt_in:
                    description:
                    - Route-targets to be imported.
                    elements: str
                    type: list
                  rt_out:
                    description:
                    - Route-targets to be exported.
                    elements: str
                    type: list
                  vni_number:
                    description:
                    - Specifies the VNI number.
                    required: true
                    type: int
                type: list
            type: list
        type: dict
      bgp_as:
        description:
        - Specifies the BGP autonomous system (AS) number which is already configured
          on the device.
        required: true
        type: str
      vrf_name:
        default: default
        description:
        - Specifies the VRF name which is already configured on the device.
        type: str
    type: list

Outputs

after:
  description: The resulting configuration model invocation.
  returned: when changed
  sample: 'The configuration returned always in the same format of the parameters
    above.

    '
  type: list
before:
  description: The configuration prior to the model invocation.
  returned: always
  sample: 'The configuration returned is always in the same format of the parameters
    above.

    '
  type: list
commands:
  description: The set of commands pushed to the remote device.
  returned: always
  sample:
  - command 1
  - command 2
  - command 3
  type: list