Dave Barach [Mon, 5 Feb 2018 14:45:43 +0000 (09:45 -0500)]
Fix ip4/6_reass_main.ip4/6_reass_expire_node_idx used before set
Add an ASSERT to vlib_process_signal_event_helper to catch future
instances of passing node_index = 0 to vlib_process_signal_event().
Change-Id: Iec896fc7c3917feb2fd3198cea42851ba88e64e5
Signed-off-by: Dave Barach <dave@barachs.net>
Marco Varlese [Fri, 2 Feb 2018 16:17:51 +0000 (17:17 +0100)]
SCTP: calculate RTO / RTT and RTTVAR as per RFC
This patch addresses the need to calculate the RTO / RTT and RTTVAR
according to the rules depicted by the RFC4960 at section 6.3.1
Change-Id: I1d346f3c67610070b3f602f32c7738d58b99ffed
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
Haiyang Tan [Sat, 20 Jan 2018 09:48:53 +0000 (04:48 -0500)]
vhost_user: code cleanup
1. Replace the magic number '-1' with MAP_FAILED
2. On x86 platform, QEMU uses vhostuser required the memory back-end is file based,
the file could be tmpfs(4K page size) or hugetlbfs(2M or 1G page size)
Change-Id: If1818cb6833728d641f68e4d4a3bc645e70f2ee6
Signed-off-by: Haiyang Tan <haiyang.tan.dev@gmail.com>
Klement Sekera [Fri, 2 Feb 2018 15:17:55 +0000 (16:17 +0100)]
IP reassembly: workaround coverity warnings
Change-Id: Ide577f036d9d8dcedd99cdb4666a0eaf8a19b92e
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Keith Burns (alagalah) [Fri, 2 Feb 2018 16:21:56 +0000 (08:21 -0800)]
Clean up for vcl.am, making vppcom.h C++ aware
Change-Id: I2548ebd37e16bed50b5c8046b728415a341413e3
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Florin Coras [Tue, 30 Jan 2018 11:21:32 +0000 (03:21 -0800)]
lisp-cp: fix handling of ndp without source link addr VPP-1159
Change-Id: Idddb60bbc7fcc701d39212f6422a6b2f6dc75221
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit
cba3675fabe618194bf80a9de0e9c53b89a541ca)
Klement Sekera [Fri, 2 Feb 2018 10:27:53 +0000 (11:27 +0100)]
make test: use random seed
This fixes a constant setting of random seed forgotten from testing.
Change-Id: Ie3c4db8bb2b4b73ba33de1ffc02cb563391fd31c
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Neale Ranns [Thu, 25 Jan 2018 15:28:19 +0000 (07:28 -0800)]
VOM: route-domain find() fix
Change-Id: I5b7117f3568e3ba979baa15521b2cfc180abb682
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Florin Coras [Mon, 29 Jan 2018 13:11:24 +0000 (05:11 -0800)]
vlmemory/svm: fix client detach from svm region
Clients cannot know at svm region detach time if the shm backing files
have been recreated (e.g., if vpp restarts) and therefore should not try
to unlink them. Otherwise, terminating clients attached to previous
instantiations of a re-allocated region end up making the new instance
un-mappable by removing its backing file.
Change-Id: Idcd0cab776e63fd75b821bc9f0fac58217b9ccbe
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Wallace [Thu, 25 Jan 2018 19:27:54 +0000 (14:27 -0500)]
Add link to 18.01 test framework documentation.
Change-Id: I030602391ea3b612ac9a6780399cc30b427cc3a5
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit
92b15bcea4c6c5e62415a8207463eb9a897630c6)
Dave Wallace [Wed, 24 Jan 2018 14:37:59 +0000 (09:37 -0500)]
Update 18.01 Release Notes
Change-Id: Id2f13c59c6f4e7bc79f6e77d6dab752bf6dfb06a
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit
a1a382bb2bc2fbf6bf947a24a263fefbe32497e7)
Neale Ranns [Thu, 11 Jan 2018 17:02:01 +0000 (09:02 -0800)]
vlib_buffer_clone: allow client to request the maximum number of clones; 256
Change-Id: Id96dc5d86719546268b50a9999a06387d2d9075c
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Hongjun Ni [Tue, 23 Jan 2018 11:17:23 +0000 (19:17 +0800)]
Add L3DSR feature in LB plugin
L3DSR is used to overcome Layer 2 limitations
of Direct Server Return Load Balancing.
It maps VIP to DSCP bits, and reuse TOS bits to transfer it
to server, and then server will get VIP from DSCP-to-VIP mapping.
Please refer to https://www.nanog.org/meetings/nanog51/presentations/Monday/NANOG51.Talk45.nanog51-Schaumann.pdf
Change-Id: I403ffeadfb04ed0265086eb2dc41f2e17f8f34cb
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
Marco Varlese [Wed, 31 Jan 2018 10:00:01 +0000 (11:00 +0100)]
Out-of-order data chunks handling and more
This patch addresses the need to handle out-of-order data chunks
received by a peer. To do that effectively, we had to add the handling
of data chunks flags (E/B/U bit) to understand whether the stream is
fragmenting user-message data and in that case if a fragment is the
FIRST/MIDDLE/LAST one of a transmission.
The same patch also addresses the security requirement to have a HMAC
calculated and incorporated in the INIT_ACK and COOKIE_ECHO chunks. The
algorithm used is the HMAC-SHA1.
Change-Id: Ib6a9a80492e2aafe5c8480d6e02da895efe9f90b
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
Klement Sekera [Wed, 20 Sep 2017 06:26:30 +0000 (08:26 +0200)]
IPv4/6 reassembly
Change-Id: Ic5dcadd13c88b8a5e7896dab82404509c081614a
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Jon Loeliger [Thu, 1 Feb 2018 18:10:40 +0000 (12:10 -0600)]
vxlan: Lookup FIB in either IPv4 or IPv6 families.
Prior to this commit, the VXLAN "create" API assumed
the vrf_id belonged to only the IPv4 FIB tables space.
With this commit, the FIB table is found in either the
IPv4 or IPv6 table as determined by the is_ipv6 flag.
This follows the same pattern that was already being
done in the CLI code for the VXLAN "create" command.
Change-Id: I35d5e37db24efa858e4696dc2c004fa64bb4a4a8
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Jon Loeliger [Thu, 1 Feb 2018 17:19:29 +0000 (11:19 -0600)]
FIB: Consolidate several copies of fib_ip_proto() into one.
Rather than having multiple copies of the same function
scattered around, promote the function into the FIB
PROTOCOL definitions in fib_types.h.
Change-Id: I11c4d85931167d3a5f3dc1278afecc8845b23cd7
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Steven [Thu, 1 Feb 2018 17:17:17 +0000 (09:17 -0800)]
tcp: tcp_output.c failed to compile when VLIB_BUFFER_TRACE_TRAJECTORY is enabled
Fixed a typo in tcp_push_header(). The typo only kicks in when the macro
VLIB_BUFFER_TRACE_TRAJECTORY is enabled.
Change-Id: I62832a4932ec5b14e3063d5eac113780851aae59
Signed-off-by: Steven <sluong@cisco.com>
Eyal Bari [Sun, 28 Jan 2018 07:11:50 +0000 (09:11 +0200)]
dpdk:fix typo in prefetch sequence
Change-Id: I7110436626352d45ffe0ca71fb88dea2c77ab639
Signed-off-by: Eyal Bari <ebari@cisco.com>
Pierre Pfister [Fri, 12 Jan 2018 08:41:16 +0000 (09:41 +0100)]
Add flowhash hash table to vppinfra
This hash table intends to provide an alternative to the widely
used bihash table in places where either:
- Hash entry timeout is required
- The hash table data does not fit in CPU cache
Although the bihash table is very fast, each lookup requires
accessing two cache lines in a serialized fashion. It works fine
when the hash table is in cache, but hits a wall when it does not.
The 'flowhash' table uses a simplified design (at the cost of a
less good bucket auto-scaling) where each access only requires
a single memory lookup (in the absence of collision). The hash
table also uses a reduced number of registers.
In practice, a VPP node implementing a stateful feature would
typically:
- prefetch buffer metadata (in-cache)
- prefetch packet header (in-cache)
- compute hash & prefetch hash bucket (possibly in RAM)
- read/write key and value from bucket
Using this hash table, it is possible to pipeline accesses in a way
that does not exhaust CPU's line field buffers, even when the
requested value is located in RAM (i.e. not in cache).
Measurements showed it was possible to scale to tens of millions
of flows (with a full 5-tuple matching and 32B value, i.e. 1
cache line per flow) with no performance degradation when
the hash table grows to the point it doesn't fit in cache anymore.
I have used this table in a couple of non-open-sourced projects,
but think it might be useful to lb, nat, and possibly other VPP
subsystems.
More information in the .h file.
Change-Id: I2b13dde0eabd868b75da1cedbfca0bf74d705102
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
Francois Clad [Wed, 31 Jan 2018 13:46:45 +0000 (14:46 +0100)]
srv6-ad: fixing coverity issues
Change-Id: Ica6d8dd773bb3b478f1c7e40d59dfbdd4b588b85
Signed-off-by: Francois Clad <fclad@cisco.com>
Francois Clad [Wed, 31 Jan 2018 15:45:25 +0000 (16:45 +0100)]
srv6-as: fixing coverity issues
Change-Id: I911e09aadd3df1123634fd97098920f107f9a2fc
Signed-off-by: Francois Clad <fclad@cisco.com>
Damjan Marion [Wed, 31 Jan 2018 19:03:18 +0000 (20:03 +0100)]
Fix VNET_BUFFER_F_SPAN_CLONE flag
Change-Id: I670e41bcfc61a45555431603c937f8dad4d165e9
Signed-off-by: Damjan Marion <damarion@cisco.com>
Jon Loeliger [Wed, 31 Jan 2018 15:45:11 +0000 (09:45 -0600)]
RPMS: Also install C.py, JSON.py for vppapipgen.
When building plugins outside of the VPP tree, the vppapigen
tool requires the use of the C.py / JSON.py code. To that end,
install it in /usr/share/vpp as referenced.
Change-Id: I457d58e7bde7140c7811fa0a93b4f44d1310784a
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Steven [Tue, 30 Jan 2018 04:09:09 +0000 (20:09 -0800)]
vlib: allocating buffers on thread-x and freeing them on thread-y causes
a crash on debug image (VPP-1151)
In debug image, there is extra code to validate the buffer when it is
freed. It uses the hash table to lookup the buffer index with spinlock
to prevent contention. However, there is one spinlock for each worker
thread. So allocating the buffer on thread-x and freeing the same buffer
on thread-y causes the validation to fail on thread-y. The fix is to
have only one spinlock, stored in vlib_global_main.
Change-Id: Ic383846cefe84a3e262255afcf82276742f0f62e
Signed-off-by: Steven <sluong@cisco.com>
(cherry picked from commit
a7effa1b072463f12305a474f082aeaffb7ada4b)
Neale Ranns [Tue, 30 Jan 2018 17:02:20 +0000 (09:02 -0800)]
Improved tracing for the IP[46] not-enabled case.
now we get
00:00:03:665501: pg-input
...
00:00:03:665681: ethernet-input
...
00:00:03:665691: ip6-input
UDP: 2001::1 -> ffef::1
tos 0x00, flow label 0x0, hop limit 64, payload length 108
UDP: 1234 -> 1234
length 108, checksum 0x7b25
00:00:03:665695: ip6-not-enabled
UDP: 2001::1 -> ffef::1
tos 0x00, flow label 0x0, hop limit 64, payload length 108
UDP: 1234 -> 1234
length 108, checksum 0x7b25
00:00:03:665706: error-drop
ethernet-input: no error
Same goes for IPv4
Change-Id: Ia360df39b43281d3a0aa1b686f04b73cfa37c546
Signed-off-by: Neale Ranns <nranns@cisco.com>
Matus Fabian [Mon, 22 Jan 2018 11:41:53 +0000 (03:41 -0800)]
NAT66 1:1 mapping (VPP-1108)
Support the 1:1 translation of source address for IPv6
Change-Id: I934d18e5ec508bf7422d796ee5f172b79c048011
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Matus Fabian [Tue, 30 Jan 2018 11:04:17 +0000 (03:04 -0800)]
NAT44: in2out output feature skip translation for already translated packets (VPP-1156)
Change-Id: I5395245c9e49f741a949ada1f725c34f9379c249
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Matus Fabian [Wed, 31 Jan 2018 13:50:21 +0000 (05:50 -0800)]
NAT44: Delete dynamic sessions matching new 1:1NAT (VPP-1158)
Change-Id: Ib99b597502b8335e57ecfa122b12e2e5aa45ee1a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Matus Fabian [Wed, 31 Jan 2018 09:13:23 +0000 (01:13 -0800)]
NAT44: nat44_static_mapping_details protocol=0 if addr_only=0 (VPP-1158)
Change-Id: I1e3cfc751e7657464fc850dc56ddf763df45f62e
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Marco Varlese [Fri, 26 Jan 2018 15:50:01 +0000 (16:50 +0100)]
Prep-work patch for congestion-control
This patch addresses the missing field in various data-structures to
track valuable information to implement the congestion-control
algorithms and manage sub-connections states.
It adds the possibility to queue up to 2 SACKs chunks when the connection
is not gapping.
At the same time, it pushes some variable/field renaming for better
readibility.
Change-Id: Idcc53512983456779600a75e78e21af078e46602
Signed-off-by: Marco Varlese <marco.varlese@suse.de>
Dave Barach [Tue, 30 Jan 2018 19:12:31 +0000 (14:12 -0500)]
Compile valloc.c, install header file, etc.
Change-Id: Ibc252d9ed595be955790ec1c97d8730e43ad89b2
Signed-off-by: Dave Barach <dave@barachs.net>
Billy McFall [Mon, 15 Jan 2018 22:54:52 +0000 (17:54 -0500)]
VPP-899: Run VPP under SELinux
Add an SELinux profile such that VPP can run under SELinux on RPM based
platforms. The SELinux Policy is currently only implemented for RPM
packages, specifically, Fedora, CentOS and RHEL. Doxygen User
Documentation has been included (selinux_doc.md). Once some discussion
on file locations has completed (see vpp-devlist), updates to the Debug
CLI documentation will also need to be updated.
Additional changes:
Patch Set 2:
- Rework selinux_doc.md such that each line is only 80 characters
instead of each sentence on a line. Made additonal minor chnages
to the text.
- Update vHost Debug CLI documentation to reflex new socket location.
Cleaned up some text from when I originally wrote it, to better
reflex proper use.
- Update exec Debug CLI documentation to be more inline with suggested
helptext, added text regarding recommended script file location.
- For Debian builds, create the /var/log/vpp/ directory. I don't use
Debian very much, so please pay extra attention to
build-data/platforms.mk and build-root/deb/debian/.gitignore.
- Per discussion on VPP call, changed the default log location to
/var/log/vpp/vpp.log.
- Changed the socket location for vHost in AutoConfig to
/var/run/vpp/.
Patch Set 3:
- Update selinux_doc.md based on comments.
Change-Id: I400520dc33f1ca51012d09ef8fe5a7b7b96c631e
Signed-off-by: Billy McFall <bmcfall@redhat.com>
Brian Brooks [Tue, 9 Jan 2018 22:39:07 +0000 (16:39 -0600)]
Arm system counter cleanup
Add some description and cleanup code that uses Arm system counter.
Change-Id: Ie1fe00e3e4b5d98867617b7b0184ac526e333c53
Signed-off-by: Brian Brooks <brian.brooks@arm.com>
Matus Fabian [Mon, 29 Jan 2018 10:46:25 +0000 (02:46 -0800)]
NAT: add missing CLI and API documentation (VPP-1142)
Change-Id: I4e93595665b8d0e373c4df27311c27a51222961c
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Matus Fabian [Fri, 26 Jan 2018 13:07:23 +0000 (05:07 -0800)]
NAT: replace format_vnet_sw_interface_name with format_vnet_sw_if_index_name (VPP-1149)
Avoid crash when interface was deleted.
Change-Id: I2ac3031c13ca5ad3360495e1c4cb90b0002be5ff
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Neale Ranns [Mon, 29 Jan 2018 18:43:33 +0000 (10:43 -0800)]
Allow the provider of a midchain adjacency to pass context data that is returned in the fixup function
Change-Id: I458e6e03b03e27775df33a2fd302743126d6ac44
Signed-off-by: Neale Ranns <nranns@cisco.com>
Florin Coras [Mon, 29 Jan 2018 16:55:25 +0000 (08:55 -0800)]
vcl: fix VPPCOM_ATTR_GET_LIBC_EPFD elog
Change-Id: Idc3e8f4ee69d8871534a94d4f485e695fac81756
Signed-off-by: Florin Coras <fcoras@cisco.com>
Vijayabhaskar Katamreddy [Thu, 25 Jan 2018 23:12:11 +0000 (15:12 -0800)]
DRAFT ip4/6_frag to support DPO Style based Next Node
Change-Id: I1df3d23c1c5668b83d52b41f51c0e3f24183af9e
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
Jon Loeliger [Tue, 16 Jan 2018 22:37:16 +0000 (16:37 -0600)]
memif: Add new API calls to manage memif socket names.
New API calls and corresponding CLI commands allow the user
to manage the socket filenames for memif connections using:
vppctl# create memif id <u32> filename <socket-filename>
vppctl# delete memif id <u32>
and then referencing it later in a memif interface:
vppctl# create memif <u32> socket-id <id> mode <mode> <master|slave> ...
Corresponding VAT cli entries have also been added.
The default memif socket file at id 0 are still always present.
The existing memif create/delete CLI commands have been slightly
altered into the new syntax:
vppctl# create interface memif ...
vppctl# delete interface memif ...
Change-Id: If2bdc7eac3d81e1d9011a5869747e52fc5e11639
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
Francois Clad [Wed, 17 Jan 2018 11:18:41 +0000 (12:18 +0100)]
SRv6 dynamic proxy plugin
Change-Id: Ie460005510b8a70d00de31b6651e762cc3a63229
Signed-off-by: Francois Clad <fclad@cisco.com>
Neale Ranns [Thu, 25 Jan 2018 15:48:12 +0000 (07:48 -0800)]
Remove last vestigies of auto-ip-table create
Change-Id: If0f8472c0de5e324b24c9c672c0f8b57cc9f49a8
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Florin Coras [Wed, 24 Jan 2018 18:49:23 +0000 (10:49 -0800)]
session: use clib rwlocks instead of custom implementation
Change-Id: I68933d709ce9cc686ba06466e136434b663920ef
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Barach [Thu, 25 Jan 2018 00:20:55 +0000 (19:20 -0500)]
First-fit virtual space allocator
Change-Id: I75e6c7d1a6ff1fcebc81ec10bd86b79f2bf3dc22
Signed-off-by: Dave Barach <dave@barachs.net>
Florin Coras [Fri, 26 Jan 2018 09:27:01 +0000 (01:27 -0800)]
Fix session/tcp coverity warnings
Change-Id: I5c404eacb4a6c1e16485a6656168d9171ff49a8b
Signed-off-by: Florin Coras <fcoras@cisco.com>
Marek Gradzki [Wed, 24 Jan 2018 15:35:11 +0000 (16:35 +0100)]
jvpp: map VPP API enums to primitive types
Adding enum support (VPP-1153) requires
JVPP generator refactoring
(see: VPP-1154, VPP-1155, VPP-480)
As a workaround we just update all the mappings
used for VPP API definitions to JAVA and C/JNI translation.
Change-Id: I9dff83e5199039a1a46a3d4685ce57cdeeeb2014
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Marek Gradzki [Fri, 26 Jan 2018 10:39:27 +0000 (11:39 +0100)]
jvpp: use Python's logging API
Change-Id: Iec437e4672af1f0d1a24458afb977ba6fbeba4ed
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Florin Coras [Fri, 26 Jan 2018 14:36:04 +0000 (06:36 -0800)]
session: disconnect and echo client improvements
Change-Id: If421bad17b6cfe8e321257c93bb38931e37d7b64
Signed-off-by: Florin Coras <fcoras@cisco.com>
John DeNisco [Fri, 26 Jan 2018 19:55:33 +0000 (14:55 -0500)]
Add support for 18.01.
Fixed bugs.
Improved some config as the result of Tetration experience.
Change-Id: Ie4b8d2d77ca3ad165675c42fa2d9a4798d871f9d
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Florin Coras [Thu, 25 Jan 2018 14:34:42 +0000 (06:34 -0800)]
session: move builtin apps to their own folder
This consolidates builtin apps under session-apps folder. It also
removes duplicate builtin echo server/client implementations.
Change-Id: I75ed879399c5aa9b75b1eb38b33aedf69dd8df3f
Signed-off-by: Florin Coras <fcoras@cisco.com>
Matus Fabian [Fri, 26 Jan 2018 11:17:01 +0000 (03:17 -0800)]
NAT44: fix ICMP error translation for endpoint dependent sessions (VPP-1150)
Change-Id: I85c799f28c4246884107e569a36482af10d9be9d
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Matus Fabian [Fri, 26 Jan 2018 05:59:16 +0000 (21:59 -0800)]
NAT44: add opaque string tag to static mapping APIs (VPP-1147)
Change-Id: I620e2081285ca8ac5c2da8efc12fe6f540ea4fd1
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Florin Coras [Wed, 24 Jan 2018 02:17:44 +0000 (18:17 -0800)]
vppinfra: add readers-writer lock
Change-Id: I606fd89c410369cbd9ce9dcaaaa9dc58796e7c0e
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Mon, 15 Jan 2018 09:08:33 +0000 (01:08 -0800)]
session: add support for memfd segments
- update segment manager and session api to work with both flavors of
ssvm segments
- added generic ssvm slave/master init and del functions
- cleanup/refactor tcp_echo
- fixed uses of svm fifo pool as vector
Change-Id: Ieee8b163faa407da6e77e657a2322de213a9d2a0
Signed-off-by: Florin Coras <fcoras@cisco.com>
Keith Burns (alagalah) [Fri, 19 Jan 2018 22:26:35 +0000 (14:26 -0800)]
Event log entries for VCL
Change-Id: I8303859ef65552f64c94525c9b1112ec9a1a88d0
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Dave Wallace [Wed, 24 Jan 2018 06:02:37 +0000 (01:02 -0500)]
18.01 Release Notes
Change-Id: I2493a6135aecb4e2eead20a71dcb9ca16834cd63
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit
9d21268d0a2277fb5a70db960d0d538620401834)
Jan Gelety [Mon, 22 Jan 2018 07:35:06 +0000 (08:35 +0100)]
Update CSIT tests 180115 -> 180122
- update of CSIT operational branch to be used for VPP-patch test
Change-Id: I1a5afd49c37e1faf59311e16389b3b5deff015a3
Signed-off-by: Jan Gelety <jgelety@cisco.com>
Ole Troan [Thu, 25 Jan 2018 08:53:31 +0000 (09:53 +0100)]
VPP-1144: PAPI Import leads to duplicate type definition.
Change-Id: I54c147004fd93681a6a9cf30fa5277c1dabce67c
Signed-off-by: Ole Troan <ot@cisco.com>
Francois Clad [Wed, 24 Jan 2018 15:24:03 +0000 (16:24 +0100)]
srv6-as: fixing version
Change-Id: I0ce60729e82536d9a97823bc6701e62bf364ea6c
Signed-off-by: Francois Clad <fclad@cisco.com>
Matus Fabian [Thu, 25 Jan 2018 09:13:22 +0000 (01:13 -0800)]
NAT: nat.c refactor (split out CLI) (VPP-1140)
Moved CLI from nat.c to nat44_cli.c
Split "show nat44" to:
show nat44 addresses
show nat44 interfaces
show nat44 static mappings
show nat44 interface address
show nat44 sessions detail
show nat44 deterministic mappings
show nat44 deterministic timeouts
show nat44 deterministic sessions
show nat workers
Change-Id: I2d1be8941dd0e4a9e037f4a4d2cd192389beb8ed
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Gabriel Ganne [Thu, 25 Jan 2018 09:03:13 +0000 (10:03 +0100)]
fixup python ply package name for fedora >= 25
package name is:
* python-ply for centos7/rhel7
* python2-ply / python3-ply for fedora >= 25
Change-Id: Id021802a46a0cc29e9db57e18841a76575437002
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Klement Sekera [Wed, 24 Jan 2018 12:41:50 +0000 (13:41 +0100)]
make test: verify that /dev/shm is big enough
Verify that /dev/shm size is >= 512M, which should be enough for `make
test' needs. If the verification fails, try to enlarge it automatically.
This helps avoid docker vpp/make test crashes (seen as SIGBUS).
Change-Id: I4e23d59ff8bf8befc320fa229fb6c9bfeb809a8f
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Francois Clad [Wed, 17 Jan 2018 15:08:41 +0000 (16:08 +0100)]
SRv6 masquerading proxy plugin
Change-Id: Ia65cf2c7b7fdf84c64e60af4cc815251022c53a9
Signed-off-by: Francois Clad <fclad@cisco.com>
Jon Loeliger [Wed, 24 Jan 2018 19:47:46 +0000 (13:47 -0600)]
Makefile: Add python-ply to RPM_DEPENDS list.
Change-Id: I1bbb29ec2303f87c0053691fc157a747bff1626d
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Marco Varlese [Mon, 30 Oct 2017 17:17:21 +0000 (18:17 +0100)]
SCTP stack (RFC4960)
== CONTENT ==
* SCTP chunks definition as per RFC4960;
* Helper functions to set/get values to/from the corresponding chunks;
* Hooks to the session/application layers;
* Complete state-machine handling;
* Implementation for unexpected chunk received in a certain
state (state-machine error handling)
* Support for 1-single connection;
* Sample application to test receive/transmit data-path;
* Test to validate SCTP stack;
Change-Id: I1b55c455ab400be9513f4e094dadfc3181d2ebc9
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
Neale Ranns [Tue, 23 Jan 2018 16:38:50 +0000 (08:38 -0800)]
Improve the error reporting for a IP multicast RPF miss.
now we get:
00:00:04:288925: pg-input
...
00:00:04:289345: ethernet-input
...
00:00:04:289524: ip6-input
...
00:00:04:289553: ip6-mfib-forward-lookup
...
00:00:04:289584: ip6-mfib-forward-rpf
entry 14 itf 2 flags Forward,
00:00:04:289754: ip6-drop
UDP: 2002::1 -> ff01:2::255
tos 0x00, flow label 0x0, hop limit 64, payload length 21
UDP: 1234 -> 1234
length 21, checksum 0x90d1
00:00:04:289802: error-drop
ip4-input: Multicast RPF check failed
08:36:44,517 Count Node Reason
182 ip4-input Multicast RPF check failed
8 ip6-icmp-input neighbor advertisements sent
8 ip6-icmp-input router advertisements sent
8 arp-input ARP replies sent
Change-Id: I1b29cda4ec77a88db45bfb25c7473cd64bbf501a
Signed-off-by: Neale Ranns <nranns@cisco.com>
John Lo [Wed, 24 Jan 2018 00:21:34 +0000 (19:21 -0500)]
Improve tunnel interface creation performance
Modify interface creation to allow creation of tunnel interfaces
without dedicated per tunnel output and tx nodes which are not
used for most tunnel types. Also changed interface-output node
function vnet_per_buffer_interface_output() so it does not rely
on hw_if_index as the next node index which is not flexible nor
efficient for large scale tunnel interfaces.
The improvenemts are done for VXLAN, VXLAN-GPE, GENEVE and GTPU
tunnels. GRE tunnel is still using per tunnel output nodes which
will be changed in a separate patch with other GRE enhencements.
Change-Id: I4123c01c0d2ead814417a867adb8c8a407e4df55
Signed-off-by: John Lo <loj@cisco.com>
Matus Fabian [Tue, 23 Jan 2018 14:07:01 +0000 (06:07 -0800)]
NAT44: asymmetrical static mapping and one-armed NAT (VPP-1138)
One-armed NAT should work for asymmetrical static mappings without adding external address to the NAT44 pool.
Change-Id: Ie886b75b55c3b552d1029a50bd967625fde80f09
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Dave Wallace [Tue, 23 Jan 2018 22:47:02 +0000 (17:47 -0500)]
docs: Clean up TOC
Change-Id: I5415c002a431d84372f56d4a77dc2aabd6ef55f7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit
1eb970d16028e9a987c1dd2bfe217d1313262b81)
Vijayabhaskar Katamreddy [Thu, 14 Dec 2017 21:20:50 +0000 (13:20 -0800)]
Adding a format function for bihash init routine to format the key, value, when verbose option is used
Change-Id: Ib63ead4525332f897b8a1d8a4cf5a0eb1da1e7f3
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
Dave Barach [Tue, 23 Jan 2018 15:04:08 +0000 (10:04 -0500)]
Fix typo / coverity warning
Change-Id: I4a3a6803083f3d707351440486bba59d8194339f
Signed-off-by: Dave Barach <dave@barachs.net>
Neale Ranns [Wed, 17 Jan 2018 18:29:10 +0000 (10:29 -0800)]
For DHCP client configuration control the setting of the broadcast flag in the
DISCOVER message sent.
According to RFC2131:
In the case of a client using DHCP for initial configuration (before
the client's TCP/IP software has been completely configured), DHCP
requires creative use of the client's TCP/IP software and liberal
interpretation of RFC 1122. The TCP/IP software SHOULD accept and
forward to the IP layer any IP packets delivered to the client's
hardware address before the IP address is configured; DHCP servers
and BOOTP relay agents may not be able to deliver DHCP messages to
clients that cannot accept hardware unicast datagrams before the
TCP/IP software is configured.
To work around some clients that cannot accept IP unicast datagrams
before the TCP/IP software is configured as discussed in the previous
paragraph, DHCP uses the 'flags' field [21]. The leftmost bit is
defined as the BROADCAST (B) flag. The semantics of this flag are
discussed in section 4.1 of this document. The remaining bits of the
flags field are reserved for future use. They MUST be set to zero by
clients and ignored by servers and relay agents. Figure 2 gives the
format of the 'flags' field.
this changes means VPP conforms to the:
"SHOULD accept and forward to the IP layer any IP packets delivered
to the client's hardware address before the IP address is configured"
with the caveat that VPP allows DHCP packets destined to the stanard client
DHCP port to be delivered. With this enhancement the control-plane is now
able to choose the setting of the broadcast flag.
Change-Id: Ia4eb2c9bb1e30c29f9192facc645e9533641955a
Signed-off-by: Neale Ranns <nranns@cisco.com>
Ole Troan [Thu, 12 Oct 2017 11:06:35 +0000 (13:06 +0200)]
VPPAPIGEN: vppapigen replacement in Python PLY.
This is a version of the VPP API generator in Python PLY. It supports
the existing language, and has a plugin architecture for generators.
Currently C and JSON are supported.
Changes:
- vl_api_version to option version = "major.minor.patch"
- enum support
- Added error checking and reporting
- import support (removed the C pre-processor)
- services (tying request/reply together)
Version:
option version = "1.0.0";
Enum:
enum colours {
RED,
BLUE = 50,
};
define foo {
vl_api_colours_t colours;
};
Services:
service {
rpc foo returns foo_reply;
rpc foo_dump returns stream foo_details;
rpc want_stats returns want_stats_reply
events ip4_counters, ip6_counters;
};
Future planned features:
- unions
- bool, text
- array support (including length)
- proto3 output plugin
- Refactor C/C++ generator as a plugin
- Refactor Java generator as a plugin
Change-Id: Ifa289966c790e1b1a8e2938a91e69331e3a58bdf
Signed-off-by: Ole Troan <ot@cisco.com>
Milan Lenco [Mon, 22 Jan 2018 13:05:14 +0000 (14:05 +0100)]
NAT44: Fix interface feature removal.
Change-Id: Ie7cd809f30decc36cb8e1f4d8acc4b41f17cd390
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
Mohsin Kazmi [Mon, 15 Jan 2018 13:16:45 +0000 (14:16 +0100)]
vom: acl: Fix l3 acl handle populate
Change-Id: I5f105a1abb8a28645d6c961ad92f91c23787047f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Mohsin Kazmi [Fri, 12 Jan 2018 18:11:44 +0000 (19:11 +0100)]
vom: ip_route: fix handle populate
Change-Id: I91892084133daadb74caa7aa13ee1071599ba892
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Mohsin Kazmi [Mon, 8 Jan 2018 11:58:32 +0000 (12:58 +0100)]
vom: Fix connection to VAPI and add disconnect function
Change-Id: I2dd5dbafe36e5ae536b3e600beb6920a71238b7a
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Mohsin Kazmi [Thu, 4 Jan 2018 17:57:26 +0000 (18:57 +0100)]
svm: queue sub: Add conditional timed wait
On reviece side svm queue only permits blocking and
non-blocking calls. This patch adds timed wait blocking
functionality which returns either on signal/event or
on given time out.
It also preserves the original behavior, so it will not
hurt client applications which are using svm queue.
Change-Id: Ic10632170330a80afb8bc781d4ccddfe4da2c69a
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Matus Fabian [Thu, 18 Jan 2018 11:38:45 +0000 (03:38 -0800)]
NAT44: asymmetrical static mapping rule (VPP-1135)
add option to NAT44 static mapping API/CLI to make rule asymmetrical (rule match only out2in direction)
Change-Id: If262a3ff375a24d3059f0de1f1ac387a4fe09475
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Haiyang Tan [Sat, 20 Jan 2018 09:01:28 +0000 (04:01 -0500)]
vhost_user: 'nregions' saves the actual number of mapped guest physical address area
This patch fixed the VMA leak that if mapping one of guest physical address area get failed.
Change-Id: I07b0b9a932209561d6ff2b2dd08a111ea5db2209
Signed-off-by: Haiyang Tan <haiyang.tan.dev@gmail.com>
Dave Wallace [Thu, 18 Jan 2018 22:01:40 +0000 (17:01 -0500)]
VCL/LD_PRELOAD: Fix unfiltered debug output.
Change-Id: I625b219fe6ffd21f87a163244569a4075cd432a4
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Dave Barach [Fri, 19 Jan 2018 18:09:20 +0000 (13:09 -0500)]
Fix MP hazard in interrupt node scheduling
Change-Id: Iff14ed6ffd822eb2286aac6af467d9c8660e3d81
Signed-off-by: Dave Barach <dave@barachs.net>
Francois Clad [Tue, 16 Jan 2018 16:52:24 +0000 (17:52 +0100)]
SRv6 static proxy plugin
Change-Id: Ia0654461d9fa36503323a8375997719c873d23b9
Signed-off-by: Francois Clad <fclad@cisco.com>
Dave Wallace [Fri, 19 Jan 2018 17:17:08 +0000 (12:17 -0500)]
LD_PRELOAD: Fix Coverity Warning CID 182227
Change-Id: I2698a59db29cbace49335e035478b5f456d0b06a
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Eyal Bari [Wed, 17 Jan 2018 10:06:32 +0000 (12:06 +0200)]
vxlan:restructure encap loop
unified some code from IPv4/6 pathes
replaced unrolled rewrite copy with simple assignment
refactored stats handling
was not tested for performance
Change-Id: I00aeb9dd5b72584e6606e1a076e5c8270389aaa4
Signed-off-by: Eyal Bari <ebari@cisco.com>
John Lo [Thu, 18 Jan 2018 17:44:50 +0000 (12:44 -0500)]
Sub-Interface deletion not cleanup hash's properly (VPP-1136)
On deleting sub-interfaces, functions vnet_delete_sub_interface()
and vnet_delete_hw_interface() are not cleaning up sub-interface
related hash tables and memory properly.
Change-Id: I17c7c4b2078c062c77bfe48889beb677610035ca
Signed-off-by: John Lo <loj@cisco.com>
(cherry picked from commit
7f5bec647c9dc743c015d461d040e63a77fd0a08)
Keith Burns (alagalah) [Fri, 19 Jan 2018 00:01:34 +0000 (16:01 -0800)]
Elog entries for VCL
Change-Id: Ica8470aaf581e69a74fe4f0fc0296ff3fb6f87d3
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Dave Wallace [Thu, 18 Jan 2018 22:21:19 +0000 (17:21 -0500)]
LD_PRELOAD: Fix coverity warnings
** CID 182185: Memory - illegal accesses (UNINIT)
** CID 182184: Memory - illegal accesses (UNINIT)
** CID 182183: (UNINIT)
** CID 182182: Memory - illegal accesses (UNINIT)
** CID 182181: Memory - illegal accesses (UNINIT)
** CID 182180: Uninitialized variables (UNINIT)
** CID 182179: Null pointer dereferences (REVERSE_INULL)
** CID 182178: Uninitialized variables (UNINIT)
** CID 182177: Uninitialized variables (UNINIT)
Change-Id: I33e043572db493eef58d85c5096ceac5a7d41c7a
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Damjan Marion [Thu, 18 Jan 2018 13:54:04 +0000 (14:54 +0100)]
vlib: add vlib_buffer_alloc_to_ring API
Change-Id: I4e2804754b443f5f41fb25eed8334908c4a70f84
Signed-off-by: Damjan Marion <damarion@cisco.com>
Damjan Marion [Thu, 18 Jan 2018 12:35:11 +0000 (13:35 +0100)]
tapv2: add option to set host-side default gw
Change-Id: I76fd655ecd9445299b94b3b5af10e7b1588584e4
Signed-off-by: Damjan Marion <damarion@cisco.com>
Hongjun Ni [Mon, 8 Jan 2018 22:52:19 +0000 (06:52 +0800)]
VPP-1119: PPPoE's destination MAC was overwritten
Change-Id: I6ae99c00e76058654f2c5e71377e9fd1bd13b47b
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
(cherry picked from commit
c287cd550b91be7a93bae76d0086db87f575e3d3)
Keith Burns (alagalah) [Wed, 17 Jan 2018 23:16:32 +0000 (15:16 -0800)]
Event log entries for VCL
Change-Id: I288ecd7f39422ed900a5c6fbaf9c939ab5c06880
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Neale Ranns [Thu, 6 Apr 2017 11:41:02 +0000 (04:41 -0700)]
FIB Inherited Srouce
forwarding provided by the source is pushed to all other entries
it covers in the sub-tree
Change-Id: I2a45222ef653358f55c2436de3e3c6353cfadba2
Signed-off-by: Neale Ranns <nranns@cisco.com>
Gabriel Ganne [Thu, 18 Jan 2018 10:00:17 +0000 (11:00 +0100)]
dpdk plugin depends on numactl-libs
dpdk_plugin.so depends on libnuma.so.1
Change-Id: Ia1fd3b5cec043b294cc14cd947908675b451deac
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Radu Nicolau [Tue, 16 Jan 2018 15:33:31 +0000 (15:33 +0000)]
VPP-1122 dpdk/ipsec: fix transport mode pkt len
Change-Id: I6eef2ca258ff5b4aa9b21b98543d814633e295af
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Dave Wallace [Thu, 4 Jan 2018 03:24:41 +0000 (22:24 -0500)]
LD_PRELOAD: stateless LDP
- Refactor LDP to be stateless.
- Use upper bit of fd to identify
tag as VCL session.
- Clean up debug output.
- Add VCOM config env vars for
app name and sid bit.
- Add VCL get/set attributes
- Add VCL poll implementation.
Change-Id: I4603ae88254c460a024fdb79fe91c6d1ef9bc7b9
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Florin Coras [Tue, 16 Jan 2018 10:40:18 +0000 (02:40 -0800)]
ssvm: reuse clib mem infra for memfd segments
Change-Id: I67648dbed3c7ed291b3e1ce617d83a776d3623bb
Signed-off-by: Florin Coras <fcoras@cisco.com>
Mohsin Kazmi [Wed, 15 Nov 2017 13:21:59 +0000 (14:21 +0100)]
stats: Fix per interface stats
Change-Id: I94618933719abb6ada1272bcf76f4f5304043873
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Florin Coras [Mon, 15 Jan 2018 12:43:02 +0000 (04:43 -0800)]
stn: add vat support
Change-Id: Ifba0a4a297b6c01d75b86bc211a32740af5e48ed
Signed-off-by: Florin Coras <fcoras@cisco.com>
Pierre Pfister [Mon, 15 Jan 2018 14:30:16 +0000 (15:30 +0100)]
Fix api test_client.c compilation
c42fc05bfbb26fd11fe92ac9d11587660a817ac1 removed
mr_create_table_if_needed parameter in FIB API calls.
This commit fixes the API test program, which was not compiling
anymore.
Change-Id: Id6899c860235363bef9ba35cd8f24033a55cd5e6
Signed-off-by: Pierre Pfister <ppfister@cisco.com>