Skip to content

Release Notes for Ansible AVD 2.x.x

Documentation for AVD version 2.x.x available here

Warning

Starting arista.avd version 2.0, eos_l3ls_evpn has been renamed to eos_designs and a fallback mechanism has been deployed to support both name. Please update your playbooks accordingly as eos_l3ls_evpn will be removed in a future release.

Release 2.2.1

Fixed issues

  • eos_designs:

    • Incorrect topology/ip calculation when max_l3leaf_to_spine_links > 1
    • Update documentation for l3_interface sub-interfaces

Release 2.2.0

Data model modifications

This section provides an overview of only the data model that have changed from the previous release that would require user modifications. See the release notes and role documentation for all new additions.

  • Key name for CVP Structured Config Folder
# Old Data model
structured_cvp_name: 'cvp'
structured_cvp: '{{ structured_dir }}/{{ structured_cvp_name }}'

# New Data model
structured_cvp_dir_name: 'cvp'
structured_cvp_dir: '{{ structured_dir }}/{{ structured_cvp_dir_name }}'

New features

  • eos_designs (eos_l3ls_evpn):

    • Add support for setting BGP Weight on BGP neighbors defined under tenant VRFs
    • Add support for adding raw EOS CLI directly from eos_designs data model
    • Add support for subinterfaces as tenant l3_interfaces
    • Add data model Warnings or Errors
    • Add support for not setting mgmt_ip on devices
    • Add support for configurable short_esi prefix
    • Ansible 3.x support
  • eos_cli_config_gen:

    • Add support for igmp ssm aware
    • Add support for interface_profiles
    • Add option to not generate device documentation
    • Add option to not generate default configuration
    • Add support for switchport phone config
    • Add support for setting router pim sparse-mode ssm range
    • Add support for additional PTP parameters
    • Add support for setting bgp weight on vrf neighbors
    • Add option to define custom daemon
    • Add option to set default originate for peer groups
    • Add support for service routing configuration
    • Add support for adding EOS CLI directly from eos_cli_config_gen data model
    • Add support for NTP authentication
  • plugins:

    • Add option to generate Warnings or Errors from arista.avd.defined test plugin
  • documentation:

    • Add contribution guide

Fixed issues

  • eos_designs:

    • Add missing delegate_to: localhost to some eos_designs tasks
    • Use directory vars in all tasks instead of static paths
    • Remove Unused profile key from connected_endpoints output
    • Fix config issue for endpoint adapters with unsorted switches variable
    • Fix missing Vlan filtering on l2leaf when l3leaf‘s filter definitions are set as l3leaf.defaults.filter
    • Fix peer_interface set to wrong value on spine when using rfc5549
    • Fix various issues with rfc5549 depending on how values are set
    • Fix wrong descriptions and peer_interface on spines when l3leaf‘s uplink_to_spine_interfaces is defined on node-level
    • Fix wrong descriptions on port-channel between l3leaf and l2leaf
  • eos_cli_config_gen:
  • Use directory vars in all tasks instead of static paths
  • Fix missing default VRF from generated TerminAttr configuration
  • Fix missing access vlan when switchport mode is dot1q tunnel
  • Add missing documentation of icmp redirect
  • Remove extra spaces from rendering of ntp with default VRF
  • Add missing documentation of gateway and ipv6_gateway on management_ interfaces

Release 2.1.1

New Features

  • eos_designs (eos_l3ls_evpn):

    • BGP: add support for address-family IPv6 prefix-lists
    • Allow override of IP assignment template logic

Fixed issues

  • eos_validate_state:

    • Fix issue with lldp topology tests reporting false error

Release 2.1.0

New Requirements

ansible>=2.10,<2.11

New features

  • eos_designs (eos_l3ls_evpn):

    • EVPN host-flap settings
    • Support for 3 stage + L2 Leafs topology with RFC5549 eBGP underlay and eBGP Overlay
    • Support for 2-level inheritance on port-profiles
    • Options to change MLAG vlan ids
    • Support multiple keys support for connected endpoints (Previously know as servers)
    • LACP fallback to connected endpoints
    • Support for A/A model to connect L2LEAF
    • Interface to VRF assignment in L3 Edge
    • SNMP settings
    • capability to define max spines to allow for growth without re ip addressing
    • “always_include_vrfs_in_tenants” in l3leaf filter
    • L2 ports with L2 MTU (7050 platforms only)
    • BGP peer group names option
    • Support for additional-route-targets to Tenant VRFs
    • STP bpduguard to port channels and interfaces
    • Initial support for traffic-policy feature
  • eos_cli_config_gen:

    • EVPN host-flap settings
    • Policy Based Routing support
    • L2 protocol encapsulation
    • LACP timer fast option
    • Support for MPLS and LDP
    • LACP fallback
    • RFC5549 support
    • TACACS timeout and SAND MCast replication
    • SNMP communities
    • l3dot1q support for interfaces
    • Interface bfd settings
    • L2 ports with L2 MTU (7050 platforms only)
    • AAA support authentication for enable mode
    • BGP support for IPv6 unicast AF network statement
    • Various enhancement to OSPF
    • class-maps and policy-maps for QOS
    • Support for L3 sub interface for ethernet and port-channel
    • Support for traffic-policy feature
    • Make ingestkey optional in TerminAttr
  • plugins:

    • New arista.avd.contains test plugin
    • New yaml_templates_to_facts action plugin

Fixed issues

  • eos_cli_config_gen:

    • Update documentation template to set ingestkey optional
  • eos_validate_states:

    • Provide protection when the interface’s description is not defined

Release 2.0.0

New Requirements

netaddr==0.7.19
Jinja2==2.11.3
treelib==1.5.5
cvprac==1.0.5
paramiko==2.7.1
jsonschema==3.2.0
requests==2.25.1
PyYAML==5.4.1
md-toc==7.1.0

Role Name Change

  • eos_l3ls_evpn has been replaced / renamed to eos_designs.
  • This builds the foundation for arista.avd collection to support multiple designs i.e L2LS in future releases!

New Features

  • eos_designs (eos_l3ls_evpn):

    • Support for 5-stage CLOS using new “super-spines”
    • Support for dedicated Route Reflectors / Route Servers using new “overlay_controllers”
    • Custom Structured Configuration w. multiple custom_structured_configuration prefixes
    • Basic PTP support
    • L2leaf inband management
    • BGP RT Membership support
    • Support for underlay DCI including MACSEC and PTP using “l3edge”
    • Additional Tenant VRF settings to support BGP and static routes
    • Allow custom VLAN for iBGP MLAG pair
    • Make MLAG Dual Primary Detection disabled by default and enable by configuration
    • Port-profile inheritance for all settings
    • Set origin incomplete on routes from MLAG iBGP peer by default
    • Enable support for flexible speed configurations
    • Hardware LAG platform setting
    • Filter feature in default section for l2leaf and l3leaf devices
  • eos_cli_config_gen:

    • Errdisable
    • interface_defaults
    • QOS support
    • Enable password
    • Aggregate routes in BGP VRF
    • BGP RT Membership
    • Basic PTP capabilities
    • Options to configure SSH ciphers and algorithms
    • Enhance BGP VRF Neighbor settings
    • Support for logging event under interfaces
    • Explicit no shutdown and switchport config
    • Additional STP knobs and MST configuration settings
    • Route-map support to peer groups for EVPN
    • Support disableaaa option for TerminAttr
    • Global ARP timer option
  • plugins:

    • New default filter plugin
    • New esi management filter plugin
    • New defined test plugin

Data model modifications

This section provides an overview of only the data model that have changed from the previous release that would require user modifications. See the release notes and role documentation for all new additions.

eos_cli_config_gen:

  • SNMP local interfaces changed to dictionary and SNMP ACLs changed to lists.
# Old data model
snmp_server:
  ipv4_access_list: < ipv4-access-list >
  ipv6_access_list: < ipv6-access-list >
  local_interfaces:
    - name: < interface_name_1 >
      vrf: < vrf_name >

# New data model
snmp_server:
  ipv4_acls:
    - name: < ipv4-access-list >
      vrf: < vrf >
    - name: < ipv4-access-list >
  ipv6_acls:
    - name: < ipv6-access-list >
      vrf: < vrf >
    - name: < ipv6-access-list >
  local_interfaces:
    < interface_name_1 >:
      vrf: < vrf_name >
    < interface_name_2 >:
    < interface_name_3 >:
      vrf: < vrf_name >
  • Router BFD previously bfd_multihop to reflect the eos cli.
# Old data model
bfd_multihop:
  interval: < rate in milliseconds >
  min_rx: < rate in milliseconds >
  multiplier: < 3-50 >

# New data model
router_bfd:
  multihop:
    interval: < rate in milliseconds >
    min_rx: < rate in milliseconds >
    multiplier: < 3-50 >
  • Modified router bgp send-community so all now use the same style of configuration and no empty string.
# Old data model
router_bgp:
  peer_groups:
    < peer_group_name_1>:
      type: < ipv4 | evpn >
      send_community: < true | false >
  vrfs:
    < vrf_name_1 >:
      neighbors:
        < neighbor_ip_address >:
          send_community: < string | leave empty for all communities >

# New Data model
router_bgp:
  peer_groups:
    < peer_group_name_1>:
      send_community: < standard | extended | large | all >
  vrfs:
    < vrf_name_1 >:
      neighbors:
        < neighbor_ip_address >:
          send_community: < standard | extended | large | all >
  • Modified address family definition for BGP neighbors in VRFs to match the same model as neighbors in default VRF.
# Old data model
router_bgp:
  vrfs:
    < vrf_name_1 >:
      neighbors:
        < neighbor_ip_address >:
          address_family:
            - < address_family_1 >
            - < address_family_2 >

# New Data model
router_bgp:
  vrfs:
    < vrf_name_1 >:
      address_families:
        < address_family >:
          neighbors:
            < neighbor_ip_address >:
              activate: < true | false >
  • Modified router_isis data model to avoid static configuration
# Old data model
router_isis:
  instance: <ISIS Instance Name>
  net: < CLNS Address to run ISIS | format 49.0001.0001.0000.0001.00 >
  router_id: < IPv4_address >
  no_passive_interfaces: < List no-passive-interface >
  is_type: < level-1 | level-1-2 | level-2 >
  address_family: < List of Address Families >
  isis_af_defaults:
    - maximum-paths < Integer 1-64 >
  segment_routing_mpls:
    router_id: < router_id >

# New Data model
router_isis:
  instance: <ISIS Instance Name>
  net: < CLNS Address to run ISIS | format 49.0001.0001.0000.0001.00 >
  router_id: < IPv4_address >
  log_adjacency_changes: < true | false >
  no_passive_interfaces: < List no-passive-interface >
  is_type: < level-1 | level-1-2 | level-2 >
  address_family: < List of Address Families >
  isis_af_defaults:
    - maximum-paths < Integer 1-64 >
  segment_routing_mpls:
    enabled: < true | false >
    router_id: < router_id >
  • Modified tcam_profile data model to allow profile configuration and reflect the eos cli
# Old data model
tcam_profile:
  - < tcam_profile >

# New Data model
tcam_profile:
  system: < tcam profile name to activate >
  profiles:
    < tcam_profile 01 >: "{{lookup('file', '< path to TCAM profile using EOS syntax >')}}"
  • Modified spanning_tree data model to allow for more configuration options
# Old data model
spanning_tree:
  mode: < spanning_tree_mode >
  priority: < priority_level >

# New Data model
spanning_tree:
  mode: < mstp | rstp | rapid-pvst | none >
  rstp_priority: < priority >
  • Rename summary_address to summary_addresses under router_ospf.process_ids. data model
# Old data model
router_ospf:
  process_ids:
    < process_id >:
      summary_address:
        - prefix: < summary_prefix_01 >
          tag: < string >
        - prefix: < summary_prefix_02 >
          attribute_map: < string >
        - prefix: < summary_prefix_03 >
          not_advertise: < true >
        - prefix: < summary_prefix_04 >
        - prefix: < summary_prefix_05 >

# New Data model
router_ospf:
  process_ids:
    < process_id >:
      summary_addresses:
        - prefix: < summary_prefix_01 >
          tag: < string >
        - prefix: < summary_prefix_02 >
          attribute_map: < string >
        - prefix: < summary_prefix_03 >
          not_advertise: < true >
        - prefix: < summary_prefix_04 >
        - prefix: < summary_prefix_05 >
  • Change default behavior of MLAG dual-primary detection so it is now disabled by default and configurable.
#New Datamodel
l3leaf:
  node_groups:
    < node_group_1 >:
      mlag_dual_primary_detection: < true | false -> default false >

Other Notable changes

Output Folders Changes

Output for eos_designs fabric documentation is now saved under documentation/fabric instead of documentation/{{ fabric_name }}.

eos_designs MLAG iBGP Changes

New default setting origin to incomplete on routes received from MLAG iBGP peer on l3leafs. The aim is to avoid suboptimal forwarding over the peerlink for some traffic. (see mlag_ibgp_origin_incomplete)

New Roles

  • eos_snapshot: Collect commands on Arista EOS devices and generate a report. It supports reports with the following format: text, markdown, json and yaml
  • dhcp_provisioner: Build and deploy a DHCP configuration file to support Zero Touch Provisioning with Arista EOS devices.

Info

For detailed information please see the release tags: 2.0.0


Last update: November 24, 2022