- running 'make build' will now always build docker images,
'make test' will try to skip building them unless FORCE_BUILD=true
- now also checking ubuntu version
Type: make
Change-Id: Ie16e8dc4712963de19e2450e058b867c1cede7ee
Signed-off-by: Adrian Villin <avillin@cisco.com>
- skip building if new changes are .go, .sum, .mod, .txt, .test,
IP address files or dotfiles
Type: test
Change-Id: Ib041a077fa34120e86ebb43cd19e50142ef01f16
Signed-off-by: Adrian Villin <avillin@cisco.com>
- only works when not running in parallel
Type: test
Change-Id: Iab9881f8a2a93c6ef5129742e3c0ad950f9e5328
Signed-off-by: Adrian Villin <avillin@cisco.com>
Script vapi_c_gen.py uses full paths to source files to generate include
guards in files with `.vapi.h` extension. This makes the content of
header files depend on build directory which causes reproducibility
issues (cannot get identical build output when building in a different
directory).
Commit 4c64b6edc86f7 fixes this for .hpp files, but seems to forget
about .h files. Use its fix for these as well.
Type: fix
Change-Id: Ida638c7b4630fac1f6d968a9203a409648bef55c
Signed-off-by: Oleksandr Hnatiuk <ohnatiuk@cisco.com>
- framework panicked if core_pattern was set to "core"
Type: test
Change-Id: I14211cc59779090a61e6e08a18d16fd7399b2bed
Signed-off-by: Adrian Villin <avillin@cisco.com>
Commit 3d14f036199d added the possibility to use `VPP_BUILD_USER` and
`VPP_BUILD_HOST` from environment (if they are set) to avoid
reproducibility issues by hard-coding such data in the build system.
However, there's no way to provide VPP_BUILD_TOPDIR externally. Add this
feature to improve binary reproducibility.
Type: improvement
Change-Id: I3a7ee47d75af9635b636fa3750a3688314eaa60d
Signed-off-by: Oleksandr Hnatiuk <ohnatiuk@cisco.com>
Fixes an issue preventing a feature to be configured on a secondary interface.
Type: fix
Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
Change-Id: I8ecd80988d22291013cd0addae6dc25043aaea98
1) pg can typically injects packets in ethernet-input, ip4-input or
ip6-input. Make sure offload offsets are correctly set for ip4-input and
ip6-input.
2) add hw-addr support for ethernet mode (only available through cli)
3) refactor pg creation code to improve the readability by using
data structure pg_interface_args_t
4) fix the pg input and output traces to use headers according to
pg interface mode
5) introduce pg interface flags i.e. checksum, gso, gro
Type: improvement
Change-Id: Iffed502e9c6357d7ef8e8a72217867e8297236aa
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
- now working with UBUNTU_VERSION=24.04
Type: test
Change-Id: I60aa62b8dcf3e96392af7179925e0f0fa3e15f11
Signed-off-by: Adrian Villin <avillin@cisco.com>
- replaced s.GetContainerByName("xyz") with s.Containers.Xyz in tests
and suites
- same thing for interfaces
- each suite has its own structs with containers/interfaces
- structs are initialized in SetupSuite
Type: test
Change-Id: I5bd99605b40921b7b8c844e8650f6fb0915e9e99
Signed-off-by: Adrian Villin <avillin@cisco.com>
- core dump check would get skipped if vpp crashed and vppctl
was called on teardown
Type: test
Change-Id: I9dda7036042158332c8ec815f6eb4bb3c2f7000f
Signed-off-by: Adrian Villin <avillin@cisco.com>
A philosophical question. Do an interface have to have an IPv4 address
to process IPv4 packets? For ICMP error generation it's sufficient that
it has an address available on the node.
More concretely this patch is to allow an extern DHCP client to process
IP packets before it configures an address on the interface, without
having to have an node early in the ip4-unicast feature-arc like
ip4-dhcp-client-detect to intercept the packets.
Type: improvement
Change-Id: I780c579eec28ba564cf8417fbcc87e7a7876fdd2
Signed-off-by: Ole Troan <otroan@employees.org>
Handle "Connection" and "Upgrade" headers in http transport layer which
are used to create a tunnel for some other protocol on the same
connection.
Type: improvement
Change-Id: Icf5479f36fbcc7259b157eaad957211be5ea2aae
Signed-off-by: Matus Fabian <matfabia@cisco.com>
CPU arch dependencies cleanup. Everything works fine apart from
redis-benchmark test.
Type: test
Change-Id: I4a1e7d3bce994f6ea0681e06955ef9c621468642
Signed-off-by: Matus Fabian <matfabia@cisco.com>
- set iperf to json output
- added iperf json parsing function
- we can now check if iperf transferred more than X megabytes
(other asserts can be added)
Type: test
Change-Id: I560104a153456b46f22a1affee4301018063b99d
Signed-off-by: Adrian Villin <avillin@cisco.com>
- simple fix to avoid apps trying to start after a test
timeout/interrupt
Type: test
Change-Id: I4e6fcbb2bb00c07e35cda1ebf6fcb76a913f7a32
Signed-off-by: Adrian Villin <avillin@cisco.com>
Problem
The API app_namespace_add_del allows specifying ip4_fib_id and
ip6_fib_id. But the CLI does not. It only allows interface.
Interface binding may change after the application namespace
is created and there is no registration for the callback
when the interface binding changes.
Fix
Add ip4-fib-id and ip6-fib-id to app ns CLI. When both
interface and fib-id's are specified, interface takes
precedence. When interface is not specified, either ip4-fib-id
or ip6-fib-id or both ip4 and ip6 fib-id's may be specified.
If only ip4-fib-id is specified, ip6 is disable for this
particular app namespace. If only ip6-fib-id is specified,
ip4 is disable for this namespace.
When the interface binding changes to different vrf and the
application namespace was created via interface option, we
delete the application namespace and recreate the application
namespace with the new interface binding. Notice when the
application namespace is removed, all session rules and
sdl rules previously created for the deleted application
namespace will be deleted. However, if the fib table/session
table was shared by another namespace, the other namespace
will still contain the session rules and sdl rules.
Type: improvement
Change-Id: I76eb30da1ed8a39d06694c1e66d0675bf03516bf
Signed-off-by: Steven Luong <sluong@cisco.com>
Display segment manager information for show app <index> verbose
Mark segment manager as listener if it is a listener segment.
Type: improvement
Change-Id: I8d91f4c2ed5b8f39620f2c8b06950c0e7ee2225e
Signed-off-by: Steven Luong <sluong@cisco.com>
netinet/tcp.h and linux/tcp.h have different lenghts but overlap. LDP
uses the former while iperf the latter. Accept both lengths for now as
we do not support exposing tcp metrics via ldp.
Type: improvement
Change-Id: I13a149d68715ed9451773630a3595c09c421aa29
Signed-off-by: Florin Coras <fcoras@cisco.com>
Meant for multi-threaded applications that share a vls and vcl worker.
Disable thread cancelation on thread new thread detection and add a new
pthread cancelation point in vls_mt_mq_lock
Type: improvement
Change-Id: I21b16ee7c6a5ec31b8f6363325cc7ffa463c7b5c
Signed-off-by: Florin Coras <fcoras@cisco.com>
Adds support for tls async processing using OpenSSL.
Adds new CLI command to configure OpenSSL TLS configurations used by
OpenSSL context and session. New CLI format is:
tls openssl set-tls [record-size <size>]
[record-split-size <size>]
[max-pipelines <size>]
Sets default values to below TLS configuration parameters:
- first_seg_size: 32MB
- add_seg_size: 256MB
Type: feature
Signed-off-by: Varun Rapelly <vrapelly@marvell.com>
Change-Id: I990be31fced9e258fdb036f5751cd67594b0bce7
Type: refactor
Move PPP folder under vnet to the plugin folder, and modify some of path
of the #inlude<header> to the new path.
Add a plugin.c file to register a plugin.
Resolve ip4_input and ip6_input's dependency on PPP functions by moving
those calls to PPP's initialization.
Resolve osi's inter-plugin dependency on PPP by having it retrieve the
function pointer
Add ppp to the list of valid spelling words
JIRA: VPP-2052
Change-Id: I1a26ef0663a91857d13f7d87a3bb14bc38893194
Signed-off-by: Joel Ahn <joeahn@cisco.com>
The app ns semantics allows the same app ns to be re-added with different
interface. For example,
app ns add id blue secret 1 if tap0
app ns add id blue secret 1 if tap1
If tap0 is bound to table 0 and tap1 is bound to tap1, we need to clean
up the existing session table and possibly allocate a new session table
for the app ns.
Type: fix
Change-Id: I566d621081b7cdbd7d0c481fda53953b39c26001
Signed-off-by: Steven Luong <sluong@cisco.com>
Add memif stats per queue for performance tuning.
Type: improvement
Change-Id: Ifacc80c0adfe92075d91179857c8956d1cbf3a70
Signed-off-by: Dau Do <daudo@yahoo.com>
- when testing multithreaded proxy with udp iperf, iperf wouldn't
connect -> made client_sep a vector so multiple transport protocols
can be saved
Type: fix
Change-Id: I91936bd3214f40deb914792c02783112ae59942c
Signed-off-by: Adrian Villin <avillin@cisco.com>
Type: test
There is no need to use the tag_fixme_ubuntu2204 decorator.
All tests that previously used it are now stable. The neighbor test
has been moved to the extended suite because it is not related to the
type of operating system.
Change-Id: Ifa0a30cbeeeaabb2bbe4d213fa61e6fbde8789ca
Signed-off-by: Ivan Ivanets <iivanets@cisco.com>
- if no region is big enough to accommodate need_n_bits, we can scan
past the end of the bitmask
- rewrite the search loop for clarity
Type: fix
Change-Id: I82637bc91eb7e7ae922785bc626fa224638cb4e4
Signed-off-by: Benoît Ganne <bganne@cisco.com>
clib_time_init() may use clib main heap when it needs to parse /proc
or /sys. Make sure the main heap is initialized early.
Type: fix
Change-Id: I891504f3455b97c06da25e4833a8fb6941eb428a
Signed-off-by: Benoît Ganne <bganne@cisco.com>
ldp stores the libc epfds it uses in conjunction with vcl epfds in vcl
attributes. Apart from being an ldp, as opposed to vcl, specific
attribute, the epfd is retrieved on session close with vls locks that
could be acquired from multiple threads.
Avoid grabbing locks when retrieving the attribute.
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I5fc52d72667a7693b1557d209c3890a968422f1e
pcap api cleanup can cause crash in certain scenarios
e.g.missing/invalid 'filename' parameter.
Type: fix
Change-Id: I92417765960de84e30ed7cb945d40c50d722fb6c
Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
- python 2.7 is no longer supported, clean up technical
debt with use of 'six' module in test code
Type: test
Change-Id: I70e737920a6048c5e9caa20fece5ee21b91bb353
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
- session_sdl_v2_dump api command is deprecated
Type: fix
Change-Id: I4f7a140e7e39fae8076caa54fd8bfb0c755c6767
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Type: fix
Fixes: 4b9935cd54
In vapi_wait(), check that the queue is empty before waiting. The
condvar is only signaled on addition of the first message.
pthread_cond_wait() will block approximately forever if there are
already messages in the queue.
Change-Id: Ic52befe443509f3c53aa9a872ba62bb05aaac25e
Signed-off-by: Matthew Smith <mgsmith@netgate.com>