History log of /vpp/src/plugins/unittest/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
3b954096 25-May-2020 Florin Coras <fcoras@cisco.com>

tcp: fix sack block validation on wrap

Type: fix
Fixes: 487507f

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia9813ae09d14111dc8edac0fa6ab082e13ab6e2e

2a41919e 19-May-2020 Dave Barach <dave@barachs.net>

vppinfra: refactor mpcap.h

vppinfra source files MUST NOT #include <vlib/vlib.h>, <vnet/vnet.h>
or similar. Move mpcap_add_packet(...), mpcap_add_buffer(...) to a new
file: src/vnet/mpcap.h.

Type: refactor
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Id517aef6fe49b618f853ce32940b91ba45a1e60d

9845c20d 28-Apr-2020 Florin Coras <fcoras@cisco.com>

session: add option to preallocate fifo headers

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie47546ef36590b90ed481b14cf812afbecf7981c

7784140f 29-Apr-2020 Dave Barach <dave@barachs.net>

misc: binary api fuzz test fixes

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

37b44546 27-Apr-2020 Dave Barach <dave@barachs.net>

vppinfra: improve test coverage

Bonus corner-case bugfix in bitmap.h, found during the exercise.
Issue dates from 2001 or thereabouts. Please review this specific
change carefully.

lcov_post: filter system include directories and generated files in
build-root

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Iaa0b63e9dc571dfe3d992197ac49ba4d93403c61

77d42fc7 20-Apr-2020 Benoît Ganne <bganne@cisco.com>

svm: asan: fix asan support

- restrict the unittests SVM address space to what is supported by ASan
- mark SVM mmap()ed address space accessible for ASan
- SVM shared memory heap scheme means some allocation can happen
outside the current process. Lazily mark those accessible for ASan

Type: fix

Change-Id: I7c196c80b2a5297651d0afa54f1a8e478fcf59b1
Signed-off-by: Benoît Ganne <bganne@cisco.com>

0e6199df 17-Apr-2020 Florin Coras <fcoras@cisco.com>

svm: check if fifo free list index is valid on alloc

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Change-Id: Ib85c2f01dc7ec9858f2f88b89e209f989d78c5d9

57660d9d 04-Apr-2020 Florin Coras <fcoras@cisco.com>

session udp: shared local endpoints

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie7102355b95eefb233ec7d146e61819051a7bf07

0250090f 04-Apr-2020 Dave Barach <dave@barachs.net>

misc: strcpy be gone

Causes static analysis "vulnerability" warnings

Type: fix
Ticket: VPP-1837

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I272fa69251d70f62178e6dff0423c16f99937af1

00e01d3e 21-Oct-2019 Florin Coras <fcoras@cisco.com>

session: improve error reporting

Type: improvement

Change-Id: I9dd850a1ce85b0adb5136233f176117e0ee38817
Signed-off-by: Florin Coras <fcoras@cisco.com>

999840cf 18-Mar-2020 Florin Coras <fcoras@cisco.com>

tcp: move features to separate files

Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia477b8dba9266f47907967e363c11048e5cd95ab

03c254ec 17-Mar-2020 Neale Ranns <nranns@cisco.com>

fib: Always install all routers mcast addresses

Type: improvement

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ia8dff15855a81cf29729bdaa3ff28fbe3254fa97

64e96613 17-Mar-2020 Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>

svm: fifo test

Type: feature

Adding a very simple test case just to confirm that setting fifo size
same as the current in-use size would result no space to enqueue, which
is zero-window in the TCP.

Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>
Change-Id: I6d60449386eaa270f801d2046cc7e546f843bf34

3ec09e92 24-Feb-2020 Neale Ranns <nranns@cisco.com>

ip: ip_address_t uses ip46_address_t

Type: improvement

type re-use.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ic2a2e6babf9ae66a1e53aec53a6cd157e1893dc8

19718003 11-Mar-2020 Dave Barach <dave@barachs.net>

vppinfra: refactor clib_timebase_t

Add a clib_time_t * argument to clib_timebase_init(...), to encourage
client code to share the vlib_main_t's clib_time_t object.

Display the current day / date in GMT via the "show time" debug CLI.

Fix the test framework so it processes the new "show time" output format.

Type: refactor

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I5e52d57eb164b7cdb6355362d520df6928491711

c75ce4df 28-Feb-2020 Florin Coras <fcoras@cisco.com>

svm: fix slice locking on fifo alloc

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1fef115ffc2277ad6e0673b49be137147808891c

8e755a16 06-Feb-2020 Florin Coras <fcoras@cisco.com>

svm: support multi-chunk fifo chunk alloc

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id601cd241a2d124d3189057edab4299ffde7ee32

2da39718 25-Feb-2020 Steven Luong <sluong@cisco.com>

unittest: Skip string test case for sizeof (src) > sizeof (dst)

coverity complains that the subject test may cause dst buffer overrun
problem and it is right. The problem is when __builtin_constant_p (n)
returns true, memcpy_s_inline skips all the errors checking and does the
copy blindly. Please see the code in memcpy_s_inline.

The fix is to skip the subject test when the aformentioned builtin function
returns true.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I50de91cc0c853a134b3bcf3b0cd8d45d7668b092

2de9c0f9 02-Feb-2020 Florin Coras <fcoras@cisco.com>

svm: minimal initial fifo

Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4ee46a6c3c53c58199c275e20702f7fd11b60d9a

234fe894 25-Dec-2019 Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>

session svm: tracking segment memory usage

1. segment manager would attempt to balance the usages across
the segments, when it allocate fifos
2. the memory presure level is determined per fifo-segment
3. updated unit test
4. updated cli output for segments

Type: feature

Signed-off-by: Ryujiro Shibuya <ryujiro.shibuya@owmobility.com>
Change-Id: I2923f3e0a43dd919196a0cb2cd55e098fde6cf66

f22f4e56 20-Dec-2019 Florin Coras <fcoras@cisco.com>

svm: refactor fifo

Type: refactor

Switch from a wrapped byte space to a "continuous" one wherein fifo
chunks are appended to the fifo as more data is enqueued and chunks are
removed as data is dequeued.

The fifo is still subject to a maximum size, i.e., maximum number of
bytes that can be enqueued, so the max number of chunks associated to
the fifo is also constrained.

When enqueueing data, which must fit within the available free space, if
not enough "supporting" chunk memory is available, the fifo asks the
fifo segment for enough chunk memory to ensure that the write can
succeed. To avoid allocating large amounts of small chunks due to small
writes, if possible, the size of the chunks requested is lower capped by
min_alloc.

When dequeuing data, all the chunks that have been completely drained,
i.e., head moved beyond the chunks’ end bytes, are unlinked from the
fifo and returned to the fifo segment. The one exception to this is the
last chunk which is never unlinked.

Change-Id: I98c1dbd9135fb79650365c7e40c29238b96cd4ee
Signed-off-by: Florin Coras <fcoras@cisco.com>

b0208068 12-Dec-2019 Florin Coras <fcoras@cisco.com>

svm: refactor fifo chunk tracking

Avoid tracking with rbtrees all of the chunks associated to a fifo.
Instead, only track chunks when doing out-of-order operations (peek or
ooo enqueue).

Type: refactor

Change-Id: I9f8bd266211746637d98e6a12ffc4b2d6346950a
Signed-off-by: Florin Coras <fcoras@cisco.com>

8d6d74cd 20-Feb-2020 Neale Ranns <nranns@cisco.com>

vlib: Punt reason allocation listener enable/disable callback

Type: improvement

allow clients that allocate punt reasons to pass a callback function
that is invoked when the first/last client registers to use/listen on
that punt reason. This allows the client to perform some necessary
configs that might not otherwise be enabled.
IPSec uses this callback to register the ESP proto and UDP handling
nodes, that would not otherwise be enabled unless a tunnel was present.

Change-Id: I9759349903f21ffeeb253d4271e619e6bf46054b
Signed-off-by: Neale Ranns <nranns@cisco.com>

719ef39d 24-Feb-2020 Filip Tehlar <ftehlar@cisco.com>

crypto: fix coverity warnings

Type: fix

Change-Id: I89c0923ad6ac1daf65b2d24ad4b6f00b7703e58e
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

a9075dcf 03-Jul-2019 Filip Tehlar <ftehlar@cisco.com>

crypto: add support for testing quad loops in crypto algos

This patch adds support for test cases with arbitrary long plaintext.

Type: feature
Change-Id: I48cd3642e30cc49eabc196c45d7f73c484e93057
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

0426185e 12-Feb-2020 Florin Coras <fcoras@cisco.com>

tcp: move connections to wrk ctx

Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I06cc3f032a72eacc716eed8d6fe8856a2839def1

efcad1a9 04-Feb-2020 Filip Tehlar <ftehlar@cisco.com>

ipsec: add support for chained buffers

Type: feature

Change-Id: Ie072a7c2bbb1e4a77f7001754f01897efd30fc53
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

dc90c719 07-Feb-2020 Benoît Ganne <bganne@cisco.com>

svm: use default SVM address in fifo unit tests

Using random addresses can confuse AddressSanitizer

Type: fix

Change-Id: I44368093f899672ac4d511cc5a01ed87c988e63a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

c95eefb3 08-Jan-2020 Florin Coras <fcoras@cisco.com>

tcp: handle ack advancement with no holes and reneging

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9afba8dc9e087b8c436fe568531c02614a577a7c

479f7fec 08-Jan-2020 Florin Coras <fcoras@cisco.com>

tcp: fix last sacked with no holes

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id12b0a9b8bc47aef8b393544e5b4c8228ed6a606

067f8f96 04-Jan-2020 Florin Coras <fcoras@cisco.com>

tcp: fix duplicate sack whith reneging

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6f7fb91e059996ff702eb9c36e3abaed237fe221

1decd98e 24-Dec-2019 Dave Barach <dave@barachs.net>

unittest: test_bihash call clib_time_init(...)

Fix "Rejecting large frequency change of +infinity" errors.

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I8efca1291e38c48bb98e7f8109253224a4f0a2a1

f50bac1b 06-Dec-2019 Neale Ranns <nranns@cisco.com>

vppinfra: bihash walk cb typedef and continue/stop controls

Type: feature

Change-Id: I28f7a658be3f3beec9ea32635b60d1d3a10d9b06
Signed-off-by: Neale Ranns <nranns@cisco.com>

62ddc030 09-Dec-2019 Florin Coras <fcoras@cisco.com>

session svm: per thread fifo segment slices

Type: refactor

Change-Id: I9be652e56cdb48b0aee3253f7ce8d9bed299d824
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

6b3f25ca 09-Dec-2019 Dave Barach <dave@barachs.net>

vlib: improve test coverage

Add tests.
Remove unused rule-based parser code.

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I3ca3a9dd9da8ee8f3a47004c98f2f5644db10057

3bab8f9c 04-Dec-2019 Neale Ranns <nranns@cisco.com>

fib: Decouple source from priority and behaviour

Type: feature

the fib_source_t enum alone no longer defines the priority and
behaviour, instead each source must be allocated these attributes.
This allows the creation of other sources by the plugins (and
soon over the API).

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I890ee820fbc16079ee417ea1fbc163192806e853

11e9e351 14-Nov-2019 Florin Coras <fcoras@cisco.com>

session tcp: support pacer idle timeouts

Type: feature

To avoid excessive bursts, pacer must be provided with an estimated rtt
for the connection. That's used to compute an idle timeout, i.e., time
after which the bucket is reset to 1 mtu due to inactivity. For now,
idle timeout is computed as 5% of the rtt.

Change-Id: Ia0b752fe7b4ad0ce97b477fb886b0133a2321541
Signed-off-by: Florin Coras <fcoras@cisco.com>

e51a9bbe 19-Nov-2019 Dave Barach <dave@barachs.net>

vlib: improve code coverage, part deux

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If31f4b50da7a6e4a9704ceb3415c582143c08355

c17fc447 18-Nov-2019 Dave Barach <dave@barachs.net>

vlib: improve code coverage in src/vlib

Type: test

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I2dc4c09730f77931a2b484a6dd5dc669068f8e57

ea93e48c 12-Nov-2019 Neale Ranns <nranns@cisco.com>

ip: IP address and prefix types (moved from LISP)

Type: refactor

Change-Id: I2c6b59013bfd21136a2955442c779685f951932b
Signed-off-by: Neale Ranns <nranns@cisco.com>

bc2e640d 04-Nov-2019 Fan Zhang <roy.fan.zhang@intel.com>

crypto: fix crypto perf unittest crash

Type: fix

crypto perf test crashes for key size different than 16 bytes.
This patch fixes the issue

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: Ic8a8ca83ca189c879815dc5d065b8c6f7826cd41

d6ae4bf1 13-Oct-2019 Florin Coras <fcoras@cisco.com>

tcp: improve rate samples for retansmitted segments

Type: fix

- Initialize max_seq on both transmitted and retransmitted segments
- Keep track of segments that have been sacked.
- Track new data segments sent during recovery

Change-Id: Ice55231a3da200ae6171702e54b2ce155f831143
Signed-off-by: Florin Coras <fcoras@cisco.com>

a9f1e7d4 16-Oct-2019 Benoît Ganne <bganne@cisco.com>

svm: reset vector data instead of length

Reseting vector length confuses ASAN and does not reset data either.
Only reset data instead.

Type: fix

Change-Id: Id60b8333df28a5b636a9d302b987bbad95c85c38
Signed-off-by: Benoît Ganne <bganne@cisco.com>

7e2cea3d 09-Oct-2019 Dave Barach <dave@barachs.net>

vppinfra: fix page boundary crossing bug in hash_memory64

Fix a day-1 bug, possibly dating back as far as 2002. The zap64() game
involves fetching 8 byte chunks, and clearing octets not to be
included in the key.

That's fine *unless* the 8-byte fetch happens to cross a page boundary
into unmapped or no-access space.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I4607e9840032257c96ba7387f86c931c0921749d

b0a7c484 29-Sep-2019 Benoît Ganne <bganne@cisco.com>

tcp: unittest: do not access non-existent samples

There is no bt->samples for this test, do not use it.

Type: fix

Change-Id: I2090290887bc5c0b5cdb0561cf2bf72a87781089
Signed-off-by: Benoît Ganne <bganne@cisco.com>

7436b436 11-Sep-2019 Florin Coras <fcoras@cisco.com>

tcp: compute snd time for rate sample

Type: feature

Change-Id: I6bd675dc28dbc34293e895911efe986844c0564f
Signed-off-by: Florin Coras <fcoras@cisco.com>

558e3e09 06-Sep-2019 Florin Coras <fcoras@cisco.com>

tcp: handle sack reneging

Type: feature

Change-Id: I201155b1b92cf7e57310af726879dab039090582
Signed-off-by: Florin Coras <fcoras@cisco.com>

e7eba489 25-Aug-2019 Simon Zhang <yuwei1.zhang@intel.com>

ip: remove unused function parameter

Type: refactor

Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Change-Id: I8674ff5f6f6336b256b7df8187afbb36ddef71fb

92f190a8 23-Aug-2019 Florin Coras <fcoras@cisco.com>

tcp: fix byte tracker samples flush

Type: fix

Change-Id: I3b4cb8fc17387693d6ad6cdef004ca99cd56bc23
Signed-off-by: Florin Coras <fcoras@cisco.com>

a436a422 20-Aug-2019 Florin Coras <fcoras@cisco.com>

tcp: add option for always on event logging

Type: feature

Add option to always compile in debugging infra. Debug verbosity can be
controlled via configuration updatable via cli. Compile time inclusion
and configuration of event logging verbosity is still available in order
to minimize event logging impact.

Change-Id: I9d946efe9fa4204fdace1adb1d6588c97b5ae758
Signed-off-by: Florin Coras <fcoras@cisco.com>

26dd6de9 24-Jul-2019 Florin Coras <fcoras@cisco.com>

session tcp: handle rxt and acks as custom events

Type: feature

Control ack generation and retransmissions with session layer scheduler.

Change-Id: Iacdf9f84ab81f44851980aa45a83e75f29be2b7b
Signed-off-by: Florin Coras <fcoras@cisco.com>

a9ed6f70 22-Jul-2019 Gary Boon <gboon@cisco.com>

vppinfra: add mapped pcap file support

Type: feature

Change-Id: Ic720d56a6f8901efde2a58519bc9aa553205a9a6
Signed-off-by: Gary Boon <gboon@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

b957d807 10-Jul-2019 Florin Coras <fcoras@cisco.com>

vppinfra: add doubly linked list

Type: feature

Change-Id: I21511c1abea703da67f1a491e73342496275c498
Signed-off-by: Florin Coras <fcoras@cisco.com>

495d7ffb 12-Jul-2019 Neale Ranns <nranns@cisco.com>

ipsec: Reference count the SAs

- this remove the need to iterate through all state when deleting an SA
- and ensures that if the SA is deleted by the client is remains for use
in any state until that state is also removed.

Type: feature

Change-Id: I438cb67588cb65c701e49a7a9518f88641925419
Signed-off-by: Neale Ranns <nranns@cisco.com>

85fc1300 26-Jun-2019 Florin Coras <fcoras@cisco.com>

tcp: improve rate estimate

Type:feature

- sample rtt estimation
- report acked+sacked
- report last lost bytes
- use snd_una == snd_nxt to detect 0 bytes in flight

Change-Id: I83181261fdb375c7e33d24b7a82343561e6a905f
Signed-off-by: Florin Coras <fcoras@cisco.com>

4bda2d95 03-Jul-2019 Dave Barach <dave@barachs.net>

misc: fix coverity warnings

Type: fix
Ticket: VPP-1649

Change-Id: I93a393eca80065c379035478500e75e855f39b12
Signed-off-by: Dave Barach <dave@barachs.net>

eaacce47 02-Jul-2019 Florin Coras <fcoras@cisco.com>

svm: fix multi-chunk fifo alloc and add more tests

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>

7beaa3df 01-Jul-2019 Florin Coras <fcoras@cisco.com>

lisp: fix unitialized ip prefix in cp unit test

Type: fix

Found by coverity.

Change-Id: Ibfc753d2c42219d275e3722d6ce1ef0cec189adf
Signed-off-by: Florin Coras <fcoras@cisco.com>

6aa9f5f8 27-Jun-2019 Florin Coras <fcoras@cisco.com>

svm: improve fifo segment test

Type: feature

Try to also catch weirdness when running tests on arm cpus.

Change-Id: I45ab7c225f43623447271e67ebf37f94236a288f
Signed-off-by: Florin Coras <fcoras@cisco.com>

c930cda3 26-Jun-2019 Florin Coras <fcoras@cisco.com>

tcp session: improvement to tests

Type: fix

Attempt at fixing a random failing tcp test

Change-Id: I73aa31e26dd2df77d8b975e4fc88df16d8991863
Signed-off-by: Florin Coras <fcoras@cisco.com>

1c91c773 26-Jun-2019 Florin Coras <fcoras@cisco.com>

svm: fix fifo segment free chunk bytes accounting

Type:fix

Change-Id: Icab89337eb3dbdc93d0fb453cfd34090026072b7
Signed-off-by: Florin Coras <fcoras@cisco.com>

52814737 12-Jun-2019 Florin Coras <fcoras@cisco.com>

tcp: delivery rate estimator

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>

0bcb931c 25-Jun-2019 Florin Coras <fcoras@cisco.com>

lisp: move cp tests to unittest

Type: refactor

Also reformats and fixes some of the tests.

Change-Id: I074c677fd9b28e192f72a2db32f6f2dbda9a314f
Signed-off-by: Florin Coras <fcoras@cisco.com>

c09b7fd0 04-Jun-2019 Klement Sekera <ksekera@cisco.com>

buffers: fix crash

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>

d314963d 19-Jun-2019 Florin Coras <fcoras@cisco.com>

vppinfra: fix rbtree node delete

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>

b6d61e34 22-May-2019 Lijian.Zhang <Lijian.Zhang@arm.com>

session: fix memory out of bound issue

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>

097fa66b 01-May-2018 Neale Ranns <neale.ranns@cisco.com>

fib: fib api updates

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>

2f0f96b9 13-Jun-2019 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

session: use listener_handle instead of listener_index

Type: refactor

Change-Id: I97fa59a0ba0b6b7a98698926020ffffcf6ae6ba3
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>

423fbb1d 23-May-2019 Damjan Marion <damarion@cisco.com>

unittest: fix test crypto perf for AEAD algos

Change-Id: I055014ff0bc7f6d32d59eaf3511ecb91e268d49b
Signed-off-by: Damjan Marion <damarion@cisco.com>

f9d4ab42 11-May-2019 Florin Coras <fcoras@cisco.com>

svm: improve fifo segment prealloc support

- track fifo segment free and chunk freelist memory
- improve fifo alloc. If there are enough chunks to satisfy a fifo
allocation request but not enough free memory, allocate a multi-chunk
fifo
- add apis to preallocate chunks and fifo headers
- more tests

Change-Id: If18dba7ab856272c9f565d36ac36365139793e0b
Signed-off-by: Florin Coras <fcoras@cisco.com>

7d31ab2a 08-May-2019 Dave Barach <dave@barachs.net>

add mactime plugin unit / code coverage tests

The unit and code coverage tests are boring. The rest of the patch
involves test and packet-generator infra cleanups.

Teach the "make test-xxx" family of targets to set the api test plugin
path correctly, to make "binary-api <api-message-name> <args>" debug
CLI commands work correctly in the "make test"
environment. Unfortunately involves both the top-level and test
Makefiles.

Add a minor pg cli feature, a CLI to manually set
s->sw_if_index[VLIB_TX].

Consider the case where one configures an interface with both a
device-input and an output feature. To test the output feature using
the pg, it's necessary to inject packets into the interface output
node with both b->sw_if_index[VLIB_TX] and b->sw_if_index[VLIB_RX] set
correctly. For example:

packet-generator new {
name tx
limit 15
size 128-128
interface local0 # rx: device input feature not configured on local0
tx-interface loop0 # tx: output node requires b->sw_if_index[VLIB_TX]
node loop0-output
data {
hex 0x01005e7ffffa000dead0000008000102030405060708090a0b0c0d0e0f0102030405
}
}

Fix a longstanding bug in the packet generator stream setup. Remove
kludges which set b->sw_if_index[VLIB_TX] to ~0 [in multiple places]
instead of using the stream value s->sw_if_index[VLIB_TX], and setting
THAT datum correctly.

Change-Id: I1097a18e8db73661ded6b822c1d718f7e5cf36ed
Signed-off-by: Dave Barach <dave@barachs.net>

cefd5d88 05-May-2019 Florin Coras <fcoras@cisco.com>

svm: decouple fifo and default chunk allocation

Default chunk is no longer embedded into the fifo and on free is
returned to its respective chunk list.

Change-Id: Ifc5d214eaa6eca44356eb79dd75650fb8569113f
Signed-off-by: Florin Coras <fcoras@cisco.com>

2ce28d60 03-May-2019 Dave Barach <dave@barachs.net>

Add bihash statistics hook

Example / unit-test in .../src/plugins/unittest/bihash_test.c

Change-Id: I23fd0ba742d65291667a755965aee1a3d3477ca2
Signed-off-by: Dave Barach <dave@barachs.net>

344ce427 03-May-2019 Florin Coras <fcoras@cisco.com>

session/svm: apis for fifo shrinking

Change-Id: Ie519683bb90aae6fb95f2a09e251cded1890ed41
Signed-off-by: Florin Coras <fcoras@cisco.com>

a7570b03 02-May-2019 Florin Coras <fcoras@cisco.com>

svm: basic support for fifo shrinking

As opposed to growing, this is not a bulk operation, instead dependent
on how the producer/consumer advance head and tail, the fifo will shrink
in one or multiple steps.

Only once the fifo's nitems and size are reduced to their appropriate
values, equal or larger to what was requested, can the fifo chunks be
collected by the owner. Chunk collection must be done with the segment
heap pushed.

Change-Id: Iae407ccf48d85320aa3c1e0304df56c5972c88c1
Signed-off-by: Florin Coras <fcoras@cisco.com>

29a59c3a 02-May-2019 Florin Coras <fcoras@cisco.com>

svm: store normalized head/tail for fifo

If head/tail are stored as "absolute" values that are normalized to [0,
fifo_size] interval, when fifo is shrunk/grown the consumer and producer
have to independently update to the new fifo size and fix head and tail,
respectively.

If the head and tail are stored as normalized values, under the right
conditions, they don't need to be fixed when fifo size changes.

This reverts one of the changes in gerrit 18223.

Change-Id: I55a908828afe90925cf7c20186a940b25e5805f9
Signed-off-by: Florin Coras <fcoras@cisco.com>

87b15ceb 29-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: more fifo refactor/cleanup

Change-Id: Ie76c69641c8598164d0d00fd498018037258fd86
Signed-off-by: Florin Coras <fcoras@cisco.com>

de146e5d 27-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: fix fifo tail/head/ooo logic for u32 wrap

These were introduced with the switch to unbound tail/head size, so they
only affect master. Added unit tests to avoid future surprises.

Change-Id: I83b6c9efbe31d8092ba59b8e2ed46f4da97f35db
Signed-off-by: Florin Coras <fcoras@cisco.com>

b095a3cd 25-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: fifo segment support for chunk allocation

Change-Id: Ie96706b4d8bcb32d2d5f065bc765f95f4e9369e7
Signed-off-by: Florin Coras <fcoras@cisco.com>

82d81d4f 25-Apr-2019 Damjan Marion <damarion@cisco.com>

crypto: AES GCM IV length is always 12

... at least for use cases we are interested in

Change-Id: I1156ff354635e8f990ce2664ebc8dcd3786ddca5
Signed-off-by: Damjan Marion <damarion@cisco.com>

88001c64 24-Apr-2019 Florin Coras <fcoras@cisco.com>

session: cleanup segment manager and fifo segment

Change-Id: I984f347fb465c0c405cef668d8690457e81788e2
Signed-off-by: Florin Coras <fcoras@cisco.com>

1ccbbfbf 25-Apr-2019 Damjan Marion <damarion@cisco.com>

unittest: AES GCM test cases cleanup

This reverts commit 7f2d57b69ea031cc6110b3a1f4c1ef1c35b67181.

Change-Id: I23c3b4d2dab6e13cc8fbbf0ac9d0cfd8af3241c1
Signed-off-by: Damjan Marion <damarion@cisco.com>

d1bed687 24-Apr-2019 Damjan Marion <damarion@cisco.com>

crypto: improve key handling

Change-Id: If96f661d507305da4b96cac7b1a8f14ba90676ad
Signed-off-by: Damjan Marion <damarion@cisco.com>

4375fa31 19-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: fifo ooo reads/writes with multiple chunks

Change-Id: If23a04623a7138c9f6c98ee9ecfa587396618a60
Signed-off-by: Florin Coras <fcoras@cisco.com>

d35d4232 24-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: move mq test to ut plugin

Change-Id: Ic4e882b784e5773198e55bd97b1bbd3d6dda888a
Signed-off-by: Florin Coras <fcoras@cisco.com>

1219b2d0 23-Apr-2019 Florin Coras <fcoras@cisco.com>

session: remove unused fifo allo return value

Change-Id: I50a6bcc127e4b44becc4b694bdd3018ac9bfab5c
Signed-off-by: Florin Coras <fcoras@cisco.com>

52ef4c58 24-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: move fifo tests to ut plugin

Change-Id: I638facf6e2128334c3d1a5a8494f378505831e1b
Signed-off-by: Florin Coras <fcoras@cisco.com>

58c7580b 11-Apr-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Enable 'test crash' command when running unittest plugin.

Change-Id: Icf0cff122dfbd260a2865b6c83531f4a8c726132
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

f7cda7a9 20-Apr-2019 Florin Coras <fcoras@cisco.com>

rbtree: add successor and predecessor functions

Change-Id: I6934beaf5c08bae2d4f0bd3a6bb811810407c1f9
Signed-off-by: Florin Coras <fcoras@cisco.com>

f682facb 19-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: move fifo tests to a separate file

Change-Id: Iac9ac9f5a6873aae1882316af4f6c919788a0cef
Signed-off-by: Florin Coras <fcoras@cisco.com>

2309e7a4 19-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: support addition of chunks to fifos

Change-Id: Ia56cad89b85b7a99ab4bfb85318a45a71381fb53
Signed-off-by: Florin Coras <fcoras@cisco.com>

0a846806 10-Apr-2019 Florin Coras <fcoras@cisco.com>

svm: allow indirect fifo data chunks

Fifos can use multiple memory chunks for simple read/write operations.
Adding/removing chunks after assignment not yet supported.

Change-Id: I2aceab6aea78059d74e0d3a9993c40d5196d077b
Signed-off-by: Florin Coras <fcoras@cisco.com>

28aa539f 05-Feb-2019 Sirshak Das <sirshak.das@arm.com>

svm_fifo rework to avoid contention on cursize

Problems Addressed:
- Contention of cursize by producer and consumer.
- Reduce the no of modulo operations.

Changes:
- Synchronization between producer and consumer changed from cursize
to head and tail indexes
Implications: reduces the usable size of fifo by 1.
- Using weaker memory ordering C++11 atomics to access head and tail
based on producer and consumer role.
- Head and tail indexes are unsigned 32 bit integers. Additions and
subtraction on them are implicit 32 bit Modulo operation.
- Adding weaker memory ordering variants of max_enq, max_deq, is_empty
and is_full Using them appropriately in all places.

Perfomance improvement (iperf3 via Hoststack):

iperf3 Server: Marvell ThunderX2(AArch64) - iperf3 Client: Skylake(x86)
~6%(256 rxd/txd) - ~11%(2048 rxd/txd)

Change-Id: I1d484e000e437430fdd5a819657d1c6b62443018
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>

672d5fc6 16-Apr-2019 Florin Coras <fcoras@cisco.com>

vppinfra: add basic rbtree

Algorithm from CLRS, Introduction to Algorithms 3rd Edition, Ch. 13

Change-Id: I5bc2c507593770939cd5584f21dacf36ebd2b4c1
Signed-off-by: Florin Coras <fcoras@cisco.com>

d0d6b942 15-Apr-2019 Filip Tehlar <ftehlar@cisco.com>

crypto: fix coverity warnings

Change-Id: Id9dfd912517c44cf812953bd05ac04c9e172a2b7
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

89e66434 12-Apr-2019 fituldo <filip.tehlar@gmail.com>

crypto: add support for AES-CTR cipher

Change-Id: I7d84bab7768421ed37813702c0413e52167f41ab
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

11a73973 11-Apr-2019 Filip Tehlar <ftehlar@cisco.com>

crypto: add more AES-GCM test cases

Change-Id: Ibb3e2f3ba5f31482fc2f0dce53d68f8476608f4b
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

61c0a3dd 05-Apr-2019 Damjan Marion <damarion@cisco.com>

crypto: add performace test to unittest plugin

Change-Id: I49c710c5ace24a4c1f083120fd4c2972566a1695
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

f324dec0 08-Apr-2019 Jim Thompson <jim@netgate.com>

fixing typos

Change-Id: I215e1e0208a073db80ec6f87695d734cf40fabe3
Signed-off-by: Jim Thompson <jim@netgate.com>

7f6bd24f 08-Apr-2019 Neale Ranns <nranns@cisco.com>

vlib-punt: fix error node counting

Change-Id: I271aa8b8f4917c187ad52db774e4ad26677e2b82
Signed-off-by: Neale Ranns <nranns@cisco.com>

060bfb98 29-Mar-2019 Damjan Marion <damarion@cisco.com>

crypto: add support for AEAD and AES-GCM

Change-Id: Iff6f81a49b9cff5522fbb4914d47472423eac5db
Signed-off-by: Damjan Marion <damarion@cisco.com>

d1a12ef8 28-Mar-2019 Andrew Yourtchenko <ayourtch@gmail.com>

vppinfra: fix sparse_vec_index() returning non-zero index for some nonexistent elements

If we are testing for an index whose membership bitmask happens to sit in LSB of uword,
and there is nothing else set in that uword in the member bitmask, the shortcut path
returning the valid index is taken even if the element with a given index doesn't
exist in the sparse vector. This happens because the count of leading zeroes on the
value of 0 is zero, which is equal to the value taken modulo bitsize uword.

Take care of that case.

Also add unittests showing the problem and verifying that sparse_vec_index2 does not
have the same issue.

Change-Id: I19117e13817c3e5de579b9250bb741de42491985
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

a03d1823 28-Mar-2019 Damjan Marion <damarion@cisco.com>

crypto: add vnet_crypto_op_init (...)

Change-Id: I2018d8367bb010e1ab30d9c7c23d9501fc38a2e5
Signed-off-by: Damjan Marion <damarion@cisco.com>

76b5649d 28-Sep-2018 Neale Ranns <nranns@cisco.com>

Punt Infra

A punt/exception path that provides:
1) clients that use the infra
2) clients can create punt reasons
3) clients can register to recieve packets that are punted
for a given reason to be sent to the desired node.
4) nodes which punt packets fill in the {reason,protocol} of the
buffere (in the meta-data) and send to the new node "punt-dispatch"
5) punt-dispatch sends packets to the registered nodes or drops

Change-Id: Ia4f144337f1387cbe585b4f375d0842aefffcde5
Signed-off-by: Neale Ranns <nranns@cisco.com>

8feeaff5 27-Mar-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

Typos. A bunch of typos I've been collecting.

Change-Id: I53ab8d17914e6563110354e4052109ac02bf8f3b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

063dfa15 20-Mar-2019 Filip Tehlar <ftehlar@cisco.com>

crypto: implement rfc4231 test cases

Change-Id: I540241672a20f687d20bb70adbf2b33200f34167
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

3e2e1907 14-Mar-2019 Neale Ranns <nranns@cisco.com>

ADJ: more thorough link up check

Change-Id: I04dbfb914706b25fcc3bd6ee0d19cfdc810234ae
Signed-off-by: Neale Ranns <nranns@cisco.com>

47596837 13-Mar-2019 Florin Coras <fcoras@cisco.com>

tcp: improve handling of snd_nxt

- avoid changing snd_nxt when doing fast retransmits
- use snd_una_max only to keep track of the max seq number sent
- simplify future ack testing

Change-Id: I3580ad3aefe30128486c3375d0ac3f3f62c04c5e
Signed-off-by: Florin Coras <fcoras@cisco.com>

00a44206 21-Mar-2019 Neale Ranns <nranns@cisco.com>

IPSEC: test for packet drop on sequence number wrap

Change-Id: Id546c56a4904d13d4278055f3c5a5e4548e2efd0
Signed-off-by: Neale Ranns <nranns@cisco.com>

e225f717 19-Mar-2019 Filip Tehlar <ftehlar@cisco.com>

tests: implement crypto tests per RFC2202

Change-Id: I18b30d5ee8aa60c34d52b7716b5feb7225cb0d59
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

91f17dc7 18-Mar-2019 Damjan Marion <damarion@cisco.com>

crypto: introduce crypto infra

Change-Id: Ibf320b3e7b054b686f3af9a55afd5d5bda9b1048
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

6348074b 13-Mar-2019 Neale Ranns <nranns@cisco.com>

TEST: link-state up/down notifications on FIB forwarding

Change-Id: I478c4e5feb9603b7443efdf2967f98f9bde7ea0f
Signed-off-by: Neale Ranns <nranns@cisco.com>

a5160d7d 13-Mar-2019 Dave Barach <dave@barachs.net>

VPP-1576: fix a set of coverity warnings

Change-Id: Ifd34aed8692d5acaa370d4976d974ac573e43705
Signed-off-by: Dave Barach <dave@barachs.net>

176bcb28 10-Mar-2019 Florin Coras <fcoras@cisco.com>

svm mq: add unit test

Change-Id: I2f1fa15a99163b9c105707484503dc9502265c52
Signed-off-by: Florin Coras <fcoras@cisco.com>

31c9955a 01-Mar-2019 Florin Coras <fcoras@cisco.com>

session: cleanup/rename functions

- remove unused functions
- rename old "stream" functions

Change-Id: Icbb03daa9f9f1c58b5be5c38aa8a9cbcf9159b47
Signed-off-by: Florin Coras <fcoras@cisco.com>

69818c69 27-Feb-2019 Steven Luong <sluong@cisco.com>

string_test: The dark side of coverity

Me: "Mr Coverity, I thought I fixed the dead code warning just few days ago in
this file. Why are you still complaining about the same stuff to me?"

Mr. Coverity: "Duh! But you are supposed to fix all occurences in the same file."

Me: "Mr. Coverity, I didn't see you flag the warning in the other places last
time?"

Mr. Coverity: "Shh! That is the secret of my dark side!"

Change-Id: I565eccd90bf1bb39c9881664d361f83396ca8bcc
Signed-off-by: Steven Luong <sluong@cisco.com>

3be3cd60 21-Feb-2019 Steven Luong <sluong@cisco.com>

string_test: Coverity woe

Coverity complains about dead code as shown below and it is right.
The fix is to simply remove the dead code.

503 if (v_indicator != indicator)

CID 190173 (#3 of 3): Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement: return -1;.
504 return -1;

Change-Id: Ibca9e10451a4459db099bef5ecc6939474bdb903
Signed-off-by: Steven Luong <sluong@cisco.com>

11232e5d 14-Feb-2019 mu.duojiao <mu.duojiao@zte.com.cn>

VPP-1568:when entry src cover change, recursive-loop fib still can not work.

Change-Id: I90762b59f94175f278380c95776471a30bc94d34
Signed-off-by: mu.duojiao <mu.duojiao@zte.com.cn>

a27a46ea 18-Feb-2019 Florin Coras <fcoras@cisco.com>

session: move fifo allocation logic to app worker

Change-Id: I1662ec4b5503cb64a8a86a2441842311d959b3a6
Signed-off-by: Florin Coras <fcoras@cisco.com>

c1a4265b 09-Feb-2019 Florin Coras <fcoras@cisco.com>

session: cleanup application interface

Change-Id: I89d240753b3f3c5e984aa303a7c8fa35fa59bf7f
Signed-off-by: Florin Coras <fcoras@cisco.com>

c9940fc2 06-Feb-2019 Florin Coras <fcoras@cisco.com>

session: refactor listen logic

Make app-listener the handle for app listens. Consequently transport and
local listen sessions are now associated to the app-listener.

Change-Id: I9397a26d42cccb100970b6b4794c15bac2e11465
Signed-off-by: Florin Coras <fcoras@cisco.com>

288eaab5 03-Feb-2019 Florin Coras <fcoras@cisco.com>

session: cleanup part 1

Rename core data structures. This will break compatibility for out of
tree builtin apps.

- stream_session_t to session_t
- server_rx/tx_fifo to rx/tx_fifo
- stream_session.h to session_types.h
- update copyright

Change-Id: I414097c6e28bcbea866fbf13b8773c7db3f49325
Signed-off-by: Florin Coras <fcoras@cisco.com>

ddccf7bc 19-Jan-2019 Steven Luong <sluong@cisco.com>

Fix GCC 8 compiler warnings on strncpy's truncated copy on debian distro

For some reason, GCC 8 in debian is pickier than GCC 8 in ubuntu. It complains
about things in strncpy like this

/home/sluong/vpp/src/vlib/linux/pci.c:485:7: error: ‘strncpy’ output may be
truncated copying 15 bytes from a string of length 255 [-Werror=stringop-truncation]
strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sluong/vpp/src/vlib/linux/pci.c: At top level:

It also complains similar things in string_test.c

The fix in pci.c is to convert strncpy to use clib_strncpy
The fix in string_test.c is condiational compile the complained code for GCC 8.

Change-Id: Ic9341ca54ed7407210502197a28283bc42c26662
Signed-off-by: Steven Luong <sluong@cisco.com>

b5e55a27 10-Jan-2019 Florin Coras <fcoras@cisco.com>

session: generate wrong thread errors instead of crashing

Change-Id: I7e59ae718d2722c49d42b22a0874e1645a191e89
Signed-off-by: Florin Coras <fcoras@cisco.com>

f09179f9 08-Jan-2019 Steven <sluong@cisco.com>

strncpy_s_inline copies more bytes than necessary

Given n equals to the maximum number of bytes to copy from src in the API,
or the rough estimate strlen of src, strncpy_s_inline should not copy more
than the number of bytes, computed by strlen(src), to dst if n is greater than
strlen(src). The number of bytes to copy is computed by strnlen(src,n), not n.

Change-Id: I088b46125d9776962750e121f1fbf441952efc2b
Signed-off-by: Steven <sluong@cisco.com>

98311da8 06-Jan-2019 Steven <sluong@cisco.com>

string_test: coverity woe

Remove the needless tests and checks which coverity complains about in
string_test.c

Change-Id: I971650cada77136f06528a65625ef99bd3d7e915
Signed-off-by: Steven <sluong@cisco.com>

d9818dd6 14-Dec-2018 David Johnson <davijoh3@cisco.com>

Fixes for buliding for 32bit targets:
* u32/u64/uword mismatches
* pointer-to-int fixes
* printf formatting issues
* issues with incorrect "ULL" and related suffixes
* structure alignment and padding issues

Change-Id: I70b989007758755fe8211c074f651150680f60b4
Signed-off-by: David Johnson <davijoh3@cisco.com>

5a2ec8fc 27-Dec-2018 Florin Coras <fcoras@cisco.com>

session: free session after transport and app confirm

In addition to that, a bit of refactoring.

Change-Id: Iea1eabc2167bcdef185ec53bc09bae087c5398e6
Signed-off-by: Florin Coras <fcoras@cisco.com>

9e829a85 17-Dec-2018 Neale Ranns <nranns@cisco.com>

MFIB: recurse resolution through an MFIB entry

Change-Id: I8dc261e40b8398c5c8ab6bb69ecebbd0176055d9
Signed-off-by: Neale Ranns <nranns@cisco.com>

ae809835 23-Nov-2018 Neale Ranns <nranns@cisco.com>

IP6-MFIB: replace the radix tree with bihash (VPP-1526)

Change-Id: I7a48890c075826fbd8c75436dfdc5ffff230a693
Signed-off-by: Neale Ranns <nranns@cisco.com>

c5b6b319 14-Dec-2018 Dave Barach <dave@barachs.net>

Revert gerrit 16429 to fix a Debian build-break

Change-Id: I9382bc981c25a29c293f7ddc6ed3d34130678696
Signed-off-by: Dave Barach <dave@barachs.net>

ac475f4b 04-Dec-2018 Lijian.Zhang <Lijian.Zhang@arm.com>

Fix compiling issue with GCC-8.x in string test functions

Same pointer is passed to two or more restrict-qualified parameters of a function.

vpp/src/plugins/unittest/string_test.c: In function ‘test_strcpy_s’:
vpp/src/plugins/unittest/string_test.c:562:19: error: passing argument 1 to restrict-qualified parameter aliases with argument 3 [-Werror=restrict]
err = strcpy_s (dst, s1size, dst);
^~~ ~~~

Change-Id: Ica06b457bbcbf2d552eec380976c37f9fd447b1c
Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
Reviewed-by: Sirshak Das <sirdas@arm.com>

027d0dc7 05-Dec-2018 Dave Barach <dave@barachs.net>

Fix gcc-8 compile issues in string_test.c

gcc-8 flunks a certain number of tests at compile time, so
conditionally disable (negative) tests which won't even compile.

Change-Id: Id7e85f38bc371623972efa6e2c8f9ee4717f5ff5
Signed-off-by: Dave Barach <dave@barachs.net>

494a09a3 03-Dec-2018 Neale Ranns <nranns@cisco.com>

move [m]fib and BIER tests to unittest plugin

Change-Id: I9d2f52e756363df011026773bfffa838a557313f
Signed-off-by: Neale Ranns <nranns@cisco.com>

b0598497 25-Oct-2018 Steven <sluong@cisco.com>

vppinfra: c11 safe string functions

Add memcmp_s, strcmp_s, strncmp_s, strcpy_s, strncpy_s, strcat_s, strncat_s,
strtok_s, strnlen_s, and strstr_s C11 safe string API. For migrating extant
unsafe API, add also the corresponding macro version of each safe API,
clib_memcmp, clib_strcmp, etc.

In general, the benefits of the safe string APIs are to provide null pointer
checks, add additional argument to specify the string length of the passed
string rather than relying on the null terminated character, and src/dest
overlap checking for the the string copy operations.

The macro version of the API takes the same number of arguments as the unsafe
API to provide easy migration. However, it does not usually provide the full
aformentioned benefits. In some cases, it is necessary to move to the safe
API rather than using the macro in order to avoid some unpredictable problems
such as accessing memory beyond what it is intended due to the lack of the
passed string length.

dbarach: add a "make test" vector, and a doxygen file header cookie.

Change-Id: I5cd79b8928dcf76a79bf3f0b8cbc1a8f24942f4c
Signed-off-by: Steven <sluong@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

fa76a76b 29-Nov-2018 Florin Coras <fcoras@cisco.com>

session: segment handle in accept/connect notifications

Change-Id: I03884b6cde9d4c38ae13d1994fd8d37d44016ef0
Signed-off-by: Florin Coras <fcoras@cisco.com>

c1f5a433 20-Nov-2018 Florin Coras <fcoras@cisco.com>

session: cleanup use of api_client_index

Change-Id: I8a680be62ab91d2ccb144641981a635506973a49
Signed-off-by: Florin Coras <fcoras@cisco.com>

053a0e44 13-Nov-2018 Florin Coras <fcoras@cisco.com>

vcl/session: apps with process workers

Allow apps to register child processes as app workers. In particular,
on fork vcl now registers the child process with vpp as a new worker.

Change-Id: I52a65fbc3292962b1f6e1fe0f6153f739e6e0d4a
Signed-off-by: Florin Coras <fcoras@cisco.com>

2b209e3e 14-Nov-2018 Florin Coras <fcoras@cisco.com>

session: fix endpt cfg test (VPP-1492)

Change-Id: I0f2266c4727a96b6410a3084dc079bae7bc649ab
Signed-off-by: Florin Coras <fcoras@cisco.com>

178cf493 13-Nov-2018 Dave Barach <dave@barachs.net>

Remove c-11 memcpy checks from perf-critical code

Change-Id: Id4f37f5d4a03160572954a416efa1ef9b3d79ad1
Signed-off-by: Dave Barach <dave@barachs.net>

5a7ca7bd 30-Oct-2018 Florin Coras <fcoras@cisco.com>

session: add wrk context

Change-Id: I66ca0ddea872948507d078e405eb90f9f3a0e897
Signed-off-by: Florin Coras <fcoras@cisco.com>

9f3b14e3 29-Oct-2018 Florin Coras <fcoras@cisco.com>

session: move test to unittest plugin

Change-Id: I4921054b4e42bac3442d399681b21b613ce8b681
Signed-off-by: Florin Coras <fcoras@cisco.com>

b7b92993 17-Oct-2018 Dave Barach <dave@barachs.net>

c11 safe string handling support

Change-Id: Ied34720ca5a6e6e717eea4e86003e854031b6eab
Signed-off-by: Dave Barach <dave@barachs.net>

9f9e969f 20-Oct-2018 Florin Coras <fcoras@cisco.com>

tcp: count first lost hole (VPP-1465)

Change-Id: I3ac136e2a10796d8fa86ddb6f0d6cabe5fa749f8
Signed-off-by: Florin Coras <fcoras@cisco.com>

ecbd20b6 18-Oct-2018 Florin Coras <fcoras@cisco.com>

tcp: fix sacks lost bytes counting (VPP-1465)

Change-Id: Ie46b3a81de4ed39b7b40e3879436f7e5a2908d98
Signed-off-by: Florin Coras <fcoras@cisco.com>

c01d578a 17-Oct-2018 Florin Coras <fcoras@cisco.com>

tls: fix connection failures/interrupts at scale (VPP-1464)

Change-Id: I0bc4062c1fd3202ee201acb36a2bb14fc6ee1543
Signed-off-by: Florin Coras <fcoras@cisco.com>

d6fe5bd6 17-Oct-2018 Florin Coras <fcoras@cisco.com>

tcp: avoid sack processing when not needed (VPP-1460)

Change-Id: If81ee34e1f1e929de1a5b758ddb9aede4002e858
Signed-off-by: Florin Coras <fcoras@cisco.com>

48a30d30 12-Sep-2018 Dave Barach <dave@barachs.net>

fix bihash test code

Change-Id: Ie71b99385c33122cbf55f80ebabdc2ccdb4cf2ae
Signed-off-by: Dave Barach <dave@barachs.net>

74449b8b 25-Aug-2018 Damjan Marion <damarion@cisco.com>

cmake: improve add_vpp_plugin macro

Change-Id: Iffd5c45ab242a919592a1f686f7f880936b68a1a
Signed-off-by: Damjan Marion <damarion@cisco.com>

612dd6a9 29-Jul-2018 Damjan Marion <damarion@cisco.com>

CMake as an alternative to autotools (experimental)

Change-Id: Ibc59323e849810531dd0963e85493efad3b86857
Signed-off-by: Damjan Marion <damarion@cisco.com>

8b5dc4fd 23-Jul-2018 Dave Barach <dave@barachs.net>

Create a unit-test plugin

Move the tcp unit test to the plugin
Add a bihash unit test and a "make test" program to call it
Adjust framework.py to load the plugin, which is disabled by default

Change-Id: Ic229d386a56a9d28dbd54974f231149053ca8f93
Signed-off-by: Dave Barach <dave@barachs.net>