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 support for NI with multiple ports #4123

Merged
merged 3 commits into from
Aug 8, 2024

Conversation

milan-zededa
Copy link
Contributor

@milan-zededa milan-zededa commented Aug 1, 2024

This commit implements support for Local NI with multiple ports attached.
API changes with detailed description can be found here:
lf-edge/eve-api#53
This is a continuation to PRs:
#4098
#4113
(next PR will bring documentation updates)

In summary, network instance can be now configured with "shared" port
label, potentially matching multiple device ports. The NI routing table
will contain routes from all the selected ports.

Shared labels can be also used to restrict port-forwarding to a subset
of NI ports and to create multipath static routes (routes with multiple
possible next-hops). For every multipath route, zedrouter will use
recently added portprober to select the best port at a given time (based
on the connectivity status, cost, etc.) and also to failover to another
port when the currently used port looses connectivity.

Eden-SDN example for NI with multiple ports: lf-edge/eden#1008

Copy link
Contributor

@eriknordmark eriknordmark left a comment

Choose a reason for hiding this comment

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

LGTM - kicking off tests in parallel with review discussion.

FWIW I see "Uplink" and "UplinkProber" in pkg/pillar/docs/zedrouter.md and in pkg/pillar/types/domainmgrtypes.go. Don't know if/when you want to change those.

Signed-off-by: Milan Lenco <milan@zededa.com>
@milan-zededa milan-zededa force-pushed the zedrouter-multiple-ports branch 2 times, most recently from 79bbc68 to 994cc58 Compare August 7, 2024 09:57
@milan-zededa
Copy link
Contributor Author

FWIW I see "Uplink" and "UplinkProber" in pkg/pillar/docs/zedrouter.md and in pkg/pillar/types/domainmgrtypes.go. Don't know if/when you want to change those.

There was an unused SwitchUplink attribute of VlanInfo in domainmgrtypes.go - I have removed it.
Documentation update will come in a separate PR. I have it already prepared in my EVE fork.

@milan-zededa milan-zededa force-pushed the zedrouter-multiple-ports branch 3 times, most recently from 4228967 to a13dd81 Compare August 7, 2024 13:24
This commit implements support for Local NI with multiple ports attached.
API changes with detailed description can be found here:
lf-edge/eve-api#53

In summary, network instance can be now configured with "shared" port
label, potentially matching multiple device ports. The NI routing table
will contain routes from all the selected ports.

Shared labels can be also used to restrict port-forwarding to a subset
of NI ports and to create multipath static routes (routes with multiple
possible next-hops). For every multipath route, zedrouter will use
recently added portprober to select the best port at a given time (based
on the connectivity status, cost, etc.) and also to failover to another
port when the currently used port looses connectivity.

Signed-off-by: Milan Lenco <milan@zededa.com>
uplinkprober was superseded by the newly introduced portprober

Signed-off-by: Milan Lenco <milan@zededa.com>
@eriknordmark eriknordmark merged commit 7820157 into lf-edge:master Aug 8, 2024
27 checks passed
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.

3 participants