junipernetworks.junos.junos_bgp_global (8.0.0) — module

Manages BGP Global configuration on devices running Juniper JUNOS.

| "added in version" 1.3.0 of junipernetworks.junos"

Authors: Rohit Thakur (@rohitthakur2590)

preview | supported by network

Install collection

Install with ansible-galaxy collection install junipernetworks.junos:==8.0.0


Add to requirements.yml

  collections:
    - name: junipernetworks.junos
      version: 8.0.0

Description

This module manages global bgp configuration on devices running Juniper JUNOS.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Using merged
#
# Before state:
# -------------
#
# vsrx# show bgp summary
# BGP is not running

# vsrx# show routing-options autonomous-system

- name: Merge provided bgp config with device configuration
  junipernetworks.junos.junos_bgp_global:
    config:
      as_number: "65534"
      loops: 3
      asdot_notation: true
      accept_remote_nexthop: true
      add_path_display_ipv4_address: true
      advertise_from_main_vpn_tables: true
      advertise_inactive: true
      authentication_algorithm: "md5"
      bgp_error_tolerance:
        malformed_route_limit: 20000000
      bmp:
        monitor: true
      damping: true
      description: "This is configured with Junos_bgp resource module"
      egress_te_sid_stats: true
      hold_time: 5
      holddown_all_stale_labels: true
      include_mp_next_hop: true
      log_updown: true
      no_advertise_peer_as: true
      no_aggregator_id: true
      no_client_reflect: true
      out_delay: 10
      precision_timers: true
      preference: 2
    state: merged
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------
# before: {}
#
# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:accept-remote-nexthop/>
#   <nc:add-path-display-ipv4-address/><nc:advertise-from-main-vpn-tables/><nc:advertise->
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#   <nc:autonomous-system>65534<nc:loops>3</nc:loops><nc:asdot-notation/></nc:autonomous-system></nc:routing-options>
#
# after:
#   accept_remote_nexthop: true
#   add_path_display_ipv4_address: true
#   advertise_from_main_vpn_tables: true
#   advertise_inactive: true
#   as_number: '65534'
#   asdot_notation: true
#   authentication_algorithm: md5
#   bgp_error_tolerance:
#     malformed_route_limit: 20000000
#   bmp:
#     monitor: true
#   damping: true
#   description: This is configured with Junos_bgp resource module
#   egress_te_sid_stats: true
#   hold_time: 5
#   holddown_all_stale_labels: true
#   include_mp_next_hop: true
#   log_updown: true
#   loops: 3
#   no_advertise_peer_as: true
#   no_aggregator_id: true
#   no_client_reflect: true
#   out_delay: 10
#   precision_timers: true
#   preference: '2'

# After state:
# ------------
#
# vsrx# show routing-options autonomous-system
# 65534 loops 3 asdot-notation;

# vsrx# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

# Using replaced
#
# Before state:
# -------------
#
# vsrx# show routing-options autonomous-system
# [edit]
# vsrx# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

- name: Replace running config with provided config
  junipernetworks.junos.junos_bgp_global:
    config:
      advertise_inactive: true
      authentication_algorithm: "md5"
      bfd_liveness_detection:
        minimum_receive_interval: 8
        multiplier: 30
        no_adaptation: true
        transmit_interval:
          minimum_interval: 4
        version: "automatic"
      bgp_error_tolerance:
        malformed_route_limit: 40000000
      description: "Replace running bgp config"
      egress_te_sid_stats: true
      hold_time: 5
      out_delay: 10
      preference: "2"
    state: replaced
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------
#
# before:
#   accept_remote_nexthop: true
#   add_path_display_ipv4_address: true
#   advertise_from_main_vpn_tables: true
#   advertise_inactive: true
#   as_number: '65534'
#   asdot_notation: true
#   authentication_algorithm: md5
#   bgp_error_tolerance:
#     malformed_route_limit: 20000000
#   bmp:
#     monitor: true
#   damping: true
#   description: This is configured with Junos_bgp resource module
#   egress_te_sid_stats: true
#   hold_time: 5
#   holddown_all_stale_labels: true
#   include_mp_next_hop: true
#   log_updown: true
#   loops: 3
#   no_advertise_peer_as: true
#   no_aggregator_id: true
#   no_client_reflect: true
#   out_delay: 10
#   precision_timers: true
#   preference: '2'

# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp>
#   <nc:accept-remote-nexthop delete="delete"/><nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t
#   delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/>
#   <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t
#   delete="delete"/></nc:bgp><nc:bgp><nc:advertise-inactive/><nc:egress-te-sid-stats/>
#   <nc:authentication-algorithm>md5</nc:authentication-algorithm><nc:description>Replace running bgp conf>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:autonomous-system delete="delete"/></nc:routing-options>

#
# after:
#   advertise_inactive: true
#   authentication_algorithm: md5
#   bfd_liveness_detection:
#     minimum_receive_interval: 8
#     multiplier: 30
#     no_adaptation: true
#     transmit_interval:
#       minimum_interval: 4
#     version: automatic
#   bgp_error_tolerance:
#     malformed_route_limit: 40000000
#   description: Replace running bgp config
#   egress_te_sid_stats: true
#   hold_time: 5
#   out_delay: 10
#   preference: '2'

# After state:
# ------------
#
# varx# show protocols bgp
# description "Replace running bgp config";
# preference 2;
# hold-time 5;
# advertise-inactive;
# out-delay 10;
# bgp-error-tolerance {
#     malformed-route-limit 40000000;
# }
# authentication-algorithm md5;
# bfd-liveness-detection {
#     version automatic;
#     minimum-receive-interval 8;
#     multiplier 30;
#     no-adaptation;
#     transmit-interval {
#         minimum-interval 4;
#     }
# }
# egress-te-sid-stats;

# vsrx# show routing-options autonomous-system

# Using overridden
# "(NOTE: This will work same as replaced operation)"
#
# Before state:
# -------------
#
# vsrx# show routing-options autonomous-system
# [edit]
# vsrx# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

- name: Override running config with provided config
  junipernetworks.junos.junos_bgp_global:
    config:
      advertise_inactive: true
      authentication_algorithm: "md5"
      bfd_liveness_detection:
        minimum_receive_interval: 8
        multiplier: 30
        no_adaptation: true
        transmit_interval:
          minimum_interval: 4
        version: "automatic"
      bgp_error_tolerance:
        malformed_route_limit: 40000000
      description: "Replace running bgp config"
      egress_te_sid_stats: true
      hold_time: 5
      out_delay: 10
      preference: "2"
    state: overridden
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------
#
# before:
#   accept_remote_nexthop: true
#   add_path_display_ipv4_address: true
#   advertise_from_main_vpn_tables: true
#   advertise_inactive: true
#   as_number: '65534'
#   asdot_notation: true
#   authentication_algorithm: md5
#   bgp_error_tolerance:
#     malformed_route_limit: 20000000
#   bmp:
#     monitor: true
#   damping: true
#   description: This is configured with Junos_bgp resource module
#   egress_te_sid_stats: true
#   hold_time: 5
#   holddown_all_stale_labels: true
#   include_mp_next_hop: true
#   log_updown: true
#   loops: 3
#   no_advertise_peer_as: true
#   no_aggregator_id: true
#   no_client_reflect: true
#   out_delay: 10
#   precision_timers: true
#   preference: '2'

# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp>
#   <nc:accept-remote-nexthop delete="delete"/><nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t
#   delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/>
#   <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t
#   delete="delete"/></nc:bgp><nc:bgp><nc:advertise-inactive/><nc:egress-te-sid-stats/>
#   <nc:authentication-algorithm>md5</nc:authentication-algorithm><nc:description>Replace running bgp conf>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:autonomous-system delete="delete"/></nc:routing-options>

#
# after:
#   advertise_inactive: true
#   authentication_algorithm: md5
#   bfd_liveness_detection:
#     minimum_receive_interval: 8
#     multiplier: 30
#     no_adaptation: true
#     transmit_interval:
#       minimum_interval: 4
#     version: automatic
#   bgp_error_tolerance:
#     malformed_route_limit: 40000000
#   description: Replace running bgp config
#   egress_te_sid_stats: true
#   hold_time: 5
#   out_delay: 10
#   preference: '2'

# After state:
# ------------
#
# varx# show protocols bgp
# description "Replace running bgp config";
# preference 2;
# hold-time 5;
# advertise-inactive;
# out-delay 10;
# bgp-error-tolerance {
#     malformed-route-limit 40000000;
# }
# authentication-algorithm md5;
# bfd-liveness-detection {
#     version automatic;
#     minimum-receive-interval 8;
#     multiplier 30;
#     no-adaptation;
#     transmit-interval {
#         minimum-interval 4;
#     }
# }
# egress-te-sid-stats;

# vsrx# show routing-options autonomous-system

# Using deleted
# "(NOTE: This WILL delete the bgp global attributes)"
# Before state
# ------------
#
# vsrx# show protocols bgp
# description "Replace running bgp config";
# preference 2;
# hold-time 5;
# advertise-inactive;
# out-delay 10;
# bgp-error-tolerance {
#     malformed-route-limit 40000000;
# }
# authentication-algorithm md5;
# bfd-liveness-detection {
#     version automatic;
#     minimum-receive-interval 8;
#     multiplier 30;
#     no-adaptation;
#     transmit-interval {
#         minimum-interval 4;
#     }
# }
# egress-te-sid-stats;

- name: Delete bgp section of running config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: deleted
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------

# before:
#   advertise_inactive: true
#   authentication_algorithm: md5
#   bfd_liveness_detection:
#     minimum_receive_interval: 8
#     multiplier: 30
#     no_adaptation: true
#     transmit_interval:
#       minimum_interval: 4
#     version: automatic
#   bgp_error_tolerance:
#     malformed_route_limit: 40000000
#   description: Replace running bgp config
#   egress_te_sid_stats: true
#   hold_time: 5
#   out_delay: 10
#   preference: '2'

# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp><nc:accept-remote-nexthop delete="delete"/>
#   <nc:add-path-display-ipv4-address delete="delete"/><nc:advertise-bgp-t
#   delete="delete"/><nc:include-mp-next-hop delete="delete"/><nc:ipsec-sa delete="delete"/><nc:keep delete="delete"/>
#   <nc:local-address delete="delete"/><nc:local-interface delete="delete"/t
#   delete="delete"/></nc:bgp></nc:protocols>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>

# after: {}

# After state:
# ------------
# vsrx# show protocols bgp

# vsrx# show routing-options autonomous-system

# Using gathered
#
# Before state:
# -------------
#
# vsrx# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

- name: Gather BGP facts from running config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: gathered
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------

# gathered:
#   accept_remote_nexthop: true
#   add_path_display_ipv4_address: true
#   advertise_from_main_vpn_tables: true
#   advertise_inactive: true
#   as_number: '65534'
#   asdot_notation: true
#   authentication_algorithm: md5
#   bgp_error_tolerance:
#     malformed_route_limit: 20000000
#   bmp:
#     monitor: true
#   damping: true
#   description: This is configured with Junos_bgp resource module
#   egress_te_sid_stats: true
#   hold_time: 5
#   holddown_all_stale_labels: true
#   include_mp_next_hop: true
#   log_updown: true
#   loops: 3
#   no_advertise_peer_as: true
#   no_aggregator_id: true
#   no_client_reflect: true
#   out_delay: 10
#   precision_timers: true
#   preference: '2'

# Using purged
# "(NOTE: This WILL delete the configured global BGP, and BGP address family config)"

# Before state:
# -------------
#
# vsrx# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

- name: Purge BGP config from running config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: purged
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------

# before:
#   accept_remote_nexthop: true
#   add_path_display_ipv4_address: true
#   advertise_from_main_vpn_tables: true
#   advertise_inactive: true
#   as_number: '65534'
#   asdot_notation: true
#   authentication_algorithm: md5
#   bgp_error_tolerance:
#     malformed_route_limit: 20000000
#   bmp:
#     monitor: true
#   damping: true
#   description: This is configured with Junos_bgp resource module
#   egress_te_sid_stats: true
#   hold_time: 5
#   holddown_all_stale_labels: true
#   include_mp_next_hop: true
#   log_updown: true
#   loops: 3
#   no_advertise_peer_as: true
#   no_aggregator_id: true
#   no_client_reflect: true
#   out_delay: 10
#   precision_timers: true
#   preference: '2'

# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><nc:bgp delete="delete"/></nc:protocols>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#   <nc:autonomous-system delete="delete"/></nc:routing-options>

# after: {}

# After state:
# ------------
# vsrx# show protocols bgp

# vsrx# show routing-options autonomous-system

# Using rendered

- name: Render the commands for provided configuration
  junipernetworks.junos.junos_bgp_global:
    config:
      as_number: "65534"
      loops: 3
      asdot_notation: true
      accept_remote_nexthop: true
      add_path_display_ipv4_address: true
      advertise_from_main_vpn_tables: true
      advertise_inactive: true
      authentication_algorithm: "md5"
      bgp_error_tolerance:
        malformed_route_limit: 20000000
      bmp:
        monitor: true
      damping: true
      description: "This is configured with Junos_bgp resource module"
      egress_te_sid_stats: true
      hold_time: 5
      holddown_all_stale_labels: true
      include_mp_next_hop: true
      log_updown: true
      no_advertise_peer_as: true
      no_aggregator_id: true
      no_client_reflect: true
      out_delay: 10
      precision_timers: true
      preference: 2
    state: rendered
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Task Output:
# ------------

# rendered:
# <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:bgp><nc:accept-remote-nexthop/><nc:add-path-display-ipv4-address/>
# <nc:advertise-from-main-vpn-tables/><nc:ad>

#
# Using parsed
# parsed.cfg
# ------------
# <?xml version="1.0" encoding="UTF-8"?>
# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f">
#    <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC">
#       <version>18.4R1-S2.4</version>
#       <protocols>
#          <bgp>
#             <precision-timers />
#             <advertise-from-main-vpn-tables />
#             <holddown-all-stale-labels />
#             <description>This is configured with Junos_bgp resource module</description>
#             <accept-remote-nexthop />
#             <preference>2</preference>
#             <hold-time>5</hold-time>
#             <advertise-inactive />
#             <no-advertise-peer-as />
#             <no-aggregator-id />
#             <out-delay>10</out-delay>
#             <log-updown />
#             <damping />
#             <bgp-error-tolerance>
#                <malformed-route-limit>20000000</malformed-route-limit>
#             </bgp-error-tolerance>
#             <authentication-algorithm>md5</authentication-algorithm>
#             <remove-private />
#             <no-client-reflect />
#             <include-mp-next-hop />
#             <bmp>
#                <monitor>disable</monitor>
#                <route-monitoring>
#                   <none />
#                </route-monitoring>
#             </bmp>
#             <advertise-bgp-static>
#                <policy>static-to-bgp</policy>
#             </advertise-bgp-static>
#             <add-path-display-ipv4-address />
#             <bfd-liveness-detection>
#                <version>automatic</version>
#                <minimum-receive-interval>4</minimum-receive-interval>
#                <multiplier>10</multiplier>
#                <no-adaptation />
#                <transmit-interval>
#                   <minimum-interval>2</minimum-interval>
#                </transmit-interval>
#                <detection-time>
#                   <threshold>300000</threshold>
#                </detection-time>
#             </bfd-liveness-detection>
#             <egress-te-sid-stats />
#             <group>
#                <name>internal</name>
#                <out-delay>8</out-delay>
#             </group>
#             <group>
#                <name>external</name>
#                <out-delay>9</out-delay>
#             </group>
#             <group>
#                <name>inboun</name>
#                <type>internal</type>
#             </group>
#             <group>
#                <name>ibgp</name>
#                <type>internal</type>
#                <local-address>10.2.2.2</local-address>
#                <export>static-to-bgp</export>
#                <neighbor>
#                   <name>10.1.1.1</name>
#                </neighbor>
#             </group>
#          </bgp>
#          <ospf3>
#             <area>
#                <name>0.0.0.100</name>
#                <stub>
#                   <default-metric>200</default-metric>
#                </stub>
#                <interface>
#                   <name>so-0/0/0.0</name>
#                   <metric>5</metric>
#                   <priority>3</priority>
#                </interface>
#             </area>
#          </ospf3>
#       </protocols>
#       <routing-options>
#          <static>
#             <route>
#                <name>172.16.17.0/24</name>
#                <discard />
#             </route>
#          </static>
#          <router-id>10.200.16.75</router-id>
#          <autonomous-system>
#             <as-number>65432</as-number>
#          </autonomous-system>
#       </routing-options>
#    </configuration>
# </rpc-reply>


- name: Parsed the device configuration to get ansible facts
  junipernetworks.junos.junos_bgp_global:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed

Inputs

    
state:
    choices:
    - purged
    - merged
    - replaced
    - overridden
    - deleted
    - gathered
    - parsed
    - rendered
    default: merged
    description:
    - The state the configuration should be left in.
    - State I(purged) removes all (routing-options autonomous-system, bgp global, bgp
      groups, bgp neighbors, bgp family and bgp group and neighbor family) the BGP configurations
      from the target device. Use caution with this state.
    - State I(deleted) only removes BGP attributes that this modules manages and does
      not negate the BGP process completely. Thereby, preserving address-family related
      configurations under BGP context.
    - Running states I(deleted) and I(replaced) will result in an error if there are address-family
      configuration lines present under a neighbor.Please use the M(junipernetworks.junos.junos_bgp_address_family)
      modules for prior cleanup.
    - Refer to examples for more details.
    type: str

config:
    description: A list of BGP process configuration.
    suboptions:
      accept_remote_nexthop:
        description: Allow import policy to specify a non-directly connected next-hop.
        type: bool
      add_path_display_ipv4_address:
        description: Display add-path path-id in IPv4 address format.
        type: bool
      advertise_bgp_static:
        description: Advertise bgp-static routes.
        suboptions:
          policy:
            description: Specify static route advertisement policy.
            type: str
          set:
            description: Set Advertise bgp-static routes.
            type: bool
        type: dict
      advertise_external:
        description: Advertise best external routes.
        suboptions:
          conditional:
            description: Route matches active route upto med-comparison rule.
            type: bool
          set:
            description: Set Advertise best external routes.
            type: bool
        type: dict
      advertise_from_main_vpn_tables:
        description: Advertise VPN routes from bgp.Xvpn.0 tables in master instance.
        type: bool
      advertise_inactive:
        description: Advertise inactive routes.
        type: bool
      advertise_peer_as:
        description: Advertise routes received from the same autonomous system.
        type: bool
      as_number:
        description: Specify Autonomous system number.
        type: str
      asdot_notation:
        description: Enable AS-Dot notation to display true 4 byte AS numbers.
        type: bool
      authentication_algorithm:
        choices:
        - aes-128-cmac-96
        - hmac-sha-1-96
        - md5
        description: Specify authentication algorithm name.
        type: str
      authentication_key:
        description: Specify MD5 authentication key.
        type: str
      authentication_key_chain:
        description: Specify authentication key chain name.
        type: str
      bfd_liveness_detection:
        description: Bidirectional Forwarding Detection (BFD) options.
        suboptions:
          authentication:
            description: Authentication options.
            suboptions:
              algorithm:
                choices:
                - keyed-md5
                - keyed-sha-1
                - meticulous-keyed-md5
                - meticulous-keyed-sha-1
                - simple-password
                description: Specify algorithm name.
                type: str
              key_chain:
                description: Specify Key chain name.
                type: str
              loose_check:
                description: Verify authentication only if authentication is negotiated.
                type: bool
            type: dict
          detection_time:
            description: Specify Detection-time optionss.
            suboptions:
              threshold:
                description: Specify high detection-time triggering a trap (milliseconds).
                type: int
            type: dict
          holddown_interval:
            description: Specify time to hold the session-UP notification to the client.
            type: int
          minimum_interval:
            description: Specify minimum transmit and receive interval.
            type: int
          minimum_receive_interval:
            description: Specify minimum receive interval.
            type: int
          multiplier:
            description: Specify detection time multiplier.
            type: int
          no_adaptation:
            description: Disable adaptation.
            type: bool
          session_mode:
            choices:
            - automatic
            - multihop
            - single-hop
            description: BFD single-hop or multihop session-mode.
            type: str
          transmit_interval:
            description: Transmit-interval options.
            suboptions:
              minimum_interval:
                description: Specify Minimum transmit interval.
                type: int
              threshold:
                description: Specify high transmit interval triggering a trap.
                type: int
            type: dict
          version:
            choices:
            - '0'
            - '1'
            - automatic
            description: Specify BFD protocol version number.
            type: str
        type: dict
      bgp_error_tolerance:
        description: Handle BGP malformed updates softly.
        suboptions:
          malformed_route_limit:
            description: Maximum number of malformed routes from a peer.
            type: int
          malformed_update_log_interval:
            description: Time used when logging malformed update.
            type: int
          no_malformed_route_limit:
            description: Specify no malformed route limit.
            type: bool
          set:
            description: Set BGP malformed updates softly.
            type: bool
        type: dict
      bmp:
        description: Specific settings to override the routing-options settings.
        suboptions:
          monitor:
            description: Enable/Disable monitoring.
            type: bool
          route_monitoring:
            description: Control route monitoring settings.
            suboptions:
              none:
                description: Do not send route montoring messages.
                type: bool
              post_policy:
                description: Send post policy route montoring messages.
                type: bool
              post_policy_exclude_non_eligible:
                description: Send post policy route montoring messages and exclude unresolved
                  routes, etc.
                type: bool
              post_policy_exclude_non_feasible:
                description: Send pre policy route montoring messages and exclude looped
                  routes, etc.
                type: bool
              pre_policy:
                description: Send pre policy route montoring messages.
                type: bool
            type: dict
        type: dict
      cluster_id:
        description: Specify cluster identifier.
        type: str
      damping:
        description: Enable route flap damping.
        type: bool
      description:
        description: Specify text description.
        type: str
      disable:
        description: Disable BGP.
        type: bool
      egress_te:
        description: Use Egress Peering traffic engineering.
        suboptions:
          backup_path:
            description: The 'egress-te-backup-paths template' to use for this peer.
            type: str
          set:
            description: Set the attribute.
            type: bool
        type: dict
      egress_te_backup_paths:
        description: Backup-path for Egress-TE peer interface failure.
        suboptions:
          templates:
            description: Specify Backup-path template.
            elements: dict
            suboptions:
              ip_forward:
                description: Use IP-forward backup path for Egress TE.
                suboptions:
                  rti_name:
                    description: Routing-instance to use as IP forward backup-path.
                    type: str
                  set:
                    description: Set use IP-forward backup path for Egress TE.
                    type: bool
                type: dict
              path_name:
                description: Name of Egress-TE backup path.
                required: true
                type: str
              peers:
                description: Specify address of BGP peer to use as backup next-hop.
                elements: str
                type: list
              remote_nexthop:
                description: Specify address of remote-nexthop to use as backup path.
                type: str
            type: list
        type: dict
      egress_te_set_segment:
        description: Configure BGP-Peer-Set segment.
        elements: dict
        suboptions:
          egress_te_backup_segment_label:
            description: BGP-Peer-Set SID label value from static label pool.
            type: int
          label:
            description: Backup segment label value from static label pool.
            type: int
          name:
            description: The BGP-Peer-Set segment name.
            required: true
            type: str
        type: list
      egress_te_sid_stats:
        description: Create BGP-Peer-SID sensor.
        type: bool
      enforce_first_as:
        description: Enforce neighbor AS is the first AS in AS-PATH attribute (EBGP).
        type: bool
      export:
        description: Specify export policy.
        type: str
      forwarding_context:
        description: Specify routing-instance used for data-forwarding and transport-session.
        type: str
      graceful_restart:
        description: BGP graceful restart options.
        suboptions:
          disable:
            description: Disable graceful restart.
            type: bool
          dont_help_shared_fate_bfd_down:
            description: Honor BFD-Down(C=0) if GR-restart not in progress.
            type: bool
          forwarding_state_bit:
            description: Control forwarding-state flag negotiation.
            suboptions:
              as_rr_client:
                description: As for a route reflector client.
                type: bool
              from_fib:
                description: Always use state of associated FIB(s).
                type: bool
            type: dict
          long_lived:
            description: Long-lived graceful restart options.
            suboptions:
              advertise_to_non_llgr_neighbor:
                description: Advertise stale routes to non-LLGR neighbors.
                suboptions:
                  omit_no_export:
                    description: Set Advertise stale routes to non-LLGR neighbors.
                    type: bool
                  set:
                    description: Set Advertise stale routes to non-LLGR neighbors.
                    type: bool
                type: dict
              receiver_disable:
                description: Disable receiver (helper) functionality.
                type: bool
            type: dict
          restart_time:
            description: Restart time used when negotiating with a peer.
            type: int
          set:
            description: Set BGP graceful restart options.
            type: bool
          stale_routes_time:
            description: Maximum time for which stale routes are kept.
            type: int
        type: dict
      groups:
        description: Specify name of the group.
        elements: dict
        suboptions:
          accept_remote_nexthop:
            description: Allow import policy to specify a non-directly connected next-hop.
            type: bool
          add_path_display_ipv4_address:
            description: Display add-path path-id in IPv4 address format.
            type: bool
          advertise_bgp_static:
            description: Advertise bgp-static routes.
            suboptions:
              policy:
                description: Specify static route advertisement policy.
                type: str
              set:
                description: Set Advertise bgp-static routes.
                type: bool
            type: dict
          advertise_external:
            description: Advertise best external routes.
            suboptions:
              conditional:
                description: Route matches active route upto med-comparison rule.
                type: bool
              set:
                description: Set Advertise best external routes.
                type: bool
            type: dict
          advertise_inactive:
            description: Advertise inactive routes.
            type: bool
          advertise_peer_as:
            description: Advertise routes received from the same autonomous system.
            type: bool
          allow:
            description: Configure peer connections for specific networks.
            elements: str
            type: list
          as_override:
            description: Replace neighbor AS number with our AS number
            type: bool
          authentication_algorithm:
            choices:
            - aes-128-cmac-96
            - hmac-sha-1-96
            - md5
            description: Specify authentication algorithm name.
            type: str
          authentication_key:
            description: Specify MD5 authentication key.
            type: str
          authentication_key_chain:
            description: Specify authentication key chain name.
            type: str
          bfd_liveness_detection:
            description: Bidirectional Forwarding Detection (BFD) options.
            suboptions:
              authentication:
                description: Authentication options.
                suboptions:
                  algorithm:
                    choices:
                    - keyed-md5
                    - keyed-sha-1
                    - meticulous-keyed-md5
                    - meticulous-keyed-sha-1
                    - simple-password
                    description: Specify algorithm name.
                    type: str
                  key_chain:
                    description: Specify Key chain name.
                    type: str
                  loose_check:
                    description: Verify authentication only if authentication is negotiated.
                    type: bool
                type: dict
              detection_time:
                description: Specify Detection-time optionss.
                suboptions:
                  threshold:
                    description: Specify high detection-time triggering a trap (milliseconds).
                    type: int
                type: dict
              holddown_interval:
                description: Specify time to hold the session-UP notification to the client.
                type: int
              minimum_interval:
                description: Specify minimum transmit and receive interval.
                type: int
              minimum_receive_interval:
                description: Specify minimum receive interval.
                type: int
              multiplier:
                description: Specify detection time multiplier.
                type: int
              no_adaptation:
                description: Disable adaptation.
                type: bool
              session_mode:
                choices:
                - automatic
                - multihop
                - single-hop
                description: BFD single-hop or multihop session-mode.
                type: str
              transmit_interval:
                description: Transmit-interval options.
                suboptions:
                  minimum_interval:
                    description: Specify Minimum transmit interval.
                    type: int
                  threshold:
                    description: Specify high transmit interval triggering a trap.
                    type: int
                type: dict
              version:
                choices:
                - '0'
                - '1'
                - automatic
                description: Specify BFD protocol version number.
                type: str
            type: dict
          bgp_error_tolerance:
            description: Handle BGP malformed updates softly.
            suboptions:
              malformed_route_limit:
                description: Maximum number of malformed routes from a peer.
                type: int
              malformed_update_log_interval:
                description: Time used when logging malformed update.
                type: int
              no_malformed_route_limit:
                description: Specify no malformed route limit.
                type: bool
              set:
                description: Set BGP malformed updates softly.
                type: bool
            type: dict
          bmp:
            description: Specific settings to override the routing-options settings.
            suboptions:
              monitor:
                description: Enable/Disable monitoring.
                type: bool
              route_monitoring:
                description: Control route monitoring settings.
                suboptions:
                  none:
                    description: Do not send route montoring messages.
                    type: bool
                  post_policy:
                    description: Send post policy route montoring messages.
                    type: bool
                  post_policy_exclude_non_eligible:
                    description: Send post policy route montoring messages and exclude
                      unresolved routes, etc.
                    type: bool
                  post_policy_exclude_non_feasible:
                    description: Send pre policy route montoring messages and exclude
                      looped routes, etc.
                    type: bool
                  pre_policy:
                    description: Send pre policy route montoring messages.
                    type: bool
                type: dict
            type: dict
          cluster_id:
            description: Specify cluster identifier.
            type: str
          damping:
            description: Enable route flap damping.
            type: bool
          description:
            description: Specify text description.
            type: str
          egress_te:
            description: Use Egress Peering traffic engineering.
            suboptions:
              backup_path:
                description: The 'egress-te-backup-paths template' to use for this peer.
                type: str
              set:
                description: Set the attribute.
                type: bool
            type: dict
          enforce_first_as:
            description: Enforce neighbor AS is the first AS in AS-PATH attribute (EBGP).
            type: bool
          export:
            description: Specify export policy.
            type: str
          forwarding_context:
            description: Specify routing-instance used for data-forwarding and transport-session.
            type: str
          graceful_restart:
            description: BGP graceful restart options.
            suboptions:
              disable:
                description: Disable graceful restart.
                type: bool
              dont_help_shared_fate_bfd_down:
                description: Honor BFD-Down(C=0) if GR-restart not in progress.
                type: bool
              forwarding_state_bit:
                description: Control forwarding-state flag negotiation.
                suboptions:
                  as_rr_client:
                    description: As for a route reflector client.
                    type: bool
                  from_fib:
                    description: Always use state of associated FIB(s).
                    type: bool
                type: dict
              long_lived:
                description: Long-lived graceful restart options.
                suboptions:
                  advertise_to_non_llgr_neighbor:
                    description: Advertise stale routes to non-LLGR neighbors.
                    suboptions:
                      omit_no_export:
                        description: Set Advertise stale routes to non-LLGR neighbors.
                        type: bool
                      set:
                        description: Set Advertise stale routes to non-LLGR neighbors.
                        type: bool
                    type: dict
                  receiver_disable:
                    description: Disable receiver (helper) functionality.
                    type: bool
                type: dict
              restart_time:
                description: Restart time used when negotiating with a peer.
                type: int
              set:
                description: Set BGP graceful restart options.
                type: bool
              stale_routes_time:
                description: Maximum time for which stale routes are kept.
                type: int
            type: dict
          hold_time:
            description: Specify hold time used when negotiating with a peer.
            type: int
          idle_after_switch_over:
            description: Stop peer session from coming up after nonstop-routing switch-over.
            suboptions:
              forever:
                description: Idle the peer until the user intervenes.
                type: bool
              timeout:
                description: Specify timeout value, in seconds, for starting peer after
                  switch over.
                type: int
            type: dict
          import:
            description: Specify import policy.
            elements: str
            type: list
          include_mp_next_hop:
            description: Include NEXT-HOP attribute in multiprotocol updates.
            type: bool
          ipsec_sa:
            description: Specify IPSec SA name.
            type: str
          keep:
            choices:
            - all
            - none
            description: Specify how to retain routes in the routing table.
            type: str
          local_address:
            description: Specify Address of local end of BGP session.
            type: str
          local_as:
            description: Local autonomous system number.
            suboptions:
              alias:
                description: Treat this AS as an alias to the system AS.
                type: bool
              as_num:
                description: Autonomous system number in plain number or (asdot notation)
                  format.
                required: true
                type: str
              loops:
                description: Maximum number of times this AS can be in an AS path.
                type: int
              no_prepend_global_as:
                description: Maximum number of times this AS can be in an AS path.
                type: bool
              private:
                description: Hide this local AS in paths learned from this peering.
                type: bool
            type: dict
          local_interface:
            description: Specify Local interface for IPv6 link local EBGP peering.
            type: str
          local_preference:
            description: Specify value of LOCAL_PREF path attribute.
            type: str
          log_updown:
            description: Enable log a message for peer state transitions.
            type: bool
          metric_out:
            description: Specify route metric sent in MED.
            suboptions:
              igp:
                description: Track the IGP metric.
                suboptions:
                  delay_med_update:
                    description: Delay updating MED when IGP metric increases.
                    type: bool
                  metric_offset:
                    description: Specify metric offset for MED.
                    type: int
                  set:
                    description: Set track the IGP metric.
                    type: bool
                type: dict
              metric_value:
                description: Specify metric value.
                type: int
              minimum_igp:
                description: Track the minimum IGP metric.
                suboptions:
                  metric_offset:
                    description: Specify metric offset for MED.
                    type: int
                  set:
                    description: Set track the minimum IGP metric.
                    type: bool
                type: dict
            type: dict
          mtu_discovery:
            description: Enable TCP path MTU discovery.
            type: bool
          multihop:
            description: Configure an EBGP multihop session.
            suboptions:
              no_nexthop_change:
                description: Do not change next hop to self in advertisements.
                type: bool
              set:
                description: Set an EBGP multihop session.
                type: bool
              ttl:
                description: TTL value for the session.
                type: int
            type: dict
          multipath:
            description: Allow load sharing among multiple BGP paths.
            suboptions:
              disable:
                description: Disable Multipath.
                type: bool
              multiple_as:
                description: Use paths received from different ASs.
                type: bool
              multiple_as_disable:
                description: Disable multipath.
                type: bool
              set:
                description: Set allow load sharing among multiple BGP paths.
                type: bool
            type: dict
          name:
            description: Specify the name of the group
            type: str
          neighbors:
            description: Specify list of neighbors.
            elements: dict
            suboptions:
              accept_remote_nexthop:
                description: Allow import policy to specify a non-directly connected next-hop.
                type: bool
              add_path_display_ipv4_address:
                description: Display add-path path-id in IPv4 address format.
                type: bool
              advertise_bgp_static:
                description: Advertise bgp-static routes.
                suboptions:
                  policy:
                    description: Specify static route advertisement policy.
                    type: str
                  set:
                    description: Set Advertise bgp-static routes.
                    type: bool
                type: dict
              advertise_external:
                description: Advertise best external routes.
                suboptions:
                  conditional:
                    description: Route matches active route upto med-comparison rule.
                    type: bool
                  set:
                    description: Set Advertise best external routes.
                    type: bool
                type: dict
              advertise_inactive:
                description: Advertise inactive routes.
                type: bool
              advertise_peer_as:
                description: Advertise routes received from the same autonomous system.
                type: bool
              as_override:
                description: Replace neighbor AS number with our AS number
                type: bool
              authentication_algorithm:
                choices:
                - aes-128-cmac-96
                - hmac-sha-1-96
                - md5
                description: Specify authentication algorithm name.
                type: str
              authentication_key:
                description: Specify MD5 authentication key.
                type: str
              authentication_key_chain:
                description: Specify authentication key chain name.
                type: str
              bfd_liveness_detection:
                description: Bidirectional Forwarding Detection (BFD) options.
                suboptions:
                  authentication:
                    description: Authentication options.
                    suboptions:
                      algorithm:
                        choices:
                        - keyed-md5
                        - keyed-sha-1
                        - meticulous-keyed-md5
                        - meticulous-keyed-sha-1
                        - simple-password
                        description: Specify algorithm name.
                        type: str
                      key_chain:
                        description: Specify Key chain name.
                        type: str
                      loose_check:
                        description: Verify authentication only if authentication is negotiated.
                        type: bool
                    type: dict
                  detection_time:
                    description: Specify Detection-time optionss.
                    suboptions:
                      threshold:
                        description: Specify high detection-time triggering a trap (milliseconds).
                        type: int
                    type: dict
                  holddown_interval:
                    description: Specify time to hold the session-UP notification to the
                      client.
                    type: int
                  minimum_interval:
                    description: Specify minimum transmit and receive interval.
                    type: int
                  minimum_receive_interval:
                    description: Specify minimum receive interval.
                    type: int
                  multiplier:
                    description: Specify detection time multiplier.
                    type: int
                  no_adaptation:
                    description: Disable adaptation.
                    type: bool
                  session_mode:
                    choices:
                    - automatic
                    - multihop
                    - single-hop
                    description: BFD single-hop or multihop session-mode.
                    type: str
                  transmit_interval:
                    description: Transmit-interval options.
                    suboptions:
                      minimum_interval:
                        description: Specify Minimum transmit interval.
                        type: int
                      threshold:
                        description: Specify high transmit interval triggering a trap.
                        type: int
                    type: dict
                  version:
                    choices:
                    - '0'
                    - '1'
                    - automatic
                    description: Specify BFD protocol version number.
                    type: str
                type: dict
              bgp_error_tolerance:
                description: Handle BGP malformed updates softly.
                suboptions:
                  malformed_route_limit:
                    description: Maximum number of malformed routes from a peer.
                    type: int
                  malformed_update_log_interval:
                    description: Time used when logging malformed update.
                    type: int
                  no_malformed_route_limit:
                    description: Specify no malformed route limit.
                    type: bool
                  set:
                    description: Set BGP malformed updates softly.
                    type: bool
                type: dict
              bmp:
                description: Specific settings to override the routing-options settings.
                suboptions:
                  monitor:
                    description: Enable/Disable monitoring.
                    type: bool
                  route_monitoring:
                    description: Control route monitoring settings.
                    suboptions:
                      none:
                        description: Do not send route montoring messages.
                        type: bool
                      post_policy:
                        description: Send post policy route montoring messages.
                        type: bool
                      post_policy_exclude_non_eligible:
                        description: Send post policy route montoring messages and exclude
                          unresolved routes, etc.
                        type: bool
                      post_policy_exclude_non_feasible:
                        description: Send pre policy route montoring messages and exclude
                          looped routes, etc.
                        type: bool
                      pre_policy:
                        description: Send pre policy route montoring messages.
                        type: bool
                    type: dict
                type: dict
              cluster_id:
                description: Specify cluster identifier.
                type: str
              damping:
                description: Enable route flap damping.
                type: bool
              description:
                description: Specify neighbor description.
                type: str
              egress_te:
                description: Use Egress Peering traffic engineering.
                suboptions:
                  backup_path:
                    description: The 'egress-te-backup-paths template' to use for this
                      peer.
                    type: str
                  set:
                    description: Set the attribute.
                    type: bool
                type: dict
              enforce_first_as:
                description: Enforce neighbor AS is the first AS in AS-PATH attribute
                  (EBGP).
                type: bool
              export:
                description: Specify export policy.
                type: str
              forwarding_context:
                description: Specify routing-instance used for data-forwarding and transport-session.
                type: str
              graceful_restart:
                description: BGP graceful restart options.
                suboptions:
                  disable:
                    description: Disable graceful restart.
                    type: bool
                  dont_help_shared_fate_bfd_down:
                    description: Honor BFD-Down(C=0) if GR-restart not in progress.
                    type: bool
                  forwarding_state_bit:
                    description: Control forwarding-state flag negotiation.
                    suboptions:
                      as_rr_client:
                        description: As for a route reflector client.
                        type: bool
                      from_fib:
                        description: Always use state of associated FIB(s).
                        type: bool
                    type: dict
                  long_lived:
                    description: Long-lived graceful restart options.
                    suboptions:
                      advertise_to_non_llgr_neighbor:
                        description: Advertise stale routes to non-LLGR neighbors.
                        suboptions:
                          omit_no_export:
                            description: Set Advertise stale routes to non-LLGR neighbors.
                            type: bool
                          set:
                            description: Set Advertise stale routes to non-LLGR neighbors.
                            type: bool
                        type: dict
                      receiver_disable:
                        description: Disable receiver (helper) functionality.
                        type: bool
                    type: dict
                  restart_time:
                    description: Restart time used when negotiating with a peer.
                    type: int
                  set:
                    description: Set BGP graceful restart options.
                    type: bool
                  stale_routes_time:
                    description: Maximum time for which stale routes are kept.
                    type: int
                type: dict
              hold_time:
                description: Specify hold time used when negotiating with a peer.
                type: int
              idle_after_switch_over:
                description: Stop peer session from coming up after nonstop-routing switch-over.
                suboptions:
                  forever:
                    description: Idle the peer until the user intervenes.
                    type: bool
                  timeout:
                    description: Specify timeout value, in seconds, for starting peer
                      after switch over.
                    type: int
                type: dict
              import:
                description: Specify import policy.
                elements: str
                type: list
              include_mp_next_hop:
                description: Include NEXT-HOP attribute in multiprotocol updates.
                type: bool
              ipsec_sa:
                description: Specify IPSec SA name.
                type: str
              keep:
                choices:
                - all
                - none
                description: Specify how to retain routes in the routing table.
                type: str
              local_address:
                description: Specify Address of local end of BGP session.
                type: str
              local_as:
                description: Local autonomous system number.
                suboptions:
                  alias:
                    description: Treat this AS as an alias to the system AS.
                    type: bool
                  as_num:
                    description: Autonomous system number in plain number or (asdot notation)
                      format.
                    required: true
                    type: str
                  loops:
                    description: Maximum number of times this AS can be in an AS path.
                    type: int
                  no_prepend_global_as:
                    description: Maximum number of times this AS can be in an AS path.
                    type: bool
                  private:
                    description: Hide this local AS in paths learned from this peering.
                    type: bool
                type: dict
              local_interface:
                description: Specify Local interface for IPv6 link local EBGP peering.
                type: str
              local_preference:
                description: Specify value of LOCAL_PREF path attribute.
                type: str
              log_updown:
                description: Enable log a message for peer state transitions.
                type: bool
              metric_out:
                description: Specify route metric sent in MED.
                suboptions:
                  igp:
                    description: Track the IGP metric.
                    suboptions:
                      delay_med_update:
                        description: Delay updating MED when IGP metric increases.
                        type: bool
                      metric_offset:
                        description: Specify metric offset for MED.
                        type: int
                      set:
                        description: Set track the IGP metric.
                        type: bool
                    type: dict
                  metric_value:
                    description: Specify metric value.
                    type: int
                  minimum_igp:
                    description: Track the minimum IGP metric.
                    suboptions:
                      metric_offset:
                        description: Specify metric offset for MED.
                        type: int
                      set:
                        description: Set track the minimum IGP metric.
                        type: bool
                    type: dict
                type: dict
              mtu_discovery:
                description: Enable TCP path MTU discovery.
                type: bool
              multihop:
                description: Configure an EBGP multihop session.
                suboptions:
                  no_nexthop_change:
                    description: Do not change next hop to self in advertisements.
                    type: bool
                  set:
                    description: Set an EBGP multihop session.
                    type: bool
                  ttl:
                    description: TTL value for the session.
                    type: int
                type: dict
              multipath:
                description: Allow load sharing among multiple BGP paths.
                suboptions:
                  disable:
                    description: Disable Multipath.
                    type: bool
                  multiple_as:
                    description: Use paths received from different ASs.
                    type: bool
                  multiple_as_disable:
                    description: Disable multipath.
                    type: bool
                  set:
                    description: Set allow load sharing among multiple BGP paths.
                    type: bool
                type: dict
              neighbor_address:
                description: Specify neighbor address.
                type: str
              no_advertise_peer_as:
                description: Allows to not advertise routes received from the same autonomous
                  system.
                type: bool
              no_aggregator_id:
                description: Set router ID in aggregator path attribute to 0.
                type: bool
              no_client_reflect:
                description: Disable intracluster route redistribution.
                type: bool
              out_delay:
                description: Specify how long before exporting routes from routing table.
                type: int
              outbound_route_filter:
                description: Dynamically negotiated cooperative route filtering.
                suboptions:
                  bgp_orf_cisco_mode:
                    description: Using BGP ORF capability code 130 and Prefix ORF type
                      128.
                    type: bool
                  prefix_based:
                    description: Prefix-based outbound route filtering.
                    suboptions:
                      accept:
                        description: Honor Prefix-based ORFs from remote peers.
                        suboptions:
                          inet:
                            description: Honor IPv4 prefix filters.
                            type: bool
                          inet6:
                            description: Honor IPv6 prefix filters.
                            type: bool
                          set:
                            description: Set honor Prefix-based ORFs from remote peers.
                            type: bool
                        type: dict
                      set:
                        description: Set prefix-based outbound route filtering.
                        type: bool
                    type: dict
                type: dict
              passive:
                description: Specify to not send open messages to a peer.
                type: bool
              peer_as:
                description: Specify Autonomous system number in plain number or 'higher
                  16bits'.'Lower 16 bits' format.
                type: str
              preference:
                description: Specify preference value.
                type: str
              remove_private:
                description: Remove well-known private AS numbers.
                suboptions:
                  all:
                    description: Remove all private AS numbers and do not stop at the
                      first public AS number.
                    type: bool
                  all_replace:
                    description: Specify private AS replacement.
                    type: bool
                  all_replace_nearest:
                    description: Use closest public AS number to replace a private AS
                      number.
                    type: bool
                  no_peer_loop_check:
                    description: Remove peer loop-check.
                    type: bool
                  set:
                    description: Remove well-known private AS numbers.
                    type: bool
                type: dict
              rfc6514_compliant_safi129:
                description: Specify Compliance with RFC6514 SAFI129 format.
                type: bool
              route_server_client:
                description: Enable route server client behavior.
                type: bool
              tcp_aggressive_transmission:
                description: Enable aggressive transmission of pure TCP ACKs and retransmissions.
                type: bool
              tcp_mss:
                description: Specify maximum TCP segment size.
                type: int
              traceoptions:
                description: Configure trace options for BGP.
                suboptions:
                  file:
                    description: Specify trace file options.
                    suboptions:
                      filename:
                        description: Specify name of file in which to write trace information.
                        required: true
                        type: str
                      files:
                        description: Specify maximum number of trace files.
                        type: int
                      no_world_readable:
                        description: Don't allow any user to read the log file.
                        type: bool
                      size:
                        description: Specify maximum trace file size.
                        type: int
                      world_readable:
                        description: Allow any user to read the log file.
                        type: bool
                    type: dict
                  flag:
                    description: Specify tracing parameters.
                    elements: dict
                    suboptions:
                      detail:
                        description: Trace detailed information.
                        type: bool
                      disable:
                        description: Disable this trace flag.
                        type: bool
                      filter:
                        description: Filter to apply to this flag.
                        suboptions:
                          match_on_prefix:
                            description: Specify filter based on prefix.
                            type: bool
                          policy:
                            description: Specify filter policy.
                            type: str
                          set:
                            description: Set filter to apply to this flag.
                            type: bool
                        type: dict
                      name:
                        choices:
                        - 4byte-as
                        - add-path
                        - all
                        - bfd
                        - damping
                        - egress-te
                        - general
                        - graceful-restart
                        - keepalive
                        - normal
                        - nsr-synchronization
                        - open
                        - packets
                        - policy
                        - refresh
                        - route
                        - state
                        - task
                        - thread-io
                        - thread-update-io
                        - timer
                        - update
                        description: specify event name
                        required: true
                        type: str
                      receive:
                        description: Trace received packets.
                        type: bool
                      send:
                        description: Trace transmitted packets.
                        type: bool
                    type: list
                type: dict
              ttl:
                description: Specify TTL value for the single-hop peer.
                type: int
              unconfigured_peer_graceful_restart:
                description: Specify BGP unconfigured peer graceful restart options.
                type: bool
              vpn_apply_export:
                description: Apply BGP export policy when exporting VPN routes.
                type: bool
            type: list
          no_advertise_peer_as:
            description: Allows to not advertise routes received from the same autonomous
              system.
            type: bool
          no_aggregator_id:
            description: Set router ID in aggregator path attribute to 0.
            type: bool
          no_client_reflect:
            description: Disable intracluster route redistribution.
            type: bool
          optimal_route_reflection:
            description: Enable optimal route reflection for this client group.
            suboptions:
              igp_backup:
                description: Backup node identifier for this client group.
                type: str
              igp_primary:
                description: Primary node identifier for this client group.
                type: str
            type: dict
          out_delay:
            description: Specify how long before exporting routes from routing table.
            type: int
          outbound_route_filter:
            description: Dynamically negotiated cooperative route filtering.
            suboptions:
              bgp_orf_cisco_mode:
                description: Using BGP ORF capability code 130 and Prefix ORF type 128.
                type: bool
              prefix_based:
                description: Prefix-based outbound route filtering.
                suboptions:
                  accept:
                    description: Honor Prefix-based ORFs from remote peers.
                    suboptions:
                      inet:
                        description: Honor IPv4 prefix filters.
                        type: bool
                      inet6:
                        description: Honor IPv6 prefix filters.
                        type: bool
                      set:
                        description: Set honor Prefix-based ORFs from remote peers.
                        type: bool
                    type: dict
                  set:
                    description: Set prefix-based outbound route filtering.
                    type: bool
                type: dict
            type: dict
          passive:
            description: Specify to not send open messages to a peer.
            type: bool
          peer_as:
            description: Specify Autonomous system number in plain number or 'higher 16bits'.'Lower
              16 bits' format.
            type: str
          preference:
            description: Specify preference value.
            type: str
          remove_private:
            description: Remove well-known private AS numbers.
            suboptions:
              all:
                description: Remove all private AS numbers and do not stop at the first
                  public AS number.
                type: bool
              all_replace:
                description: Specify private AS replacement.
                type: bool
              all_replace_nearest:
                description: Use closest public AS number to replace a private AS number.
                type: bool
              no_peer_loop_check:
                description: Remove peer loop-check.
                type: bool
              set:
                description: Remove well-known private AS numbers.
                type: bool
            type: dict
          rfc6514_compliant_safi129:
            description: Specify Compliance with RFC6514 SAFI129 format.
            type: bool
          route_server_client:
            description: Enable route server client behavior.
            type: bool
          tcp_aggressive_transmission:
            description: Enable aggressive transmission of pure TCP ACKs and retransmissions.
            type: bool
          tcp_mss:
            description: Specify maximum TCP segment size.
            type: int
          traceoptions:
            description: Configure trace options for BGP.
            suboptions:
              file:
                description: Specify trace file options.
                suboptions:
                  filename:
                    description: Specify name of file in which to write trace information.
                    required: true
                    type: str
                  files:
                    description: Specify maximum number of trace files.
                    type: int
                  no_world_readable:
                    description: Don't allow any user to read the log file.
                    type: bool
                  size:
                    description: Specify maximum trace file size.
                    type: int
                  world_readable:
                    description: Allow any user to read the log file.
                    type: bool
                type: dict
              flag:
                description: Specify tracing parameters.
                elements: dict
                suboptions:
                  detail:
                    description: Trace detailed information.
                    type: bool
                  disable:
                    description: Disable this trace flag.
                    type: bool
                  filter:
                    description: Filter to apply to this flag.
                    suboptions:
                      match_on_prefix:
                        description: Specify filter based on prefix.
                        type: bool
                      policy:
                        description: Specify filter policy.
                        type: str
                      set:
                        description: Set filter to apply to this flag.
                        type: bool
                    type: dict
                  name:
                    choices:
                    - 4byte-as
                    - add-path
                    - all
                    - bfd
                    - damping
                    - egress-te
                    - general
                    - graceful-restart
                    - keepalive
                    - normal
                    - nsr-synchronization
                    - open
                    - packets
                    - policy
                    - refresh
                    - route
                    - state
                    - task
                    - thread-io
                    - thread-update-io
                    - timer
                    - update
                    description: specify event name
                    required: true
                    type: str
                  receive:
                    description: Trace received packets.
                    type: bool
                  send:
                    description: Trace transmitted packets.
                    type: bool
                type: list
            type: dict
          ttl:
            description: Specify TTL value for the single-hop peer.
            type: int
          type:
            choices:
            - external
            - internal
            description: Specify BGP group type.
            type: str
          unconfigured_peer_graceful_restart:
            description: Specify BGP unconfigured peer graceful restart options.
            type: bool
          vpn_apply_export:
            description: Apply BGP export policy when exporting VPN routes.
            type: bool
        type: list
      hold_time:
        description: Specify hold time used when negotiating with a peer.
        type: int
      holddown_all_stale_labels:
        description: Hold all BGP stale-labels, facilating make-before-break for new label
          advertisements.
        type: bool
      idle_after_switch_over:
        description: Stop peer session from coming up after nonstop-routing switch-over.
        suboptions:
          forever:
            description: Idle the peer until the user intervenes.
            type: bool
          timeout:
            description: Specify timeout value, in seconds, for starting peer after switch
              over.
            type: int
        type: dict
      import:
        description: Specify import policy.
        elements: str
        type: list
      include_mp_next_hop:
        description: Include NEXT-HOP attribute in multiprotocol updates.
        type: bool
      ipsec_sa:
        description: Specify IPSec SA name.
        type: str
      keep:
        choices:
        - all
        - none
        description: Specify how to retain routes in the routing table.
        type: str
      local_address:
        description: Specify Address of local end of BGP session.
        type: str
      local_as:
        description: Local autonomous system number.
        suboptions:
          alias:
            description: Treat this AS as an alias to the system AS.
            type: bool
          as_num:
            description: Autonomous system number in plain number or (asdot notation)
              format.
            required: true
            type: str
          loops:
            description: Maximum number of times this AS can be in an AS path.
            type: int
          no_prepend_global_as:
            description: Maximum number of times this AS can be in an AS path.
            type: bool
          private:
            description: Hide this local AS in paths learned from this peering.
            type: bool
        type: dict
      local_interface:
        description: Specify Local interface for IPv6 link local EBGP peering.
        type: str
      local_preference:
        description: Specify value of LOCAL_PREF path attribute.
        type: str
      log_updown:
        description: Enable log a message for peer state transitions.
        type: bool
      loops:
        description: Specify maximum number of times this AS can be in an AS path.
        type: int
      metric_out:
        description: Specify route metric sent in MED.
        suboptions:
          igp:
            description: Track the IGP metric.
            suboptions:
              delay_med_update:
                description: Delay updating MED when IGP metric increases.
                type: bool
              metric_offset:
                description: Specify metric offset for MED.
                type: int
              set:
                description: Set track the IGP metric.
                type: bool
            type: dict
          metric_value:
            description: Specify metric value.
            type: int
          minimum_igp:
            description: Track the minimum IGP metric.
            suboptions:
              metric_offset:
                description: Specify metric offset for MED.
                type: int
              set:
                description: Set track the minimum IGP metric.
                type: bool
            type: dict
        type: dict
      mtu_discovery:
        description: Enable TCP path MTU discovery.
        type: bool
      multihop:
        description: Configure an EBGP multihop session.
        suboptions:
          no_nexthop_change:
            description: Do not change next hop to self in advertisements.
            type: bool
          set:
            description: Set an EBGP multihop session.
            type: bool
          ttl:
            description: TTL value for the session.
            type: int
        type: dict
      multipath:
        description: Allow load sharing among multiple BGP paths.
        suboptions:
          disable:
            description: Disable Multipath.
            type: bool
          multiple_as:
            description: Use paths received from different ASs.
            type: bool
          multiple_as_disable:
            description: Disable multipath.
            type: bool
          set:
            description: Set allow load sharing among multiple BGP paths.
            type: bool
        type: dict
      multipath_build_priority:
        choices:
        - low
        - medium
        description: Configure the multipath build priority.
        type: str
      no_advertise_peer_as:
        description: Allows to not advertise routes received from the same autonomous
          system.
        type: bool
      no_aggregator_id:
        description: Set router ID in aggregator path attribute to 0.
        type: bool
      no_client_reflect:
        description: Disable intracluster route redistribution.
        type: bool
      no_precision_timers:
        description: Specify not to use precision timers for scheduling keepalives.
        type: bool
      out_delay:
        description: Specify how long before exporting routes from routing table.
        type: int
      outbound_route_filter:
        description: Dynamically negotiated cooperative route filtering.
        suboptions:
          bgp_orf_cisco_mode:
            description: Using BGP ORF capability code 130 and Prefix ORF type 128.
            type: bool
          prefix_based:
            description: Prefix-based outbound route filtering.
            suboptions:
              accept:
                description: Honor Prefix-based ORFs from remote peers.
                suboptions:
                  inet:
                    description: Honor IPv4 prefix filters.
                    type: bool
                  inet6:
                    description: Honor IPv6 prefix filters.
                    type: bool
                  set:
                    description: Set honor Prefix-based ORFs from remote peers.
                    type: bool
                type: dict
              set:
                description: Set prefix-based outbound route filtering.
                type: bool
            type: dict
        type: dict
      output_queue_priority:
        description: BGP output queue priority scheduler for updates.
        suboptions:
          defaults:
            description: Map policy's priority class and BGP output-queue.
            suboptions:
              high:
                description: Assign the 'high' priority class to this output-queue.
                suboptions:
                  expedited:
                    description: Expedited queue; highest priority.
                    type: bool
                  priority:
                    description: Specify output queue priorit.
                    type: int
                type: dict
              low:
                description: Assign the 'low' priority class to this output-queue.
                suboptions:
                  expedited:
                    description: Expedited queue; highest priority.
                    type: bool
                  priority:
                    description: Specify output queue priorit.
                    type: int
                type: dict
              medium:
                description: Assign the 'medium' priority class to this output-queue.
                suboptions:
                  expedited:
                    description: Expedited queue; highest priority.
                    type: bool
                  priority:
                    description: Specify output queue priorit.
                    type: int
                type: dict
            type: dict
          expedited_update_tokens:
            description: Expedited queue; highest priority for number of tokens.
            type: int
          priority_update_tokens:
            description: Output queue priority; higher is better.
            elements: dict
            suboptions:
              priority:
                description: Specify the priority.
                required: true
                type: int
              update_tokens:
                description: Specify update_tokens.
                required: true
                type: int
            type: list
        type: dict
      passive:
        description: Specify to not send open messages to a peer.
        type: bool
      path_selection:
        description: Configure path selection strategy.
        suboptions:
          always_compare_med:
            description: Compare MED on paths from different AS.
            type: bool
          as_path_ignore:
            description: Ignore AS path comparison during path selection.
            type: bool
          cisco_non_deterministic:
            description: Use Cisco IOS nondeterministic path selection algorithm.
            type: bool
          external_router_id:
            description: Compare router ID on BGP externals.
            type: bool
          l2vpn_use_bgp_rules:
            description: Use standard BGP rules during L2VPN path selection.
            type: bool
          med_plus_igp:
            description: Add IGP cost to next-hop to MED before comparing MED values.
            suboptions:
              igp_multiplier:
                description: Specify multiplier for IGP cost to next-hop.
                type: int
              med_multiplier:
                description: Specify Multiplier for MED.
                type: int
              set:
                description: Set med-plus-igp attribute.
                type: bool
            type: dict
        type: dict
      peer_as:
        description: Specify Autonomous system number in plain number or 'higher 16bits'.'Lower
          16 bits' format.
        type: str
      precision_timers:
        description: Use precision timers for scheduling keepalives.
        type: bool
      preference:
        description: Specify preference value.
        type: str
      remove_private:
        description: Remove well-known private AS numbers.
        suboptions:
          all:
            description: Remove all private AS numbers and do not stop at the first public
              AS number.
            type: bool
          all_replace:
            description: Specify private AS replacement.
            type: bool
          all_replace_nearest:
            description: Use closest public AS number to replace a private AS number.
            type: bool
          no_peer_loop_check:
            description: Remove peer loop-check.
            type: bool
          set:
            description: Remove well-known private AS numbers.
            type: bool
        type: dict
      rfc6514_compliant_safi129:
        description: Specify Compliance with RFC6514 SAFI129 format.
        type: bool
      route_server_client:
        description: Enable route server client behavior.
        type: bool
      send_addpath_optimization:
        description: Enable BGP addpath advertisement optimization.
        type: bool
      snmp_options:
        description: Customize SNMP behaviors specifically for BGP MIBs.
        suboptions:
          backward_traps_only_from_established:
            description: Limit traps for backward transitions to only those moving from
              Established state.
            type: bool
          emit_inet_address_length_in_oid:
            description: Emit Length in OID for InetAddress MIB type.
            type: bool
        type: dict
      sr_preference_override:
        description: Replace received segment routing traffic engineering preference value
          with override value.
        type: str
      stale_labels_holddown_period:
        description: Specify duration (sec) MPLS labels allocated by BGP are kept after
          they go stale.
        type: int
      tcp_aggressive_transmission:
        description: Enable aggressive transmission of pure TCP ACKs and retransmissions.
        type: bool
      tcp_mss:
        description: Specify maximum TCP segment size.
        type: int
      traceoptions:
        description: Configure trace options for BGP.
        suboptions:
          file:
            description: Specify trace file options.
            suboptions:
              filename:
                description: Specify name of file in which to write trace information.
                required: true
                type: str
              files:
                description: Specify maximum number of trace files.
                type: int
              no_world_readable:
                description: Don't allow any user to read the log file.
                type: bool
              size:
                description: Specify maximum trace file size.
                type: int
              world_readable:
                description: Allow any user to read the log file.
                type: bool
            type: dict
          flag:
            description: Specify tracing parameters.
            elements: dict
            suboptions:
              detail:
                description: Trace detailed information.
                type: bool
              disable:
                description: Disable this trace flag.
                type: bool
              filter:
                description: Filter to apply to this flag.
                suboptions:
                  match_on_prefix:
                    description: Specify filter based on prefix.
                    type: bool
                  policy:
                    description: Specify filter policy.
                    type: str
                  set:
                    description: Set filter to apply to this flag.
                    type: bool
                type: dict
              name:
                choices:
                - 4byte-as
                - add-path
                - all
                - bfd
                - damping
                - egress-te
                - general
                - graceful-restart
                - keepalive
                - normal
                - nsr-synchronization
                - open
                - packets
                - policy
                - refresh
                - route
                - state
                - task
                - thread-io
                - thread-update-io
                - timer
                - update
                description: specify event name
                required: true
                type: str
              receive:
                description: Trace received packets.
                type: bool
              send:
                description: Trace transmitted packets.
                type: bool
            type: list
        type: dict
      traffic_statistics_labeled_path:
        description: Collect periodic ingress labeled statistics for BGP label-switched
          paths.
        suboptions:
          file:
            description: Specify statistics file options.
            suboptions:
              filename:
                description: Specify name of file in which to write trace information.
                type: str
              files:
                description: Specify maximum number of trace files.
                type: int
              no_world_readable:
                description: Don't allow any user to read the log file.
                type: bool
              size:
                description: Specify maximum trace file size.
                type: int
              world_readable:
                description: Allow any user to read the log file.
                type: bool
            type: dict
          interval:
            description: Specify time interval to collect statistics.
            type: int
        type: dict
      ttl:
        description: Specify TTL value for the single-hop peer.
        type: int
      unconfigured_peer_graceful_restart:
        description: Specify BGP unconfigured peer graceful restart options.
        type: bool
      vpn_apply_export:
        description: Apply BGP export policy when exporting VPN routes.
        type: bool
    type: dict

running_config:
    description:
    - This option is used only with state I(parsed).
    - The value of this option should be the output received from the Junos device by
      executing the command B(show protocols bgp).
    - The state I(parsed) reads the configuration from C(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 I(parsed) key within the result
    type: str

Outputs

after:
  description: 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"
  type: dict
before:
  description: 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"
  type: dict
commands:
  description: The set of commands pushed to the remote device.
  returned: always
  sample:
  - ' <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:bgp> <nc:damping/>
    <nc:egress-te-sid-stats/> <nc:authentication-algorithm>md5</nc:authentication-algorithm>
    <nc:description>This is configured with Junos_bgp resource module</nc:description>
    <nc:hold-time>5</nc:hold-time> <nc:bfd-liveness-detection> <nc:transmit-interval>
    <nc:minimum-interval>2</nc:minimum-interval> </nc:transmit-interval> <nc:minimum-receive-interval>4</nc:minimum-receive-interval>
    <nc:multiplier>10</nc:multiplier> <nc:no-adaptation/> <nc:version>automatic</nc:version>
    </nc:bfd-liveness-detection> <nc:bgp-error-tolerance> <nc:malformed-route-limit>20000000</nc:malformed-route-limit>
    </nc:bgp-error-tolerance> <nc:bmp> <nc:monitor>enable</nc:monitor> </nc:bmp> </nc:bgp>
    </nc:protocols>'
  - xml 2
  - xml 3
  type: list
gathered:
  description: Facts about the network resource gathered from the remote device as
    structured data.
  returned: when I(state) is C(gathered)
  sample: 'This output will always be in the same format as the module argspec.

    '
  type: list
parsed:
  description: The device native config provided in I(running_config) option parsed
    into structured data as per module argspec.
  returned: when I(state) is C(parsed)
  sample: 'This output will always be in the same format as the module argspec.

    '
  type: list
rendered:
  description: The provided configuration in the task rendered in device-native format
    (offline).
  returned: when I(state) is C(rendered)
  sample:
  - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
  type: list