jpirko / libteam

team netdevice library
GNU Lesser General Public License v2.1
225 stars 57 forks source link

Dynamic allocation of operational Keys #47

Closed ekez-graw closed 4 years ago

ekez-graw commented 4 years ago

I have been trying to understand if there is a way of making teamd/lacp, i.e. teamd_runner_lacp, handle situations described as "5.6.2 Dynamic allocation of operational Keys" in 802.1ax. This would for example make links that auto-neg a lower speed in an aggregate becoming temporarily non-active. This seems not to be possible in the current teamd implementation, but I might be wrong.

I have been prototyping with a solution which uses the states in the lacp runner to disable ports that are not the best speed; https://github.com/westermo/libteam/tree/wmo/mismatch This seems to work (I have only tested sunshine situations yet though so the concept might not be ok after further scrutiny)

However, after studying "5.6.2 Dynamic allocation of operational Keys" I realize that the best way forward seems to be operational keys? My main question is; Is there a way of achieving something similar to dynamic allocation of operational keys with the teamd lacp implementation?

Best Regards, Leif

ekez-graw commented 4 years ago

After further analysis, the problem seems to have been that the default "select_policy" is "lacp_prio". I have tried "bandwidth" as select_policy which renders the behavior I was asking for (with the exception that the low speed port is still "active"). Sorry if this has caused any inconvenience, I think the issue can be closed. The subject of operational keys might still be interesting as such, but should not be related to my previous erroneous claim that teamd is not behaving correctly.