aboutsummaryrefslogtreecommitdiffstats
path: root/test/ext
AgeCommit message (Collapse)AuthorFilesLines
2020-05-04misc: binary api fuzz test fixesDave Barach1-2/+4
Add a hook to src/vlibapi/api_shared.c to fuzz (screw up) binary API messages, e.g. by xoring random data into them before processing. We specifically exempt client connection messages, and inband debug CLI messages. We step over msg_id, client index, client context, and sw_if_index. Otherwise, "make test" vectors fail too rapidly to learn anything. The goal is to reduce the number of crashes caused to zero. We're fairly close with this patch. Add vl_msg_api_max_length(void *mp), which returns the maximum plausible length for a binary API message. Use it to hardern vl_api_from_api_to_new_vec(...) which takes an additional argument - message pointer - so it can verify that astr->length is sane. If it's not sane, return a u8 *vector of the form "insane astr->length nnnn\0". Verify array lengths in vl_api_dhcp6_send_client_message_t_handler(...) and vl_api_dhcp6_pd_send_client_message_t_handler(...). Add a fairly effective binary API fuzz hook to the unittest plugin, and modify the "make test" framework.py to pass "api-fuzz { on|off }" to enable API fuzzing: "make API_FUZZ=on TEST=xxx test-debug" or similar Type: improvement Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I0157267652a163c01553d5267620f719cc6c3bde
2020-03-13tests: avoid unnecessary rebuildsKlement Sekera1-2/+2
Improve dependency tracking on vapi_test directory so that vapi_c_test rebuild doesn't force vapi_cpp_test rebuild and vice versa. Type: improvement Signed-off-by: Klement Sekera <ksekera@cisco.com> Change-Id: I00094c6374981333858ddbe6ae934cfda3b33a36
2020-03-09l2: API cleanupJakub Grajciar1-50/+0
Use consistent API types. Type: fix Change-Id: I7ac7cd00606101864fa3422e7b9ea2f1143665dd Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2020-02-26api: improve api string safetyJakub Grajciar1-0/+67
- Remove vl_api_from_api_string to prevent use of not nul-terminated strings. - Rename vl_api_from_api_to_vec -> vl_api_from_api_to_new_vec to imply a new vector is created. NOT nul terminated. - Add vl_api_from_api_to_new_c_string. Returns nul terminated string in a new vector. - Add vl_api_c_string_to_api_string. Convert nul terminated string to vl_api_string_t - Add vl_api_vec_to_api_string. Convert NON nul terminated vector to vl_api_string_t Type: fix Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: Iadd59b612c0d960a34ad0dd07a9d17f56435c6ea Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-12-05build: fix vom_test dependency on EXTENDED_TESTSDave Wallace1-1/+3
- Note: This was not caught by CI because the VPP 'make verify' target always build libvom.so Type: fix Fixes: f0797d130 Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I8663e317e4e793c386b09d1cb887133de1e43faf
2019-12-04build: fix make test with distributed srcDave Wallace1-25/+28
This patch addresses the functionality that is missing for distributed make test source files. In addition it extends the concept of colocating test source code with functional source code (eg. src/vcl/test). It also cleans up deficiencies in the make test makefiles. NOTE: Due to the way sphinx document tools work, all test, all of the make test python code is gathered using soft links into the directory: .../build-root/build-test/src Change summary: - Remove 'make test' help details from main makefile help output to reduce clutter and redundant help output - Move all generated build output to .../build-root/build-test - Move test_vcl.py as first usecase for distributed core feature make test code - Add test-wipe-all target and fix wipe targets to remove all generated files - Fix 'make test-doc' to generate module documentation for all source files - Remove unused targets in test/doc/Makefile - Fix 'make test-shell' - Fix test/ext Makefile to not generate bogus output Type: fix Fixes: a43c93f8554ad7418e31be3791b3fb71232f60ac Change-Id: Icc2ddb81d474081c3ede4548ecd7a0624651f62d Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-09-03api: enforce vla is last and fixed string typeOle Troan2-15/+7
Enforce that variable length fields are the last element of API messages. Add a 'fixed' version of string type, since dealing with multiple variable length strings turned out too painful for the C language bindings. The string type is now: { string name[64]; // NUL terminated C-string. Essentially decays to u8 name[64] string name[]; // Variable length string with embedded len field (vl_api_string_t) }; The latter notation could be made available to other types as well. e.g. { vl_api_address_t addresses[]; } instead of { u32 n_addr; vl_api_address_t addresses[n_addr]; }; Type: fix Change-Id: I18fa17ef47227633752ab50453e8d20a652a9f9b Signed-off-by: Ole Troan <ot@cisco.com>
2019-09-02tests: run vapi tests by defaultKlement Sekera1-0/+4
Type: fix Change-Id: I7b190507446fca745fc4bc6abbdeed48f55abdb9 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-08-27api: revert use string type for strings in memclnt.apiOle Troan2-11/+12
This reverts commit 2959d42feb576c0e00c28c4e27658b25f6c783e9. Lacks client side fixes. Type: fix Change-Id: Ib94b18e74325cede41ed1733e57896f17a952526 Signed-off-by: Ole Troan <ot@cisco.com>
2019-08-27api: use string type for strings in memclnt.apiOle Troan2-12/+11
Explicitly using string type in API allows for autogenerating tools to print strings instead of hex-dumping byte strings. Type: fix Signed-off-by: Ole Troan <ot@cisco.com> Signed-off-by: Klement Sekera <ksekera@cisco.com> Change-Id: I573962d6b34d5d10aab9dc6a5fdf101c9b12a6a6 Signed-off-by: Ole Troan <ot@cisco.com>
2019-08-20api: Cleanup APIs interface.apiJakub Grajciar2-13/+13
Use of consistent API types for interface.api Type: fix Change-Id: I88206d7d0907cffd564031f73c9a996df2e5e21a Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-07-31qos: Store functionNeale Ranns1-0/+18
Type: feature store: write a QoS value into the buffer meta-data record: Extract a QoS value from a packet header and store it. mark: Make a change to the content of a packet header by writing a stored QoS value Change-Id: I07d1e87dd1ca90d40ac1ae1774fee1b272cab83f Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-07-25vom: QoS supportNeale Ranns1-0/+79
Type: feature Change-Id: If517d10c318fc17fdbd797fac8d974d9851f6442 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-27vom: get the tests working againNeale Ranns1-0/+5
Type: fix Fixes: 097fa66b Change-Id: Ib73714665e3325c7e1e8f939275933a4d219f96b Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-26vom: fix test build failureNeale Ranns1-17/+20
Type: fix Fixes: 097fa66b Change-Id: Id5ae4029f27af6cba76d6527c0d3d7212ab84f3e Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-07VOM-test: fix the UT post BVI and Bridge-domain changesNeale Ranns1-7/+27
Change-Id: Ibd9059e616f46f7017e397262bf4c0606d81eb0c Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-03-15Revert "API: Cleanup APIs interface.api"Ole Trøan2-13/+13
This reverts commit e63325e3ca03c847963863446345e6c80a2c0cfd. Allow time for CSIT to accommodate. Change-Id: I59435e4ab5e05e36a2796c3bf44889b5d4823cc2 Signed-off-by: ot@cisco.com
2019-03-15API: Cleanup APIs interface.apiJakub Grajciar2-13/+13
Use of consistent API types for interface.api Change-Id: Ieb54cebb4ac96b432a3f0b41596718aa2f34885b Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-02-22VOM: De-template the ACL code.Neale Ranns1-1/+2
there's something going wrong with the dependency ordering. i have added hacks in the past, but these are not reliable across compiler versions. Change-Id: I34b4aae4c7ed7beaa424cd692ff34cba21ba802a Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-02-22VOM: fix tests and namespacify l2_vtrNeale Ranns1-5/+6
Change-Id: Ie59220a622c3a5195485cd6857b45f57d6eeaf95 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-02-13VOM: neighbour API flagsNeale Ranns1-2/+6
Change-Id: Ia664cd4c77f1c5b4bc46c5e191bb57704b3ccc46 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-01-10VOM: IP route ECMP supportNeale Ranns1-9/+29
Change-Id: Iede0c30aacfe7289f428062bb9540410097c40e2 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-01-07VOM: mroutesNeale Ranns1-0/+41
- fixes in ip.api for dumping mroute path flags Change-Id: I13b0cfb15d374250ed71bd4e13dda9b798c18204 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-18VAPI/VOM: Removing legacy stats tests, add string type.Ole Troan3-349/+17
Fix misc VAPI/VOM generation and test cases. Change-Id: I1abf9ecdb6f8a2129f11e0a9ed1c0fe04cdf5c47 Signed-off-by: Ole Troan <ot@cisco.com>
2018-12-13vom: Add support for new statsMohsin Kazmi1-1/+1
This patch deprecates old stats and adds support for new stats. This implements the PULL design where client will enable stats on objects (i.e. interfaces, etc), register a call back function which will run once stats will be ready for enabled object and call HW::read_stats() periodically to read stats for enabled objects from VPP. Change-Id: I32525a417427be87408d01f8bc93a731602ff690 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-12-12VOM: vxlan-tunnel takes egress interface for multicastNeale Ranns1-1/+2
Change-Id: I23b44d883fbd7919bf55b96b180f97837fd6dae9 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-10VOM: vxlan-gbpNeale Ranns1-1/+1
Change-Id: I5f4464435f1346207f2f9b497369795eb82b58b6 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-29make test: create virtualenv under /test/Klement Sekera1-6/+6
instead of using build-root, use /test/venv directory for virtualenv similarly, don't pollute build-root with test-built binaries Change-Id: I1e63c04037eaee718b27b34ef16c9eb0252afa53 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-11-29API: Add support for type aliasesOle Troan1-0/+2
Previously all types are compound. This adds support for aliases, so one can do things like: typedef u32 interface_index; or typedef u8 ip4_address[4]; Change-Id: I0455cad0123fc88acb491d2a3ea2725426bdb246 Signed-off-by: Ole Troan <ot@cisco.com> Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-11-01vom: Add igmp 'host' support in vomMohsin Kazmi1-0/+65
Change-Id: Ibdb19d21b8ec7fb340a057e32df207b7723dba9b Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-10-31make-test: Fix the vapi testMohsin Kazmi1-0/+1
Change-Id: I5a4dc3894818f92368d6c906ff43e093c16c1d19 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-10-23c11 safe string handling supportDave Barach1-23/+26
Change-Id: Ied34720ca5a6e6e717eea4e86003e854031b6eab Signed-off-by: Dave Barach <dave@barachs.net>
2018-09-29vom: Fix the l2 port type in bridge domainMohsin Kazmi1-12/+38
Change-Id: I8aba11142daeacce892ec529c2229ec54ee427e2 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-09-27vom: Add ip punt redirectMohsin Kazmi1-0/+62
Change-Id: I5c7b925b22b53f18b0c45374883a6a4bff580c75 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-09-12Always use 'lib' instead of 'lib64'Damjan Marion1-3/+3
It is packaging responsibility to put libs in the right place. Use of lib64 resulted in huge amount of files with hardcoded lib64. This patch simplifies things... Change-Id: Iab0dea0583e480907732c5d2379eb951a00fa9e6 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-28VAPI: bugfixesKlement Sekera1-1/+13
Change-Id: I20cfbae8b704ca68fd8dda9c811dc282ce723871 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-07-17VOM: support for pipesNeale Ranns1-0/+78
Change-Id: I5c381dfe2f926f94a34ee8ed8f1b9ec6038d5fe2 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-05VPP-1335 vapi crash when memclnt_keepalive receivedKlement Sekera1-4/+4
Change-Id: If33a7cc6c76147fd3ea9d8118370e7a508819b81 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-07-03vom: Add cross connect supportMohsin Kazmi1-0/+64
Change-Id: Ia316730d8f9fe9836200aa96e0b5fd827dc71c98 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-05-27Fixes make test errors with clang compiler on aarch64Sirshak Das1-3/+3
(VAPI_*BIN).d targets didnt have fake.api.vapi.h* as dependencies this causes the compilation to proceed before the python script generates the header files. Explicit linking of stdc++ is required for clang as errors like undefined reference to 'new operator' pop up. Change-Id: I3ca0ef048f392c4a032160ce0e4f7ae759f4c79d Signed-off-by: Sirshak Das <sirshak.das@arm.com> Reviewed-by: Brian Brooks <brian.brooks@arm.com> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
2018-05-25ARP proxy dumpsNeale Ranns1-1/+1
Change-Id: I8335ebf266becf2f42bb3f28a17dfed8d9b08f97 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-05-07opensuse: OS_ID field content changed for SUSEMarco Varlese1-1/+1
Change-Id: I4bb582d55b1071d3581155eb158995ca5153ba3c Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2018-04-27Move VOM to extras/vomDamjan Marion1-10/+36
Change-Id: Iea174f03dfba3bd06024db0f0cc373532300dcae Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-04-13GBP V2Neale Ranns1-6/+21
update the GBP plugin to implement the full NAT feature set of opflex agent Change-Id: Ic06a039c889445ed0b9087fa1f292634192b0f8d Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-03-27VOM: bond: Add support for LACPMohsin Kazmi1-0/+93
Change-Id: I0245263b212142858d3305b0f365d8342912dbb9 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-03-24make test: fix ext build on centosKlement Sekera1-1/+1
Change-Id: I2b01f73c4b10a230310a65b6f35526818bf4f76d Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-03-14VOM: acl: Add support for acl ethertype unbind and dumpMohsin Kazmi1-0/+5
Change-Id: I667b9ccabe54c8f9cff5b1a2e63864965f5064f5 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-22VOM: vhost-use interfacesNeale Ranns1-1/+29
Change-Id: Iee1574d1f0f081ccc4a90fd9825a0b5e254aa642 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-19VOM: acl: Some necessary fixesMohsin Kazmi1-0/+7
It: 1. changes ethertype_rule_t to hold actual objects instead of reference to them. 2. fixes acl_ethertype 'update' function 3. fixes pretty-print of acl-list-update. 4. adds l3-acl update unit test. Change-Id: Iec72212806e96bd0574b46b563de79f0744cb248 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-13VOM: ACL: Add Object Model for acl ethertypeMohsin Kazmi1-0/+16
Change-Id: I2b572ebd4b7bb26381f127912a4cc0825c04fc34 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>