27 Commits

Author SHA1 Message Date
Damjan Marion
c3148b1be8 misc: remove GNU Indent directives
Type: refactor
Change-Id: I5235bf3e9aff58af6ba2c14e8c6529c4fc9ec86c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2024-03-12 19:29:56 +00:00
Damjan Marion
8bea589cfe vppinfra: make _vec_len() read-only
Use of _vec_len() to set vector length breaks address sanitizer.
Users should use vec_set_len(), vec_inc_len(), vec_dec_len () instead.

Type: improvement
Change-Id: I441ae948771eb21c23a61f3ff9163bdad74a2cb8
Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-04-04 23:17:13 +00:00
Damjan Marion
317cace618 vat: fix vat_suspend crash
Deadly combination is clib_{set,long}jmp + lazy linking + tail call compiler
optimization. On the first call to clib_setjmp, dynamic linker executes loader
code which then calls clib_setjmp, so stored stack position contains dynamic
loader data. Tail call optimization simply jumps back to the calling
code when clib_longjump is called and that results in wrong return
address used from the stack.

Change-Id: Ia7d8dbd5b2c425cdd0449374aa07ab6b684a330e
Type: fix
Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-03-09 14:47:05 +01:00
Filip Tehlar
f0e67d78ae interface: add api test file
Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Ib07029204ecf12bf2adb5a39afa54bc98fb81f34
2021-10-18 07:03:12 +00:00
Ole Troan
3d81267945 vat: add infrastructure to align vnet test code and plugin test code
Split vat/api_format.c also for VNET features.
Use auto-generated VAT test code and support dynamic message ID allocation as for plugins.
The arp and geneve features as Guinea pigs.

Type: improvement
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I461591496766bdf10c5f950fd30f1a0ae05909da
Signed-off-by: Ole Troan <ot@cisco.com>
2020-09-18 15:24:52 +00:00
Dave Barach
7f475bf4b7 dhcp: vat support for the dhcp_client_dump API
Also: permanently solve ordering issues with the vpp builtin vat
plugin loader, by explicitly loading vat plugins once we're sure that
all data plane plugins have registered their APIs / API message
handlers.

Fix compilation / link errors when the vpp builtin vat plugin loader
is disbled by cmake configuration.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id553c63ae860ebfc196c5ad4b55c19e08fec2c9e
Signed-off-by: Ole Troan <ot@cisco.com>
2020-05-27 20:53:57 +00:00
Nathan Skrzypczak
0aa4013e20 api: Use vl_msg_push/pop_heap
Type: refactor

Change-Id: I0eb46676fc22ce6825b2d879498df344b5a855e8
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-12-11 16:54:26 +00:00
Dave Barach
39d69112fc api: multiple connections per process
Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2272521d6e69edcd385ef684af6dd4eea5eaa953
2019-12-10 01:13:05 +00:00
Benoît Ganne
49ee68443d build: add -Wall and -fno-common, fix reported issues
Type: refactor
Change-Id: I8489ccd54411c2aa9355439c5641dc31012c64a2
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
2019-06-07 11:21:59 +00:00
Dave Barach
f5b1ed7dea Load vat plugins late in the init sequence
After the related data-plane plugins have initialized their message IDs.

Change-Id: I4202a9e46ef6cdb12a5186be0f2370e2f9ccbb78
Signed-off-by: Dave Barach <dave@barachs.net>
2019-05-17 18:30:29 +00:00
Dave Barach
b7b929931a c11 safe string handling support
Change-Id: Ied34720ca5a6e6e717eea4e86003e854031b6eab
Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-23 13:06:46 +00:00
Dave Barach
88c6e0086b vlib: barrier sync elog tracing improvements
Change-Id: I2d3b8d5a7192ff68bee443a99346ecb807b2d833
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
2018-09-30 15:55:09 -04:00
Dave Barach
7055e26952 Driver level time-based src mac filter
Change-Id: I062d7653e00d77e73a61d8841e01ab4a159b6404
Signed-off-by: Dave Barach <dbarach@cisco.com>
2018-06-19 22:09:46 +00:00
Dave Barach
f72212e002 Remove vpp_api_test interface name filter catalog
If I remember correctly, I added the interface name filter catalog to
avoid cluttering up the vat interface table with [unused] packet
generator interfaces. Since we no longer create pg interfaces we're
not planning to use, the filter catalog does more harm than
good. Every new interface name prefix would have had to be added to
the list, and folks wouldn't likely know they should do that...

Change-Id: I4067f8ba70ad13c8dc5ebaf21a23759a2cf2675e
Signed-off-by: Dave Barach <dave@barachs.net>
2018-01-11 17:42:36 +00:00
Dave Barach
59b2565cd9 Repair vlib API socket server
- Teach vpp_api_test to send/receive API messages over sockets
- Add memfd-based shared memory
- Add api messages to create memfd-based shared memory segments
- vpp_api_test supports both socket and shared memory segment connections
- vpp_api_test pivot from socket to shared memory API messaging
- add socket client support to libvlibclient.so
- dead client reaper sends ping messages, container-friendly
- dead client reaper falls back to kill (<pid>, 0) live checking
  if e.g. a python app goes silent for tens of seconds
- handle ping messages in python client support code
- teach show api ring about pairwise shared-memory segments
- fix ip probing of already resolved destinations (VPP-998)

We'll need this work to implement proper host-stack client isolation

Change-Id: Ic23b65f75c854d0393d9a2e9d6b122a9551be769
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-10-03 11:03:47 +00:00
Dave Wallace
d756b35032 Fix unlinking of /dev/shm files.
- api-segment prefix not used when unlinking shm files
- unlink root region on exit if no clients referenced
- stale reference to freed segment name
- don't add fake client to /db unless CLIB_DEBUG > 2
- turn off the gmond plugin
- clean up unused vars in vpp/api

Change-Id: I66451fcfd6ee64a12466c2d6c209050e3cdb74b7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Signed-off-by: Dave Barach <dave@barachs.net>
2017-07-17 21:00:52 -04:00
Neale Ranns
e72be39cd0 A sprinkling of const in vlibmemory/api.h and friends
Change-Id: I953ebb37eeec7de0c4a6b00258c3c67a83cbc020
Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-03 12:35:05 +00:00
Dave Barach
7c0858e2a4 Fix binary-api cmd/arg split logic
Change-Id: If3dbce830684b5eab8944519424074b03cc7d703
Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-15 09:52:50 -04:00
Dave Barach
3d6b2b5649 Try again: __COVERITY__ vs __COVERITY
Hate it when that happens...

Change-Id: I725c8539d6349755e9d75ae05f2703c83ea704be
Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-14 16:31:25 +00:00
Dave Barach
a331e6fc45 VPP-608: warnings be gone
Change-Id: I6d30c6a8d1a425c531e7206e46143d528980c48e
Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-10 13:45:11 +00:00
Dave Barach
45e4f36508 Missing plugin binary API command fns found after brief search
Create hash tables before loading plugins. Previous init sequence
wiped out most if not all of them.

Change-Id: I5dd628895f68f740d525951511a9fef1822d39da
Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-07 21:33:46 +00:00
Dave Barach
a1a093d4e4 Clean up binary api message handler registration issues
Removed a fair number of "BUG" message handlers, due to conflicts with
actual message handlers in api_format.c. Vpp itself had no business
receiving certain messages, up to the point where we started building
in relevant code from vpp_api_test.

Eliminated all but one duplicate registration complaint. That one
needs attention from the vxlan team since the duplicated handlers have
diverged.

Change-Id: Iafce5429d2f906270643b4ea5f0130e20beb4d1d
Signed-off-by: Dave Barach <dave@barachs.net>
2017-03-02 20:33:52 +00:00
Dave Barach
def19da0c9 Clean up "binary-api" help string, arg parse bugs
Change-Id: I12311be8ebd376b8aeac25364d010d70a85c7874
Signed-off-by: Dave Barach <dave@barachs.net>
2017-02-22 17:29:58 -05:00
Damjan Marion
d65c18d830 api: remove debug print in api_main_init
Change-Id: I8f5cf447c131a790e4bbd46ef75063329fec7451
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-02-17 00:25:31 +00:00
Dave Barach
fe6bdfd845 binary-api debug CLI works with plugins
Change-Id: I81f33f5153d5afac94b66b5a8cb91da77463af79
Signed-off-by: Dave Barach <dave@barachs.net>
2017-01-23 15:17:25 +00:00
Dave Barach
8f544964a3 Fix coverity warnings, VPP-608
Change-Id: Ib0144ba3a9a09971d3946c932e8fed6d5c1ad278
Signed-off-by: Dave Barach <dave@barachs.net>
2017-01-18 10:32:15 -05:00
Damjan Marion
7cd468a3d7 Reorganize source tree to use single autotools instance
Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-28 12:25:14 +01:00