vpp.git
4 years agodhcp ip: DSCP settings for transmitted DHCP packets 48/20748/6
Neale Ranns [Fri, 19 Jul 2019 14:01:02 +0000 (14:01 +0000)]
dhcp ip: DSCP settings for transmitted DHCP packets

Type: feature

- Define the ip_dscp_t and use in the IP headers
- Add DSCP setting to the DHCP client for use with packet TX

Change-Id: If220dde0017ea78793747d65f53e11daf23a28fa
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agodpdk: fix vlan stripping 70/20870/3
Neale Ranns [Mon, 15 Jul 2019 08:04:11 +0000 (01:04 -0700)]
dpdk: fix vlan stripping

Type: fix
Fixes: ce3e971

Change-Id: I30bbeced2f5ae7613e65546f2b9b41e2fb514208
Signed-off-by: Damjan Marion <damarion@cisco.com>
4 years agodhcp: send unicast and broadcast packets via the IP adjacency 51/20851/3
Neale Ranns [Thu, 25 Jul 2019 13:11:58 +0000 (06:11 -0700)]
dhcp: send unicast and broadcast packets via the IP adjacency

Type: feature

this means DHCP packets are subject to the IP features configured on the interface
- the unicast packets already were sent throught the adj
- added UT for DHCP client sending a unicast renewal

Change-Id: Id50db0b71822f44bf7cb639a524195cdc9873526
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agomisc: remove unnecessary cast in classify 69/20869/1
Zhiyong Yang [Fri, 26 Jul 2019 02:44:01 +0000 (22:44 -0400)]
misc: remove unnecessary cast in classify

Type: style

Change-Id: I7628f7fba8250afe41f115595cca4129e43350d3
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
4 years agomisc: 19.04.2 Release Notes 35/20835/4
Dave Wallace [Wed, 24 Jul 2019 20:57:48 +0000 (16:57 -0400)]
misc: 19.04.2 Release Notes

Type: docs

Change-Id: I1ee3909e042e56fd4caf3732762e9a9276aa6db1
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
4 years agobuild: vppapigen search VPP_INCLUDE_DIR if set 54/20854/2
Benoît Ganne [Thu, 25 Jul 2019 15:15:59 +0000 (17:15 +0200)]
build: vppapigen search VPP_INCLUDE_DIR if set

When building out-of-tree plugins, we must search for .api in VPP
installed include directory.

Type: fix

Change-Id: I76b7bace69ff54a385d944313879e2aeb7293648
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agobuild: package .api files in vpp-dev 52/20852/2
Benoît Ganne [Thu, 25 Jul 2019 14:26:20 +0000 (16:26 +0200)]
build: package .api files in vpp-dev

Type: fix

Change-Id: I035ff638d346109e1b3b5e5a8cdd36d650c45e5e
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agosession: add transport deleted state 82/20782/7
Florin Coras [Tue, 23 Jul 2019 02:03:03 +0000 (19:03 -0700)]
session: add transport deleted state

Type: fix

Distinguish between closed and deleted states to avoid deleting the
session prior to the transport connection.

Change-Id: Ia285ce94b26a70773f8c0ce9d2c73095d3e2a337
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovppinfra: fix coverity warning in mpcap.c 49/20849/2
Dave Barach [Thu, 25 Jul 2019 11:22:47 +0000 (07:22 -0400)]
vppinfra: fix coverity warning in mpcap.c

Type: fix
Ticket: VPP-1649

Change-Id: Ief77ec8d5f06bfcc63af6454c4cd9979cf0ab49d
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agobuild: add missing .api files for packaging 50/20850/1
Benoît Ganne [Thu, 25 Jul 2019 12:14:03 +0000 (14:14 +0200)]
build: add missing .api files for packaging

Type: fix

Change-Id: Ic43fb0826907e3f3b42a78bfbd9a807cdbf1e8f9
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agovom: QoS support 27/20827/7
Neale Ranns [Tue, 23 Jul 2019 08:48:55 +0000 (01:48 -0700)]
vom: QoS support

Type: feature

Change-Id: If517d10c318fc17fdbd797fac8d974d9851f6442
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agomisc: leverage vlib_buffer_get_current in srp 36/20836/4
Zhiyong Yang [Thu, 25 Jul 2019 02:06:55 +0000 (22:06 -0400)]
misc: leverage vlib_buffer_get_current in srp

Type: style

Change-Id: I6c57ab3e71c693de5ecfbdfee118d521a8c9a4c2
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
4 years agomemif: Fix uninitialized variable as reported by coverity 32/20832/2
Steven Luong [Wed, 24 Jul 2019 18:16:46 +0000 (11:16 -0700)]
memif: Fix uninitialized variable as reported by coverity

When mode == ip, the variable next_index is not initialized.
Although insde the while loop, ni will be fixed to contain next[0],
it is easier to initialize it.

Type: fix

Change-Id: I6653a958bbc5105e7266bf89e3c8569ff00f0199
Signed-off-by: Steven Luong <sluong@cisco.com>
4 years agobonding: incorrect RX counters for bond interface 37/20837/2
Steven Luong [Thu, 25 Jul 2019 04:16:09 +0000 (21:16 -0700)]
bonding: incorrect RX counters for bond interface

show interface does not display the RX counters for the bond
interfaces. It displays rx-no-buf instead.

The problem is VNET_INTERFACE_COUNTER_RX is a combined counter,
not a simple counter. Change the code to use
vlib_increment_combined_counter passing it with n_rx_packets and
n_rx_bytes.

Type: fix

Change-Id: I8121ad7e546447049fa13da62481b6c8f5575bec
Signed-off-by: Steven Luong <sluong@cisco.com>
4 years agolibmemif: fix chained buffer flag 40/20840/2
Jakub Grajciar [Wed, 24 Jul 2019 12:49:04 +0000 (14:49 +0200)]
libmemif: fix chained buffer flag

fixes issue: MEMIF_DESC_FLAG_NEXT persisted when enqueueing
stored buffers

Type: fix

Change-Id: I9e973ed6e0339612fe1dd3e3bd80ed7c05093791
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
4 years agoacl: implement counters 17/20117/17
Andrew Yourtchenko [Thu, 13 Jun 2019 15:23:21 +0000 (15:23 +0000)]
acl: implement counters

implement per-acl-number counters in the stats segment.
They are created during the ACL creation,
the counters are incremented in the dataplane using
the new inline function with the extra parameter being
the packet size. Counting in shared segment adds
a noticeable overhead, so add also an API to
turn the counters on.

Type: feature

Change-Id: I8af7b0c31a3d986b68089eb52452aed45df66c7b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
4 years agotests: add cpu/shm info to test runner output 47/20547/5
Paul Vinciguerra [Mon, 8 Jul 2019 18:14:22 +0000 (14:14 -0400)]
tests: add cpu/shm info to test runner output

Type: test
Depends-on: https://gerrit.fd.io/r/#/c/20484/

Change-Id: I140132cfcc4347035fe2bb9919f8e7923342940f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agoqos: QoS dump APIs 23/20823/5
Neale Ranns [Tue, 23 Jul 2019 15:16:19 +0000 (08:16 -0700)]
qos: QoS dump APIs

Type: feature

Change-Id: I514b40026986f3828c8727453456b20a0a45f3af
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agoapi: Disable tracing of memclnt_keepalive messages 22/20822/2
Dave Barach [Fri, 19 Jul 2019 21:40:18 +0000 (17:40 -0400)]
api: Disable tracing of memclnt_keepalive messages

A waste of binary API trace space; an otherwise idle control-plane
will eventually fill the api trace buffer with them.

Type: fix
Ticket: VPP-1725

Change-Id: Id8338ea4070cd76481595005986efc558f0694e6
Signed-off-by: Dave Barach <dave@barachs.net>
(cherry picked from commit 996a757ff93233379bf0a464dce6d99f5d622ca4)

4 years agofib: Support the POP of a Psuedo Wire Control Word 41/20741/2
Neale Ranns [Fri, 19 Jul 2019 11:44:53 +0000 (11:44 +0000)]
fib: Support the POP of a Psuedo Wire Control Word

Type: feature

Change-Id: Ib24547a7c4c73ceb5383d1ca8f14ec40e6a90f01
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agodpdk: Prefetch correct size of rte_mbuf 24/20824/2
Nitin Saxena [Wed, 24 Jul 2019 11:49:06 +0000 (17:19 +0530)]
dpdk: Prefetch correct size of rte_mbuf

sizeof(rte_mbuf) is 128 byte but 2* CLIB_CACHE_LINE_BYTES
is 256 byte for ThunderX/OCTEONTx targets.

Type: fix

Change-Id: If6893b168cf1c55c44bf4669a888ce858f2ef487
Signed-off-by: Nitin Saxena <nsaxena@marvell.com>
4 years agovapi: add python scripts to vpp-dev package 95/20595/4
Vratko Polak [Wed, 24 Jul 2019 11:42:36 +0000 (13:42 +0200)]
vapi: add python scripts to vpp-dev package

As requested in https://lists.fd.io/g/vpp-api-dev/message/18
three vapi scrips are packaged, destination to share/vpp/.

Also:
+ Add "vapi" as a separate component to maintainers file.
+ Add also vppapigen/generate_json.py to share/vpp/.
+ Improve CMakeLists.txt indentation.

Type: feature

Change-Id: Ia06715621aa344e8ee759410b293509a54f81fdd
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
4 years agopapi: add additional types to vpp_serializer 64/20464/5
Paul Vinciguerra [Tue, 2 Jul 2019 17:06:21 +0000 (13:06 -0400)]
papi: add additional types to vpp_serializer

vppapigen supports additional types not handled by the papi seializer.
This adds the types for the sake of parity.

Change-Id: Id8efad7f169b5023879935575ace2cc3e9c291d4
Type: feature
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agomemif: fix vector overflow when copying strings 82/20582/2
Benoît Ganne [Wed, 10 Jul 2019 12:56:26 +0000 (14:56 +0200)]
memif: fix vector overflow when copying strings

When memif sends back socket messages containing strings, we copy
vectors into C-string. Unfortunately, most vectors are not
null-terminated, causing strncpy() read overflow. Moreover, strncpy()
does not null-terminate string in case of max length reached.
This patch introduces helpers to safely copy strings from vectors.

Type: fix
Fixes: d6042d4f1ea0baf02bc87c72960a331a9e08dfab

Change-Id: I38489ec8d2a5d4a42b9abde1aa3dfdbd06ebe024
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agobonding: print the name on the cli when created 20/20420/4
Mohsin Kazmi [Mon, 1 Jul 2019 09:08:20 +0000 (11:08 +0200)]
bonding: print the name on the cli when created

Type: feature

Change-Id: Icd718c98ba2fa900cafaf1a59dfb100ee9914ec9
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
4 years agotap: print the interface name on cli when created 18/20418/4
Mohsin Kazmi [Mon, 1 Jul 2019 08:26:43 +0000 (10:26 +0200)]
tap: print the interface name on cli when created

Type: feature

Change-Id: If11f00574322c35c1780c31d5f7b47d30e083e35
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
4 years agomisc: Add maintainer entry for native virtio driver 28/20728/4
Mohsin Kazmi [Thu, 18 Jul 2019 14:24:45 +0000 (16:24 +0200)]
misc: Add maintainer entry for native virtio driver

Type: feature

Change-Id: Ieda0d8fbd2c1524ddf9fc776bc5c315629e893bf
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
4 years agoipsec: GCM, Anti-replay and ESN fixess 30/20730/4
Neale Ranns [Wed, 17 Jul 2019 15:07:14 +0000 (15:07 +0000)]
ipsec: GCM, Anti-replay and ESN fixess

Type: fix

Several Fixes:
 1 - Anti-replay did not work with GCM becuase it overwrote the sequence
number in the ESP header. To fix i added the seq num to the per-packet
data so it is preserved
 2 - The high sequence number was not byte swapped during ESP encrypt.
 3 - openssl engine was the only one to return FAIL_DECRYPT for bad GCM
the others return BAD_HMAC. removed the former
 4 - improved tracing to show the low and high seq numbers
 5 - documented the anti-replay window checks
 6 - fixed scapy patch for ESN support for GCM
 7 - tests for anti-reply (w/ and w/o ESN) for each crypto algo

Change-Id: Id65d96b6d1d4dd821b2ab557e87468fff6d70e5b
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agotls: handle engine listen failure 15/20815/2
Florin Coras [Wed, 24 Jul 2019 05:38:16 +0000 (22:38 -0700)]
tls: handle engine listen failure

Type:fix

Change-Id: I528b7cfcb7a6aada94ee3649378e6fbe84d2e4e6
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agofib: remove unused input parameter 14/20814/1
Zhiyong Yang [Wed, 24 Jul 2019 04:02:55 +0000 (00:02 -0400)]
fib: remove unused input parameter

Type: style

Change-Id: I2a21076fffaeb5726be80356aaffc9fea3d95850
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
4 years agovppinfra: add mapped pcap file support 78/20778/6
Gary Boon [Mon, 22 Jul 2019 14:57:56 +0000 (10:57 -0400)]
vppinfra: add mapped pcap file support

Type: feature

Change-Id: Ic720d56a6f8901efde2a58519bc9aa553205a9a6
Signed-off-by: Gary Boon <gboon@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoapi: binary api cleanup 13/20813/1
Dave Barach [Tue, 23 Jul 2019 20:28:36 +0000 (16:28 -0400)]
api: binary api cleanup

Multiple API message handlers call vnet_get_sup_hw_interface(...)
without checking the inbound sw_if_index. This can cause a
pool_elt_at_index ASSERT in a debug image, and major disorder in a
production image.

Given that a number of places are coded as follows, add an
"api_visible_or_null" variant of vnet_get_sup_hw_interface, which
returns NULL given an invalid sw_if_index, or a hidden sw interface:

-  hw = vnet_get_sup_hw_interface (vnm, sw_if_index);
+  hw = vnet_get_sup_hw_interface_api_visible_or_null (vnm, sw_if_index);
   if (hw == NULL || memif_device_class.index != hw->dev_class_index)
     return clib_error_return (0, "not a memif interface");

Rename two existing xxx_safe functions -> xxx_or_null to make it
obvious what they return.

Type: fix

Change-Id: I29996e8d0768fd9e0c5495bd91ff8bedcf2c5697
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoquic: Refactor connections closing and deletion 58/20658/4
Aloys Augustin [Sun, 14 Jul 2019 21:48:36 +0000 (23:48 +0200)]
quic: Refactor connections closing and deletion

This code should handle the 3 following cases:
- Active close
quic_proto_on_close sets state to ACTIVE_CLOSING
send packets eventually returns an error, calling
quic_connection_closed which deletes the connection

- Passive close
quic_on_closed_by_peer -> set state to PASSIVE_CLOSING
"race" between app confirmation (calling quic_proto_on_close) and
quicly signalling that it's done (triggers call to
quic_connection_closed).
If quic_connection_closed is called first, it sets the state to
PASSIVE CLOSING QUIC CLOSED, then when quic_proto_on_close is called
it frees the connection.
If quic_proto_on_close is called first, it sets the state to PASSIVE
CLOSING APP CLOSED, then when quic_connection_closed is called it frees
the connection

- Error close (reset)
quic_connection_closed is called in state READY. This means a timeout
or protocol error happened. This calls session_transport_reset_notify,
the app should confirm the deletion and quic_proto_on_close will be
called to delete the connection.

Change-Id: I3acbf9b079ed2439bdbb447197c428c78915d8c0
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: feature

4 years agoudp: fix typo in udp connectinon flags 09/20809/3
Dave Wallace [Tue, 23 Jul 2019 17:09:23 +0000 (13:09 -0400)]
udp: fix typo in udp connectinon flags

Type: fix
Fixes: 3b726197

Change-Id: Ib515f0995e5c837349ebcad5f63fbd1b2a197e13
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
4 years agosession: reorganize dispatch logic 61/20761/9
Florin Coras [Sat, 20 Jul 2019 22:53:16 +0000 (15:53 -0700)]
session: reorganize dispatch logic

Type:refactor

Change-Id: Id796d0103e61e15c35a586d8cbd3d8916487b84d
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovlib: address vlib_error_t scaling issue 02/20802/3
Dave Barach [Tue, 23 Jul 2019 14:22:31 +0000 (10:22 -0400)]
vlib: address vlib_error_t scaling issue

Encoding the vpp node index into the vlib_error_t as a 10-bit quantity
limits us to 1K graph nodes. Unfortunately, a few nodes need 6 bit
per-node error codes. Only a very few nodes have so many counters.

It turns out that there are about 2K total error counters in the system,
which is (approximately) the maximum error heap index.

The current (index,code) encoding limits the number of interfaces to
around 250, since each interface has two associated graph nodes and we
have about 500 "normal, interior" graph node

This patch adds an error-index to node-index map, so we can store
error heap indices directly in the vlib_buffer_t.

Type: refactor

Change-Id: I28101cad3d8750819e27b8785fc0cf71ff54f79a
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoudp: fix connection flags 87/20787/6
Aloys Augustin [Tue, 23 Jul 2019 08:24:39 +0000 (10:24 +0200)]
udp: fix connection flags

Change-Id: Ib69f9bd7970aeb2ee6a1c114d38dcb7f8698dc6d
Type: fix
Fixes: c754239
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agosession: avoid postponing close 81/20781/2
Florin Coras [Mon, 22 Jul 2019 22:57:19 +0000 (15:57 -0700)]
session: avoid postponing close

Type: feature

Change-Id: I96e850fc15b79349abbb52d91c0314f255d635be
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotcp: generate closed notifications whenever tcp closes 83/20783/4
Florin Coras [Tue, 23 Jul 2019 03:55:11 +0000 (20:55 -0700)]
tcp: generate closed notifications whenever tcp closes

Type: fix

This gives the session layer a chance to to cleanup events.

Change-Id: I7499e94acf06340e2b19a1d91a4c61a63cd66c52
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotests: pin pip version 99/20799/2
Aloys Augustin [Tue, 23 Jul 2019 13:19:28 +0000 (15:19 +0200)]
tests: pin pip version

New pip releases can break pip-tools. This commit pins the version of
pip used in the test virtualenv to prevent uncontrolled breakage.

This fixes the current issue in make test:
TypeError: __init__() got an unexpected keyword argument 'index_urls'

Change-Id: I3b7ecb31e651401ada0d357e2bf093c91c934565
Type: feature
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agonat: fixed handoff in2out lookup of static mappings by external address 70/20670/4
Filip Varga [Mon, 15 Jul 2019 18:19:44 +0000 (14:19 -0400)]
nat: fixed handoff in2out lookup of static mappings by external address

Type: fix

Change-Id: Ie5befde2f23caffb033b3b9f35ac1535c1224925
Signed-off-by: Filip Varga <fivarga@cisco.com>
4 years agodevices: vhost handling VHOST_USER_SET_FEATURES 32/20732/4
Steven Luong [Fri, 19 Jul 2019 01:38:52 +0000 (18:38 -0700)]
devices: vhost handling VHOST_USER_SET_FEATURES

Some combinations of new qemu (2.11) and old dpdk (16.10) may
send VHOST_USER_SET_FEATURES at the end of the protocol exchange
which the vhost interface is already declared up and ready.
Unfortunately, the process of VHOST_USER_SET_FEATURES will cause
the interface to go down. Not sure if it is correct or needed.
Because there is no additional messages thereafter, the hardware
interface stays down.

The fix is to check the interface again at the end of processing
VHOST_USER_SET_FEATURES. If it is up and ready, we bring back
the hardware interface.

Type: fix

Change-Id: I490cd03820deacbd8b44d8f2cb38c26349dbe3b2
Signed-off-by: Steven Luong <sluong@cisco.com>
4 years agobonding: fix create bond CLI 63/20763/2
Zhiyong Yang [Mon, 22 Jul 2019 01:51:21 +0000 (21:51 -0400)]
bonding: fix create bond CLI

1. "numa-only" is optional and is disabled by default for lacp mode.
2. update lacp doc.

Type: fix

Change-Id: I6a3a8423ef31ad9980353a796957693cd6205d73
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
4 years agoudp: support close with data 79/20779/3
Florin Coras [Mon, 22 Jul 2019 15:08:43 +0000 (08:08 -0700)]
udp: support close with data

Also adds connection flags.

Type: feature

Change-Id: I76f21eb88ab203076149b7c03dc31c22fc0f342e
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agodocs: improve home gateway use-case documentation 77/20777/2
Dave Barach [Mon, 22 Jul 2019 14:55:05 +0000 (10:55 -0400)]
docs: improve home gateway use-case documentation

Add plugin config, systemd config, netplan config, software
installation via ssh, and a quick HowTo for setting up a double-nat
test gateway.

Fix a minor doc bug which caused a complaint on vpp-dev@lists.fd.io:
/etc/vpp/startup.conf -> /setup.gate, but the vpp configuration file
wasn't explicitly tagged with the name /setup.gate.

Type: docs

Change-Id: Ib219040d7c3c8b50ed66f8e9d3afd3dcf51b6b7b
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoquic: move patch for quicly 0.0.3 76/20776/1
Aloys Augustin [Mon, 22 Jul 2019 14:50:36 +0000 (16:50 +0200)]
quic: move patch for quicly 0.0.3

Change-Id: I58e58f1f297820b110013f4bf6ede827ced94a3d
Type: fix
Fixes: 5ff9765
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agoquic: update quicly library 57/20657/3
Aloys Augustin [Mon, 8 Jul 2019 14:12:38 +0000 (16:12 +0200)]
quic: update quicly library

Update quicly to latest version that includes our upstreamed patch.

Change-Id: I0b26c72e49bce81daf4fb069b5818defd6cf25b9
Type: feature
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agogso: Fix the l3 packet gso segment size 28/20628/4
Mohsin Kazmi [Fri, 12 Jul 2019 11:18:16 +0000 (13:18 +0200)]
gso: Fix the l3 packet gso segment size

Type: fix
Ticket: VPP-1721

Change-Id: I7a5d4f1440048ddc9f599ac11d06e5a7df20440e
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
4 years agogtpu: fix missing trace issue 65/20765/2
Zhiyong Yang [Mon, 22 Jul 2019 08:50:32 +0000 (04:50 -0400)]
gtpu: fix missing trace issue

Type: fix

Change-Id: I1e1c39452edd94712455d102a6faad58bc7f66ff
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
4 years agostats: fix use-after-free hash key string 56/20556/3
Benoît Ganne [Mon, 8 Jul 2019 12:39:02 +0000 (14:39 +0200)]
stats: fix use-after-free hash key string

Hash keys are not copied by the hash infrastructure, instead the pointer
is used directly. stat_segment_register_gauge() does not allocate a
private object for the key, causing issues when it is freed or reused.
Allocate a private object on insertion into the hashtable instead.

Type: fix
Fixes: 92e3082199d10add866894e86a9762d79a3536c4

Change-Id: Ifb6addfcaec81bdb7ea3512050ce55f06ef09a4c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agofib: FIB Entry tracking 81/20681/4
Neale Ranns [Tue, 16 Jul 2019 15:28:52 +0000 (15:28 +0000)]
fib: FIB Entry tracking

Instead of all clients directly RR sourcing the entry they are tracking,
use a deidcated 'tracker' object. This tracker object is a entry
delegate and a child of the entry. The clients are then children of the
tracker.
The benefit of this aproach is that each time a new client tracks the
entry it doesn't RR source it. When an entry is sourced all its children
are updated. Thus, new clients tracking an entry is O(n^2). With the
tracker as indirection, the entry is sourced only once.

Type: feature

Change-Id: I5b80bdda6c02057152e5f721e580e786cd840a3b
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agosession: improve event logging 51/20751/8
Florin Coras [Fri, 19 Jul 2019 14:34:13 +0000 (07:34 -0700)]
session: improve event logging

Type:feature

Change-Id: I67a52ee48963a66915e2ebd116626eb9c296a9a5
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovcl: fix coverity warning 59/20759/1
Florin Coras [Fri, 19 Jul 2019 19:15:52 +0000 (12:15 -0700)]
vcl: fix coverity warning

Type:fix

Change-Id: I7b91ce9359f94131882ab430606586b1a6cf3e02
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agobonding: add support for numa-only in lacp mode 52/20352/8
Zhiyong Yang [Wed, 26 Jun 2019 09:49:14 +0000 (05:49 -0400)]
bonding: add support for numa-only in lacp mode

If numa-only is set, Only slaves on local numa node
transmit pkts if have at least one, otherwise the bond
interface works as usual.

CLI change:
create bond mode lacp [load-balance { l2 | l23 | l34 } {numa-only}]
[hw-addr <mac-address>] [id <if-id>]

The new member "u8 numa_only;" is also added to bond_create_if_args_t.

Type: feature

Change-Id: Icdccedafb0738d8c9d4a5acce909ce562428c071
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
4 years agosession: Use parent_handle instead of transport_opts 92/20692/5
Nathan Skrzypczak [Wed, 17 Jul 2019 09:02:20 +0000 (11:02 +0200)]
session: Use parent_handle instead of transport_opts

Type: feature

This is mostly used for quic in the case of a stream
creation (i.e. connect on an already established QUIC
session). We want do default parent_handle to INVALID
to be able to distinguish it from parent_handle = 0

Change-Id: Id5ac0b0155a3c44e51334231b711e4fd87a96a10
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agovat: remove #if BUILTIN from vat_main_t definition 45/20745/2
Dave Barach [Fri, 19 Jul 2019 12:25:37 +0000 (08:25 -0400)]
vat: remove #if BUILTIN from vat_main_t definition

Otherwise, vat plugins will be confused about the offset from &vat_main
of the vlib_main_t * pointer, leading to NULL pointer crashes.

Type: fix

Change-Id: I7298b7ce8c000217ed7fdd2e97a3cbf978464377
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoapi: fix coverity warning 47/20747/2
Dave Barach [Fri, 19 Jul 2019 13:31:29 +0000 (09:31 -0400)]
api: fix coverity warning

Type: fix
Ticket: VPP-1649

Change-Id: Ia159d0f67d33719d05fa2dbd82f9c8c9b5d8f2a9
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoipsec: register for port 4500 at INIT 37/20737/3
Neale Ranns [Fri, 19 Jul 2019 07:59:45 +0000 (00:59 -0700)]
ipsec: register for port 4500 at INIT

Type: fix
Fixes: 41afb33

Change-Id: Iceb99ead32f1858a5b4f85911d7cb2b39cc9add5
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agovppinfra: fix OOM check in bihash 39/20739/2
Andreas Schultz [Fri, 19 Jul 2019 09:14:50 +0000 (11:14 +0200)]
vppinfra: fix OOM check in bihash

The OOM check must consider the end of alloced arena and
not the start when checking for overflow.

Type: fix
Change-Id: Ie83e653d0894199d2fa433a604a0fe0cee142338
Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
4 years agodocs: Fix conf.py for read the docs 49/20749/1
jdenisco [Fri, 19 Jul 2019 14:21:41 +0000 (10:21 -0400)]
docs: Fix conf.py for read the docs

Change-Id: Iaaf9e6ef5acc82fb751c851cc943cf0c48a8940d
Signed-off-by: jdenisco <jdenisco@cisco.com>
4 years agomisc: 19.01.3 Release Notes 24/20724/4
Andrew Yourtchenko [Thu, 18 Jul 2019 11:03:34 +0000 (11:03 +0000)]
misc: 19.01.3 Release Notes

Type: docs

Change-Id: I3f9d243d6f5d99faea67c24c9bf5c42c7a4dc3b0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
4 years agoip: admin change affects intf IPv4 addr routes 11/20711/4
Matthew G Smith [Wed, 17 Jul 2019 15:01:17 +0000 (10:01 -0500)]
ip: admin change affects intf IPv4 addr routes

Type: feature

When admin status is changed on an interface, add or delete the
routes for the IPv4 addresses configured on that interface.

This is already being done for IPv6 interface addresses.

Change-Id: Ib1e7dc49c499921dd287e075640243520ffa5589
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
4 years agovcl: add QUIC support 50/19650/17
Nathan Skrzypczak [Thu, 16 May 2019 12:38:44 +0000 (14:38 +0200)]
vcl: add QUIC support

Type: feature

* Adds the concept of a "connectable listener" : a session that
 can be both connected and accepted on.
* vppcom_session_is_connectable_listener (fd) that tells if the fd
is a connectable listener
* vppcom_session_listener (fd) that gives you the listener's fd
that accepted the session (if any)
* vppcom_session_n_accepted (fd) that gives the number
of sessions a listener accepted.

Change-Id: Id89d67d8339fb15a7cf7e00a9c5448175eca04fc
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agosession: Refactor invalid session idx/handle 90/20690/4
Nathan Skrzypczak [Wed, 17 Jul 2019 08:20:45 +0000 (10:20 +0200)]
session: Refactor invalid session idx/handle

Type: refactor

Change-Id: I885d9d2af1674f705339e3e96f87ff766965c9e5
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agobuild: add more src dirs for generate_json.py 26/20726/2
Vratko Polak [Thu, 18 Jul 2019 13:58:41 +0000 (15:58 +0200)]
build: add more src dirs for generate_json.py

Because file vpe.api is in src/vpp/api/
and memclnt.api is in src/vlibmemory/.

Also removed api_types, as iteration can be done over output_dir_map.

Type: fix
Fixes: 9529feb4525dfd13e5636640083361256121d275
Ticket: VPP-1715

Change-Id: I021afeafdf98904d076953f0b09d1e3587fd3100
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
4 years agotap: fix memory errors with create/delete API 68/20668/2
Benoît Ganne [Mon, 15 Jul 2019 15:16:49 +0000 (17:16 +0200)]
tap: fix memory errors with create/delete API

CLI allocates vectors consumed by tap_create_if(), whereas API pass
null-terminated C-strings allocated on API segment.
Do not try to be too clever here, and just allocate our own private
copies.

Type: fix
Fixes: 8d879e1a6bac47240a232893e914815f781fd4bf
Ticket: VPP-1724

Change-Id: I3ccdb8e0fcd4cb9be414af9f38cf6c33931a1db7
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agovlib: convert frame_index into real pointers 63/20663/4
Andreas Schultz [Mon, 15 Jul 2019 13:40:56 +0000 (15:40 +0200)]
vlib: convert frame_index into real pointers

The fast path almost always has to deal with the real
pointers. Deriving the frame pointer from a frame_index requires a
load of the 32bit frame_index from memory, another 64bit load of the
heap base pointer and some calculations.

Lets store the full pointer instead and do a single 64bit load only.

This helps avoiding problems when the heap is grown and frames are
allocated below vm->heap_aligned_base.

Type: refactor
Change-Id: Ifa6e6e984aafe1e2755bff80f0a4dfcddee3623c
Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agolb: update api.c to use scaffolding from latest skel 56/20656/2
Paul Vinciguerra [Sun, 14 Jul 2019 17:47:43 +0000 (13:47 -0400)]
lb: update api.c to use scaffolding from latest skel

Type: refactor

Change-Id: I01329385684f4a4f477cb046079b554ae3024ded
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agotcp: add node with no 6-tuple lookup 82/20682/7
Vladimir Kropylev [Tue, 16 Jul 2019 18:22:29 +0000 (21:22 +0300)]
tcp: add node with no 6-tuple lookup

Type: feature

Add new node in TCP stack where TCP 6 tuple lookup is not required.
In new node, packet metadata contains connection-index which can be used
to retrieve the TCP connection. The new node will be used by proxy.

Change-Id: I3aa0268946898912f4176d5c8c5903e06657479d
Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
4 years agoquic: Add back stream connect condition 76/20676/3
Nathan Skrzypczak [Tue, 16 Jul 2019 08:58:58 +0000 (10:58 +0200)]
quic: Add back stream connect condition

Type: fix

This is needed for VCL patch in the case the Qsession
handle we connect to is 0. A better way to do this
would be to add a u16 header to the transport_opts,
as session_handles are :
<u16 unused><u16 thread_id><u32 session_index>
But this requires modifying all clients.

Change-Id: If171bcf982eba3bd705b586c9fd4a6c2ad0e114b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agobuild: add targets for json api files 71/20671/5
Paul Vinciguerra [Mon, 15 Jul 2019 19:22:31 +0000 (15:22 -0400)]
build: add targets for json api files

Type: make
Ticket: VPP-1715

Change-Id: I78497d679d9e793b47a06a0c5cb3b12d86b08489
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agosession: move constants definition 84/20684/3
Florin Coras [Tue, 16 Jul 2019 22:30:15 +0000 (15:30 -0700)]
session: move constants definition

Type:refactor

Change-Id: Ie4a89ae603cd365b28795c92daa08d5943e692ea
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agosession: use llist in session node evt handling 73/20673/14
Florin Coras [Mon, 15 Jul 2019 20:15:18 +0000 (13:15 -0700)]
session: use llist in session node evt handling

Type: refactor

Change-Id: I24159e0a848f552b4e27acfb5fe6f2cd91b50a19
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agosession: grab mq lock until ctrl event is enqueued 65/20665/2
Florin Coras [Mon, 15 Jul 2019 14:48:27 +0000 (07:48 -0700)]
session: grab mq lock until ctrl event is enqueued

Type: fix

Change-Id: I26a6af7f92316f7a8a5309047b3b3605b87ca327
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovppinfra: elog: fix read overflow in string lookup 94/20694/2
Benoît Ganne [Wed, 17 Jul 2019 09:45:20 +0000 (11:45 +0200)]
vppinfra: elog: fix read overflow in string lookup

elog string hashtable use strlen() to determine string length for
hashing, strings must be NULL-terminated for both inserts and lookups.

Type: fix
Fixes: 9c8ca8dd3197e40dfcb8bcecd95c10eeb56239ed

Change-Id: I0680d39a9b89411055fd6adc89c9f253adfae32c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agosession: fix node enable sequence 83/20683/1
Vladimir Kropylev [Tue, 16 Jul 2019 18:32:41 +0000 (21:32 +0300)]
session: fix node enable sequence

Type: fix

Change the sequence to first allocate session_manager and
then enable the session-nodes.

During “session enable”, sometimes an issue was seen when in some cases
POLLING node calls transport_update_time -> tcp_update_time -> tcp_set_time_now
which access tcp_main.wrk_ctx before tcp_main_enable allocates the wrk_ctx.

0  0x00007ffff73f7778 in tcp_set_time_now (wrk=<optimized out>)
    at src/vnet/tcp/tcp.h:953
1  tcp_update_time (now=11.059735140000001, thread_index=<optimized out>)
    at src/vnet/tcp/tcp.c:1192
2  0x00007ffff75a75de in transport_update_time (time_now=11.059735140000001, thread_index=thread_index@entry=1 '\001')
    at src/vnet/session/transport.c:740
3  0x00007ffff75a0f4c in session_queue_node_fn (vm=0x7fff74913480, node=0x7fff75e7d5c0, frame=<optimized out>)
    at src/vnet/session/session_node.c:873

Change-Id: Id2288dd05ba179af2ff22c58bac1331fc21a1c7d
Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
4 years agopapi: use the injected logger wherever possible 60/20660/3
Vratko Polak [Tue, 16 Jul 2019 12:32:55 +0000 (14:32 +0200)]
papi: use the injected logger wherever possible

As the injected logger is already expected
to be used everywhere, this is a fix.

The few lines in vpp_serializer.py are not fixed,
but they are not encountered in CSIT testing.

Functions call_logger and return_logger
have single call site each (and confusing names, as they do not log),
so saved few lines by inlining them.

Type: fix

Change-Id: I7dd1e610ef6b885943708bf78bddedfbcf4daa1a
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
4 years agogbp: fix contracts dpo ACL match 80/20680/2
Benoît Ganne [Mon, 15 Jul 2019 14:29:19 +0000 (16:29 +0200)]
gbp: fix contracts dpo ACL match

Type: fix
Fixes: 1d6d9f021c5a169dedca55b46451ab54728e3ee8

Change-Id: I3912c8bb78d678170bdd86821d2ead3ae0396841
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agoipsec: handle UDP keepalives 77/20677/2
Neale Ranns [Tue, 16 Jul 2019 13:19:35 +0000 (06:19 -0700)]
ipsec: handle UDP keepalives

Type: feature

Change-Id: I87cc1168466f267e8c4bbec318401982f4bdf03a
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agoipsec: coverity found c-n-p error 75/20675/2
Neale Ranns [Tue, 16 Jul 2019 07:53:22 +0000 (00:53 -0700)]
ipsec: coverity found c-n-p error

Type: fix
Fixes: 4b0b0d4

Change-Id: Ibd37c9099f9847ed23fa8357fd8e57ee516e52ab
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agoapi: enable binary API event logging in vat 72/20672/3
Dave Barach [Mon, 15 Jul 2019 20:00:03 +0000 (16:00 -0400)]
api: enable binary API event logging in vat

Cleaned up a few instances of side-bet elog_string hash table
usage. Elog_string handles that problem itself.

Add cli commands to vat to initialize, enable/disable, and save an
event log.

Event logging at the same time in both vpp and vat yields a pair
of event logs which can be merged by the "test_elog" tool.

Type: refactor

Change-Id: I8d6a72206f2309c967ea1630077fba31aef47f93
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agobuild: separate pkg builds from verify target 69/20669/2
Dave Wallace [Mon, 15 Jul 2019 16:03:51 +0000 (12:03 -0400)]
build: separate pkg builds from verify target

- This patch is required to eliminate the use
  of .../vpp/extras/vagrant/build.sh by other
  projects in order to build VPP packages for
  verification/integration testing.

Type: fix

Change-Id: I63e08b27b715c0d40b44e2ce7b3e9a7ebf4f514b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
4 years agoquic: integrate vpp crypto api for quic packets encryption 33/20633/9
Mathias Raoul [Fri, 12 Jul 2019 17:11:49 +0000 (19:11 +0200)]
quic: integrate vpp crypto api for quic packets encryption

Type: feature

Change-Id: I740f15a5ef959d31e94e59d652aa9f691db1f289
Signed-off-by: Mathias Raoul <mathias.raoul@gmail.com>
4 years agoipsec: rewind missing from dual loop 59/20659/3
Neale Ranns [Mon, 15 Jul 2019 08:04:11 +0000 (01:04 -0700)]
ipsec: rewind missing from dual loop

Type: fix
Fixes: a6bee0a1

Change-Id: I1959e28b82825d7928d471d3dfa827ea4cdd74b7
Signed-off-by: Giles Heron <giheron@cisco.com>
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agointerface: fix issue that pcap rx/tx trace not available when there are worker threads 42/20342/6
Wei CHEN [Wed, 26 Jun 2019 03:01:15 +0000 (11:01 +0800)]
interface: fix issue that pcap rx/tx trace not available when there are worker threads

Type: fix

Change-Id: Ie9a3a78b45b53344a0a5d7e2027c0e0354a49ebe
Signed-off-by: Wei CHEN <weichen@astri.org>
4 years agosession: allow transports to generate closed notifications 51/20651/6
Florin Coras [Fri, 12 Jul 2019 22:01:53 +0000 (15:01 -0700)]
session: allow transports to generate closed notifications

In contrast to the closing notification, whereby a transport informs
the session layer that is beginning the closing procedure, this allows
transports to notify the session layer of the fact that the transport is
"fully" closed, i.e., it expects no more data.

Also:
- adds app closed state for sessions
- changes tcp to have it notify when an active close has finished

Type: feature

Change-Id: I13c738006c03f85015e05ab82843a33a69382aaf
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoapi: add DSCP definitions to ip_types.api 55/20655/6
Paul Vinciguerra [Sat, 13 Jul 2019 13:45:39 +0000 (09:45 -0400)]
api: add DSCP definitions to ip_types.api

- also adds ecn definitions.

Type: feature

Change-Id: Id98d9ae57289425fcfed367f426442173ef4e882
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agotests: fix error in VppDiedError exception 54/20654/2
Paul Vinciguerra [Sat, 13 Jul 2019 13:35:38 +0000 (09:35 -0400)]
tests: fix error in VppDiedError exception

Discovered running test-debug job in CI.

- fix missing paren () around format value.
Type: test

Change-Id: Iebddd3035a435f8ad1cb1d6fa4e8e8c2d4ddaf96
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agovppinfra: add doubly linked list 72/20572/17
Florin Coras [Wed, 10 Jul 2019 02:02:33 +0000 (19:02 -0700)]
vppinfra: add doubly linked list

Type: feature

Change-Id: I21511c1abea703da67f1a491e73342496275c498
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agonsim: cross-connect mode crash at interface output node 99/20599/3
John Lo [Wed, 10 Jul 2019 20:44:32 +0000 (16:44 -0400)]
nsim: cross-connect mode crash at interface output node

Type: fix

Change-Id: If99c1d8a7ec97a726430a927eab0d3b57222af1f
Signed-off-by: John Lo <loj@cisco.com>
4 years agodocs: add compressed core file description 29/20629/2
Dave Barach [Fri, 12 Jul 2019 14:24:03 +0000 (10:24 -0400)]
docs: add compressed core file description

To the issue reporting page

Change-Id: I3d2b53521bcb1b9b4a85802a84427f17390f0f77
Type: docs
Signed-off-by: Dave Barach <dave@barachs.net>
4 years agoquic: fix show session verbose 31/20631/3
Aloys Augustin [Fri, 12 Jul 2019 15:11:04 +0000 (17:11 +0200)]
quic: fix show session verbose

Proprely display quic connections in show session verbose, and add a
small fix for UDPC listeners and UDP sessions formatting.

Change-Id: I33f83e77bf357347623d87ad23c483aba60a9bb2
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: feature

4 years agotls quic: reduce default segment sizes 22/20622/3
Aloys Augustin [Fri, 12 Jul 2019 09:05:35 +0000 (11:05 +0200)]
tls quic: reduce default segment sizes

This reduces the memory required by tls and quic, allowing to run them
(and their tests) in more constrained environments by default.

Change-Id: I954081c725fb4f5f173db1f8e76922d957c5b0a2
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: fix

4 years agosession: add thread index to all formatters 27/20627/2
Aloys Augustin [Fri, 12 Jul 2019 10:16:16 +0000 (12:16 +0200)]
session: add thread index to all formatters

Add a thread_index argument to half-open and listener session formatters
because QUIC can have listeners and half-open sessions in any thread.

Change-Id: I1de60e35ece4c68ba8cfdd6b63f211bc620d687b
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Type: feature

4 years agovcl: fix namespace debug print 24/20624/2
Benoît Ganne [Fri, 12 Jul 2019 09:53:07 +0000 (11:53 +0200)]
vcl: fix namespace debug print

vcm->cfg.namespace_id is a vector and not a null-terminated C-string.

Type: fix
Fixes: 8af2054b78

Change-Id: I9324712f053066790a30fed617c9cac673f0fbd7
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agosvm: handles heap dlmalloc allocation failure 26/20626/2
Benoît Ganne [Fri, 12 Jul 2019 09:34:16 +0000 (11:34 +0200)]
svm: handles heap dlmalloc allocation failure

Type: fix
Fixes: 6a5adc3695

Change-Id: I21091fc2938cababeb28bacf7c5e457a05ab6272
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agovcl: fix tsock 0-ing in test client 25/20625/2
Benoît Ganne [Fri, 12 Jul 2019 09:27:28 +0000 (11:27 +0200)]
vcl: fix tsock 0-ing in test client

Type: fix
Fixes: d48e9763bfc39106eca954a28223b72261bf1aeb

Change-Id: I9af222f4083a82592058fd42950db1c97caf647e
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agoipsec: drop outbound ESP when no crypto alg set 93/20593/2
Matthew Smith [Mon, 8 Jul 2019 19:45:04 +0000 (14:45 -0500)]
ipsec: drop outbound ESP when no crypto alg set

Type: fix

If a tunnel interface has the crypto alg set on the outbound SA to
IPSEC_CRYPTO_ALG_NONE and packets are sent out that interface,
the attempt to write an ESP trailer on the packet occurs at the
wrong offset and the vnet buffer opaque data is corrupted, which
can result in a SEGV when a subsequent node attempts to use that
data.

When an outbound SA is set on a tunnel interface which has no crypto
alg set, add a node to the ip{4,6}-output feature arcs which drops all
packets leaving that interface instead of adding the node which would
try to encrypt the packets.

Change-Id: Ie0ac8d8fdc8a035ab8bb83b72b6a94161bebaa48
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
4 years agoip: Trace the packet from the punt node 78/20578/3
Neale Ranns [Wed, 10 Jul 2019 08:48:55 +0000 (08:48 +0000)]
ip: Trace the packet from the punt node

Type: feature

Change-Id: I01f1cc53efc93b0a7bb588ea6db89a53c971a3f5
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agonat: added handoff trace index for easier trace match 12/20612/7
Filip Varga [Thu, 11 Jul 2019 16:08:43 +0000 (12:08 -0400)]
nat: added handoff trace index for easier trace match

Type: feature

Change-Id: Id818f86164acabcb732e9a65d0e284d68e747a7b
Signed-off-by: Filip Varga <fivarga@cisco.com>