vpp.git
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>
6 years agoudp/session: refactor to support dgram mode 34/11634/18
Florin Coras [Mon, 9 Apr 2018 16:24:52 +0000 (09:24 -0700)]
udp/session: refactor to support dgram mode

- adds session layer support for datagram based protocols
- updates udp to work in pure connectionless and datagram mode. The
  existing connected mode is now 'accessible' for apps as a dummy UDPC,
  as in, connected udp, protocol.
- updates udp_echo, echo client, echo server code to work in datagram
  mode.

Change-Id: I2960c0d2d246cb166005f545794ec31fe0d546dd
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agodpdk: resurrect removed code [VPP-1245] 60/11860/2
Steven [Wed, 18 Apr 2018 00:46:15 +0000 (17:46 -0700)]
dpdk: resurrect removed code [VPP-1245]

https://gerrit.fd.io/r/#/c/7701/ accidentally removed 3 lines of code in
dpdk/device/init.c which were added by https://gerrit.fd.io/r/#/c/7826/

case VNET_DPDK_PMD_VHOST_ETHER:
xd->port_type = VNET_DPDK_PORT_TYPE_VHOST_ETHER;
break;

Those lines were needed to recognize vhost-user interface which is created
via vdev command in dpdk and display VhostEthernet. Without them,
UnknownEthernet is displayed.

Change-Id: I6d7ee6aecc6a415fbb7308595d515649475bcd5f
Signed-off-by: Steven <sluong@cisco.com>
6 years agoFix the ip header offset counting in vnet/ipsec 23/11223/2
Szymon Sliwa [Mon, 19 Mar 2018 15:14:31 +0000 (15:14 +0000)]
Fix the ip header offset counting in vnet/ipsec

IP header is set as data + sizeof(ethernet_header_t),
what does not need to be true. The solution is to use
l3_hdr_offset.

Change-Id: I5d9f41599ba8d8eb14ce2d9d523f82ea6e0fd10d
Signed-off-by: Szymon Sliwa <szs@semihalf.com>
6 years agoAdd logging support 28/10328/13
Damjan Marion [Sun, 21 Jan 2018 14:44:18 +0000 (06:44 -0800)]
Add logging support

Change-Id: Ieac9cf50156dbbb4962411e900d59256441915ef
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
6 years agoIP mcast: allow unicast address as a next-hop 74/6974/6
Neale Ranns [Thu, 1 Jun 2017 14:45:05 +0000 (07:45 -0700)]
IP mcast: allow unicast address as a next-hop

Change-Id: I5e679f2601e37688f2768620479dc2efb7d19ca3
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agodpdk: add additional fields to rte_mbuf trace print 57/11857/2
Damjan Marion [Tue, 17 Apr 2018 17:30:43 +0000 (19:30 +0200)]
dpdk: add additional fields to rte_mbuf trace print

Change-Id: I3792c524323ce9e300648abe85454cff5d19aba7
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agodpdk: print device flags in the 'show hardware' output 56/11856/2
Damjan Marion [Tue, 17 Apr 2018 17:26:31 +0000 (19:26 +0200)]
dpdk: print device flags in the 'show hardware' output

Change-Id: I0d10f13a56420b119fdfad97dcc135b245c269e1
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoACL based forwarding 68/9468/31
Andrew Yourtchenko [Fri, 17 Nov 2017 13:38:18 +0000 (14:38 +0100)]
ACL based forwarding

A poor man's flow switching or policy based rounting.

An ACL is used to match packets and is associated with a [set of] forwarding paths
that determine how to forward matched packets - collectively this association is a
'policy'.
Policies are then 'attached', in a priority order, to an interface when thaey are
encountered as an input feature. If a packet matches no policies it is forwarded
normally in the IP FIB.

This commit is used to test the "ACL-as-a-service" functionality,
which currently compiles, and the existing traffic ACL tests pass in both hash and linear modes.

Change-Id: I0b274ec9f2e645352fa898b43eb54c457e195964
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ole Troan <ot@cisco.com>
6 years agoVPP-1243: fix reassembly CLI 51/11851/3
Klement Sekera [Tue, 17 Apr 2018 15:48:30 +0000 (17:48 +0200)]
VPP-1243: fix reassembly CLI

Change-Id: Ie20aaf0eb1a5a338a54f0de4d6da661431be5163
Signed-off-by: Klement Sekera <ksekera@cisco.com>
6 years agomake test: ipsec test cleanup 38/11838/2
Klement Sekera [Tue, 17 Apr 2018 09:36:55 +0000 (11:36 +0200)]
make test: ipsec test cleanup

Change-Id: If813346b665468b25aaf5d95629bcad87212aa3e
Signed-off-by: Klement Sekera <ksekera@cisco.com>
6 years agovhost: show vhost-user <interface> may crash [VPP-1242] 52/11852/2
Steven [Tue, 17 Apr 2018 15:50:28 +0000 (08:50 -0700)]
vhost: show vhost-user <interface> may crash [VPP-1242]

show vhost-user <interface> may cause a crash if interface is semi-bogus.
Semi-bogus means it is a known vpp interface which has a hw_if_index, but
it is bogus because it is not a vhost-user interface.

The fix is to add a check to reject non vhost-user interface for the
command.

Change-Id: I63f1e8bfbf46f5ec4c30f9fb3546982b63cd7cc5
Signed-off-by: Steven <sluong@cisco.com>
6 years agoSCTP: coverity scan warnings 50/11850/2
Marco Varlese [Tue, 17 Apr 2018 14:41:51 +0000 (16:41 +0200)]
SCTP: coverity scan warnings

This patch addresses 182346, 182347, 182353.

Change-Id: I59c3d74bd3a2122b836c93e22ddb632fa032f7fe
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
6 years agovxlan:remove counters writeback cache 06/11706/2
Eyal Bari [Thu, 12 Apr 2018 09:39:51 +0000 (12:39 +0300)]
vxlan:remove counters writeback cache

+refactor decap loop to remove repetitions and goto's

slightly improves performance in scale (3k-4k tunnels) tests (7-9 clocks)
slightly deteriorates performance in single tunnel tests (3-4 clocks)

Change-Id: I1a64ed0279c00481b61a162296c5a30f58bf29c4
Signed-off-by: Eyal Bari <ebari@cisco.com>
6 years agoacl-plugin: VPP-1241: fix the "show acl-plugin tables applied" output 44/11844/1
Andrew Yourtchenko [Tue, 17 Apr 2018 09:40:54 +0000 (11:40 +0200)]
acl-plugin: VPP-1241: fix the "show acl-plugin tables applied" output

It is a relatively rarely used low level command for code that didn't change,
but due to infra changes it did not survive. Having it working may be very
useful for corner-case debugging. So, fix it for working with
the acl-as-a-service infra.

Change-Id: I11b60e0c78591cc340b043ec240f0311ea1eb2f9
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 18bde8a579960aa46f43ffbe5c2905774bd81a35)

6 years agoigmp: fix debug macro 10/11810/2
Jakub Grajciar [Mon, 16 Apr 2018 08:39:24 +0000 (10:39 +0200)]
igmp: fix debug macro

Change-Id: I071d4cfcf6ea9763dd4842a3594c486a8e400e8c
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
6 years agoMakefile: Removed clang build from verify 76/11476/5
Ed Kern [Tue, 3 Apr 2018 02:12:32 +0000 (20:12 -0600)]
Makefile: Removed clang build from verify

Removed clang build from main verify since that will be driven
in a seperate job going forward

Change-Id: I6efcad0b99fcc6babc4a7eb1475c99816f2cf175
Signed-off-by: Ed Kern <ejk@cisco.com>
6 years agoImplement ip_probe_neighbor API 73/11773/2
John Lo [Fri, 13 Apr 2018 20:46:22 +0000 (16:46 -0400)]
Implement ip_probe_neighbor API

Add API support similar to VPP CLI "ip probe-neighbor" except API
call is asynch and will not wait, as the CLI does, for address
resolution of probed neighbor. The API client can use the APIs
want_ip4_arp_events or want_ip6_nd_events to get notified of the
desired address resolution event.

Change-Id: Ieab58abe75b5cc7f5185b3b91418b6362f8992d3
Signed-off-by: John Lo <loj@cisco.com>
6 years agosession: use generic session pool for listeners 74/11774/6
Florin Coras [Fri, 13 Apr 2018 13:39:07 +0000 (06:39 -0700)]
session: use generic session pool for listeners

Change-Id: I825f3822910a6ee368b9004e39ca16ac6833e30c
Signed-off-by: Florin Coras <fcoras@cisco.com>
6 years agovhost: add vhost interface add/delete/dump API test cases to make test 61/8261/5
Steven [Wed, 30 Aug 2017 21:36:45 +0000 (14:36 -0700)]
vhost: add vhost interface add/delete/dump API test cases to make test

The vhost binary APIs for add/delete/dump interface were available long ago.
But no unit tests were ever added in make test. This patch is to retrofit
the missing unit tests.

Change-Id: I489521b5ae359a1168ac5880a1f13a5f7e93ce4a
Signed-off-by: Steven <sluong@cisco.com>
6 years agoRevert "MTU: Setting of MTU on software interface (instead of hardware interface)" 70/11770/1
Damjan Marion [Fri, 13 Apr 2018 17:43:39 +0000 (19:43 +0200)]
Revert "MTU: Setting of MTU on software interface (instead of hardware interface)"

This reverts commit 70083ee74c3141bbefb185525315f1b34497dcaa.

Reverting as this patch is causing following crash:

0: /home/damarion/cisco/vpp3/build-data/../src/vnet/devices/devices.h:131 (vnet_get_device_input_thread_index) assertion `queue_id < vec_len (hw->input_node_thread_index_by_queue)' fails
Aborted

Change-Id: Ie2a365032110b1f67be7a9d832885b9899813d39
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoacl-plugin: VPP-1239: acl-as-a-service does not match IPv6 packets, works only in... 61/11761/2
Andrew Yourtchenko [Fri, 13 Apr 2018 11:41:21 +0000 (13:41 +0200)]
acl-plugin: VPP-1239: acl-as-a-service does not match IPv6 packets, works only in lookup context 0

In process of extracting the matching out of the ACL plugin internals,
a couple of pieces setting the miscellaneout fields in the 5tuple structure
did not make it, so they are initialized to zeroes. Move the assignments
to the right place to make both traffic acls and acl-as-a-service working.

Change-Id: I66a7540a13b05113b599f0541999a18fad60385d
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit d3b96ef0d75889f09dc51efb89e5123cdbe7ffe8)

6 years agoNAT66: Do not translate if packet not aimed at outside interface 60/11760/3
Juraj Sloboda [Fri, 13 Apr 2018 10:00:46 +0000 (12:00 +0200)]
NAT66: Do not translate if packet not aimed at outside interface

Change-Id: Id5a2a90d81cc9cb87cb6fb89ac2f4ca3cbcb51e2
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
6 years agoVOM: GBP: update subnet is type changes 63/11763/2
Neale Ranns [Fri, 13 Apr 2018 10:01:25 +0000 (03:01 -0700)]
VOM: GBP: update subnet is type changes

Change-Id: Ic04f419b9c09be34afc390e672793180d56c4665
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agoMTU: Setting of MTU on software interface (instead of hardware interface) 02/11402/11
Ole Troan [Tue, 27 Mar 2018 12:48:39 +0000 (14:48 +0200)]
MTU: Setting of MTU on software interface (instead of hardware interface)

Change-Id: I98bd454a761a1032738a21edeb0fe847e801f901
Signed-off-by: Ole Troan <ot@cisco.com>
6 years agoGBP V2 47/11547/10
Neale Ranns [Wed, 4 Apr 2018 16:34:50 +0000 (09:34 -0700)]
GBP V2

update the GBP plugin to implement the full NAT feature set of opflex agent

Change-Id: Ic06a039c889445ed0b9087fa1f292634192b0f8d
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agobond: ping fails between l2 BD [VPP-1238] 29/11729/2
Steven [Fri, 13 Apr 2018 02:36:19 +0000 (19:36 -0700)]
bond: ping fails between l2 BD [VPP-1238]

In dpdk based bonding, when the bond interface is configured for l2,
it automatically sets the bond interface to promiscuous mode and sets rx
redirect to ethernet-input. This allows traffic to be bridged to
non compute node facing interface when it is received from the compute
node interface.

For native vpp bonding, we need to do similar things. When the bond interface
is configured for l2, we set the slave interfaces to promiscuous mode
and set rx redirect to ethernet-input because dpdk does not know anything
about the bond interface. Likewise, when a new interface is enslaved, we also
need to do the same thing if the bond interface has already been configured
for l2.

Change-Id: I7e168008e8a4221be74929b2a20e6db0ce8f3110
Signed-off-by: Steven <sluong@cisco.com>
6 years agoEnable check of VRF reset - IPv4 57/5557/6
Jan Gelety [Mon, 27 Feb 2017 09:46:14 +0000 (10:46 +0100)]
Enable check of VRF reset - IPv4

Change-Id: I60818a22f543f9a3c3f62f9c67f5e4239e5b045a
Signed-off-by: Jan Gelety <jgelety@cisco.com>
6 years agoVCL IOEvent external API callback 44/11344/12
Keith Burns (alagalah) [Fri, 23 Mar 2018 20:42:49 +0000 (13:42 -0700)]
VCL IOEvent external API callback

Change-Id: I417357b00c43b27872aa3f681335bdc1ef574eca
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
6 years agoexport new VOM hpp post 11648 25/11725/1
Neale Ranns [Thu, 12 Apr 2018 15:10:38 +0000 (11:10 -0400)]
export new VOM hpp post 11648

Change-Id: I3e670c22b3b8a674c98ff30eb093c5c6ab873e53
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agolibmemif: fix clang compilation errors/warnings 13/11713/2
Jakub Grajciar [Thu, 12 Apr 2018 11:56:29 +0000 (13:56 +0200)]
libmemif: fix clang compilation errors/warnings

Change-Id: I09444281a932d367162a10b90c3759db71c03350
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
6 years agoFixes for 'make UNATTENDED=yes CC=clang CXX=clang verify' 48/11648/2
Neale Ranns [Fri, 6 Apr 2018 16:18:11 +0000 (09:18 -0700)]
Fixes for 'make UNATTENDED=yes CC=clang CXX=clang verify'

Change-Id: I994649761fe2e66e12ae0e49a84fb1d0a966ddfb
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agovom: Fix the itf stats replay 79/11579/2
Mohsin Kazmi [Thu, 5 Apr 2018 12:43:43 +0000 (14:43 +0200)]
vom: Fix the itf stats replay

Change-Id: Iedc6bbaa1c0a1c3c6e1b8ed6d67db28046a551f4
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
6 years agofixes python3 TypeError; python2 intact 05/11705/2
Andrey "Zed" Zaikin [Thu, 12 Apr 2018 09:14:02 +0000 (12:14 +0300)]
fixes python3 TypeError; python2 intact

exception in vpp_api.vac_write():
"TypeError: initializer for ctype 'char *' must be a bytes or list or
tuple, not str"

Change-Id: Ib6bcfb86e6e36c557174979a110113af689c6754
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
6 years agobond: 1 packet/frame == bad performance [VPP-1236] 94/11694/2
Steven [Wed, 11 Apr 2018 22:32:15 +0000 (15:32 -0700)]
bond: 1 packet/frame == bad performance [VPP-1236]

While https://gerrit.fd.io/r/#/c/11316/ took care of 1 packet/frame for
most of the bonding modes, it missed the broadcast mode. This patch is
to fix the 1 packet/frame for the broadcast mode.

Change-Id: Iac48a2977c7f702f341479cc712a6448090dbc60
Signed-off-by: Steven <sluong@cisco.com>
6 years agoNAT: disable CLI/API not supported in active mode (VPP-1234) 77/11677/3
Juraj Sloboda [Wed, 11 Apr 2018 10:54:12 +0000 (12:54 +0200)]
NAT: disable CLI/API not supported in active mode (VPP-1234)

When in deterministic mode disable nondeterministic CLI/API.
When not in deterministic mode disable deterministic CLI/API.

Change-Id: Ibf485c14612297e51d3815a6fde541542c8fe7ab
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
6 years agoHandle DHCP replies with NAT44 forwarding enabled 72/11672/3
Matthew Smith [Tue, 10 Apr 2018 20:29:55 +0000 (15:29 -0500)]
Handle DHCP replies with NAT44 forwarding enabled

When NAT44 forwarding is disabled, if a DHCP server-to-
client packet arrives on an outside interface, it is
handled correctly by setting the next node to the next
feature on the ip4-unicast feature arc, where it can be
processed.

When NAT44 forwarding is enabled, if a DHCP server-to-
client packet arrives, it is not handled any differently
than other packets and ends up going to ip4-lookup
which results in the packet being dropped.

Move the check for DHCP server-to-client packets outside
of the block that is executed if forwarding is disabled so
DHCP replies will be processed in either case.

Change-Id: Ia795cce3fd459f3252c2c17d53bb88ceaeaafca4
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
6 years agoVPPAPIGEN: Consistent CRC32 on complete file. 76/11676/2
Ole Troan [Wed, 11 Apr 2018 07:50:03 +0000 (09:50 +0200)]
VPPAPIGEN: Consistent CRC32 on complete file.

Prior to this fix vppapigen would just do a crc32 on the Python representation
of the file as a set of dictionaries. That of course was not a good idea.

Change-Id: Ie454736ffec02fa4679ab27e684b1d6c6406a0f1
Signed-off-by: Ole Troan <ot@cisco.com>
6 years agoClean up temp dir in failure cases 88/11688/1
Dave Barach [Tue, 10 Apr 2018 15:00:50 +0000 (11:00 -0400)]
Clean up temp dir in failure cases

Change-Id: Icfb99a09726c01e96ff14967afbafa4116e02eff
Signed-off-by: Dave Barach <dbarach@cisco.com>
6 years agofix: sample vpp-api C client hangs vpp daemon because of NULL callback 09/11609/2
Andrey "Zed" Zaikin [Mon, 9 Apr 2018 13:42:42 +0000 (16:42 +0300)]
fix: sample vpp-api C client hangs vpp daemon because of NULL callback

Change-Id: I686254b332a4527cb0cad3c5c0a17ea4c9f40e1d
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
6 years agoNAT44: fix setting of flag SNAT_SESSION_FLAG_LOAD_BALANCING (VPP-1235) 75/11675/2
Matus Fabian [Wed, 11 Apr 2018 07:36:57 +0000 (00:36 -0700)]
NAT44: fix setting of flag SNAT_SESSION_FLAG_LOAD_BALANCING (VPP-1235)

Change-Id: Ieeafb41d10959700bfd434cd455800af31944150
Signed-off-by: Matus Fabian <matfabia@cisco.com>
6 years agoacl-plugin: VPP-1231: add error checking to acl_plugin_set_acl_vec_for_context 62/11662/3
Andrew Yourtchenko [Mon, 9 Apr 2018 19:46:20 +0000 (21:46 +0200)]
acl-plugin: VPP-1231: add error checking to acl_plugin_set_acl_vec_for_context

The users of ACL lookup contexts might not check the data they supply,
so do it on their behalf in this function, and return an error if
an ACL does not exist or if they attempt to apply the same ACL twice.

Change-Id: I89d871e60f267ce643f88574c83baf9cd0a2d7b3
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit e5cbccf35f4d230afafa633abbc88e64ef33d758)

6 years agoacl-plugin: VPP-1230: fix the "undefined symbol" error for acl_main when using the... 63/11663/2
Andrew Yourtchenko [Mon, 9 Apr 2018 19:08:33 +0000 (21:08 +0200)]
acl-plugin: VPP-1230: fix the "undefined symbol" error for acl_main when using the inline functions

The acl_main struct, which is defined in the acl_plugin, is not visible when
the ACL plugin inline code is being compiled within the context of other plugins.
Fix that by using the global pointer variable, which exists in both the ACL plugin
context and is set in the context of the external plugins using ACL plugin.

Change-Id: Iaa74dd8cf36ff5442a06a25c5c968722116bddf8
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 1286a15a6e60f80b0e1b349f876de8fa38c71368)

6 years agodpdk: fail in early init if we cannot alloc hugepages 68/11668/2
Damjan Marion [Tue, 10 Apr 2018 18:45:55 +0000 (20:45 +0200)]
dpdk: fail in early init if we cannot alloc hugepages

Change-Id: If536ae142dc0109b587d92981d337bc6f15e070a
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agotest: Fix issues with new version of pycodestyle (VPP-1232) 70/11670/1
Chris Luke [Tue, 10 Apr 2018 19:19:54 +0000 (15:19 -0400)]
test: Fix issues with new version of pycodestyle (VPP-1232)

- Ignore warnings W504 (newline after binary operator) which otherwise
  occurs a significant number of times.
- Fix two instances of lines >79 chars.

Change-Id: I8cef56f8afc237187995e638e610c8c0554e2bb5
Signed-off-by: Chris Luke <chrisy@flirble.org>
6 years agoMakefile: Added new ifeq to cover opensuse leap15 81/11581/2
Ed Kern [Fri, 6 Apr 2018 20:52:54 +0000 (14:52 -0600)]
Makefile: Added new ifeq to cover opensuse leap15

So current makefile covers opensuse tumbleweed and
current opensuse leap 12.3.  Neither of these cover
new leap 15 package naming.  Cannot only use Name
or ID do to release differences.

Change-Id: I7ffcabb3a5af5b0789ba827209355050f6dc5204
Signed-off-by: Ed Kern <ejk@cisco.com>
6 years agowhen deleting l3 static mapping with addr_only, 91/10991/3
ahdj007 [Wed, 7 Mar 2018 03:05:35 +0000 (11:05 +0800)]
when deleting l3 static mapping with addr_only,
lb session with the same user maybe deleted.

Change-Id: Ie58579cf4f8babb594f3c44aa185720134c58c3d
Signed-off-by: ahdj007 <dong.juan1@zte.com.cn>
6 years agoCSIT-895 dpdk/ipsec: add locks on session data hash updates 72/11572/4
Radu Nicolau [Fri, 6 Apr 2018 11:12:21 +0000 (12:12 +0100)]
CSIT-895 dpdk/ipsec: add locks on session data hash updates

Change-Id: I6400b77de388c01e85209e5dc5f11ccafb79a459
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
6 years agosrv6-ad: fixing cache size issue 00/11600/3
Francois Clad [Mon, 9 Apr 2018 10:12:50 +0000 (12:12 +0200)]
srv6-ad: fixing cache size issue

Change-Id: Iaadfbc75832e37ae52511b25448da14116214fc1
Signed-off-by: Francois Clad <fclad@cisco.com>
6 years agoMake IPsec tunnel intf work with IPv4 output features 29/11629/2
Matthew Smith [Mon, 9 Apr 2018 16:49:20 +0000 (11:49 -0500)]
Make IPsec tunnel intf work with IPv4 output features

With no IPv4 output features on an IPsec tunnel inferface,
when packets are forwarded to that interface, they reach
the ipsec-if-output node via the output_node_index on the
hw interface and they are handled correctly.

When an IPv4 output feature (e.g. output ACL, outbound
NAT) is enabled on an IPsec tunnel interface, outbound
IPsec stops working for that interface. The last node in
the ip4-output feature arc is interface-output. From there
a packet is sent to ipsec<N>-output, and then ipsec<N>-tx.
The tx function for an IPsec tunnel interface that is
called by ipsec<N>-tx is a dummy that doesn't do anything
except write a warning message.

Enable a feature on the interface-output feature arc for
an IPsec tunnel interface so the ipsec-if-output node is
reached from the interface-output node.

Change-Id: Ia9c73d3932f5930ec7ce0791a0375b1d37148b01
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
6 years agofeatures: don't break linked list, create separate one for arc 31/11631/1
Damjan Marion [Mon, 9 Apr 2018 18:59:53 +0000 (20:59 +0200)]
features: don't break linked list, create separate one for arc

We need to keep original linked list so destructire can remove entries.

Change-Id: I5ff5ca0e1a417d88707255207725bba46433c943
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoL2: no-flood interface type in the Bridge-Domain 94/11594/4
Neale Ranns [Mon, 9 Apr 2018 08:53:01 +0000 (01:53 -0700)]
L2: no-flood interface type in the Bridge-Domain

Change-Id: I50ff0cacf88182f8e0be19840c50f4954de586e2
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agoplugins: unload plugin if early init fails 55/11555/8
Damjan Marion [Thu, 5 Apr 2018 19:32:29 +0000 (21:32 +0200)]
plugins: unload plugin if early init fails

Change-Id: I32f68e2ee8f5d32962acdefb0193583f71d342b3
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoNAT44: don't add static mapping to resolution vector if failed (VPP-1225) 60/11560/2
Matus Fabian [Fri, 6 Apr 2018 09:54:40 +0000 (02:54 -0700)]
NAT44: don't add static mapping to resolution vector if failed (VPP-1225)

Change-Id: I71660eb327124179ff200763c4743cc81dc6e1c6
Signed-off-by: Matus Fabian <matfabia@cisco.com>
6 years agojvpp: log error output of Java process on test failure 62/11562/3
Marek Gradzki [Fri, 6 Apr 2018 10:00:52 +0000 (12:00 +0200)]
jvpp: log error output of Java process on test failure

helps troubleshooting JVpp test failures.

Change-Id: I4747832a0610ace168285bfe423c506ba4e00700
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
6 years agoAutodetect plugin path 27/11527/9
Damjan Marion [Wed, 4 Apr 2018 20:43:54 +0000 (22:43 +0200)]
Autodetect plugin path

dpdk plugin self-disables if there are no hugepages available

Change-Id: Ib286e1a370deeb21248e6e961573ef9c68759b4c
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
6 years agoDVR: save the rewrite length in packet meta-data for features 96/11596/2
Neale Ranns [Mon, 9 Apr 2018 09:25:27 +0000 (02:25 -0700)]
DVR: save the rewrite length in packet meta-data for features

Change-Id: I0efd03bdb84bc9ff2334d398bfdb82486228114a
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
6 years agomake test: fix failure on centos 99/11599/1
Klement Sekera [Mon, 9 Apr 2018 10:01:32 +0000 (12:01 +0200)]
make test: fix failure on centos

Change-Id: I1fcc742699a60ef99ce97b35f7b964ee6ad29ddf
Signed-off-by: Klement Sekera <ksekera@cisco.com>
6 years agoRestore building of debuginfo RPMs 85/11585/2
Thomas F Herbert [Fri, 6 Apr 2018 19:13:41 +0000 (15:13 -0400)]
Restore building of debuginfo RPMs

JIRA: VPP-1227

Remove rpm tmp dir build debuginfo rpms.
Reverses commits to fix a build problem with old versions of rpmbuild
that prevented builds in chrooted environments with short paths
and short project names.

Change-Id: I852696dccc984bf4882fd3ca9ec4c8da080bdb41
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
6 years agoRemove subunit from Centos requirements. 51/11551/4
Thomas F Herbert [Mon, 5 Mar 2018 22:21:56 +0000 (17:21 -0500)]
Remove subunit from Centos requirements.

JIRA: VPP-1229

Subunit and Subunit-devel in Fedora and Epel but not Centos.
This patch moves the Fedora from the Centos specific requirements.

Change-Id: I093a4571cddf14af5ee2827ba8ee00c7bcbe6fc0
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
6 years agoBIER coveroty fix for unintialised return value on error 35/11535/3
Neale Ranns [Thu, 5 Apr 2018 09:24:52 +0000 (02:24 -0700)]
BIER coveroty fix for unintialised return value on error

Change-Id: I2b1d1035f810cb58356626cf081d46eb289265b4
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agoChange l2-fwd node to allow possible feature before UU-FLOOD 53/11553/2
John Lo [Thu, 5 Apr 2018 18:52:07 +0000 (14:52 -0400)]
Change l2-fwd node to allow possible feature before UU-FLOOD

If l2-fwd node does not find an L2FIB entry for DMAC of packet,
use input feature bitmap to find next node instead of always
sending packet to l2-flood node to perform unknow unicast flood.
It provides possibilty of using other feature to forward unknow
unicast packet instead of flooding the BD.

Change-Id: I56b277050537678c92bd548d96d87cadc8d2e287
Signed-off-by: John Lo <loj@cisco.com>
6 years agoRemove mbedtls from build requirement for Centos 56/11556/2
Thomas F Herbert [Thu, 5 Apr 2018 20:09:58 +0000 (16:09 -0400)]
Remove mbedtls from build requirement for Centos

Although mbedtls is in Fedora and Epel, it is not
in Centos yet. It is not strictly necessary for TLS
which also can use openssl.

Change-Id: Id62d52000f9ecda2fc10d1938f02be1142fa5bdb
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
6 years agoVOM: Get vhost-user type from name 49/11549/2
Mohsin Kazmi [Thu, 5 Apr 2018 11:13:01 +0000 (13:13 +0200)]
VOM: Get vhost-user type from name

Adopt nova naming convention for vhost-user interfaces.

Change-Id: If70f0828106bf594eb11d4f0ed2898a35ec0af15
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
6 years agoIPIP: version.h is not needed 50/11550/2
Neale Ranns [Thu, 5 Apr 2018 12:16:49 +0000 (05:16 -0700)]
IPIP: version.h is not needed

Change-Id: I78a4176f98c2b4630a57ac5ddb7faf58ba0c4ee1
Signed-off-by: Neale Ranns <nranns@cisco.com>
6 years agomemif: bug fixes 24/11524/2
Damjan Marion [Wed, 4 Apr 2018 17:51:00 +0000 (19:51 +0200)]
memif: bug fixes

Change-Id: Id775efb2e85d850e510d00f1b48bb711a3342397
Signed-off-by: Damjan Marion <damarion@cisco.com>
6 years agoVOM: Add sub_interface in specific routing table 97/11497/3
Mohsin Kazmi [Tue, 3 Apr 2018 12:23:30 +0000 (14:23 +0200)]
VOM: Add sub_interface in specific routing table

Change-Id: I3700fc1d140e30da783e41762670618f0298c7db
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
6 years agoDSLite: Implement new API call DSLITE_ADDRESS_DUMP. 70/11470/2
Jon Loeliger [Fri, 30 Mar 2018 18:34:47 +0000 (13:34 -0500)]
DSLite: Implement new API call DSLITE_ADDRESS_DUMP.

Change-Id: I92ca28d3007f7ea43cd3e8b20659e400dfa6c75c
Signed-off-by: Jon Loeliger <jdl@netgate.com>
6 years agoBump package version 26/11526/1
Chris Luke [Wed, 4 Apr 2018 20:41:56 +0000 (16:41 -0400)]
Bump package version

Change-Id: I81d870ab9fc0b1f0e1b777d56ca7870ff99c7c2c
Signed-off-by: Chris Luke <chrisy@flirble.org>
6 years agoHm this ended up on master, but should not have. 21/11521/1 v18.07-rc0
Chris Luke [Wed, 4 Apr 2018 18:17:44 +0000 (18:17 +0000)]
Hm this ended up on master, but should not have.

Revert "Setup for branch stable/1804"

This reverts commit c9c0988a0f331cbecfefb3f8cf0617b42bc89139.

Change-Id: I53ac0e9742317962aebe6f6eb5c9180fa87af2a8
Signed-off-by: Chris Luke <chrisy@flirble.org>
6 years agoSetup for branch stable/1804 19/11519/1
Chris Luke [Wed, 4 Apr 2018 18:16:00 +0000 (14:16 -0400)]
Setup for branch stable/1804

Change-Id: I09360055222efba6fad178b4fa5917808b551a9d
Signed-off-by: Chris Luke <chrisy@flirble.org>