vpp.git
5 years agoPipes 57/13357/4
Neale Ranns [Wed, 4 Jul 2018 17:24:24 +0000 (10:24 -0700)]
Pipes

A pipe resembles a unix pipe. Each end of the pipe is a full
VPP interface.
pipes can be used for e.g. packet recirculation, inter-BD, etc.

Change-Id: I185bb9fb43dd233ff45da63ac1b85ae2e1ceca16
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agosvm: add unidirectional message queue 59/13359/8
Florin Coras [Wed, 4 Jul 2018 11:17:41 +0000 (04:17 -0700)]
svm: add unidirectional message queue

Meant for single reader/writer message exchanges. Supports multiple
message rings.

Change-Id: I925de9a6ae19226c5c39a63caff76424ed123a13
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoadd stat segment size configuration 64/13364/1
Dave Barach [Thu, 5 Jul 2018 15:48:20 +0000 (11:48 -0400)]
add stat segment size configuration

Change-Id: I395ff9c91d670a9f9e50dc1b030e0412b7234de5
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agovxlan:use bihash_24_8 for ipv6 lookup 18/13318/7
Eyal Bari [Mon, 4 Jun 2018 09:25:05 +0000 (12:25 +0300)]
vxlan:use bihash_24_8 for ipv6 lookup

* added the fib index into the key
* conform coding style for vxlan.h
* added "show vxlan tunnel raw" command to dump bihash

Change-Id: Icc96e41abb648e96de5b4605b035f68f9e20f8a9
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agoVPP-1335 vapi crash when memclnt_keepalive received 49/13349/4
Klement Sekera [Wed, 4 Jul 2018 11:43:46 +0000 (13:43 +0200)]
VPP-1335 vapi crash when memclnt_keepalive received

Change-Id: If33a7cc6c76147fd3ea9d8118370e7a508819b81
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoFix clib_bitmap_next_clear() function when no clear bits left 60/13360/3
John Lo [Wed, 4 Jul 2018 20:27:59 +0000 (16:27 -0400)]
Fix clib_bitmap_next_clear() function when no clear bits left

If the bitmap has no bit clear after the input bit position i,
the function will return i even if its bit is set.
Fix is to return the next bit just beyond the free bitmap.

This can cause IP neighbor scan crash in ip_neighbor_scan() with
a debug image. With production image, ip_neighbor_scan() may still
function, AFAICT, with extra neighbor delete attempts for entries
already deleted, until these entries are reused for new neighbors.

Change-Id: If6422ef6f63908ea39651de4ccbd8cb0b294bd69
Signed-off-by: John Lo <loj@cisco.com>
5 years agofix VPP-1312 Invalid UDP packet length in ipsec 73/13073/3
Klement Sekera [Fri, 15 Jun 2018 10:44:16 +0000 (12:44 +0200)]
fix VPP-1312 Invalid UDP packet length in ipsec

Change-Id: Ibfd0a2e7010e6e74c32244c538f60e0713bea03f
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoopenSUSE: add python2-ply dependency 50/13350/2
Marco Varlese [Wed, 4 Jul 2018 12:23:08 +0000 (14:23 +0200)]
openSUSE: add python2-ply dependency

Change-Id: I39ad69975e34bf11d3c009ad705157ceefa43fb9
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
5 years agoDo not override skip-cores if set in startup.conf 39/13339/2
Damjan Marion [Tue, 3 Jul 2018 20:24:32 +0000 (22:24 +0200)]
Do not override skip-cores if set in startup.conf

Change-Id: I97d75f58a46275fdad5add27dc59c731cc3ac64d
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoIP FIB dump - incorrect table-ID for deag paths 35/13335/2
Neale Ranns [Tue, 3 Jul 2018 13:37:00 +0000 (06:37 -0700)]
IP FIB dump - incorrect table-ID for deag paths

Change-Id: I383cfb662b4d2bf4f814e3eb9a1ce4d6bff7066d
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoRemove unused members from ip4_fib_t 41/13341/2
Neale Ranns [Wed, 4 Jul 2018 06:29:49 +0000 (23:29 -0700)]
Remove unused members from ip4_fib_t

Change-Id: I8b92652d512bad5d774c7862f9808c306bbeff18
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agoadd 'src-lookup' keyword for FIB paths 37/13337/2
Neale Ranns [Tue, 3 Jul 2018 13:41:47 +0000 (09:41 -0400)]
add 'src-lookup' keyword for FIB paths

Change-Id: I4554d1e94bd70ef5b3b0aaeb1a0fceaeb81c5f96
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoSet main thread affinity before main heap is allocated 36/13336/3
Damjan Marion [Tue, 3 Jul 2018 15:24:45 +0000 (17:24 +0200)]
Set main thread affinity before main heap is allocated

Change-Id: I524909570fc1736f51fd437d6d30566c461139bd
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agovom: Add cross connect support 04/13304/3
Mohsin Kazmi [Fri, 29 Jun 2018 15:04:23 +0000 (17:04 +0200)]
vom: Add cross connect support

Change-Id: Ia316730d8f9fe9836200aa96e0b5fd827dc71c98
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agotcp: update snd_una_max for retranmsits 23/13323/2
Florin Coras [Mon, 2 Jul 2018 08:30:51 +0000 (01:30 -0700)]
tcp: update snd_una_max for retranmsits

Change-Id: I0573d0aff39581bba96e610228a10ae923a8ca06
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoAdd per-numa page allocation info to 'show memory' 21/13321/1
Damjan Marion [Mon, 2 Jul 2018 19:33:31 +0000 (21:33 +0200)]
Add per-numa page allocation info to 'show memory'

Change-Id: I64e4e3d68c0f3958323f30b12a26cfaafa8bad85
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFixing ip4-reassembly ip6-reassembly non feature node, next_node_index setting 97/13297/3
Vijayabhaskar Katamreddy [Fri, 29 Jun 2018 12:03:40 +0000 (05:03 -0700)]
Fixing ip4-reassembly ip6-reassembly non feature node, next_node_index setting

Change-Id: Ib988d87e6758ffa31862096391f9f286b0797f2b
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
5 years agomake_test: add icmp packet size sweep and icmp echo tests 21/13221/5
Jan Gelety [Tue, 26 Jun 2018 10:24:03 +0000 (12:24 +0200)]
make_test: add icmp packet size sweep and icmp echo tests

Jira: CSIT-1141

Change-Id: I162bb4e718bff188abefc7b2f33501de9c55bb03
Signed-off-by: Jan Gelety <jgelety@cisco.com>
5 years agodpdk: bump default DPDK version to 18.05 34/12934/5
Damjan Marion [Thu, 7 Jun 2018 10:01:51 +0000 (12:01 +0200)]
dpdk: bump default DPDK version to 18.05

Change-Id: I739d3e6c25efe8d32b2f4a60557c644edfe958e0
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agotcp: fix single loop prefetch 08/13308/1
Florin Coras [Sat, 30 Jun 2018 18:27:59 +0000 (11:27 -0700)]
tcp: fix single loop prefetch

Also add single loop prefetch in session tx

Change-Id: Ib2725a2552fcc1a65050d7a2eb10491a7b34db62
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agocli: Validate cli_file_index on quit command 02/13302/2
Steve Shin [Fri, 29 Jun 2018 16:40:20 +0000 (09:40 -0700)]
cli: Validate cli_file_index on quit command

VPP crash happens with 'vppctl quit quit' command. The 2nd quit command
tries to access the file index which is already freed by the first quit.
This can be avoided to validate cli_file_index.

Change-Id: I880514c93523db2a727d7510c97950582cd6a6c8
Signed-off-by: Steve Shin <jonshin@cisco.com>
5 years agosession: send tx notification to app 03/13303/4
Florin Coras [Fri, 29 Jun 2018 09:02:08 +0000 (02:02 -0700)]
session: send tx notification to app

Does some session node cleanup as well

Change-Id: Ifd52b07b28ba4dec1f6f729476decc76eb963837
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agobitmap: add nocheck variants for bit ops 05/13305/4
Florin Coras [Fri, 29 Jun 2018 10:22:44 +0000 (03:22 -0700)]
bitmap: add nocheck variants for bit ops

Change-Id: Ifd155e2980a9f8e6af9bb6b08619c15b2bf18ef1
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agomemif: minor fixes 01/13301/1
Damjan Marion [Fri, 29 Jun 2018 15:08:05 +0000 (17:08 +0200)]
memif: minor fixes

Change-Id: Ib06d9ce0fad48b784fd47db13c7a2f353c845fca
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoVPP-1324 SIGSEGV vl_msg_api_handler_with_vm_node() 82/13282/4
Lukasz Majczak [Thu, 28 Jun 2018 13:00:40 +0000 (15:00 +0200)]
VPP-1324 SIGSEGV vl_msg_api_handler_with_vm_node()

Increase local arrays sizes to the correct number and gather missing statistics.

Change-Id: If44d43f258730e9a18f50fb59fc526c214d2be8a
Signed-off-by: Lukasz Majczak <lma@semihalf.com>
5 years agoVPPAPIGEN: use SOURCE_DATE_EPOCH for datestring 69/13269/4
Nirmoy Das [Thu, 28 Jun 2018 08:18:43 +0000 (10:18 +0200)]
VPPAPIGEN: use SOURCE_DATE_EPOCH for datestring

bwiedemann@suse.com pointed me that:
For reproducible builds datestring should be generated using
SOURCE_DATE_EPOCH which distributions set centrally, and have build
tools that consume it to produce reproducible output.

https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal#Python

Change-Id: Iefa2b93231bbc4c8af49736be4d7a5720c46b28d
Signed-off-by: Nirmoy Das <nirmoy.aiemd@gmail.com>
5 years agoCSIT-1148: VPPAPIGEN 2nd level import of .api ignored 91/13291/2
Ole Troan [Fri, 29 Jun 2018 09:32:33 +0000 (11:32 +0200)]
CSIT-1148: VPPAPIGEN 2nd level import of .api ignored

Change-Id: I73dcab0c5ff2405b1fcba25975955e1267a4ac4e
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoipsec: fix VPP-1333 - crash in ipsec policy cli 80/13280/3
Klement Sekera [Thu, 28 Jun 2018 12:20:12 +0000 (14:20 +0200)]
ipsec: fix VPP-1333 - crash in ipsec policy cli

Change-Id: I843d094b6bbd1cefba82d6026174be005e66d510
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoigmp: bugfix and minor improvements 75/13275/3
Jakub Grajciar [Thu, 28 Jun 2018 10:27:52 +0000 (12:27 +0200)]
igmp: bugfix and minor improvements

Change-Id: I8d284117a668dc55c06a6d68fe358a3d7e26c738
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
5 years agoRemoving the static keyword do_fragment routines, so that could be accessed outside... 89/13289/2
Vijayabhaskar Katamreddy [Thu, 28 Jun 2018 18:08:29 +0000 (11:08 -0700)]
Removing the static keyword do_fragment routines, so that could be accessed outside the ip_frag nodes

Change-Id: I46d3d10fa763fcf7a579620ec7cf1b204a53bce8
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
5 years agoIP4 Router Alert option handling for IGMP 59/13259/4
Neale Ranns [Thu, 28 Jun 2018 01:59:03 +0000 (18:59 -0700)]
IP4 Router Alert option handling for IGMP

and a new ip4-options node, inserted between ip4-input and ip4-punt,
that checks for IP-router-alert option + IGMP combination and sends
the packet to the ip4-local. This is required because some IGMP
packets are sent to the group address and not the all-routers address.
All IGMP packets are sent with the router alert option.

Change-Id: I01f478d4d98ac9f806e0bcba0f6da6e4e7d26e2a
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agobihash key compare improvements 86/13286/2
Damjan Marion [Thu, 28 Jun 2018 15:55:50 +0000 (17:55 +0200)]
bihash key compare improvements

Looks like CPU doesn't like overlaping loads.
This new codes in some cases shows 3-4 clock improvements.

Change-Id: Ia1b49976ad95140c573f892fdc0a32eebbfa06c8
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agovcl: move binary api and cfg to separate files 68/13268/5
Florin Coras [Thu, 28 Jun 2018 00:10:49 +0000 (17:10 -0700)]
vcl: move binary api and cfg to separate files

Change-Id: Ib88d703bb7d4b170059960b0688352c90c5fcc39
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoFix mheap_get_aligned() performance jackpot 85/13285/2
Dave Barach [Thu, 28 Jun 2018 14:59:05 +0000 (10:59 -0400)]
Fix mheap_get_aligned() performance jackpot

If non-trivial alignment (e.g. 64) requested, and the object size
(e.g. 16) is smaller than (alignment_request -
MHEAP_ELT_OVERHEAD_BYTES), round up the size request.

This avoids creating remainder chunks, which are
false-cache-line-sharing bait to begin with.

Change-Id: Ie1a21286d29557d125bb346254b1be2def868b1a
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agovcl: refactor vcl session 61/13261/5
Florin Coras [Wed, 27 Jun 2018 21:32:43 +0000 (14:32 -0700)]
vcl: refactor vcl session

Change-Id: Idcba72fd84128547718dd32858e8c728925a6b1d
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agojvpp: pass tuple of classes to isinstance() 45/13245/4
Marek Gradzki [Wed, 27 Jun 2018 14:25:53 +0000 (16:25 +0200)]
jvpp: pass tuple of classes to isinstance()

Change-Id: I887af26d7d6476d7d9e6fbaa671f923814aa03bb
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agomake test: fix profiling 71/13271/2
Klement Sekera [Thu, 28 Jun 2018 09:50:48 +0000 (11:50 +0200)]
make test: fix profiling

Change-Id: Iad45ca8c167a017029b20ddd0a0b59087fa69498
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agolibmemif: fixing head/tail arithmetics & queue reallocation 24/13224/5
Milan Lenco [Tue, 26 Jun 2018 13:16:15 +0000 (15:16 +0200)]
libmemif: fixing head/tail arithmetics & queue reallocation

Change-Id: Ibc1f01b1cc99e7be77e892e53b7e1283f2a145cf
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
5 years agoreassembly: optimize bihash usage 70/13270/2
Klement Sekera [Thu, 28 Jun 2018 09:16:15 +0000 (11:16 +0200)]
reassembly: optimize bihash usage

Change-Id: I19690db9996ecb8c5e86415d2fd3c7133ce698f8
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoip: vectorized ip checksum 30/13130/9
Damjan Marion [Mon, 18 Jun 2018 20:21:40 +0000 (22:21 +0200)]
ip: vectorized ip checksum

Change-Id: Ida678e6f31daa8decb18189da712a350336326e2
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agovcl: refactor debugging 58/13258/10
Florin Coras [Wed, 27 Jun 2018 10:24:07 +0000 (03:24 -0700)]
vcl: refactor debugging

Change-Id: I82e5239239ea24bdc97b1d59946ca0bba739f248
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoTune pool_get / pool_put 46/13246/2
Dave Barach [Wed, 27 Jun 2018 14:49:17 +0000 (10:49 -0400)]
Tune pool_get / pool_put

Stop spending cycles repeatedly tail-trimming the pool free element
bitmap; possibly at the expense of slightly hurting pool_foreach
peformance.

Change-Id: I8a7f3e7b26c71d7496ba9393b2a167dc7f538355
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoacl: fix for loop initial declaration 53/13253/1
Florin Coras [Wed, 27 Jun 2018 09:05:31 +0000 (02:05 -0700)]
acl: fix for loop initial declaration

Change-Id: Ie899ccbaae4df7cce4ebbba47ed6c3cce5269bdb
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoavf: binary API and configurable RX/TX queue size 20/13220/6
Jakub Grajciar [Tue, 26 Jun 2018 10:58:22 +0000 (12:58 +0200)]
avf: binary API and configurable RX/TX queue size

Change-Id: Ibd3a8d28d8f1df2bc14c42e48498f6ac26081192
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
5 years agogcc8 and Wstringop-truncation 33/13233/7
Marco Varlese [Wed, 27 Jun 2018 07:54:44 +0000 (09:54 +0200)]
gcc8 and Wstringop-truncation

gcc8 introduced a new warning (Wstringop-truncation) which in our case
is being treated as error.
Disabling the warning globally might introduce bugs related to string
truncation which are not desired by the developer (e.g. bug).
Instead, this patch disables the warning only for those occurences
which have been verified to be non-bugs but the desired behaviour as per
developer will.

Change-Id: I0f04ff6b4fad44061e80a65af633fd7e0148a0c5
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
5 years agojvpp: cleanup generation of swap functions for custom types 34/13234/2
Marek Gradzki [Wed, 27 Jun 2018 09:11:55 +0000 (11:11 +0200)]
jvpp: cleanup generation of swap functions for custom types

Change-Id: I2d06890ba25cfae9f96e820086f228286c807b42
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agomake test: easy profiling via make test PROFILE=1 38/13238/2
Klement Sekera [Wed, 27 Jun 2018 11:54:32 +0000 (13:54 +0200)]
make test: easy profiling via make test PROFILE=1

Change-Id: Ib845578485f523b7f14e98c83d05f78db382ecde
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agojvpp: add support for unions (VPP-1322) 35/13235/2
Marek Gradzki [Wed, 27 Jun 2018 08:18:18 +0000 (10:18 +0200)]
jvpp: add support for unions (VPP-1322)

Change-Id: I2456a9b03bcae43793f9ac29eb74eff81269df7b
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agovppinfra: add vector horizontal add and byte swap (SSE4.2 & AVX2) 37/13237/3
Damjan Marion [Wed, 27 Jun 2018 11:03:26 +0000 (13:03 +0200)]
vppinfra: add vector horizontal add and byte swap (SSE4.2 & AVX2)

Change-Id: I4e0fd487970796f0153a5b16333827d23b57deac
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoacl-plugin: tm: avoid hash calculation dependency on a memory store operation 77/13177/8
Andrew Yourtchenko [Thu, 21 Jun 2018 11:45:37 +0000 (13:45 +0200)]
acl-plugin: tm: avoid hash calculation dependency on a memory store operation

A small store into a middle of a larger structure that was subsequently
loaded for calculating the bihash key was noticeably impacting the performance.

Change-Id: If7f33e1b66e8b438ba7cc91abc0ca749850c6e45
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoacl-plugin: tm: add tuplemerge algorithm for relaxing the hashtable masks 62/13162/8
Andrew Yourtchenko [Wed, 20 Jun 2018 08:44:19 +0000 (10:44 +0200)]
acl-plugin: tm: add tuplemerge algorithm for relaxing the hashtable masks

Slightly refactored from the initial implementation of the TupleMerge [1]
algorithm by Valerio Bruschi (valerio.bruschi@telecom-paristech.fr)

[1] James Daly, Eric Torng "TupleMerge: Building Online Packet Classifiers
by Omitting Bits", In Proc. IEEE ICCCN 2017, pp. 1-10

Also add startup parameters to turn on/off the algorithm ("use tuple merge 1/0"),
and a startup parameter to be able to tweak the split threshold
("tuple merge split threshold N"), the default value of the split threshold
is 39 as per paper, but some more tuning might be necessary to find the best
value.

This change, alongside with the optimizations which avoid extra lookups,
significantly reduces the slowdown on the ClassBench generated ACLs, which
are supposed to resemble realistic ACLs seen in use in the field.

Change-Id: I9713e4673970e9a62d4d9e9718365293375fab7b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agotcp/session: tx optimizations 30/13230/2
Florin Coras [Tue, 26 Jun 2018 16:31:04 +0000 (09:31 -0700)]
tcp/session: tx optimizations

- cache and reuse tcp options and rcv_wnd for session layer tx bursts
- avoid reading/setting total_length_not_including_first_buffer. It's
part of a buffer's second cache line so it comes at a "cost".

Change-Id: Id18219c2f7e07cf4c63ee74f9cdd9e5918904036
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agodpdk: display rx/tx burst function name in "show hardware detail" 27/13227/3
Damjan Marion [Tue, 26 Jun 2018 14:54:36 +0000 (16:54 +0200)]
dpdk: display rx/tx burst function name in "show hardware detail"

Change-Id: I6fa4c6bf9c4e96ba4502a06907bdecc654ace665
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFix load_unaligned undefined and other possible build failures 29/13229/3
Sirshak Das [Tue, 26 Jun 2018 18:08:46 +0000 (13:08 -0500)]
Fix load_unaligned undefined and other possible build failures

Add aarch64 neon intrinsics to fix build failures similar to this:
error: implicit declaration of function â€˜u64x2_load_unaligned’

Change-Id: I6178504a48242742df3f7d75abdaf108796cf73f
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
5 years agoFix assert issue in ip_csum_add_even() 55/13055/6
Hongjun Ni [Thu, 14 Jun 2018 21:32:23 +0000 (05:32 +0800)]
Fix assert issue in ip_csum_add_even()

ASSERT (ip_csum_with_carry (d, x) == c) will raise assert
if d equals to zero while x not equals to zero.

Change-Id: Ia9ccdbf801ae565eaadd49f04569d13bfc31cba8
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
5 years agotcp: avoid doing work in tcp_rcv_sacks for no sacks 28/13228/2
Florin Coras [Tue, 26 Jun 2018 08:22:41 +0000 (01:22 -0700)]
tcp: avoid doing work in tcp_rcv_sacks for no sacks

Change-Id: I00a0d7f57dc144d338d5ad45b0a6e3720c32c400
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoNAT44: fix nat44_ed_not_translate_output_feature (VPP-1329) 13/13213/2
Matus Fabian [Mon, 25 Jun 2018 23:42:36 +0000 (16:42 -0700)]
NAT44: fix nat44_ed_not_translate_output_feature (VPP-1329)

Change-Id: Iddb0b848c53da03116524e203c7112c82b401ac5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoUpdate to latest stable DPDK release (18.02.2) 23/13223/3
Marco Varlese [Tue, 26 Jun 2018 13:12:52 +0000 (15:12 +0200)]
Update to latest stable DPDK release (18.02.2)

Change-Id: I00b0e4d7f7b597760a898c895b1a80bfac3a47fb
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
5 years agonode functions cannot be always_inline 22/13222/2
Damjan Marion [Tue, 26 Jun 2018 12:45:49 +0000 (14:45 +0200)]
node functions cannot be always_inline

Thanks to gcc-8 for highlighting this...

Change-Id: I53bfab631a40fd1b680c76a48b0307a33fa2b154
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoWe don't have (yet) 128-bit unaligned load/store on ARM 25/13225/2
Damjan Marion [Tue, 26 Jun 2018 14:05:43 +0000 (16:05 +0200)]
We don't have (yet) 128-bit unaligned load/store on ARM

Change-Id: I16395bbf843e338cdd366d85bb4df3de95d9b265
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoadd backtrace in unix_signal_handler 70/13070/5
Kingwel Xie [Fri, 15 Jun 2018 08:56:24 +0000 (04:56 -0400)]
add backtrace in unix_signal_handler

crash stack backtrace will be directed to syslog

1. make use of glic backtrace in execinfo.h. the old clib_backtrace is removed
2. install SIGABRT in signal handler, but have to remove it when backtrace is
   done. reason is to capture stack trace caused by SIGABRT. vPP ASSERT always
   call os_exit then abort().  we definitely want to know the trace of this
   situation. It is a little tricky to avoid SIGABRT infinite loop
3. always load symbols by calling  clib_elf_main_init () in main(). Otherwise,
   PC addresses instead of symbols will be displayed.

Change-Id: I150e15b94a4620b2ea4f08c73dc3e6ad1856de1e
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
5 years agoL3DSR fix ip checksum issue and add test 44/12944/8
Hongjun Ni [Thu, 7 Jun 2018 23:12:05 +0000 (07:12 +0800)]
L3DSR fix ip checksum issue and add test

Change-Id: Iedebbac71d3e694b915d6a126c80ecc3b5473a4a
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
5 years agoacl-plugin: tm: optimize multi-lookups and prepare to add tuplemerge 61/13161/8
Andrew Yourtchenko [Wed, 20 Jun 2018 13:28:15 +0000 (15:28 +0200)]
acl-plugin: tm: optimize multi-lookups and prepare to add tuplemerge

- instantiate the per-use mask type entry for a given hash ACE
  this prepares to adding tuplemerge where the applied ACE may
  have a different mask type due to relaxing of the tuples

- store the vector of the colliding rules for linear lookups
  rather than traversing the linked list.

- store the lowest rule index for a given mask type inside
  the structure. This allows to skip looking up at the later
  mask types if we already matched an entry that is in front
  of the very first entry in the new candidate mask type,
  thus saving a worthless hash table lookup.

- use a vector of mask type indices rather than bitmap,
  in the sorted order (by construction) of ascending
  lowest rule index - this allows to terminate the lookups
  early.

- adapt the debug cli outputs accordingly to show the data

- propagate the is_ip6 into the inner calls

Change-Id: I7a67b271e66785c6eab738b632b432d5886a0a8a
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoAdd negative tests for leaking across different VRFs - ip4/6 79/13179/6
Jan Gelety [Thu, 21 Jun 2018 14:57:47 +0000 (16:57 +0200)]
Add negative tests for leaking across different VRFs - ip4/6

Jira: CSIT-1140

Change-Id: I5c6dd44d3efb298f203e61b14345a2f13680bd34
Signed-off-by: Jan Gelety <jgelety@cisco.com>
5 years agoFix api trace replay of handler to pass vm parameter 14/13214/2
John Lo [Tue, 26 Jun 2018 00:38:35 +0000 (20:38 -0400)]
Fix api trace replay of handler to pass vm parameter

I suppose most API handlers do not use vm parameter so it has not
been a problem so far. Now vl_api_vnet_set_ip6_ethernet_neighbor()
was crashing when called from api trace replay because either of
ip_neighbor_add_del_t_handler() vnet_arp_set_ip4_over_ethernet()
need vm to be correct when it calls vlin_time_now() to update the
neighbor timestamp.

Change-Id: Iffb2084a7c90f92c4b86b339ea11800dd41117eb
Signed-off-by: John Lo <loj@cisco.com>
5 years agotcp: cleanup functions 19/13219/2
Florin Coras [Mon, 25 Jun 2018 23:19:34 +0000 (16:19 -0700)]
tcp: cleanup functions

- sprinkle statics for functions
- move some inlines from header files to corresponding .c files
- replace some always_inlines with statics where inlining is not
performance critical

Change-Id: I371dbf63431ce7e27e4ebbbdd844a9546a1f1849
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoSIMD optimized linear search in clib_bitmap_first_set 12/13212/3
Damjan Marion [Mon, 25 Jun 2018 23:29:55 +0000 (01:29 +0200)]
SIMD optimized linear search in clib_bitmap_first_set

Change-Id: Ib3a55598a83cc99485b40e38e7c406ecb126fd42
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoAdd checks for bad ARP request packets in arp-termination node 08/13208/3
John Lo [Mon, 25 Jun 2018 16:35:21 +0000 (12:35 -0400)]
Add checks for bad ARP request packets in arp-termination node

Check ARP request packet with bad requester MAC/IP address and
drop these packets. Also removed useless VRRP check in the node.

Change-Id: I2c8a774d291928eb623b3a515f1edf7e338fa760
Signed-off-by: John Lo <loj@cisco.com>
5 years agotw: add light weight timer update function 94/13194/5
Florin Coras [Fri, 22 Jun 2018 22:29:38 +0000 (15:29 -0700)]
tw: add light weight timer update function

Because it avoids pool putting/getting the timer, this function is
somewhat faster than stopping and restarting a timer.

Change-Id: Id99ed9d356b0b1f7e12facfe8da193e1cd30b3ec
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agodpdk: Enhancement to call crypto start api at initialization 82/13182/4
Sachin Saxena [Fri, 22 Jun 2018 06:50:20 +0000 (12:20 +0530)]
dpdk: Enhancement to call crypto start api at initialization

 - Some crypto devices rely on rte_cryptodev_start() API to be called by
   application to enable a pre-configured H/W Crypto device.
 - NXP dpaa2 is one of the example.

Change-Id: I2ad8ca0060604fb4e0541161e91bdebc6642f4da
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
5 years agoacl-plugin: remove the noisy debug output 90/13190/2
Andrew Yourtchenko [Fri, 22 Jun 2018 16:59:29 +0000 (18:59 +0200)]
acl-plugin: remove the noisy debug output

Change-Id: I6a3cfcb24f5027ec0f2cd2ec21ea47a01fef331b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoMAP: Move MAP-E/T to a plugin. 85/13185/11
Ole Troan [Fri, 22 Jun 2018 09:32:12 +0000 (11:32 +0200)]
MAP: Move MAP-E/T to a plugin.

Only remaining traces of MAP in the src/vnet is now in buffer.h.
Awaiting a new buffer opaque API (hint, hint).

Change-Id: Ie165561484731f1d7ed6e0f604b43624e06db3f0
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoVCL: Refactor VCL test (part 1) 98/13198/5
Dave Wallace [Mon, 25 Jun 2018 01:21:21 +0000 (21:21 -0400)]
VCL: Refactor VCL test (part 1)

Change-Id: I6a326e24ed953b1cef63bd4010a3bedd6c4a7b1c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
5 years agomake test: fix RETRIES when setUpClass throws 86/13186/12
Klement Sekera [Fri, 22 Jun 2018 11:19:45 +0000 (13:19 +0200)]
make test: fix RETRIES when setUpClass throws

This change adds handling of special case when setUpClass throws. In
this case TestResults receives a mock object called _ErrorHolder.
By parsing its description, we find test class name and use it to lookup
the test class in test suite to be able to add it to the list of failures
for re-running.

Change-Id: I656f21e38aa450fc567cdcbcf6e586967f947a64
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agomake test: fix broken interfaces #2 95/13195/6
Klement Sekera [Sun, 24 Jun 2018 08:30:37 +0000 (10:30 +0200)]
make test: fix broken interfaces #2

Change-Id: I9d5b5d925fd2c09a1113fc51e433a16d729a241b
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoRevert "Revert "make test: fix broken interfaces"" 97/13197/1
Klement Sekera [Sun, 24 Jun 2018 20:49:33 +0000 (22:49 +0200)]
Revert "Revert "make test: fix broken interfaces""

This reverts commit c8efa29b6f9a91381897b54f1147daf922ed7164.

Change-Id: I1d5c5773d5f86a63073e255336bd9de628e26179
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoRevert "Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums"" 96/13196/1
Klement Sekera [Sun, 24 Jun 2018 20:49:55 +0000 (22:49 +0200)]
Revert "Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums""

This reverts commit e0d2bd6bd7fc59c0c6ac48195d7f825dc99bfd91.

Change-Id: If491e16f9ea66b2493a6a7c7f3c684ed585f8f51
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoTx feature node, for accounting purposes 91/13191/4
Dave Barach [Fri, 22 Jun 2018 17:14:08 +0000 (13:14 -0400)]
Tx feature node, for accounting purposes

Switch to combined allow/drop counters
Show matching ip4 neighbor address if known
Add static-allow mactime entries for unknown mac addresses
Add the "clear mactime" command

Change-Id: Ib963981438dfb8a123df1b3c023bd5fcc27f888f
Signed-off-by: Dave Barach <dbarach@cisco.com>
5 years agoRevert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums" 93/13193/1
Ole Troan [Fri, 22 Jun 2018 20:36:46 +0000 (22:36 +0200)]
Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums"

This reverts commit a98346f664aae148d26a8e158008b773d73db96f.

Change-Id: Iee5b3a5ddff0e8fd3a30fe5973cee24de434fe12
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoRevert "make test: fix broken interfaces" 92/13192/1
Ole Troan [Fri, 22 Jun 2018 20:33:41 +0000 (22:33 +0200)]
Revert "make test: fix broken interfaces"

This reverts commit d5c60b96a3fd93916fc4af5c8d6d25625c28242e.

Change-Id: I3632b9c3f76c615aee897f28f76d094e7031e689
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agomake test: fix broken interfaces 88/13188/3
Klement Sekera [Fri, 22 Jun 2018 11:54:07 +0000 (13:54 +0200)]
make test: fix broken interfaces

Change-Id: I2e092774f81503e04b53cc6c6b5d357fe3fc52ab
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agojvpp: add support for enums (VPP-1153) 54/13154/3
Marek Gradzki [Wed, 20 Jun 2018 12:49:39 +0000 (14:49 +0200)]
jvpp: add support for enums (VPP-1153)

Change-Id: I2a1b946a71419e1fb3c5d70567c54a6a7d841f10
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agosession: improve session lookup speeds 80/13180/4
Florin Coras [Thu, 21 Jun 2018 15:14:34 +0000 (08:14 -0700)]
session: improve session lookup speeds

It would seem that this avoids using the stack for computing the
subsequent crc32 by storing the 2 x u64 ip4 5-tuple key into two
registers. Probably the cast to the "convenience" data structure "masks"
the fact that the key is 16B. Probably ... :-)

"sh run" on an ip4 tcp sender reports that the number of clocks spent in
tcp_input, where a session lookup is performed, drops ~25% (from ~100
clocks/packet to ~75 clocks/packet)

Change-Id: I50d647115ac72f8407bff7e3b73328ba42f0ddb5
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agojvpp: cleanup JNI generation code (VPP-1153) 53/13153/2
Marek Gradzki [Wed, 20 Jun 2018 11:15:08 +0000 (13:15 +0200)]
jvpp: cleanup JNI generation code (VPP-1153)

Minor cleanup that includes unifying
common Java to C and C to Java translation code.

Change-Id: I14d63dbe06334c3bbfbde75043de04d2c08f3dfd
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agoPython API: Add enum and union support. 51/13151/5
Ole Troan [Tue, 12 Jun 2018 19:06:44 +0000 (21:06 +0200)]
Python API: Add enum and union support.

As well as a rewrite of the encoders/decoders to make it more readable and extensible.
(Re-commit after fix to verify build.)

Change-Id: Ic244d3cebe070bb2570491f8a24f4a1e203f889a
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoUpdate tapv2 documentation 05/13105/3
Ian Wells [Mon, 18 Jun 2018 20:53:17 +0000 (13:53 -0700)]
Update tapv2 documentation

The documentation in the API file says that 0xffff == 'no interface
ID specified' but the code tests against ~(u32)0.

Change-Id: I5cd83d876c3ad4f53a5b01463299d4fcb806ea98
Signed-off-by: Ian Wells <iawells@cisco.com>
5 years agotest:vxlan over ipv6 tests 37/13137/4
Eyal Bari [Mon, 18 Jun 2018 10:01:59 +0000 (13:01 +0300)]
test:vxlan over ipv6 tests

Change-Id: Id910db0e3a07ecc6f469e2f0d1e97f39ba48cc60
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agoVPP-1042: Fix the DPDK no-hugetbl flags 78/12678/4
Jessica Tallon [Mon, 21 May 2018 12:27:05 +0000 (12:27 +0000)]
VPP-1042: Fix the DPDK no-hugetbl flags

Change-Id: I7c611d3fa7fabe82294fc22a61d5a3927a2da39d
Signed-off-by: Jessica Tallon <tsyesika@igalia.com>
5 years agoconfigurable per-dispatch-cycle sleep 62/13062/5
Dave Barach [Thu, 14 Jun 2018 22:52:46 +0000 (18:52 -0400)]
configurable per-dispatch-cycle sleep

Workaround for lack of driver interrupt support. Also quite handy for
home gateway, laptop/vagrant, other use-cases not requiring maximum
vectors/second for proper operation.

Change-Id: Ifc4b98112450664beef67b89ab8a6940a3bf24b5
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoFastLinQ QL41000 Series PCI vendor and device ids 01/13101/3
Igor Mikhailov (imichail) [Mon, 18 Jun 2018 17:19:10 +0000 (10:19 -0700)]
FastLinQ QL41000 Series PCI vendor and device ids

Change-Id: I23caebf602e3e6ff45fdec106a0da88f6de7a284
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
5 years agoipsec: VPP-1316 calculate IP/TCP/UDP inner checksums 48/13048/4
Klement Sekera [Wed, 16 May 2018 08:52:45 +0000 (10:52 +0200)]
ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums

Calculate IP/TCP/UDP checksums in software before adding authentication.

Change-Id: I3e121cb00aeba667764f39ade8d62170f18f8b6b
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoNull terminate name string 76/13176/2
Dave Barach [Thu, 21 Jun 2018 11:33:12 +0000 (07:33 -0400)]
Null terminate name string

Change-Id: If7bcc6ae3358b5e39bf76481ee58f4dbaa53d895
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agotcp: move tracing out of established loop 68/13168/2
Florin Coras [Wed, 20 Jun 2018 19:44:16 +0000 (12:44 -0700)]
tcp: move tracing out of established loop

Change-Id: I4a7e4f616ed4a4df82be3112ac4702f7e4e2025c
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoImplement DHCPv6 IA NA client (VPP-1094) 99/12599/11
Juraj Sloboda [Fri, 4 May 2018 12:20:06 +0000 (14:20 +0200)]
Implement DHCPv6 IA NA client (VPP-1094)

Change-Id: I682a47d6cf9975aca6136188d28ee93eaadf4fe3
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
5 years agojvpp: do not fail on type parsing error 48/13148/2
Marek Gradzki [Wed, 20 Jun 2018 11:53:10 +0000 (13:53 +0200)]
jvpp: do not fail on type parsing error

skip the type instead.

Change-Id: I533c8e13c1b2d05c1ddc6dc36427bac010d7c19a
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agoBIER neighbor stats 63/13063/4
Neale Ranns [Thu, 7 Jun 2018 09:08:07 +0000 (02:08 -0700)]
BIER neighbor stats

Change-Id: I2f638f1932b4aeddf2408c06d1b8393551675b72
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agodpdk/ipsec: add support for UDP encap/decap 37/13037/6
Radu Nicolau [Wed, 13 Jun 2018 15:39:05 +0000 (16:39 +0100)]
dpdk/ipsec: add support for UDP encap/decap

Change-Id: I024c1d398fcb51e5a20f9049d16a87b3b1ba0c20
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
5 years agoAdd .pydevproject to .gitignore 63/13163/2
Marek Gradzki [Wed, 20 Jun 2018 18:59:00 +0000 (20:59 +0200)]
Add .pydevproject to .gitignore

the file is used by PyDev - a Python IDE for Eclipse.

Change-Id: Id47287451fc8773332c65afa40c6f0464067cf81
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agoacl-plugin: fallback to linear ACL search for fragments 60/13160/2
Andrew Yourtchenko [Mon, 18 Jun 2018 10:15:09 +0000 (12:15 +0200)]
acl-plugin: fallback to linear ACL search for fragments

Trying to accomodate fragments as first class citizens
has shown to be more trouble than it's worth. So
fallback to linear ACL search in case it is a fragment
packet. Delete the corresponding code from the hash
matching.

Change-Id: Ic9ecc7c800d575615addb33dcaa89621462e9c7b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoNested-loop index typo. Oops. 59/13159/2
Dave Barach [Wed, 20 Jun 2018 14:53:51 +0000 (10:53 -0400)]
Nested-loop index typo. Oops.

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