Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EVPN ESI Support for Active/Active server connections #216

Merged
merged 15 commits into from
Sep 1, 2020
Merged

Add EVPN ESI Support for Active/Active server connections #216

merged 15 commits into from
Sep 1, 2020

Conversation

titom73
Copy link
Contributor

@titom73 titom73 commented Aug 11, 2020

Description

Add initial support for EVPN ESI support for port configuration. This PR covers following actions:

  • Capture inputs from SERVERS.YML
  • Generate a structured_configuration for LEAF devices.
  • Generate CLI configuration

Data model update:

EOS L3LS EVPN

Input for eos_l3ls_evpn

servers:
  server01_ESI:
    rack: RackA
    adapters:
      - type: nic
        server_ports: [Eth0, Eth1]
        switch_ports: [Ethernet7, Ethernet7]
        switches: [DC1-LEAF1A, DC1-LEAF1B]
        port_channel:
          state: present
          description: data
          mode: active
          esi: 0303:0202:0101
        profile: ALL

EOS CLI Config GEN

Input for eos_cli_config_gen

### Port-Channel Interfaces ###
port_channel_interfaces:
  Port-Channel7:
    description: server01_ESI_data
    vlans: 1-4093
    mode: trunk
    esi: 000:000:0303:0202:0101
    rt: 03:03:02:02:01:01
    lacp_id: 0303.0202.0101

Generated EOS configuration

interface Port-Channel100   
   switchport trunk allowed vlan 10, 20
   switchport mode trunk   
   !   
    evpn ethernet-segment      
      identifier 000:000:0303:0202:0101     
      route-target import 03:03:02:02:01:01
    lacp system-id 0303.0202.0101

Question in progress

  • Define a mechanism to generate RT for ESI.
  • Add support to generate automatically LACP system-id
- Input ESI: `0303:0202:0101`
- Final ESI format: `000:000:0303:0202:0101`
- LACP-ID: `0303.0202.0101`
- RT: `03:03:02:02:01:01`

Todo List

  • Update eos_l3ls_evpn.
  • Update eos_cli_config_gen.
  • Update Roles documentation.
  • Update CI to add ESI in testing.

@titom73 titom73 self-assigned this Aug 11, 2020
@titom73 titom73 added role: eos_cli_config_gen issue related to eos_cli_config_gen role role: eos_l3ls_evpn issue related to eos_l3ls_evpn role state: in-progress Currently work in progress type: enhancement New feature or request labels Aug 11, 2020
@titom73 titom73 linked an issue Aug 11, 2020 that may be closed by this pull request
2 tasks
While ESI needs 3 different IDs to run, this commit implement logic to
generate LACP ID and RT based on ESI

Example:

- Input ESI: 0303:0202:0101
- Final ESI format: 000:000:0303:0202:0101
- LACP-ID: 0303.0202.0101
- RT: 03:03:02:02:01:01
@titom73
Copy link
Contributor Author

titom73 commented Aug 11, 2020

Add logics to generate RT and LACP-ID

While ESI needs 3 different IDs to run, this commit implements logic to
generate LACP ID and RT based on ESI

Example:

  • Input ESI: 0303:0202:0101
  • Final ESI format: 000:000:0303:0202:0101
  • LACP-ID: 0303.0202.0101
  • RT: 03:03:02:02:01:01

@titom73
Copy link
Contributor Author

titom73 commented Aug 12, 2020

Known caveat: ESI configured on MLAG devices seems to not work with vEOS-LAB 4.24.0F

Ready for internal review and testing.

@titom73 titom73 marked this pull request as ready for review August 12, 2020 08:02
Add scenario to test:

- MLAG connection
- ESI connection
- Single Home connection
@titom73
Copy link
Contributor Author

titom73 commented Aug 31, 2020

PR Review Todo list:

  • Rename input ESI to short_esi (update documentation as well)
  • Apply a custom filter to transform short_esi to lacp_id

@titom73 titom73 added state: testing PR under testing and removed state: in-progress Currently work in progress labels Sep 1, 2020
@titom73
Copy link
Contributor Author

titom73 commented Sep 1, 2020

Problem spotted:

  • short_esi: 0303:0202:0101
  • rt: 03:03::0:20:2::01:01

Copy link
Member

@carlbuchmann carlbuchmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - reviewed with @titom73 and tested with validation lab

@carlbuchmann carlbuchmann merged commit 00c82f1 into aristanetworks:devel Sep 1, 2020
@carlbuchmann carlbuchmann added this to the v1.1.0 milestone Sep 1, 2020
@titom73 titom73 deleted the features/esi-support-215 branch October 23, 2020 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
role: eos_cli_config_gen issue related to eos_cli_config_gen role role: eos_l3ls_evpn issue related to eos_l3ls_evpn role state: testing PR under testing type: enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add ESI support eos_l3ls_evpn role
2 participants