-
Notifications
You must be signed in to change notification settings - Fork 12
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 support for link aggregation #863
Comments
Alt. 1 vs. 2I think if we go for alternative 1, with +--rw infix-if:lag
| +--rw (infix-if:mode)?
| | +--:(infix-if:lacp)
- | | | +--rw infix-if:lacp
+ | | | +--rw infix-if:lacp!
| | | +--rw infix-if:active? boolean
| | | +--rw infix-if:rate? enumeration
| | +--:(infix-if:static)
- | | +--rw infix-if:static
+ | | +--rw infix-if:static!
| | +--rw infix-if:arp-monitor
| | +--rw infix-if:arp-interval? uint32
| | +--rw infix-if:arp-ip-target* inet:ipv4-address
| +--rw infix-if:mii-monitor MII MonitorI'm not opposed to having this configurable. But I think we should think about just going with some sane deaults to begin with. I can see the use-case for If we do decide to support it being configurable, then I would like us to find a better name than ARP MonitorIs this something you run per-link or on the LAG itself? Is this something we can leave out and model via a generic arp/ping trigger that we could also associate with other objects (e.g. routes)? |
I'm thinking we go for For all the Here is more about the ARP Monitor https://www.kernel.org/doc/html/latest/networking/bonding.html#arp-monitor-operation When changing the mode of an aggregate the aggregate needs to be down and not have any link members. So to make the code easier I added the Also, changing mode the choice-case alternative, or with presence containers, require the user to Finally, some of the |
Thanks for the link! 👍 Re:
|
Sure we can skip both mii- and arp-monitor for now. I really liked the up/down delay thingy though, would be great protection against link flapping, unless we find other useful link qualifying mechanisms, of course. The Conclusion, not exposing mii- or arp-monitor now, going with the defaults in the bond driver means:
This works with both lacp and static (balance-xor) modes. Alright, going with the explicit Thanks for the feedback!! ❤️ |
💯 I also liked that part! It was just the |
Alright, for future compatibility, how about this (choice-case based) simplified link-monitoring support?
|
|
Um, OK just to be perfectly clear: in a distant future we may want to add ARP Monitor support, in which case the model would look like this: +--rw infix-if:lag | ... | +--rw (infix-if:link-monitor)? | +--:(infix-if:arp-monitor) | | +--rw infix-if:arp-monitor | | +--rw infix-if:arp-interval? uint32 | | +--rw infix-if:arp-ip-target* inet:ipv4-address | +--:(infix-if:see-below-for-more ...) Admittedly I struggled with "mii" monitor, but what you want is this, right? +--rw infix-if:lag | ... | +--rw (infix-if:link-monitor)? | +--:(infix-if:arp-monitor) | | +--rw infix-if:arp-monitor | | +--rw infix-if:arp-interval? uint32 | | +--rw infix-if:arp-ip-target* inet:ipv4-address | +--:(infix-if:link-monitor) | +--rw infix-if:link-monitor | +--rw infix-if:updelay? uint32 | +--rw infix-if:downdelay? uint32 I'm absolutely fine with |
ACK 😄 My guess would be that the original feaure was the "read the PHY registers" mode, which in the kernel has historically been called "MII registers" instead of "MDIO registers"; ergo: |
Makes sense, thanks! 🙏 |
Description
Most network operating systems for switches and routers support link aggregation. In Linux we have both the bond and team drivers and since bond supports LACP it should be sufficient for Infix.
YANG Alternative 1
Using choice-case:
YANG Alternative 2
Additional Information
No response
General Information
Anyone can help out by sponsoring development of new features or contributing pull requests.
Please use this issue for discussions related to the feature.
The text was updated successfully, but these errors were encountered: