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

New module for link aggregation support (mvp) #1143

Open
wants to merge 15 commits into
base: dev
Choose a base branch
from

Conversation

jbemmel
Copy link
Collaborator

@jbemmel jbemmel commented May 3, 2024

Example:

links:
- s1:
  s2:
  vlan.trunk: [ irb, route ]
  vlan.native: irb

- s1:
   lag.id: 1
   lag.peer: s2
  h1:

- s2:
   lag.id: 1
   lag.peer: s1
  h1:

For discussion - syntax could also work like vlans, declaring the links

@ipspace
Copy link
Owner

ipspace commented May 3, 2024

I like it the generic idea, and having lag.id on an interface is probably the way to go. However, the whole thing is way more complex than what can be done with your approach... unless we limit ourselves to LAG-with-VLAN-trunks, but then I know we'll pay a heavy price sometime in the future (see also: VLAN module).

For example, here's a simplest possible topology modeling a L3 LAG link between two adjacent nodes:

module: [ lag ]
nodes: [ r1, r2 ]
links:
- r1:
  r2:
  lag.id: 1
- r1:
  r2:
  lag.id: 1

You approach (fixing the interface names afterwards) would fail miserably, as we have to assign a single subnet to the LAG link. I think we have to do something similar to how we handle VLAN trunks and create extra virtual links for LAGs, turning the physical link into a L2-only link.

@jbemmel jbemmel marked this pull request as draft May 3, 2024 20:13
@jbemmel
Copy link
Collaborator Author

jbemmel commented May 4, 2024

Some changes - highlights:

  • Create virtual interfaces of type 'lag', move IP parameters there
  • Added frr support (no mc_lag, just basic bonding) -> made if_name configurable
  • Working MC_LAG interop example between sros and frr -> made LACP default enabled (link down detection doesn't work in clab)
  • Cleanup and basic test cases

TODO:

  • Test VLAN interop
  • Test gateway interop
  • Module documentation

@jbemmel jbemmel marked this pull request as ready for review May 4, 2024 02:32
@jbemmel jbemmel changed the title New module for link aggregation support (draft) New module for link aggregation support (mvp) May 4, 2024
@ipspace
Copy link
Owner

ipspace commented May 30, 2024

Is this ready or are you still working on it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants