-
Notifications
You must be signed in to change notification settings - Fork 124
VPP compatibility
Ondrej Fabry edited this page Dec 20, 2019
·
6 revisions
In vpp-agent, we maintain compatibility with multiple versions of VPP using a single branch.
we need to do following for each VPP version:
- generate Go code for the VPP binary API using GoVPP's
binapi-generator
- implement VPP core API and other VPP handler APIs (
vppcalls
packages) using the generated binapi - register the handler implementation together along binapi messages used
- include a blank import for the implemented handler package to include in the build
To achieve multi-version support in the same build we need to pick the right implementation during runtime. Upon connecting to VPP we do a compatibility check by checking a list of binapi message. We try each include version one by one until we find one for which all messages pass the compatibility check.