476 Commits

Author SHA1 Message Date
Ting Xu
ce4b645178 packetforge: add packetforge for generic flow to extras
Add a new tool packetforge to extras. This tool is to support generic flow.
Packetforge is a library to translate naming or json profile format flow
pattern to the required input of generic flow, i.e. spec and mask. Using
python script flow_create.py, it can add and enable a new flow rule for
an interface via flow VAPI, and can delete an existed flow rule as well.
Command examples are shown below. Json profile examples can be found in
./parsegraph/samples.

Naming format input:
python flow_create.py --add -p "mac()/ipv4(src=1.1.1.1,dst=2.2.2.2)/udp()"
-a "redirect-to-queue 3" -i 1
python flow_create.py --del -i 1 -I 0

Json profile format input:
python flow_create.py -f "./flow_rule_examples/mac_ipv4.json" -i 1

With this command, flow rule can be added or deleted, and the flow
entry can be listed with "show flow entry" command in VPP CLI.

Packetforge is based on a parsegraph. The parsegraph can be built by
users. A Spec can be found in ./parsegraph as guidance. More details
about packetforge are in README file.

Type: feature

Signed-off-by: Ting Xu <ting.xu@intel.com>
Change-Id: Ia9f539741c5dca27ff236f2bcc493c5dd48c0df1
2022-09-20 20:44:42 +00:00
Filip Tehlar
229f5fcf18 misc: add test framework for host stack
Type: feature

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I5a64a2c095cae3a4d5f8fdc73e624b010339ec8e
2022-09-19 21:00:18 +00:00
Laszlo Kiraly
987318e0d1 build: Cleanup python2 from suse build and uplift opensuse version
- default to opensuse-leap 15.4, no python2 support in this version
 - deprecate version openSUSE 15.0, openSUSE 15.3 still supported

Type: make

Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
Change-Id: Ic7178ff5238e2669bc45166c1f13d3f077f6069b
Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
2022-09-07 13:04:14 +00:00
Mohsin Kazmi
8a34484057 libmemif: fix the buffer size
Type: fix

Previously, libmemif can only use buffer size which
have to be power of 2. memif protocol does not enforce
this. This patch fixes this issue.

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ic71e6a51685e2c2228c744920797064d4c7c65c9
2022-08-29 07:07:07 +00:00
Mohsin Kazmi
6e284ef6ce libmemif: add support for custom buffer-size and headroom in icmp example app
Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I2bdaee7938a3747e3217d6901ec3c66f1ee3da61
2022-08-29 07:05:23 +00:00
Neale Ranns
fd2417b2a4 ip-neighbor: ARP and ND stats per-interface.
Type: feature

stats of the like from:
  https://datatracker.ietf.org/doc/html/draft-ietf-rtgwg-arp-yang-model-03#section-4

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Icb1bf4f6f7e6ccc2f44b0008d4774b61cae96184
2022-08-09 14:17:46 +00:00
Mohsin Kazmi
8636a32041 libmemif: fix chain buffer support
Type: fix

This patch fixes chain buffer support as transmit side
missing to set the flag to the descriptor in case of
chain buffers.

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I73ff11be69a388f14fea39a19272d8eb76148fba
2022-07-25 14:03:48 +00:00
Filip Tehlar
9196ed798a misc: update config script in IKEv2 test
Type: fix

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Iba82f8e0f18f3e1e4da57f4c23ba9272e87afd93
2022-05-18 09:46:33 +00: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
Daniel Béreš
c69655e3bd libmemif: timer causes spin at 100% cpu
In case of timer is set and expires:
1. timer_fd is readable and stay readable.
2. timer_fd is part of epoll_fd set. This makes epoll_pwait()
   calls return immediately instead of sleeping.

Type: fix

Signed-off-by: Daniel Béreš <dberes@cisco.com>
Change-Id: I9b228464fe45b83def9b182c885d6febf428049c
2022-04-26 15:46:00 +00:00
Florin Coras
66d6146ad5 rpm-packaging: remove mbedtls dependency
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Idf325b7f1ce75e973dbea4d5836609590c85dc38
2022-04-18 16:22:15 +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
Jakub Grajciar
e74c04fc9f libmemif: refactor examples
- icmp_responder: responds to ICMPv4 and ARP requests
- loopback: connects two interfaces and sends a
  verification packet from master memif to slave memif
  where it is looped back
- loopback (reverse path): reverses direction of packet
  in loopback application (slave memif to master memif)

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ie90aaa3367269408efb6c5d538ad5aa827432238
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-03-28 22:34:33 +00:00
Dave Wallace
5d0fa2f85c build: exclude dlmalloc.[ch] from checkstyle verification
- dlmalloc.[ch] is an imported open source library which
  somehow manages to choke clang-format-diff to the point
  of consuming ~1 minute to run against a single character
  diff.

Type: make

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I16c6d6da664da8634aa682dce9d2120072626730
2022-03-24 11:43:33 +00:00
Damjan Marion
2e7c5d33cc vppinfra: deprecate vppinfra/graph.[ch]
Type: refactor
Change-Id: Iba0466b60354955ba73f851435a7127435b7066d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-03-23 15:07:39 +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
Klement Sekera
b9ff03c805 build: fix clang-format-diff[.py] detection
Fix clang-format-diff autodetection error in case of non-standard
clang-format-diff path. Also allow finding clang-format-diff.py in
non-standard location.

Type: improvement
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
Change-Id: I3cb76aa152a8245e62db62f5fe2ba96b1ff86428
2022-03-22 01:34:57 +00:00
Florin Coras
91a46cb1ff tls: remove pkg dependencies on mbedtls
The tlsmbedtls plugin should only be built if mbedtls libraries are
present.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I24364177d24ea744f24f808f492be08adff3690b
2022-03-11 19:04:46 +00:00
Jakub Grajciar
8caf9ece87 libmemif: reset memif buffer flags
Reset memif_buffer_t flags in memif_buffer_alloc and
memif_rx_burst

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: If62ba510fad783afb9f7f58411562b6989fa1573
2021-12-07 18:11:47 +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
Neale Ranns
3be9164f80 misc: deprecate gbp and its dependents
Type: improvement

Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Change-Id: I2f30a4f04fd9a8635ce2d259b5fd5b0c85cee8c3
2021-11-23 13:03:36 +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
Andrew Yourtchenko
31f1924346 misc: vppctl - remove the dependency on vppinfra
56f54af21d18f9fdd471b81db77a3942b0aa4d9c introduced the new memcpy.
It also made a vector support mandatory in order to compile anything
that depends on vppinfra.

This broke extras/scripts/build_static_vppctl.sh

Since the vppctl is just a two-pronged epoll+basic telnet client handler,
remove dependencies on the vpp infra libs, and trim the build script accordingly.

Change-Id: I394bc65c485cbf8e7143a818ca0c86367bb15d90
Type: improvement
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-11-15 14:34:56 +00:00
Dave Barach
29355644c5 vppinfra: deprecate test_mheap.c
The original mheap allocator found the exit a long time ago,
move test_mheap.c to .../extras/deprecated/vppinfra

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ib1ed40ac605ad76f33c22a681a6df867985bbbba
2021-11-10 16:41:06 -05:00
Damjan Marion
f9e3cd4e5a misc: update extras/scripts/lsnet
Type: improvement
Change-Id: Iea45fa535ca562a1d424fd3d46b557a7d4775505
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-11-10 00:44:26 +01: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
Matthew Giassa
93bca19f1e libmemif: fix gcc strict-proto error
- Changing function prototypes for a couple libmemif functions so that
  gcc will successfully compile with the "-Wstrict-prototypes" flag
  enabled.
- Re-ran unit tests via "make test" locally on Ubuntu 20.04 LTS x64.
  One issue (likely unrelated to patch):
  * Testcase name: Bidirectional Forwarding Detection (BFD)
    ERROR: put session admin-up and admin-down
    [test_bfd.BFD4TestCase.test_admin_up_down]

Type: fix
Change-Id: Ibcb7210873d39aec9348fe8ac7eebc78d089d8e0
Signed-off-by: Matthew Giassa <mgiassa@cisco.com>
2021-10-27 07:59:09 +00:00
Nathan Skrzypczak
a2c9509a4a docs: convert extras doc md->rst
Type: improvement

Change-Id: Ie3b25a86b99098d2b3a21a11fc73234c8ed589d6
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-10-13 15:32:22 +00:00
Nathan Skrzypczak
8acc5ee907 libmemif: docs md->rst
Type: improvement

Change-Id: Ibebd2d47a4268189f11601d004073e4858548f25
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-10-13 15:30:03 +00:00
Jakub Grajciar
87e90830b8 libmemif: update documentation
Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I0094ea8627cd8bcd5ea119c2fd48f077c8e2e4bb
2021-10-13 15:26:34 +00:00
Tianyu Li
fa6e7aacfc build: fix centos rpm build
When build vpp-plugins rpm package, found

/home/vpp/build-root/rpmbuild/vpp-21.10/build-root/\
install-vpp-native/vpp/lib/vpp_plugins: No such file or directory

RPM build errors:
File not found: /home/vpp/build-root/rpmbuild/../usr/lib/vpp_plugins/*

After e3cf4d0 ("build: use GNUInstallDirs install destinations")
vpp_plugins on centos src path changed from lib to lib64
Update RPM spec file accordingly.

Type: fix
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I9c4d91f97f2faa474bce28893ab763b414f759b8
2021-10-08 11:15:51 +08:00
Nathan Skrzypczak
6f38f1ca08 docs: extras/deprec nitfixes
Type: improvement

Change-Id: I39038072eff3c09536917a32984daebab69e6fe7
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-10-06 12:27:35 +00:00
Nathan Skrzypczak
814eee55fa libmemif: Fix abstract sockets
This fixes size computation when using
abstract sockets with libmemif

Type: fix

Change-Id: I3a686e4ff2132b9fb295bbe30633958dcfec672b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-29 14:49:45 +02:00
Jakub Grajciar
134f1e0225 libmemif: refactor connection establishment
per_thread_ namespace fuctionality replaced by memif socket.
Interfaces are grouped by memif socket which holds interface database.
Each thread can create it's unique memif socket. The path name
can be equal across threads so that the app only uses one
UNIX socket. In case of listener socket, listener fd
can be obtained and set using APIs.

This change allows:
  - No lookup on file descriptor events
    - improves interrupt handling
  - Loopback support (connect two interfaces in one app)
    - usefull for debugging and testing
  - Improves code readability by providing control channel
    abstraction for each interface and listener sockets

Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I1b8261042431c0376646ab4c4c831f6e59dd3eed
2021-09-27 14:35:45 +00:00
Jakub Grajciar
45cf1fc3f5 libmemif: remove per_thread_ namespace
Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ib5a88132ad28860553fc82f5aaaf84e0a1b8e8bf
2021-09-27 14:35:45 +00:00
Jakub Grajciar
9f99e9a60e libmemif: remove old examples
Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I2331f6fb43ca533afb32f7d448adda27b19689ac
2021-09-27 14:35:45 +00:00
Jakub Grajciar
24681606b9 libmemif: remove outdated unit tests
Type: refactor

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ie42c03980cf2cc0766308043d7d3ea5301a59b75
2021-09-27 14:35:45 +00:00
Nathan Skrzypczak
176373caed gomemif: Add mode support
Type: feature

Change-Id: I0bc51288bc63a0583b98314e4e2a62383b0d6e43
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-27 09:03:17 +00:00
Mohsin Kazmi
64dd1720e5 dpdk: add support for outer udp and ipv4 checksums
Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I10141033030342881298d70742fa5bdea402b4c9
2021-09-16 10:42:59 +00:00
Matthew Smith
48a13f38fa build: include vat2 in RPM file list
Type: fix

Building an RPM with 'make pkg-rpm' fails because /usr/bin/vat2 is
installed but is not included in %files. Add it.

Change-Id: I686b291e4419d39141f0f87da963b413d11ab0f8
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-08-20 11:37:19 +00:00
Benoît Ganne
03f2a01599 vlib: add format_vnet_buffer_no_chain
- add format_vnet_buffer and format_vnet_buffer_no_chain to mirror
   format_vlib_buffer and format_vlib_buffer_no_chain
 - format_vnet_buffer used to be the "no chain" version, replace all of
   its current use with the corresponding format_vnet_buffer_no_chain
 - add a function to dump vnet buffer details from gdb

Type: improvement

Change-Id: I143ce845f80e7ef937ea33a557b6e3b5988c5b8f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:20:36 +00: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
Dave Wallace
84b543d8b1 doxygen: fix doxygen tags
- Missing tags mess up doxygen TOC heirarchy

Type: docs

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I012d55c0ae90aecc665b56903f4212ddc0643943
2021-05-21 15:33:04 +00:00
Dave Wallace
ab755a3cf0 bash: add set-quicly-ws function
- Set up vpp workspace to build/test/debug with
  quicly source code downloaded from github.

Type: improvement

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I63a3f3b19f3b753fca1d57f8b22dad7c4e968846
2021-05-20 17:32:15 +00:00
Dave Wallace
785458895d bash: fix vpp-make-test -g option
- Don't pollute shell with local variables
  which also fixes a bug with -g option
- If WS_ROOT is not set and vpp-make-test is
  invoked in the vpp root dir, then export
  WS_ROOT env var

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I608b666f7d3020863933a8072fb34e65c7f1c988
2021-05-19 22:52:26 +00:00
Damjan Marion
742a5039b0 misc: change VFIO group ownership and permissions in vfctl script
This is missing step to allow runing VPP unpriviledged
with AVF driver.

Type: improvement
Change-Id: I37dfad9236691c1a8e2837a5811536170c65d7bc
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-12 16:53:25 +00:00
Benoît Ganne
f89bbbe300 vlib: refactor trajectory trace debug feature
trajectory trace has been broken for a while because we used to save the
buffer trajectory in a vector pointed to in opaque2. This does not work
well when opaque2 is copied (eg. because of a clone) as 2 buffers end up
sharing the same vector.
This dedicates a full cacheline in the buffer metadata instead when
trajectory is compiled in. No dynamic allocation, no sharing, no tears.

Type: refactor

Change-Id: I6a028ca1b48d38f393a36979e5e452c2dd48ad3f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-05-01 11:42:37 +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
edca8c6e75 vppinfra: don't fail if config.h is missing, fallback to defaults instead
Type: improvement
Change-Id: Idc82d40a16cbc8a401a8fb359bc63083f47361b9
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-28 17:23:22 +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