Skip to content

Guide for adding new VPP version

Ondrej Fabry edited this page Feb 3, 2021 · 3 revisions

Guide to support for a new VPP version to VPP Agent

This document describes step-by-step process for adding support of a new VPP version to VPP Agent.

Steps

  1. 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
  2. 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
  1. 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
  1. run integration tests - make integration-tests VPP_VERSION=2101
  2. run e2e tests - make e2e-tests VPP_VERSION=2101
  3. debug and resolve issues from failed tests in step 4. and 5.
  4. repeat 4-6 until all tests are passing
  5. finalize changes
  • change path to binapi code in vpp.env to point to new folder plugins/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 version vpp2101 (check strings also)
  • verify the code compiles
  • verify tests still pass
  1. commit