313 Commits

Author SHA1 Message Date
Nathan Skrzypczak
1e167a4aad docs: make docs build incremental
This patch makes the `make docs` directive incremental
avoiding re-running the siphon when the source hasn't
changed, and leveraging sphinx internal cache.
It adds a `make rebuild-docs` directive for cases where
this caching logic might break, e.g. in CI.
The virtualenv doesn't also get recreated on each build,
which might be enough when writing docs, provided
automated process leverage its rebuild counterpart.

Type: improvement

Change-Id: Ie90de3adebeed017b249cad81c6c160719f71e8d
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-05-24 16:58:36 -04:00
Klement Sekera
d9b0c6fbf7 tests: replace pycodestyle with black
Drop pycodestyle for code style checking in favor of black. Black is
much faster, stable PEP8 compliant code style checker offering also
automatic formatting. It aims to be very stable and produce smallest
diffs. It's used by many small and big projects.

Running checkstyle with black takes a few seconds with a terse output.
Thus, test-checkstyle-diff is no longer necessary.

Expand scope of checkstyle to all python files in the repo, replacing
test-checkstyle with checkstyle-python.

Also, fixstyle-python is now available for automatic style formatting.

Note: python virtualenv has been consolidated in test/Makefile,
test/requirements*.txt which will eventually be moved to a central
location.  This is required to simply the automated generation of
docker executor images in the CI.

Type: improvement
Change-Id: I022a326603485f58585e879ac0f697fceefbc9c8
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-05-10 18:52:08 +00:00
Florin Coras
8eeb851d6f build: remove mbedtls from rpm dependencies
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I50dfed0fba3c8547f5c52998cf777f2ed1d2e4a5
2022-04-28 23:11:42 +00:00
Damjan Marion
8cb5d36c7e build: c compiler version warnings
Type: make
Change-Id: I9455da47f03383df822436d1adc4c4b5e58c7cf9
Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-04-15 17:52:43 +00:00
Tianyu Li
46f1dbc198 build: fix rpm build nasm not found
Type: make
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I7ac1d0472edf8d48eac21a7b580a06456bf60c30
2022-04-13 09:26:33 +00:00
Laszlo Kiraly
bf91b48cbb build: opensuse: remove nasm, change to clang
Type: make

Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
Change-Id: I3951be5be95a7fb76f54c4ce0daab0748cb8419c
2022-04-08 16:16:19 +00:00
Damjan Marion
aa659ef5c3 build: remove nasm
Type: make
Change-Id: I5ee34e9d7156ccdc7a8310e8332347d850459495
Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-04-06 08:19:14 +00:00
Dave Wallace
4a332319cc build: remove clang-format-10
- No longer used now that ubuntu-18.04 is deprecated.
- Change default to clang-format-11 in checkstyle.sh

Type: make

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I202244563738417bf4ae5b22fc8e2804bff2d25f
2022-03-22 14:28:37 +00:00
Nathan Skrzypczak
d591b82cc8 misc: Improve go bindings gen
Type: improvement

Change-Id: Id705dab895602a60b053296b560ca3db5b0cd344
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2022-03-17 13:05:48 +00:00
Tianyu Li
ab5a124b1d build: fix centos 8 steam build install-dep
make install-dep sometimes failed at
downloading metadata for repository 'powertools-source':
disable unnecessary powertools-source repo.

Type: fix
Fixes: 1affb31ef528 ("build: fix centos-8 'make install-deps'")
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I481d6106eea38190b3ddd79e8614b2ead7130807
2022-03-10 19:40:42 +00:00
Klement Sekera
b23ffd7ef2 tests: make tests less make dependent
Implement command line argument parsing instead of passing arguments via
environment variables. Add script for running tests without having to
invoke make. Deprecate running tests via make.

Type: improvement
Change-Id: I2e3054a61a2ae25d460e9be00be7d7705fbf943e
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-02-17 18:02:35 +00:00
Andrew Yourtchenko
a47203128b build: Make the build work on Debian 11
Debian 11 has some packages that have changed, and need adjustment.
Also - its default compiler is gcc 10, which, contrary to either gcc 8
or gcc 11 prints a bunch of warnings, which fails compilation.
And there is no gcc 11 package.

Therefore, use clang for this build.

Additionally, python 3.9 has exposed this issue:
https://bugs.python.org/issue42580

Therefore, make a local patch to scapy to tackle it.

Type: feature
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I7b9c0f852ab97fe3c1feca3f22020ac0970ba3e2
2022-02-07 18:40:51 +00:00
Dave Wallace
fa5aabbf0b tests: Update python packages
- pip == 22.0.3
- pip-tools == 6.5.0
- setuptools == 60.7.1 (now pinned in test/Makefile)
- upgrade packages in requirements-3.txt
- install iperf3 for 'make test TEST=vcl'

Type: test

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I1bd85f10fb4f6ba87b9bc1267905e5f1b8eb16de
2022-02-07 16:39:35 +00:00
Klement Sekera
ea2721f766 tests: remove constant argument
Reduce number of arguments by removing an argument which is only ever
used with same constant value.

Type: refactor
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I061635b28031d75eb1f853b570e85f6e5a9094df
2022-02-05 20:11:44 +00:00
Klement Sekera
3a1a86f87f tests: make VPP_BUILD_DIR to point to correct dir
Make VPP_BUILD_DIR hold the correct value and adjust paths where
necessary.

Type: refactor
Change-Id: I5bc60666c04919956bf26badaf1ee1f1b188ef65
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2022-01-31 14:58:19 +00:00
Florin Coras
1f2070a0fe misc: remove mbedtls from dependencies
Type: make

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I461d1f6289a4bb97c77952b87a35c90f37ec9d26
2022-01-29 04:26:25 +00:00
Neale Ranns
616447c392 linux-cp: Linux Control Plane Netlink Listener
Type: feature

please see FEATURE.yaml for details.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Signed-off-by: Pim van Pelt <pim@ipng.nl>
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I6255fd9953d0b03e6b4fe75b67a6845a7c206f74
Signed-off-by: Pim van Pelt <pim@ipng.nl>
2022-01-28 10:46:31 +00:00
Dave Wallace
bfcd239682 build rpm-packaging: Remove boost dependencies from VOM
- VOM was deprecated in VPP 21.06, but the boost library
  dependencies did not get cleaned up.

Type: make

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I0fb860a7a37676c1a1a0981c91f383882d9a820a
2021-11-30 19:59:02 +00:00
Laszlo Kiraly
e56008519b build: (opensuse) Revert build remove opensuse build infra
Added missing deps
Removed Thumbleweed support
Changed python2 to python3
Added Dockerfile for suse-leap build

Type: make
Change-Id: Ie73d2382a73ebc9d4475ace1a8f818fe38cf40c0
Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
2021-11-19 15:06:08 +00:00
Dave Wallace
719d560208 build: upgrade to enchant-2
- Remove enchant from RPM builds since docs are
  generated on ubuntu-20.04 in CI jobs.
- Clean up DEB_DEPENDS copy-pasta
- Add clang-11 for newest Ubuntu/Debian OS
  variants

Type: docs

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I802f0b356bd412dbc23ee98d209f7cc3ab24ba4c
2021-11-16 18:16:12 +00:00
Dave Wallace
fc283bc040 build: Remove ubuntu-18.04 install dependencies
- Per agreement at VPP community meeting, end support for
  ubuntu-18.04

Type: make

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I20ae1531e571ba0aad233d47c2e5b73ee3f964b6
2021-11-16 15:50:09 +00:00
Dave Wallace
fb1135da99 build: install clang-format-11
- Don't make it the default yet

Type: make

Change-Id: I3aabfd32f7ffd99e10db372747a0ba65fdc76db2
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-11-09 23:29:58 +00:00
Damjan Marion
0f814f5bd5 build: missing clang in deps for ubuntu 20.04
Type: make
Change-Id: Ica706f0284873f6bd8b8d868c965812a139748cf
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-11-09 16:17:23 +01:00
Dave Wallace
51a037daf2 tests docs: fix jsonschema dependency
- docs requires jsonschema which is only supported
  on python 3.7 or newer.  This causes 'make test'
  to fail on Ubuntu 18.04

Type: fix
Fixes: 9ad39c026

Change-Id: I0935c569ac102ea1dba6112f458e6ee10330e474
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-11-06 17:33:14 +00:00
Dave Wallace
78b4f4e19b tests: update python packages
- Also fix docs requirements and venv cleanup
  required for docker executor building

Type: test

Change-Id: I839423224d95c45af42f459217887f4201cbb11a
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-11-02 22:32:18 +00:00
Nathan Skrzypczak
9ad39c026c docs: better docs, mv doxygen to sphinx
This patch refactors the VPP sphinx docs
in order to make it easier to consume
for external readers as well as VPP developers.

It also makes sphinx the single source
of documentation, which simplifies maintenance
and operation.

Most important updates are:

- reformat the existing documentation as rst
- split RELEASE.md and move it into separate rst files
- remove section 'events'
- remove section 'archive'
- remove section 'related projects'
- remove section 'feature by release'
- remove section 'Various links'
- make (Configuration reference, CLI docs,
  developer docs) top level items in the list
- move 'Use Cases' as part of 'About VPP'
- move 'Troubleshooting' as part of 'Getting Started'
- move test framework docs into 'Developer Documentation'
- add a 'Contributing' section for gerrit,
  docs and other contributer related infos
- deprecate doxygen and test-docs targets
- redirect the "make doxygen" target to "make docs"

Type: refactor

Change-Id: I552a5645d5b7964d547f99b1336e2ac24e7c209f
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-10-13 23:22:32 +00:00
Damjan Marion
5546e43f79 build: don't hardcode triplet, allow specifying custom lib dir
Type: fix
Change-Id: I33f364fda88914f88f9b976cb83e6d3ff466f0bb
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
2021-10-05 16:44:32 +00:00
Nick Brown
b8e7a45d56 build: consistent debhelper 10 support
Type: fix

debian/compat contents were set to 10, but debhelper build dependency,
which is the same thing, was set to only 9. Both are not needed,
debian/compat being deprecated, so use only the latter.
At compat level 10, dh-systemd is integrated directly into debhelper, so
build dependency not needed (And in Debian Bullseye dh-systemd
transitional package is completely removed).
See: https://manpages.debian.org/testing/debhelper/debhelper.7.en.html#COMPATIBILITY_LEVELS

Signed-off-by: Nick Brown <nickbroon@gmail.com>
Change-Id: I5809b739334076d7fa8389b076a97f1648726e6e
2021-08-12 12:24:40 +00:00
Dave Wallace
e20d3c8c00 build: fix centos-8 cmake missing package dependency
Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I199fea4607cf38a127ed31b2ddf1dd993a2462ba
2021-06-05 15:46:15 +00:00
Tianyu Li
0b65213475 build: fix build error after make wipe
ninja: error: '/home/vpp/src/vpp-api/vapi/fake.api.json',
needed by 'CMakeFiles/vpp-api/vapi/fake.api.vapi.h',
missing and no known rule to make it

Recent fake.api.json has been moved from test/ to src/,
update make wipe to reflect the movement.

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I1e8ef414a3f8a2fce11767e0778fe21e14d54e6f
2021-06-04 18:06:43 +08:00
Dave Wallace
18c17cb8af build: fix install-deps on centos-8
- Required to fix CI jobs failing due to errant
  upgrade of glibc-devel which cannot be found.

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Iea5ae51de25b7ade1f75e3ce34d8383ed97f12ef
2021-06-03 17:37:27 -04:00
Arthur de Kerhor
9cfbd3b786 misc: bug fixes and improvements for stats Fuse fs
Added syslogs
Added support for symlinks
Relocated make commands in a local Makefile
Dumping stats on index instead of paths
Updated README
Added go.mod and go.sum with relevant dependencies for the module

Type: fix
Change-Id: I2c91317939b2f4d765771ab7038372ae27d3109d
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-06-03 07:25:04 +00:00
Andrew Yourtchenko
bfcd4b9868 build: fix the "show version" output in the centos release builds
A couple of releases ago I made a change that slightly changes
the naming of artifacts, in order to make the version sorting better.
However, that change broke the "show version" output of the VPP
in the RPM - that build copies the entire source tree into
a new location and builds there, supplying the version
information in .version file rather than using git describe.

Updating only the version script and not the .version file content
resulted in the VPP release builds within the RPM installs have
the "count of commits since tagging" being zero and the commit ID,
rather than having XX.YY-release format.

A couple of releases - 20.09 and 21.01, saw a more haphazard solution,
but it is proper to fix the content of the .version file so it
is all consistent.

This commit fixes the contents of this file made for the RPM build, so that
the versioning script does not see unexpected input, thus addressing
the issue of "show version" in the release build.

Change-Id: I0af68e69b1e40fc49ade759bb2f0ed9f47614217
Type: fix
Fixes: 1060332e62d1216bf33c697d0a54ba35d4903eb3
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-05-17 17:37:57 +00:00
Damjan Marion
88b2e3682b misc: experimental configure script
Type: make
Change-Id: Iaeb9d22eec9a7a763b63899814a44e78c8050f1f
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-30 17:02:32 +00:00
Damjan Marion
ac8f936fdc build: Makefile cleanup
Type: make
Change-Id: I751b0a25161c6eb8614ca19f7c77a4de82401f3d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-27 23:42:02 +00:00
Vladimir Lavor
3ff1598846 misc: auto-generate go bindings
Type: feature

Added target 'make go-api-files' creating compatible go bindings
using JSON API definition and GoVPP binary API generator.

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: I5bae113b85eaf5ebda8e292d34c9826075ef19b5
2021-04-27 09:24:48 +00:00
Klement Sekera
e263685ac8 tests: support attaching to existing vpp
Introduce a new option DEBUG=attach to run a test against existing
already running vpp. A new target 'make test-start-gdb' will spawn VPP
in gdb for this purpose. Customization options explained in test-help.

Type: improvement
Change-Id: Ia160a85b33da3b2df292d44bb95729af9dd9da96
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-04-12 10:11:36 +00:00
Klement Sekera
e0b63b2978 tests: introduce test-checkstyle-diff
Make test-checkstyle-diff is a new target which checks PEP8 compliance
only for changed files. This makes it faster to execute and also more
readable as most of the time, only changed files will fail.

Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I71baca76ab3a21a7a3790617cbfb0d48aacbd9ec
2021-03-25 09:22:52 +00:00
Arthur de Kerhor
1f13f8fd8a misc: fuse fs for the stats segment
This extra allows to mount a FUSE filesystem reflecting
the state of the stats segment.

Type: feature

Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Change-Id: I692f9ca5a65c1123b3cf28c761455eec36049791
2021-03-24 12:16:43 +00:00
Ray Kinsella
718359881d misc: fix checkstyle on fedora
The fedora clang-format command helpfully does not include the version
suffix, and places clang-format-diff in /usr/share/clang.

Have summited #1939018 in Fedora, to fix upstream.
https://bugzilla.redhat.com/show_bug.cgi?id=1939018

Until then ...

Type: fix

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: Ibceae0fc15e7461c24288ee04f4d28943f889c36
2021-03-16 21:36:28 +00:00
Ole Troan
ab9f57355f api: crchcecker ignore version < 1.0.0 and outside of src directory
- For check patchset ignore files outside of src directory
- For check patchset ignore files that have version < 1.0.0
- fix Pylint warnings
- Modify vppapigen_crc to include version in JSON output

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I171cf6397e129e2438b2a494c5656236a7810f7b
2021-03-05 10:52:51 +00:00
Andrew Yourtchenko
f457a3886a build: add libmemif as part of build-coverity target
Change-Id: I81a3b5d0845724da40b483832a8eaed081e6e4ed
Type: improvement
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-03-04 10:49:18 +00:00
Andrew Yourtchenko
b789f9992b build: add missing virtualenv dependencies for debian-10
Type: make
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I57a1f90d7fe9e1262f210d0c091bafda5d496c69
2021-02-12 11:06:53 +00:00
Neale Ranns
c68ca7b6e1 misc: Now that VOM is deprecated remove the build dependency on boost
Type: make

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Icbbae3ab222e7d97e6c496c13ec9229e94cf5ede
2021-02-09 16:53:37 +00:00
Neale Ranns
44db1caefb linux-cp: Linux Interface Mirroring for Control Plane Integration
Type: feature

please see FEATURE.yaml for details.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I04a45c15c0838906aa787e06660fa29f39f755fa
2021-02-04 14:16:34 +00:00
Dave Wallace
cfa8a89338 build: deprecate debian-9 support
Type: make

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ib14ce5561446aefb03c3989cf82ac7c6eb1471bb
2021-01-21 13:16:09 +00:00
Jerome Tollet
4f411d1191 build: add python files to ctags
Type: improvement

Signed-off-by: Jerome Tollet <jtollet@cisco.com>
Change-Id: Ifb97b3a52d8bf4ecc09dc1e8ff94992fef309a65
2021-01-20 18:38:56 +00:00
Dave Wallace
35ef865678 build: add missing openssl-devel package for centos-8 vpp-ext-deps
- In a new centos-8 installation, vpp-ext-deps fails on missing
  ssl.h header file after 'make install-deps'.

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I521d817dd1f1e21aff427d98b9832ea7c7b89339
2021-01-15 17:31:47 +00:00
Pim van Pelt
b6f367e3a1 build: Add deps for ubuntu 20.10
Type: make

Ubuntu Groovy Gorilla (20.10) has bumped its FFI library.
Move from v6 to v8.

Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I32bc2905ad9ed6918446020accee2a4c2ca9d4b5
2021-01-11 20:42:13 +00:00
Damjan Marion
942542f7c1 misc: migrate from GNU indent to clang-format
Type: make
Change-Id: I085dcd6fe826da14d456f84a23355310bdc5d1e9
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-12-18 11:06:33 +01:00