-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
zebra: Distributed Dataplane module #522
Conversation
Using the recently added feature to allow loading modules dynamically with dlopen, a few hooks are added to be able to have a remote dataplane. In particular, control is outsourced for: - Add and delete IP addresses. - Add and delete IP routes. - Add and delete MPLS routes. - Add and delete Pseudowires. A new command line parameter, --dp-opts, is added to be able to tweak module execution. It's up to the module to parse and use content passed into it. Besides, support for ZMQ communication is added to FRR thread library. Signed-off-by: ßingen <bingen@voltanet.io>
Continous Integration Result: FAILEDSee below for issues. This is a comment from an EXPERIMENTAL automated CI system. Get source and apply patch from patchwork: SuccessfulBuilding Stage: FailedCentOS7 amd64 build: Successful FreeBSD10 amd64 build: FailedMake failed for FreeBSD10 amd64 build:
FreeBSD10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI003BUILD/config.status/config.status OmniOS amd64 build: FailedMake failed for OmniOS amd64 build:
OmniOS amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI010BUILD/config.status/config.status OpenBSD60 amd64 build: FailedMake failed for OpenBSD60 amd64 build:
OpenBSD60 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI011BUILD/config.status/config.status NetBSD7 amd64 build: FailedMake failed for NetBSD7 amd64 build:
NetBSD7 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI012BUILD/config.status/config.status FreeBSD11 amd64 build: FailedMake failed for FreeBSD11 amd64 build:
FreeBSD11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI009BUILD/config.status/config.status Ubuntu1604 amd64 build: FailedUbuntu1604 amd64 build: Unknown Log <log_snapcraft.txt> NetBSD6 amd64 build: FailedMake failed for NetBSD6 amd64 build:
NetBSD6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI007BUILD/config.status/config.status FreeBSD9 amd64 build: FailedMake failed for FreeBSD9 amd64 build:
FreeBSD9 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-674/artifact/CI004BUILD/config.status/config.status |
Can you add some high level explanation on what the use case for this is and how it works? Especially interested in how this ties into ZeroMQ. Message passing for distributing routes or something? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Barring any other actual review comments I may or may not have ( I have not looked at this yet ) but it is not appropriate to put this forward against stable/3.0 This is completely new functionality and does not belong on a branch that we are attempting to stabilize
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does ZMQ provide us that we need to have this new functionality in FRR? My quick google searches do not provide any clear insight into what different problem we are solving here that we need to have?
Additionally the lib/thread.[ch] changes break the abstraction that I was trying to create when I separated out poll and select.
Why don't the PW changes use the FPM -or- the zapi to get this data into zebra. Additionally why does this belong in zebra?
I think that this serie needs to be splited:
|
Can we get the ldpd/zebra VPLS additions in a separate first PR? |
ZMQ support can be used for whatever anybody can imagine, for example, the IDL with Capnproto @eqvinox was working on. |
Using the recently added feature to allow loading modules dynamically
with dlopen, a few hooks are added to be able to have a remote
dataplane. In particular, control is outsourced for:
If an external module is enabled, installation of routes is held in Zebra and the module is responsible for it.
A new command line parameter, --dp-opts, is added to be able to tweak
module execution. It's up to the module to parse and use content passed
into it.
Besides, support for ZMQ communication is added to FRR thread library.
Signed-off-by: ßingen bingen@voltanet.io