vpp.git
5 years agoPeriodic scan and probe of IP neighbors to maintain neighbor pools 76/12276/8
John Lo [Sat, 28 Apr 2018 05:19:24 +0000 (01:19 -0400)]
Periodic scan and probe of IP neighbors to maintain neighbor pools

Scan IPv4 and IPv6 neigbor pool entries once a minute to keep them
up to date. The neighbor of an entry is probed if its time-stamp
is older than 1 minute. If the neighbor respond, its time-stamp
will be updated. If there is no response from a neighbor, its
entry will be deleted when the time-stamp of the entry become more
than 4 minutes old. Static neighbor entries are not probed nor
deleted.

Implemented CLI and API to enable and disable priodic scan of IPv4,
IPv6 or both types of IP neighbors. CLI is "ip scan-neighbor" and
API is "ip_scan_neighbor_enable_disable". Other IP neighbor scan
parameters can also be changed from their defaults via the CLI/API.

Change-Id: Id1a0a934ace15d03db845aa698bcbb9cdabebfcd
Signed-off-by: John Lo <loj@cisco.com>
5 years agomake test: reorganize ipsec_ah test code 38/12538/2
Klement Sekera [Fri, 11 May 2018 09:06:09 +0000 (11:06 +0200)]
make test: reorganize ipsec_ah test code

Change-Id: Ie0eb0127affd3d771d19bb7c60e79c31858d82cd
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoVPP-1275 Fix memory leaks in IPsec CLI 39/12539/2
Klement Sekera [Fri, 11 May 2018 10:59:05 +0000 (12:59 +0200)]
VPP-1275 Fix memory leaks in IPsec CLI

Change-Id: I1f7c634328f25b33580a215af2daeb498cd3b181
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agoAdd ipfix exporter coding guide 06/12506/2
Dave Barach [Wed, 9 May 2018 17:25:09 +0000 (13:25 -0400)]
Add ipfix exporter coding guide

Change-Id: Iaa28f96d613d6fb75bd29958d757de206448eb22
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoFix issue with xconnect not working on the main interface 27/12527/3
Damjan Marion [Thu, 10 May 2018 18:26:36 +0000 (20:26 +0200)]
Fix issue with xconnect not working on the main interface

Due to union, l2 sub-interface bits were wrongly set
causing sporadic misconfiguration of l2 mode on some
interfaces.

Change-Id: Id77ee281e3a0030878641a786c22ffe16ce1c759
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoRemove the historical memfd api segment bootstrap 28/12528/1
Dave Barach [Thu, 10 May 2018 20:44:27 +0000 (16:44 -0400)]
Remove the historical memfd api segment bootstrap

Clean up default and vpp_api_test custom private api segment allocator
ring configurations.

Change-Id: I145b6d64ba0a6315b5ccb07909c8256eeb772146
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agovppinfra: use count_trailing_zeros in sparse_vec_index 23/12523/3
Damjan Marion [Thu, 10 May 2018 11:40:44 +0000 (13:40 +0200)]
vppinfra: use count_trailing_zeros in sparse_vec_index

It is much cheaper to use ctzll than to do shift,subtract and mask
in likely case when we are looking for 1st set bit in the uword.

Change-Id: I31954081571978878c7098bafad0c85a91755fa2
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoNAT44: sessions counters per user fix (VPP-1270) 00/12500/2
Matus Fabian [Wed, 9 May 2018 11:51:03 +0000 (04:51 -0700)]
NAT44: sessions counters per user fix (VPP-1270)

Change-Id: I6306b81e0e1c3e1c591f929a76bb265c1c1d0859
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agovnet: device flow offload infra 90/11190/19
Damjan Marion [Fri, 16 Mar 2018 00:25:27 +0000 (01:25 +0100)]
vnet: device flow offload infra

Change-Id: Ibea4a96bdec5e368301a03d8b11a0712fa0265e0
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agosession: fix proxy app multithreading 17/12517/2
Florin Coras [Thu, 10 May 2018 00:33:00 +0000 (17:33 -0700)]
session: fix proxy app multithreading

Change-Id: Ic5304749935f69018eb00183bb4670bb9f16273c
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoChange the way IP header pointer is calculated in esp_decrypt nodes 04/12504/2
Szymon Sliwa [Wed, 9 May 2018 12:28:08 +0000 (14:28 +0200)]
Change the way IP header pointer is calculated in esp_decrypt nodes

The pointer to IP header was derived from l3_hdr_offset,
which would be ok, if l3_hdr_offset was valid. But it does not
have to be, so it was a bad solution. Now the previous nodes
mark whether it is a IPv6 or IPv4 packet tyle, and in esp_decrypt
we count get ip header pointer by substracting the size
of the ip header from the pointer to esp header (which lies
in front of the ip header).

Change-Id: I6d425b90931053711e8ce9126811b77ae6002a16
Signed-off-by: Szymon Sliwa <szs@semihalf.com>
5 years agoDHCP4 client process replies when renewing lease 81/12481/2
Matthew Smith [Mon, 7 May 2018 12:52:12 +0000 (07:52 -0500)]
DHCP4 client process replies when renewing lease

When a DHCP client is in the bound state, it wakes up
halfway through it's lease (by default) to try and renew
the lease. The ip4-dhcp-client-detect is not enabled as
a feature at this point, so replies sent from the DHCP
server do not get applied to the lease. Eventually the
lease expires, the address is removed from the interface,
a new discovery is performed and the same address is added
back to the interface.

Before sending a request to renew in the bound state, enable
the feature to process the reply.

Change-Id: I95332ee0596f47df6f3c8bf8e3f0698dde9a1fc5
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
5 years agovppinfra: use popcnt instruction when available 11/12511/2
Damjan Marion [Thu, 10 May 2018 01:04:08 +0000 (03:04 +0200)]
vppinfra: use popcnt instruction when available

Change-Id: Id02d613b8613a2d448840fe2d6a5e3b168a3c563
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agotcp: fix jumbo retransmits 12/12512/4
Florin Coras [Wed, 9 May 2018 18:34:25 +0000 (11:34 -0700)]
tcp: fix jumbo retransmits

Change-Id: I1c8a14d4d51aa730f0edcf491e3c4725e2d8bd66
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agodpdk:fix tx count 14/12514/2
Eyal Bari [Thu, 10 May 2018 06:12:42 +0000 (09:12 +0300)]
dpdk:fix tx count

Change-Id: I921465ea64b59d42674cc8f19069ed04e3b25026
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agodpdk: fix free of tx dropped packets 13/12513/1
Florin Coras [Wed, 9 May 2018 18:42:54 +0000 (11:42 -0700)]
dpdk: fix free of tx dropped packets

Change-Id: I3669068f694614f8555b33bf0b703c41e45363ef
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoipsec: support UDP encap/decap for NAT traversal 65/12465/4
Klement Sekera [Tue, 17 Apr 2018 16:04:57 +0000 (18:04 +0200)]
ipsec: support UDP encap/decap for NAT traversal

Change-Id: I65c12617ad49e4d5ef242e53988782f0cefa5684
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agosession: cleanup session tx function 39/12439/11
Florin Coras [Fri, 4 May 2018 22:46:57 +0000 (15:46 -0700)]
session: cleanup session tx function

- rework the function to declutter and avoid building more than one tx
  frame
- add dual loop although benefits in my tests seem to be minimal
- improve tcp/udp echo external apps. They have slightly better
  throughput than internal echo apps.
- udp bugfixes

Change-Id: Iea4a245b1b1bb407a7f403dedcce2664a49f774b
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agodpdk: tx code rework 44/12444/6
Damjan Marion [Sat, 5 May 2018 10:30:28 +0000 (12:30 +0200)]
dpdk: tx code rework

Change-Id: Ifea9c772e8784642433b92091f5769eb9ec06890
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agodpdk:fix mbuf index typo's 83/12483/1
Eyal Bari [Wed, 9 May 2018 06:37:54 +0000 (09:37 +0300)]
dpdk:fix mbuf index typo's

Change-Id: I387b22427b3f322969bcf32fcfc189123c8ed6ae
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agoNAT44: TCP connection close detection (VPP-1266) 14/12414/2
Matus Fabian [Fri, 4 May 2018 10:57:42 +0000 (03:57 -0700)]
NAT44: TCP connection close detection (VPP-1266)

Change-Id: Iba1cc1179ee80478e29888790a6476571d1904dc
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoopensuse: OS_ID field content changed for SUSE 68/12468/2
Marco Varlese [Mon, 7 May 2018 13:40:45 +0000 (15:40 +0200)]
opensuse: OS_ID field content changed for SUSE

Change-Id: I4bb582d55b1071d3581155eb158995ca5153ba3c
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
5 years agodpdk: improve perf of buffer indices calc in the input node 67/12467/2
Damjan Marion [Mon, 7 May 2018 13:20:25 +0000 (15:20 +0200)]
dpdk: improve perf of buffer indices calc in the input node

Change-Id: I16557189aa4a763ec496cb4a45f6e12f2d46971f
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agofix: AttributeError: module 'os' has no attribute 'cwd' 76/12076/2
Andrey "Zed" Zaikin [Tue, 24 Apr 2018 11:50:02 +0000 (14:50 +0300)]
fix: AttributeError: module 'os' has no attribute 'cwd'

Change-Id: I1c49a12ef7fa7bd0046f1a420b01c1654b6d21ec
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
5 years agoBFD: Fix format_ip46_address() parameter ordering. 51/12451/2
Jon Loeliger [Sat, 5 May 2018 21:11:31 +0000 (16:11 -0500)]
BFD: Fix format_ip46_address() parameter ordering.

Change-Id: I2b50e3fc06b4e905395d4706083f12ebc76826ce
Signed-off-by: Jon Loeliger <jdl@netgate.com>
5 years agovxlan:vxlan.c conform coding style 58/12458/1
Eyal Bari [Mon, 7 May 2018 07:13:44 +0000 (10:13 +0300)]
vxlan:vxlan.c conform coding style

Change-Id: I9937912cd760698e39044e8ae022a90b58c8db30
Signed-off-by: Eyal Bari <ebari@cisco.com>
6 years agoautodetect alignment during _vec_resize 33/12433/4
Damjan Marion [Fri, 4 May 2018 18:45:41 +0000 (20:45 +0200)]
autodetect alignment during _vec_resize

Change-Id: I2896dbde78b5d58dc706756f4c76632c303557ae
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoipsec: allow null/null for crypto/integ algorithms pair 22/12422/2
Radu Nicolau [Fri, 4 May 2018 11:51:53 +0000 (12:51 +0100)]
ipsec: allow null/null for crypto/integ algorithms pair

Change-Id: Ic1e189c22e3d344d165e0eab05ccb667eef088a9
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
6 years agoAdd python lex and yacc to spec file build requirements. 29/12429/2
Thomas F Herbert [Thu, 3 May 2018 23:17:13 +0000 (19:17 -0400)]
Add python lex and yacc to spec file build requirements.

Change-Id: Icf1a30c9df4d3298407c00383020debe99acdbff
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
6 years agoFlow: Rename IPFIX exporter. 20/12320/4
Ole Troan [Wed, 2 May 2018 10:45:10 +0000 (12:45 +0200)]
Flow: Rename IPFIX exporter.

Change-Id: I9363cf54b73f7cfd8622af6f1cb250438ea0d3b6
Signed-off-by: Ole Troan <ot@cisco.com>
6 years agobuild-data: Common makefile for NXP DPAA1/DPAA2 platforms 52/12352/8
Sachin Saxena [Fri, 4 May 2018 10:38:43 +0000 (16:08 +0530)]
build-data: Common makefile for NXP DPAA1/DPAA2 platforms

 - Same makefile will be used to support DPAA1 and DPAA2 platforms.
 - Support added to have both on Host compilation as well as Cross compilation.
 - If Cross compiling, by default NXP cutomized toolchain "aarch64-fsl-linux" will be used.
   To use Linaro toolchains, please set env variable CROSS_PREFIX.
   Like: export CROSS_PREFIX=aarch64-linux-gnu

 - Added CPU_MTUNE to modify xxx_mtune , if CPU is not A72 which is default.
 - You may set DPDK_PATH to dpdk installation folder, if wish to use locally compiled DPDK.
 - In case of Cross compilation, OPENSSL_PATH will be required to include OPENSSL libs.

Change-Id: I9057dfc57522b60e306810f684b3085bfccf85e9
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
6 years agoHarmonize vec/pool_get_aligned object sizes and alignment requests 79/12379/5
Dave Barach [Thu, 3 May 2018 12:26:39 +0000 (08:26 -0400)]
Harmonize vec/pool_get_aligned object sizes and alignment requests

Object sizes must evenly divide alignment requests, or vice
versa. Otherwise, only the first object will be aligned as
requested.

Three choices: add CLIB_CACHE_LINE_ALIGN_MARK(align_me) at
the end of structures, manually pad to an even divisor or multiple of
the alignment request, or use plain vectors/pools.

static assert for enforcement.

Change-Id: I41aa6ff1a58267301d32aaf4b9cd24678ac1c147
Signed-off-by: Dave Barach <dbarach@cisco.com>
6 years agoarm64: Avoid setting march to corei7 when Cross Compiling for ARM 99/12399/3
Sachin Saxena [Fri, 4 May 2018 09:38:29 +0000 (15:08 +0530)]
arm64: Avoid setting march to corei7 when Cross Compiling for ARM

  When Cross-compiling VPP for arm64 target and build machine is x86_64,
  based on build_cpu value, the march variable is set to corei7 which is
  an unrecoganized option for ARM tool chain.
  This breaks the VPP compilation.

Change-Id: I4cba5b4990e7cf0bdc1403e90c3d18110900bbef
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
6 years agoAddress compilation issues with Java > 1.8 25/12325/2
Marco Varlese [Wed, 2 May 2018 11:33:47 +0000 (13:33 +0200)]
Address compilation issues with Java > 1.8

This patch addresses the changes in the JDK to build headers (javah no
longer available)

Change-Id: I3e94b1cf97c8c474535c26b75ea08379338fe0af
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
6 years agoFix format for the dst address in the STN trace 86/12386/2
Milan Lenco [Thu, 3 May 2018 15:31:46 +0000 (17:31 +0200)]
Fix format for the dst address in the STN trace

Output string 's' was not assigned the return value of format() for
the destination address, which, in case the underlying memory was moved
by the realloc, resulted in an invalid memory access by the subsequent
invocations of format().

Change-Id: I2b5dfd85db085c553ca5ec0b3257aeeb437c360a
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
6 years agoVAPI: support VLAs in type definitions 80/12380/3
Klement Sekera [Thu, 3 May 2018 12:27:42 +0000 (14:27 +0200)]
VAPI: support VLAs in type definitions

Change-Id: I8d54415972d6644190857175b0e895c5319ce7b6
Signed-off-by: Klement Sekera <ksekera@cisco.com>
6 years agoNAT: fix bin API dump of static mappings. 30/12330/2
Milan Lenco [Wed, 2 May 2018 12:22:22 +0000 (14:22 +0200)]
NAT: fix bin API dump of static mappings.

Static mappings with equal local and external IPs
but different ports were dumped as identity mappings.

Change-Id: Ifea7cef5b78aea4c2eb31cf1620185eeef2681e5
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
6 years agoMPLS prefetch fixes 27/12327/3
Neale Ranns [Wed, 2 May 2018 12:15:16 +0000 (05:15 -0700)]
MPLS prefetch fixes

Change-Id: I565d79af410825c72f291ab40178883b1bc6f1df
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoNAT44: fix VAT nat44_user_session_details 09/12309/2
Matus Fabian [Wed, 2 May 2018 07:59:33 +0000 (00:59 -0700)]
NAT44: fix VAT nat44_user_session_details

Change-Id: If379247f0574fbfcca39e752684bf6c81b95187b
Signed-off-by: Matus Fabian <matfabia@cisco.com>
6 years agoNAT44 segv on unknown proto on inside interface 53/12353/2
Matthew Smith [Mon, 30 Apr 2018 21:39:13 +0000 (16:39 -0500)]
NAT44 segv on unknown proto on inside interface

When a packet with an unknown proto arrives
on an inside interface and there are no existing sessions
for the source address, a segv occurs.

snat_in2out_unknown_proto() finds the head of the sessions
dlist, fetches the address of the next element using
head->next, and then dereferences the next element. On the
first packet received from a source address, head->next is
~0, so this results in a segv.

Check that the session list is not empty before trying to
traverse it.

Also removed unnecessary lookup against tsm->user_hash.
Prior call to nat_user_get_or_create() already performed
that lookup and added a user if one didn't exist.

Change-Id: If73e79aa2f8e3962ab7b876ecf55aea40d7a5472
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
6 years agotcp: fix echo server rx retries counter vec alloc 63/12363/2
Florin Coras [Wed, 2 May 2018 21:34:32 +0000 (14:34 -0700)]
tcp: fix echo server rx retries counter vec alloc

If sessions are not preallocated, the rx retries counters are not
correctly validated/initialized

Change-Id: Iaf7456f3a0e2181fcea0c370613d694f8e98276d
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agoFix CentOS 7 build issue with vxlan 49/12349/2
Matthew Smith [Wed, 2 May 2018 14:55:01 +0000 (09:55 -0500)]
Fix CentOS 7 build issue with vxlan

Two vxlan union/struct initializations caused gcc on
CentOS 7 to puke. Modified them to make the build
work again.

Change-Id: Iad667444b86cfde5ee4329993b520028d3b593ad
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
6 years agoScapy; update to release 2.4.0 97/12297/2
Neale Ranns [Tue, 1 May 2018 12:55:59 +0000 (05:55 -0700)]
Scapy; update to release 2.4.0

Change-Id: Ibcae49ab106efa9cd0ff60be60904ac5a2fc0b65
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agovxlan:encap - use vnet rewrite 88/12288/2
eyal bari [Thu, 26 Apr 2018 10:14:55 +0000 (13:14 +0300)]
vxlan:encap - use vnet rewrite

moving the rewrite into the tunnel struct

Change-Id: Iec74b48e13456d32957e826cffb5ea35a8ebd1a0
Signed-off-by: Eyal Bari <ebari@cisco.com>
6 years agotcp/session: debug improvements/fixes 75/11975/6
Florin Coras [Fri, 20 Apr 2018 17:51:49 +0000 (10:51 -0700)]
tcp/session: debug improvements/fixes

Change-Id: I906e58b4f9827a79a6ab673f8fa2e03036c69820
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agoAdd plugin periodic function elisp skeleton 95/12295/2
Dave Barach [Mon, 30 Apr 2018 17:03:46 +0000 (13:03 -0400)]
Add plugin periodic function elisp skeleton

Change-Id: Ide4e2d2a06dff20c94ae5436ba6361b246052867
Signed-off-by: Dave Barach <dave@barachs.net>
6 years agoRemove historical README file 93/12293/2
Dave Barach [Mon, 30 Apr 2018 14:50:13 +0000 (10:50 -0400)]
Remove historical README file

Change-Id: I54a00686a7f3a61f583a5f701a0ab6c5480a455b
Signed-off-by: Dave Barach <dave@barachs.net>
6 years agoFIB: elide cover walk for insert of host route 05/12105/2
Neale Ranns [Wed, 25 Apr 2018 08:41:24 +0000 (01:41 -0700)]
FIB: elide cover walk for insert of host route

Change-Id: I2d39e56ff605e3a24927d6330d65d0406f588381
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoAdd reference to 18.04 test framework documentation 91/12291/1
Chris Luke [Mon, 30 Apr 2018 13:59:43 +0000 (09:59 -0400)]
Add reference to 18.04 test framework documentation

Change-Id: I0f24e0f0fde0568161edf52f40c5b83877ed7130
Signed-off-by: Chris Luke <chrisy@flirble.org>
6 years agoplugins: dpdk: fix check which makes not sense, likely a typo 89/12289/1
Szymon Sliwa [Mon, 30 Apr 2018 12:47:24 +0000 (14:47 +0200)]
plugins: dpdk: fix check which makes not sense, likely a typo

Change-Id: If33854f9c32736edf571fb66cdfa759db1c9de25
Signed-off-by: Szymon Sliwa <szs@semihalf.com>
6 years agosvm/session: improve svm fifo allocation 75/12275/1
Florin Coras [Fri, 27 Apr 2018 16:46:46 +0000 (09:46 -0700)]
svm/session: improve svm fifo allocation

Change-Id: Id9bad9a2fd99d22296a705ab08d1daedc3fef5c1
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agoIPv6 NS/RS; do not vec_validate global structs in the DP 12/12112/2
Neale Ranns [Wed, 25 Apr 2018 12:40:48 +0000 (05:40 -0700)]
IPv6 NS/RS; do not vec_validate global structs in the DP

Change-Id: I5cab31639e7819c9ab7e9c9159d931b25161d00b
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoIPv6 NS: use the mcast rewrite node to fill in the destination MAC 23/12123/2
Neale Ranns [Wed, 25 Apr 2018 13:34:31 +0000 (06:34 -0700)]
IPv6 NS: use the mcast rewrite node to fill in the destination MAC

- move the IPv6 incomplete and glean node to ip6_neighbour.c (so it has access to ip6_neighbour_main_t)
- use the RA info config on the interface to find the multicast adj to use

Change-Id: I835e419072abe54fb09dafb0e7eb0a9e50eba1af
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoTAP memory leaks: 54/12254/2
Neale Ranns [Fri, 27 Apr 2018 11:42:47 +0000 (04:42 -0700)]
TAP memory leaks:

1 - use bit-map to re-use ID values and thus VLIB nodes
2 - free vrings
3 - free hw_address on HW interface delete (a HW * struct is memset on pool_get)
4 - free temporary node names during TX node setup

Change-Id: Id114c8bb9c844fd4ceb02fbbeb4b511ecfeb61ce
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoMove VOM to extras/vom 40/12140/4
Damjan Marion [Wed, 25 Apr 2018 17:11:15 +0000 (19:11 +0200)]
Move VOM to extras/vom

Change-Id: Iea174f03dfba3bd06024db0f0cc373532300dcae
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoA bit of buffer metadata reshuffling to accommodate flow_id 72/11872/10
Damjan Marion [Thu, 26 Apr 2018 20:45:40 +0000 (22:45 +0200)]
A bit of buffer metadata reshuffling to accommodate flow_id

Change-Id: I2794384557c6272fe217269b14a9db09eda19220
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoVAT for qos_record_enable_disable API 10/12210/2
Igor Mikhailov (imichail) [Fri, 27 Apr 2018 04:33:02 +0000 (21:33 -0700)]
VAT for qos_record_enable_disable API

Change-Id: I2b418b9aefe298e4e6190cbe2e220a657f688cda
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
6 years agoMakefile: Add new opensuse-leap os id 04/12204/1
Ed Kern [Thu, 26 Apr 2018 23:13:17 +0000 (17:13 -0600)]
Makefile: Add new opensuse-leap os id

Newer opensuse no longer reports in /etc/os-release
as opensuse.  It refers to itself as opensuse-leap.
I imagine they think that sounds cooler or something.

Change-Id: I12c721c7950101070dd8b58b627fb0e601cb8844
Signed-off-by: Ed Kern <ejk@cisco.com>
6 years agovlib: set log tap level <level> does not work for some keywords 41/12141/2
Steven [Wed, 25 Apr 2018 18:29:00 +0000 (11:29 -0700)]
vlib: set log tap level <level> does not work for some keywords

While some levels such as debug and emerg work, others don't. See below.

DBGvpp# set log class tap level warn
set log class tap level warn
set logging class: unknown input `level warn'
DBGvpp# set log class tap level debug
set log class tap level debug
DBGvpp# set log class tap level info
set log class tap level info
set logging class: unknown input `level info'
DBGvpp# set log class tap level err
set log class tap level err
DBGvpp# set log class tap level crit
set log class tap level crit
set logging class: unknown input `level crit'
DBGvpp# set log class tap level emerg
set log class tap level emerg
DBGvpp#

Cause:
The reason for the failure for the shorter keywords is level_str is unformatted
with %v which is not null terminated. For example, the character after "info"
could be anything in level_str. The memcmp with size of the macro keyword __##uc
which includes the null character or 5 in this case and thus the comparison fails.

Fix:
Use %s which insure level_str is null terminated. Use strcmp to rule out
false positve match like "debugxxx" against keyword "debug".

Change-Id: I7a2d97a0f7f618df105da7eca791618dce04d21e
Signed-off-by: Steven <sluong@cisco.com>
6 years agodpdk: fix building debs from stable dpdk tarballs (VPP-1259) 92/12192/2
Damjan Marion [Thu, 26 Apr 2018 16:05:46 +0000 (18:05 +0200)]
dpdk: fix building debs from stable dpdk tarballs (VPP-1259)

Change-Id: I9585603e9fa1904658d84d226bd50370f1dbc889
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agolibmemif: fix build on ununtu 18.04 (VPP-1244) 94/12194/1
Damjan Marion [Thu, 26 Apr 2018 16:39:56 +0000 (18:39 +0200)]
libmemif: fix build on ununtu 18.04 (VPP-1244)

Change-Id: If830dc0c8171b14c8a686db899885e26628a6f91
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoNAT44: disable nat44-hairpinning feature for in-out interface (VPP-1255) 66/12166/1
Matus Fabian [Thu, 26 Apr 2018 09:12:20 +0000 (02:12 -0700)]
NAT44: disable nat44-hairpinning feature for in-out interface (VPP-1255)

Change-Id: Icd42abf4e35db550df496592cffce655f1987d68
Signed-off-by: Matus Fabian <matfabia@cisco.com>
6 years agoVPP 18.04 release notes 45/12145/1
Chris Luke [Tue, 24 Apr 2018 04:02:37 +0000 (00:02 -0400)]
VPP 18.04 release notes

- Notes for the 18.04 release
- Fixes for table layout of previous API summary
- Update list_api_changes.py script

Change-Id: Id99ed4df2e76e2704f949ee940eedf9ede7e8f4b
Signed-off-by: Chris Luke <chrisy@flirble.org>
(cherry picked from commit ac2b7363f437afedd100162c901b5d03cb37a34a)

6 years agoigmp: disable debug messages 43/12143/1
Damjan Marion [Wed, 25 Apr 2018 19:25:32 +0000 (21:25 +0200)]
igmp: disable debug messages

Be gentle with people who run VPP in the noisy envirement where
not-for-us IGMP messages are flying around...

Change-Id: I07e74e29bc12ecdcc83faead9182d861c7ea1add
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoCarry recorded QOS bits in the outer VXLAN IP header 89/12089/2
Igor Mikhailov (imichail) [Wed, 25 Apr 2018 04:53:00 +0000 (21:53 -0700)]
Carry recorded QOS bits in the outer VXLAN IP header

Currently for VXLAN IPv4.

Change-Id: Id4b8bc0d9f6ab043810e4d1b9f28e01c27ce0660
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
6 years agospan: crash in span_mirror [VPP-1254] 24/12124/2
Steven [Wed, 25 Apr 2018 05:43:07 +0000 (22:43 -0700)]
span: crash in span_mirror [VPP-1254]

It is possible for span-input to get call with sw_if_index which is greater than
sm->interfaces and crashes in span_mirror () in the following line

  span_interface_t *si0 = vec_elt_at_index (sm->interfaces, sw_if_index0);

For example, span-input mirrors a main interface as source, it may actually get
call for traffic coming in from the subinterface and crashes.

The fix is simply to check if sw_if_index >= vec_len (sm->interfaces) and
punt if it is.

Change-Id: I8312eb321d638518e14ba2326fffd1a7919646ca
Signed-off-by: Steven <sluong@cisco.com>
(cherry picked from commit 516d63ff2c6671f3b0dc641511a50017a9804179)

6 years agodpdk: complete rework of the dpdk-input node 98/11798/30
Damjan Marion [Sun, 15 Apr 2018 22:18:34 +0000 (00:18 +0200)]
dpdk: complete rework of the dpdk-input node

Change-Id: If174d189de40e6f9ffae99997bba93a2519d9fda
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoGBPv6: NAT66 actions for GBP 84/12084/4
Neale Ranns [Tue, 24 Apr 2018 14:45:33 +0000 (07:45 -0700)]
GBPv6: NAT66 actions for GBP

Change-Id: I379150a88f2d53d6281be41e8bad6fc4f4e88a71
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agovxlan:remove single bucket load-balance dpo's 10/12110/4
Eyal Bari [Wed, 25 Apr 2018 10:50:57 +0000 (13:50 +0300)]
vxlan:remove single bucket load-balance dpo's

from encap path

Change-Id: I62a8d13495355ad5e687f13b86c2a5d360bb2b7f
Signed-off-by: Eyal Bari <ebari@cisco.com>
6 years agoABF: remove the inclusion of version.h from abf_policy so it does not recompile each... 01/12101/2
Neale Ranns [Wed, 25 Apr 2018 08:02:34 +0000 (01:02 -0700)]
ABF: remove the inclusion of version.h from abf_policy so it does not recompile each time

Change-Id: I97ef0ef5f694062e5867e11d434e3b521a57f649
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoFix some build warnings about "Old Style VLA" 09/12109/2
Juraj Sloboda [Mon, 23 Apr 2018 08:14:37 +0000 (10:14 +0200)]
Fix some build warnings about "Old Style VLA"

Change-Id: I69fee1dcf07a4d2eed69a59f0a36e63e3741ed4e
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
6 years agoAdjacency walk more scalable 12/12012/2
Neale Ranns [Mon, 23 Apr 2018 12:31:19 +0000 (05:31 -0700)]
Adjacency walk more scalable

When walking all adjacencies for a given {next-hop,interface} instead of
walking all the adjacencies on that interface and matching the next-hop
(which is O(n) in the number of adjacencies on that link, find all instances
of an adjacency with any link-type and wtih that {next-hop,interfacE} pair:
this is O(1).

Change-Id: Ic80399fc9e93c8df111379c039e592d8cafbab18
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoSTN: use the punt feature arcs 82/12082/2
Neale Ranns [Tue, 24 Apr 2018 13:43:49 +0000 (06:43 -0700)]
STN: use the punt feature arcs

Fixes:
- the parsing of the packet falsely assume an ethernet header at offset 0
- it causes a frame leak

Change-Id: Ib9ac9535173ed216de613baaa06d0e1dea3640ca
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoipsec: make crypto_worker_main_t a full cache line in size 86/12086/2
Florin Coras [Tue, 24 Apr 2018 14:04:27 +0000 (07:04 -0700)]
ipsec: make crypto_worker_main_t a full cache line in size

Change-Id: I927c9358915e03187cf7d3098c00b85b5ea2f92d
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agoigmp: data structure refactoring 13/12013/5
Jakub Grajciar [Mon, 23 Apr 2018 12:40:59 +0000 (14:40 +0200)]
igmp: data structure refactoring

Improve igmp membership report performance, introduce group and source specific timers.
(side effect compatible with Group-specific query).

Change-Id: Ie3dd2c0dabe5f7138c2f8029e6bbbbfcb5e4904f
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
6 years agoFix sample-plugin build with newer clang versions 88/12088/1
Damjan Marion [Tue, 24 Apr 2018 22:56:08 +0000 (00:56 +0200)]
Fix sample-plugin build with newer clang versions

Change-Id: Id90e6fb1211b7789e6e3df0b6579c4757e7fdfa6
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agolibmemif: fix implicit declaration of memfd_create 47/11947/2
Jakub Grajciar [Fri, 20 Apr 2018 07:20:50 +0000 (09:20 +0200)]
libmemif: fix implicit declaration of memfd_create

Change-Id: Icdeaad1d5df63bd5e9426958a3b73582bbd226b7
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
6 years agolacp: deleting the bond subinterface may cause lacp to lose the partner [VPP-1251] 83/12083/2
Steven [Tue, 24 Apr 2018 00:06:24 +0000 (17:06 -0700)]
lacp: deleting the bond subinterface may cause lacp to lose the partner [VPP-1251]

Problem:
When the bond subinterface is removed, it was observed that we lost the lacp
partner. Show hardware shows rx counter goes up, but show interface does not
for the slave interfaces.

Cause:
We reset the interface promiscuous mode when the bond subinterface is deleted.
This causes dpdk not to accept any packet. Leave the interface in promiscuous
mode fixes the problem.

Other fixes:
There are few places we use hw_if_index as if they are sw_if_index. But they
don't necessarily have the same value. As soon as a subinterface is created,
they start to diverge. The fix is to use the correct API for the hw_if_index
and sw_if_index.

Change-Id: I1e6b8bca0a4aae396d217a141271cbf968500c91
Signed-off-by: Steven <sluong@cisco.com>
(cherry picked from commit 42c6599bf3057a7e8f4f00f5b6a9dd72af48d283)

6 years agomemory leak 71/12071/2
Kingwel Xie [Tue, 24 Apr 2018 09:47:56 +0000 (17:47 +0800)]
memory leak

obvious leak of parent_indices

Change-Id: I572b33de1756c8062a87c754117d990622fe12fe
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
6 years agoNAT44: one-armed NAT and identity mapping (VPP-1212) 78/12078/2
Matus Fabian [Tue, 24 Apr 2018 12:23:56 +0000 (05:23 -0700)]
NAT44: one-armed NAT and identity mapping (VPP-1212)

Change-Id: I228728bacfca6056dc409a96de1bffb9cadcd3e6
Signed-off-by: Matus Fabian <matfabia@cisco.com>
6 years agomem-leak in stats handling (VPP-1250) 73/12073/2
Neale Ranns [Tue, 24 Apr 2018 09:05:04 +0000 (02:05 -0700)]
mem-leak in stats handling (VPP-1250)

Change-Id: I55f978c84a56bc089e5657c528195b6c84409364
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
(cherry picked from commit df53f5fda277a035984f1de4474f0b58ae15b114)

6 years agoSupport QOS_SOURCE_IP recording from L2 input node. 40/11940/3
Igor Mikhailov (imichail) [Thu, 19 Apr 2018 22:06:27 +0000 (15:06 -0700)]
Support QOS_SOURCE_IP recording from L2 input node.

Some scenarios not involving ip[4,6]-input paths might benefit from IP
header QOS fields recorded and applied.
An example: L2 (overlay) traffic being encapsulated by VPP in VXLAN
and transmitted on another (underlay) interface might want the QOS
information carried over in the outer IP header.

Change-Id: I4d9462c47ae6ba97680edb1e53340b17cfd7845b
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
6 years agoDPDK: CVE-2018-1059 32/12032/2
Marco Varlese [Mon, 23 Apr 2018 17:54:51 +0000 (19:54 +0200)]
DPDK: CVE-2018-1059

For further details, please see
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1059

Change-Id: Icd207f129e5fdcc3d9d8ad56ba5a368926f2804d
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
6 years agoScript to list patches that changed api files. 39/12039/1
Dave Wallace [Wed, 24 Jan 2018 05:51:22 +0000 (00:51 -0500)]
Script to list patches that changed api files.

- Add Ole Troan's script from vpp-dev email:
  https://lists.fd.io/pipermail/vpp-dev/2017-October/007037.html

Change-Id: I0cbf5118169dc25f0edd659a5a9f5cde8619f780
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit b0a517b6c881ad82ac15e52e832056314216058d)

6 years agoMPLS VPLS CLI fix 14/12014/2
Neale Ranns [Mon, 23 Apr 2018 12:55:49 +0000 (05:55 -0700)]
MPLS VPLS CLI fix

set the IS_RX flag based on CLI 'l2-input-on'

Change-Id: I53d9129a7c09f605c1eb55753426f392b1b480bc
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agolacp: partner may time us out if fast-rate is configured [VPP-1247] 42/11942/2
Steven [Fri, 20 Apr 2018 04:59:09 +0000 (21:59 -0700)]
lacp: partner may time us out if fast-rate is configured [VPP-1247]

We should be sending LACP PDU every second if the partner has LACP_TIMEOUT flag
set which means it will time us out in 3 seconds.

Add interface name for lacp trace

Change-Id: If7d816c062d03e80cc0dd7d10dba0b76ace0664a
Signed-off-by: Steven <sluong@cisco.com>
6 years agotcp: make newreno byte instead of acks dependent 39/11939/5
Florin Coras [Wed, 18 Apr 2018 23:40:55 +0000 (16:40 -0700)]
tcp: make newreno byte instead of acks dependent

Should be more resilient to ack losses

Change-Id: Icec3b93c1d290dec437fcc4e6fe5171906c9ba8a
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agotcp: improve stats 16/11916/6
Florin Coras [Wed, 18 Apr 2018 20:20:18 +0000 (13:20 -0700)]
tcp: improve stats

Change-Id: I9ab11ba9f958c679112eb22c8db39cb269a29dc7
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agoAllow an IPsec tunnel interface to be renumbered 02/11902/2
Matthew Smith [Thu, 12 Apr 2018 12:32:56 +0000 (07:32 -0500)]
Allow an IPsec tunnel interface to be renumbered

When creating an IPsec tunnel interface, allow a numeric
identifier to be set for use in the interface's name in
place of the dev instance. Default to using the dev instance
if no value is explicitly set.

When an IPsec tunnel is deleted, the interface is deleted
now instead of being kept in a pool of available hw
interfaces. Otherwise there was the possibility of
conflicting tx node names between deleted tunnels and
newly created ones.

Change-Id: Ic525466622a0dec38a845fa5871c084f6d9da380
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
6 years agoAdd special Twice-NAT feature (VPP-1221) 71/11671/4
Juraj Sloboda [Tue, 10 Apr 2018 11:51:54 +0000 (13:51 +0200)]
Add special Twice-NAT feature (VPP-1221)

When enabled then Twice-NAT is applied only when
source IP equals destination IP after DNAT

Change-Id: I58a9d1d222b2a10c83eafffb2107f32c1b4aa3a8
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
6 years agoMinor optimzation/cleanup to ethernet-input node 00/11900/2
John Lo [Wed, 18 Apr 2018 19:52:23 +0000 (15:52 -0400)]
Minor optimzation/cleanup to ethernet-input node

Change-Id: Ibf3ef82950f50b746394a731cd2e7cba1cd16ec4
Signed-off-by: John Lo <loj@cisco.com>
6 years agodpdk: improve logging 91/11891/2
Damjan Marion [Wed, 18 Apr 2018 15:00:18 +0000 (17:00 +0200)]
dpdk: improve logging

- use of vlib_log for non-dataplane logging
- redirect of dpdk logs trough unix pipe into vlib_log
- "show dpdk physmem" cli

Change-Id: I5da70f9c130273072a8cc80d169df31fc216b2c2
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agovlib: logging improvements 88/11888/3
Damjan Marion [Wed, 18 Apr 2018 15:03:28 +0000 (17:03 +0200)]
vlib: logging improvements

Change-Id: I1c72d9ddefdc83c7d5ab2564f89d83ffd3fa6110
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agotypo fix: UNKOWN -> UNKNOWN 86/11886/2
Andrey "Zed" Zaikin [Wed, 18 Apr 2018 14:07:07 +0000 (17:07 +0300)]
typo fix: UNKOWN -> UNKNOWN

Change-Id: I008a4d7ad7160d1f07e7ceef712a5318a9368308
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
6 years agoMcast rewrite optimisations 17/8017/3
Neale Ranns [Thu, 1 Jun 2017 09:43:19 +0000 (05:43 -0400)]
Mcast rewrite optimisations

hard code the address mask offsets. This are protocol specific and only used on ethernet when used at all.

Change-Id: Ib1f6f33682f53254ffbb5a241a1583e65420e0c7
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agosession: coverity warnings 89/11889/2
Florin Coras [Wed, 18 Apr 2018 07:05:21 +0000 (00:05 -0700)]
session: coverity warnings

Change-Id: I53bb1e289ba16ee6d9aed7285b18437c996077a4
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agoNAT44: recycle old sessions for forwarding bypass (VPP-1240) 75/11875/2
Matus Fabian [Wed, 18 Apr 2018 08:39:17 +0000 (01:39 -0700)]
NAT44: recycle old sessions for forwarding bypass (VPP-1240)

Change-Id: I7e6b0e7e91cc032b1685f35de5d84363a85158a5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
6 years agoFix PPPoE test case issues 94/10994/7
Hongjun Ni [Wed, 7 Mar 2018 16:25:56 +0000 (00:25 +0800)]
Fix PPPoE test case issues

Change-Id: I8b57250d5578ec7979c99da15d0ed7d0b70a8872
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
6 years agovppinfra: make set_mempolicy failure non-critical unless NUMA_FORCE is set 70/11870/2
Damjan Marion [Wed, 18 Apr 2018 07:21:24 +0000 (09:21 +0200)]
vppinfra: make set_mempolicy failure non-critical unless NUMA_FORCE is set

Change-Id: I6c1c855cf5fc2ee06f1c7ddd6576ca16cd556fdd
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoSCTP: coverity warnings 69/11869/2
Marco Varlese [Wed, 18 Apr 2018 06:50:57 +0000 (08:50 +0200)]
SCTP: coverity warnings

This patch addresses the warning 182994

Change-Id: I071f3cbdf9965c7b57d444f79430ee75c66c856e
Signed-off-by: Marco Varlese <marco.varlese@suse.com>