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

Spec: Select the remote mechanism #149

Closed
denis-tingaikin opened this issue Oct 27, 2022 · 3 comments
Closed

Spec: Select the remote mechanism #149

denis-tingaikin opened this issue Oct 27, 2022 · 3 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@denis-tingaikin
Copy link
Member

Intro

Currently, we have two remote mechanisms: VXLAN (Ethernet) and Wireguard (IP).

The selection for those mechanisms is working fine because they have a diff by Payload.

What NSM should do if we will have a few IP mechanisms or a few Ethernet mechanisms?

Problems

  1. How to select a remote mech for a pair nsc/nse?
  2. How to select a remote mech for a couple of pairs nsc/nse?
  3. How to select a remote mech for a composition of nse?
  4. How to select a remote mech for a couple of compositions of nse?

Solutions

  1. Extend match metadata
  2. Your options
@denis-tingaikin denis-tingaikin added this to the v1.7.0 milestone Oct 27, 2022
@denis-tingaikin denis-tingaikin added the enhancement New feature or request label Oct 27, 2022
@glazychev-art
Copy link
Contributor

Solution - Extend match metadata

  1. Add to registry.NetworkService.Matches.Metadata (link) a new map<string, string> filterMechanisms, where key - mechanism.Cls ("LOCAL" or "REMOTE"), value - array of allowed mechanisms (separated by ','). Allow all mechanisms if value is empty.
  2. Improve discover to store and handle information about which Endpoint corresponds to which Match.
  3. selectEndpointServer adds to context.Metadata a mechanism that can be taken from Match.Metadata.FilterMechanisms.
  4. filterMechanismsClient takes mechanism from context.Metadata and filters MechanismPreferences (alongside cls.LOCAL/REMOTE).

After that, only the desired mechanism should remain in the preferences.

@glazychev-art
Copy link
Contributor

@edwarnicke
Any thoughts?

@glazychev-art
Copy link
Contributor

I think we can close this issue because we found another solution here - networkservicemesh/sdk-vpp#638

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

No branches or pull requests

2 participants