-
Notifications
You must be signed in to change notification settings - Fork 124
Guide for adding new VPP version
Ondrej Fabry edited this page Feb 3, 2021
·
3 revisions
This document describes step-by-step process for adding support of a new VPP version to VPP Agent.
Steps
- add new version to
vpp.env
, but keep path to binapi code from previous version (VPP_2101_BINAPI=plugins/vpp/binapi/vpp2009
to force overwriting - regenerate binapi code
- this might throw issues if some plugin was renamed/removed
- to generate binapi without installing vpp to your host:
- run
make dev-image VPP_VERSION=2101
to build dev imaeg - run the built image with volume mount for your vpp-agent source code (
--volume $(pwd):/src/ligato/vpp-agent
) - inside image run
make generate-binapi VPP_VERSION=2101
- run
- try compile to the code
- this might throw some compilation errors, but most likely not since recent VPP versions add xxx_v2 messages instead of breaking old ones
- run integration tests -
make integration-tests VPP_VERSION=2101
- run e2e tests -
make e2e-tests VPP_VERSION=2101
- debug and resolve issues from failed tests in step 4. and 5.
- repeat 4-6 until all tests are passing
- finalize changes
- change path to binapi code in
vpp.env
to point to new folderplugins/vpp/binapi/vpp2101
- copy/paste generated binapi code to new folder vpp2101 and update all references inside from old version to new + rollback generated changes done on previous version
- rerun binapi generation to verify no changes are made
- list all vppcalls packages:
go list -f '{{if eq .Name "vppcalls"}}{{.Dir}}{{end}}' ./plugins/...
and for each of these:- copy/paste vppcalls implementation for the lastest supported version to a new folder
vpp2101
, rename packages and update all references inside to point to a new versionvpp2101
(check strings also)
- copy/paste vppcalls implementation for the lastest supported version to a new folder
- verify the code compiles
- verify tests still pass
- commit