summaryrefslogtreecommitdiffstats
path: root/src/plugins
AgeCommit message (Collapse)AuthorFilesLines
2019-07-09gbp: Ownership of dynamically created vxlan-gbp tunnels managed via gbp_itfNeale Ranns20-396/+694
Type: fix This solves the ownership of vxlan-gbp tunnels. When the last reference of these goes away they need to be deleted. Currently there are two owners; gbp_itf via gef_itf and the lock held by the gbp_endpoint_location_t. The problem is that the loc removes its reference whilst the fwd still holds the gbp_itf, and things go wrong. This change moves the lifecycle management of the vxlan-gbp tunnel to the gbp_itf. When the last lock of the gbp_itf goes, so does the tunnel. now both the EP's loc and fwd can hold a lock on the gbp_itf and it's only removed when required. The other change is the management of the 'user' of the gbp_itf. Since each user can enable and disable different features, it's the job of the gbp_itf to apply the combined set. determining a unique 'uesr' from the caller was near impossible, so I moved that to the gbp_itf, and return the allocated user, hence the 'handle' that encodes both user and interface. The hash table maps from sw_if_index to pool index. Change-Id: I4c7bf4c0e5dcf33d1c545f262365e69151febcf4 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-07-09vat: unload unused vat pluginsDave Barach20-287/+68
If the corresponding vpp plugin is absent, return a non-zero clib_error_t * from vat_plugin_register ("xxx plugin not loaded"). The vat plugin calls dlclose on the vat plugin, and it disappears. Depending on the plugin configuration, this can reduce the vpp virtual size by several gigabytes. Added a VAT_PLUGIN(<plugin-name>) macro to vat_helper_macros, clean up boilerplate vat_plugin_register() implementations. Fixed a number of non-standard vat_plugin_register methods. Type: refactor Change-Id: Iac908e5af7d5497c78d6aa9c3c51cdae08374045 Signed-off-by: Dave Barach <dave@barachs.net>
2019-07-09quic: fix passive disconnect handling & refactorNathan Skrzypczak3-541/+740
Type: refactor Change-Id: Ie54a77252e9f58a90f9e1f9595b9ede354952f70 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-07-08map gbp papi: match endianess of f64Paul Vinciguerra2-6/+6
clib_net_to_host_f64, clib_host_to_net_f64 are now implemented as '=', https://gerrit.fd.io/r/#/c/20406/ set papi to match. - all f64 api references are now wrapped with clib_net_to_host_f64 or clib_host_to_net_f64. IEEE f64 endianess is not defined. If clib_net_to_host_f64 and clib_host_to_net_f64 are later defined in VPP as big-endian, it is a single character change in the papi vpp_serializer. Note: This breaks the api in a manner that would not be detected by the flag day initiative. The scope is small. This only impacts map.api, which applied the u64 transformation, while the gbp api uses '='. The implementation of "=" raises issues for the papi socket implementation if used between systems of differing endianess. See Vratko's comments. - Added get_f64_endian_value() to api to allow client to verify endianess of f64's. Type: fix Depends-on: https://gerrit.fd.io/r/#/c/20484/ Change-Id: I00fc64a6557ba0190398df211aa0ea5c7eb101df Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-07-08gbp: More unit testsNeale Ranns1-0/+1
Type: test Change-Id: I0a58cc19bdfb73eabadbf6eb49b57e8db96959b5 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-07-08gbp: refactor policy nodesBenoît Ganne8-406/+301
Refactor both policy and policy-dpo nodes so they share the same code for contract & acl lookup and for tracing. This should help to implement new policy schemes. Type: refactor Change-Id: If5704bda708838eb01516dd39473d9bf248cfdf6 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-07-05sctp: move to plugins, disabled by defaultFlorin Coras16-0/+8625
Removed sctp buffer metadata from vnet/buffer.h, added it to the plugin. Add registration APIs for plugin-based vlib_buffer_opaque / opaque2 decoders, used by "pcap dispatch trace ..." for display in the wireshark dissector. Type:refactor Not actively maintained. Change-Id: Ie4cb6ba66f68b3b3a7d7d2c63c917fdccf994371 Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Dave Barach <dave@barachs.net>
2019-07-05gbp: use bd index at ext-itf creation instead of bd idBenoît Ganne1-1/+3
Type: fix Fixes: cfc7a107e6cb8be6e7c53a08e23a146c431c8e90 Change-Id: I341cbc94271ab89c3c643756a9c04b790cef8591 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-07-05gbp: update gbp-ext-itf APIBenoît Ganne5-107/+49
Change gbp-ext-itf API to create anonymous ext-itf through the same API as non-anonymous instead of a new API Type: refactor Change-Id: I381ff2a5bcd55276793df78ca891334c28946cd0 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-07-04hsa: clean up quic_echoDave Wallace1-11/+11
- Fix typo - Use same prefix on all error messages - Fix time arg parsing Type: fix Change-Id: I27334ada47d8512d2b43ce770a55f87081af2a1e Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-07-03misc: fix coverity warningsDave Barach2-2/+3
Type: fix Ticket: VPP-1649 Change-Id: I93a393eca80065c379035478500e75e855f39b12 Signed-off-by: Dave Barach <dave@barachs.net>
2019-07-03quic: fifo notifications fixAloys Augustin1-0/+5
Add SESSION_IO_EVT_RX handling in session_send_evt_to_thread to allow internal apps to send rx events ("tx notifications") to quic. Add a call to quic_send_packets in quic_custom_app_rx_callback to ensure QUIC ACKs are sent if there is no other activity on the connection. Type: fix Change-Id: I885e01e6475e5b0274f274e9dd34d4a771719e69 Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2019-07-03gbp: Consider data-plane learnt source better than control-planeNeale Ranns3-4/+16
Type: feature Change-Id: Ice8fc0da6450d2aa8ba63ca1277393ac3605aa2c Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-07-03gbp: improve contract formattingNeale Ranns1-8/+12
Type: feature Change-Id: I04be003bd86f828ec387dd0309bebcbf0a041e3a Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-07-03svm: fix multi-chunk fifo alloc and add more testsFlorin Coras1-11/+148
Type: fix - make sure that chunks and the rbtree are initialized if fifo segment allocates multiple chunks for the fifo. - ensure head/tail chunks are updated on all enqueue/dequeue events, including when dropping data. - more unit tests Also fixes dequeue drop updates of head chunk. Change-Id: I77f3550bc4e8b4e077f80ea87fe82b83ed013aeb Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-02gbp: add anonymous l3-out subnetsBenoît Ganne4-22/+63
An anonymous l3-out subnet is a locally attached l3-out subnet, and differs from regular l3-out subnets in the way adjacencies are managed. It is required for the anonymous l3-out external interfaces to correctly classify locally attached l3-out hosts. Type: feature Change-Id: Ie7bc88b1f22abc4d0b46db5f3cfbf208bc53ba5f Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-07-02gbp: add anonymous l3-out external interfacesBenoît Ganne12-156/+481
So far, GBP l3-out packets classification & policy relied on programmed EP. All traffic to/from l3-out must go through a known EP. This patch introduces a new feature where l3-out next-hops are only known by their subnets (l3-out prefixes). As there are no longer known EPs to program, an interface must be configured as external anonymous l3-out. Packets classification & policy on this interface will rely on the external subnets programmed in the BD VRF. Note that contrary to all other interfaces in a GBP BD, external anonymous l3-out interfaces have BD L2 learning turned on and rely on ARP/ND. Type: feature Change-Id: Ieedb29dff4e967d08c4301e82d06bff450a63e5f Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-07-02gbp: disable L2 BD learning per-interfaceBenoît Ganne4-37/+51
Disable L2 BD learning for each GBP interface instead of at the bridge level. This does not change the current behavior (learning is disabled for all GBP interfaces) but enables turning it on selectively for future features such as anonymous l3-out. Type: refactor Change-Id: Id88644277941d703600acf97d49cbc3332ae3f68 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-07-02vcl: fix sock client and server testsFlorin Coras2-5/+4
Type:fix Reported by coverity. Change-Id: Ie623c5aa3ef54b649039c5ffa10476373c532825 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-02lisp: fix unitialized ip prefix in cp unit testFlorin Coras1-0/+1
Type: fix Found by coverity. Change-Id: Ibfc753d2c42219d275e3722d6ce1ef0cec189adf Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-07-01gbp: VRF scoped contractsNeale Ranns15-36/+148
Type: feature Change-Id: I01772cfc3a0118a5c49bf346339788824e6931b2 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-30igmp: accept packets that have more on the wire data than IGMP reports.Neale Ranns1-13/+19
IGMPv3 sends a variable length of sources in a query. Today if the amount of data on the wire does not exactly match that required for the number of sources the packet is dropped. Relax this check and instead accept the packet is the amount of wire data is equal or greater than the number of sources. Some devices on the wild internet pad small packets. Type: feature Change-Id: I102682814b38c0a0614d71816c9a286d90b834df Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-29svm: rename fifo tx notifications to reflect useFlorin Coras3-10/+10
Type: refactor Change-Id: I651db44acdcb666a9c63e1037352cf88c68795b5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-28quic : Use TX event for app read notificationNathan Skrzypczak3-784/+909
Type: feature Change-Id: I1846cdeb35f079249f66a0351aa244c540923a43 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-06-28igmp: Trace more data form input packetsNeale Ranns2-7/+16
Type: feature Change-Id: I40ecc0da1281115f6e540064224538fe9472887e Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-27session: Add transport vft protocol optionsNathan Skrzypczak1-2/+4
Type: refactor Change-Id: I4e0afc206e4871596c2ed8a6ca00914a379f1526 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-06-27svm: improve fifo segment testFlorin Coras1-1/+13
Type: feature Try to also catch weirdness when running tests on arm cpus. Change-Id: I45ab7c225f43623447271e67ebf37f94236a288f Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-27lacp: custom dump for sw_interface_lacp_dumpSteven Luong1-3/+30
Add custom dump code for sw_interface_lacp_dump Type: fix Change-Id: Ifa76192ec65f596391c07b151d2a7fceed502665 Signed-off-by: Steven Luong <sluong@cisco.com>
2019-06-26tcp session: improvement to testsFlorin Coras2-12/+29
Type: fix Attempt at fixing a random failing tcp test Change-Id: I73aa31e26dd2df77d8b975e4fc88df16d8991863 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-26svm: fix fifo segment free chunk bytes accountingFlorin Coras1-17/+112
Type:fix Change-Id: Icab89337eb3dbdc93d0fb453cfd34090026072b7 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-26gbp: enforce same endpoint mac and ip srcBenoît Ganne1-6/+15
During packet classification, make sure packets coming from an EP also matches this specific EP IP address and vice-versa. This prevents and EP to send a packet on behalf of another EP. Type: fix Change-Id: I30287644ec73b90d9b6913952a82b2baedf6a5ff Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-06-26api: refactor format_vl_api_prefix_t return keysPaul Vinciguerra3-10/+10
format_vl_api_prefix_t returns a dict with keys 'address' and 'address_length', but other format_vl_api_prefix functions return a dict with 'prefix', and 'len'. Refactor all format_vl_api_prefix_t to return consistent keys 'address' and 'len'. Type: refactor Change-Id: I5f9558fc2da8742a303266e011102f5b2db80aad Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-06-26api: Remove the inlines file and replace with library functionsNeale Ranns4-4/+0
using inlines exposes the users to the internal data types used by VPP, namely vec.h. This file does not compile with a C++ compiler. Type: feature Change-Id: I1544fdd9eae998309f865df61df78571bdb96903 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-06-26vmxnet3: custom dump and debug cli fixSteven Luong3-27/+84
Add missing custom dump for vmxnet3_create, vmxnet3_delete, and vmxnet3_dump. Fix vmxnet3_create debug cli which may not parse all parameters correctly due to passing address of u16 to unformat(). The fix is to use a u32 local variable to receive the correct value from unformat(). Type: fix Change-Id: I04251c9ed0ab397ed4b1b5843a73880aec98b9f6 Signed-off-by: Steven Luong <sluong@cisco.com>
2019-06-26hsa: move vcl test apps to hsaFlorin Coras10-6/+4823
Type: refactor Change-Id: I352975585c1091bfc5b85d7f8fe985f9059820a7 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-25tcp: delivery rate estimatorFlorin Coras1-0/+312
Type: feature First cut implementation with limited testing. The feature is not enabled by default and the expectation is that cc algorithms will enable it on demand. Change-Id: I92b70cb4dabcff0e9ccd1d725952c4880af394da Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-25lisp: move cp tests to unittestFlorin Coras2-0/+1432
Type: refactor Also reformats and fixes some of the tests. Change-Id: I074c677fd9b28e192f72a2db32f6f2dbda9a314f Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-25hsa: move external echo apps to hsaFlorin Coras4-0/+4533
Type: refactor Change-Id: I9a5c2abfd0c5444b31d9020cea918f9cd28f1ac2 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-25hsa: move session-apps to host-stack apps pluginFlorin Coras8-0/+3511
Type:refactor Change-Id: I114fea3a54258797e961d8627a99ba2098674d20 Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-25ipsec: print spi in hexadecimalGuillaume Solignac1-2/+3
Print the SPI in hexadecimal and decimal. Type: feature Change-Id: I012e94f9147058064e06c6bb4622ab6b6507957d Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
2019-06-25avf: fix clear hw statsFilip Tehlar3-2/+14
AVF plugin is missing a handler for clearing stats. This patch will implement it. Ticket: VPP-1701 Type: fix Change-Id: If4b4354da442065896bb001deda23f64ddc18fb4 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2019-06-24quic: server create streams test caseDave Wallace1-1/+1
Type: test * Refactor quic_echo test app * Add timinig capabilities * Add multiple quic tests Change-Id: I3302c66539b12c1375d1a0c6d46f9ff4c6f2b27c Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-06-22lacp: convert clib_warning to event loggerSteven Luong4-20/+78
Replace clib_warning with event logger. The messages for the latter are stored in the event buffers which can be viewed with debug CLI anytime. Type: fix Change-Id: I5ede4d1f1f9f0ab8d66394f49383fc1838d397ae Signed-off-by: Steven Luong <sluong@cisco.com>
2019-06-20quic: remove session flags identifying Q/S sessionsNathan Skrzypczak1-8/+3
Type: refactor Change-Id: Id68c5ae6d57df0fc556bbf583a66e538e641ffb1 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2019-06-20buffers: fix crashKlement Sekera2-0/+92
this change is being made to fix a crash when current_data < 0 in buffer linearization function Ticket: N/A Type: fix Fixes: f883f6a1132ad4bb7aa9d9a79d420274fbcf3b64 Change-Id: Ia4ede823f673780e0c30d075b091db42e183650d Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-06-19vppinfra: fix rbtree node deleteFlorin Coras1-1/+5
Type:fix Make sure tnil color is black and that the right node colors are updated. Change-Id: Ibd9d7ea9438df4dab977202955957824723a865d Signed-off-by: Florin Coras <fcoras@cisco.com>
2019-06-19gbp: Add support for arp unicast forward in gbp bridge domainMohsin Kazmi1-1/+8
Type: feature Change-Id: Id487fe46194d0a89bd5ac53a9f4ff78b5ff6de60 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2019-06-18session: fix memory out of bound issueLijian.Zhang1-0/+8
Ring data space is following ring vec_header_t and ring elements immediately. Add verification code in session_test. Type: fix Change-Id: I0bfa096a9f459128a588821d99b5cdb4f10ede38 Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com> Reviewed-by: Sirshak Das <Sirshak.Das@arm.com>
2019-06-18fib: fib api updatesNeale Ranns10-158/+170
Enhance the route add/del APIs to take a set of paths rather than just one. Most unicast routing protocols calcualte all the available paths in one run of the algorithm so updating all the paths at once is beneficial for the client. two knobs control the behaviour: is_multipath - if set the the set of paths passed will be added to those that already exist, otherwise the set will replace them. is_add - add or remove the set is_add=0, is_multipath=1 and an empty set, results in deleting the route. It is also considerably faster to add multiple paths at once, than one at a time: vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.11 100000 routes in .572240 secs, 174751.80 routes/sec vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.12 100000 routes in .528383 secs, 189256.54 routes/sec vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.13 100000 routes in .757131 secs, 132077.52 routes/sec vat# ip_add_del_route 1.1.1.1/32 count 100000 multipath via 10.10.10.14 100000 routes in .878317 secs, 113854.12 routes/sec vat# ip_route_add_del 1.1.1.1/32 count 100000 multipath via 10.10.10.11 via 10.10.10.12 via 10.10.10.13 via 10.10.10.14 100000 routes in .900212 secs, 111084.93 routes/sec Change-Id: I416b93f7684745099c1adb0b33edac58c9339c1a Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Ole Troan <ot@cisco.com> Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-06-18api: string type to convert to vectorOle Troan6-31/+28
Previous use of strndup() required user to remember to call free(). Now return a vector pointing directly to the API message string. Of course user must remember to copy the string out if lifetime is longer than API message lifetime. Change-Id: Ib5e2b3d52d258e1a42ea9ea9a9e04abbe360e2bf Type: fix Signed-off-by: Ole Troan <ot@cisco.com>