Neale Ranns [Thu, 11 Jul 2019 09:31:19 +0000 (09:31 +0000)]
ipsec: Revert "IPSEC: remove double byte swap of IP addresses"
This reverts commit
9b208ced585d3b4620d6fde586cd047fe2027ecf.
Type: fix
Fixes:
9b208ced585d3b4620d6fde586cd047fe2027ecf
Change-Id: I94a17039b4727bff0877423da5ba6cfceb188b17
Signed-off-by: Neale Ranns <nranns@cisco.com>
Neale Ranns [Wed, 10 Jul 2019 08:14:58 +0000 (01:14 -0700)]
gbp: An Endpoint can change sclass
Type: feature
Change-Id: I9d3a73a6a6048fa0189f7fa6306a638279977fcd
Signed-off-by: Neale Ranns <nranns@cisco.com>
Damjan Marion [Fri, 14 Jun 2019 19:14:36 +0000 (21:14 +0200)]
avf: add more link speeds
Type: feature
Change-Id: I6f94f7ef5ffbd938457c9356a5a11f3d1afeb0a2
Signed-off-by: Damjan Marion <damarion@cisco.com>
Nathan Skrzypczak [Thu, 11 Jul 2019 13:58:34 +0000 (15:58 +0200)]
quic: Fix quic_echo event flags
Type: fix
Change-Id: Ibaa272b57f36b092897a99a65ca28f9d4caf29a7
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Neale Ranns [Thu, 11 Jul 2019 10:44:16 +0000 (03:44 -0700)]
vom: Fix reference to flags in GBP bridge-domain
Type: fix
Fixes:
5e82b050
Change-Id: I8f709c5303861ea9984144ce5543c86c934869bb
Signed-off-by: Neale Ranns <nranns@cisco.com>
Florin Coras [Wed, 26 Jun 2019 16:12:34 +0000 (09:12 -0700)]
tcp: improve rate estimate
Type:feature
- sample rtt estimation
- report acked+sacked
- report last lost bytes
- use snd_una == snd_nxt to detect 0 bytes in flight
Change-Id: I83181261fdb375c7e33d24b7a82343561e6a905f
Signed-off-by: Florin Coras <fcoras@cisco.com>
Benoît Ganne [Wed, 10 Jul 2019 13:40:33 +0000 (15:40 +0200)]
ip: fix show ip neigh vector read overflow
Both format_ethernet_arp_ip4_entry() and format_ip6_neighbor_ip6_entry()
used %s to format flags which is a vector and not a null-terminated
C-string.
Introduce format_ip_neighbor_flags() instead.
Type: fix
Fixes:
102ec52bc4
Change-Id: I0c9349fefbeb76471933de358acceb50512a21aa
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Chris Luke [Wed, 10 Jul 2019 03:33:30 +0000 (23:33 -0400)]
vlib: Replace timer in CLI with an event process
The CLI code, when it accepts a socket connection, ran a timer
for each session that would ensure the CLI session was started
should the TELNET negotiation stage fail to complete.
It has since transpired that this is unsafe; the timer is capable
of firing in critical sections, during a spinlock, and since we
peform non-trivial things in the handler it can cause a deadlock.
This was reported recently in VPP-1711 but a search of history
suggests this may also be (one of) the causes in VPP-1413.
This change replaces that method with an event-driven process.
The process is created when the first socket connection is
accepted.
When new connections are created the process is sent an event
to register the new session in a list. That event process has
a loop that evaluates the list of oustanding sessions and if
a deadline expires, their session is started if it has not been
already, and then removed from the list.
If we have pending sessions then the loop waits on a timer or an
event; if there are no sessions it waits on events only.
Type: fix
Ticket: VPP-1711
Change-Id: I8c6093b7d0fc1bea0eb790032ed282a0ca169194
Signed-off-by: Chris Luke <chrisy@flirble.org>
Signed-off-by: Dave Barach <dave@barachs.net>
Dave Barach [Tue, 9 Jul 2019 18:22:21 +0000 (14:22 -0400)]
emacs: update the vat plugin generator
Use the VAT_PLUGIN_REGISTER macro.
Type: refactor
Change-Id: I5ab9f311028c07a37a40cc1328d9724f852783ee
Signed-off-by: Dave Barach <dave@barachs.net>
Zhiyong Yang [Sat, 6 Jul 2019 09:14:54 +0000 (05:14 -0400)]
misc: fix buffer issue in geneve_input
Type: fix
Change-Id: I32000cd42b0ab2ce54a159c6727823fd0d113fe4
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Nathan Skrzypczak [Tue, 9 Jul 2019 16:04:00 +0000 (18:04 +0200)]
quic: Improve timing interface for quic_echo
Type: feature
Change-Id: I7a99b72276878625017c73dff8402f3e7fa7c33f
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Neale Ranns [Tue, 9 Jul 2019 14:29:35 +0000 (14:29 +0000)]
fib: fib_entry_flags_update takes a vector of paths
Type: fix
Fixes:
097fa66b
Change-Id: I690e31433b64f11399c08b4a0318762916c2c2f0
Signed-off-by: Neale Ranns <nranns@cisco.com>
juraj.linkes [Mon, 8 Jul 2019 08:22:55 +0000 (10:22 +0200)]
tests: Re-enable ipsec tests on ARM
Type: fix
* test_ipsec_tun_if_esp.TestIpsecGreTebIfEsp
* test_ipsec_esp.TestIpsecEspAll
add keepalive messages before each algo/engine to prevent test timeout
Change-Id: I726f3f9613bab02a65e65542cee494c68176ded7
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
Andrew Yourtchenko [Mon, 24 Jun 2019 15:13:06 +0000 (15:13 +0000)]
acl: perform the ACL-as-a-service user registrations in global heap
Some users tend to call registration routine long before they need
that service - which triggers an immediate initialization of
the ACL heap, which is rather big. This commit defers this process
by keeping the registrations in the global heap.
Change-Id: I5825871bd836851942b55184b6ee2657c7a9cc33
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Florin Coras [Mon, 8 Jul 2019 18:47:18 +0000 (11:47 -0700)]
session: notify app of session and transport cleanup
Type:feature
Change-Id: Ic9515c0b11ca6f75503f47ec6b2c58d240afb144
Signed-off-by: Florin Coras <fcoras@cisco.com>
Nathan Skrzypczak [Mon, 8 Jul 2019 16:18:27 +0000 (18:18 +0200)]
quic: echo thread can handle multiple sessions
Type: feature
Change-Id: Ibb60d5b46aafe109a81a8604712a917f6e246eaf
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Thu, 4 Jul 2019 12:20:17 +0000 (14:20 +0200)]
udp: UDPC handle open fail
Type: fix
Change-Id: Ib8fb4957f4da9e464e2575c45c8ff3828db89872
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Paul Vinciguerra [Tue, 9 Jul 2019 13:42:18 +0000 (09:42 -0400)]
tests: remove unused class attribute in VppTestCase
Identified in post-merge review.
Type: test
Change-Id: I46e19285479437561a43975ba9b5cb68f478736c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Neale Ranns [Fri, 5 Jul 2019 07:53:45 +0000 (00:53 -0700)]
gbp: Ownership of dynamically created vxlan-gbp tunnels managed via gbp_itf
Type: fix
This solves the ownership of vxlan-gbp tunnels. When the last reference of these goes away they need to be deleted. Currently there are two owners; gbp_itf via gef_itf and the lock held by the gbp_endpoint_location_t. The problem is that the
loc removes its reference whilst the fwd still holds the gbp_itf, and things go wrong.
This change moves the lifecycle management of the vxlan-gbp tunnel to the gbp_itf. When the last lock of the gbp_itf goes, so does the tunnel. now both the EP's loc and fwd can hold a lock on the gbp_itf and it's only removed when required.
The other change is the management of the 'user' of the gbp_itf. Since each user can enable and disable different features, it's the job of the gbp_itf to apply the combined set. determining a unique 'uesr' from the caller was near impossible, so I moved that to the gbp_itf, and return the allocated user, hence the 'handle' that encodes both user and interface.
The hash table maps from sw_if_index to pool index.
Change-Id: I4c7bf4c0e5dcf33d1c545f262365e69151febcf4
Signed-off-by: Neale Ranns <nranns@cisco.com>
Simon Zhang [Tue, 9 Jul 2019 08:19:26 +0000 (16:19 +0800)]
tcp: remove warning for multi-seg scnario.
Type: fix
Change-Id: I64e2082bd8ac5b0be21e10407dc29ba4c3f4cab3
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Dave Barach [Tue, 9 Jul 2019 14:04:18 +0000 (10:04 -0400)]
vat: unload unused vat plugins
If the corresponding vpp plugin is absent, return a non-zero
clib_error_t * from vat_plugin_register ("xxx plugin not loaded"). The
vat plugin calls dlclose on the vat plugin, and it disappears.
Depending on the plugin configuration, this can reduce the vpp virtual
size by several gigabytes.
Added a VAT_PLUGIN(<plugin-name>) macro to vat_helper_macros, clean up
boilerplate vat_plugin_register() implementations. Fixed a number of
non-standard vat_plugin_register methods.
Type: refactor
Change-Id: Iac908e5af7d5497c78d6aa9c3c51cdae08374045
Signed-off-by: Dave Barach <dave@barachs.net>
Benoît Ganne [Tue, 9 Jul 2019 11:50:35 +0000 (13:50 +0200)]
fib: fix urpf_itfs vector overflow
When removing duplicates in urpf_itfs vector we search for the 1st next
different entry in the vector, but the loop test is in the wrong order:
(urpf->furpf_itfs[i] == urpf->furpf_itfs[j]
&& j < vec_len(urpf->furpf_itfs))
We must check for overflow before checking equality.
Type: fix
Fixes:
3ee44040c66cbe47ff292ac7fb0badccbe2afe6d
Change-Id: I63729aff12057d5abce6c24ec24339cd9cd79494
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Paul Vinciguerra [Tue, 2 Jul 2019 21:37:46 +0000 (17:37 -0400)]
misc: extras update list_api_changes.py to PY3
Type: refactor
Change-Id: I099d78393675b7aac37e89df98527c361054077b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Florin Coras [Sat, 6 Jul 2019 01:31:54 +0000 (18:31 -0700)]
tcp: track last lost bytes in sack sb
Type:feature
Change-Id: I687809ebcc759cec8cb1d5c3b2b7e6bc995a7985
Signed-off-by: Florin Coras <fcoras@cisco.com>
Nathan Skrzypczak [Tue, 9 Jul 2019 12:36:31 +0000 (14:36 +0200)]
quic: add back missing test timeout
Type: fix
Change-Id: Ic153b2bc754ee69949f6e5fd412c474f9ed722f0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Nathan Skrzypczak [Thu, 4 Jul 2019 12:32:40 +0000 (14:32 +0200)]
quic: fix passive disconnect handling & refactor
Type: refactor
Change-Id: Ie54a77252e9f58a90f9e1f9595b9ede354952f70
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Paul Vinciguerra [Wed, 3 Jul 2019 12:38:38 +0000 (08:38 -0400)]
tests: treat all truthy env vars the same way
Introduce a new class, that returns the truthiness of a env var.
Since an environment variable is just a string, it would normally
be true if not unset. The new class returns true when the env var is
set to a string that would be considered true.
Type: test
Depends-on: https://gerrit.fd.io/r/20484
Change-Id: I90ef010156f6fec246bde5c0e208ced1869b180f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Paul Vinciguerra [Mon, 8 Jul 2019 19:41:07 +0000 (15:41 -0400)]
papi: update VPPEnumType for python3
Python3 uses __bool__ instead of __nonzero__
Type: fix
Depends-on: https://gerrit.fd.io/r/#/c/20484/
Change-Id: I7dd13d0508ab18d6c50c235f4186006799e92b45
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Dave Barach [Mon, 8 Jul 2019 16:25:38 +0000 (12:25 -0400)]
vppinfra: allocate bihash virtual space on demand
Reduces the vpp image virtual size by multiple gigabytes
Add a "show bihash" command which displays configured and current
virtual space in use by bihash tables.
Modify the .py test framework to call "show bihash" on test tear-down
Type: refactor
Change-Id: Ifc1b7e2c43d29bbef645f6802fa29ff8ef09940c
Signed-off-by: Dave Barach <dave@barachs.net>
Florin Coras [Mon, 8 Jul 2019 19:34:45 +0000 (12:34 -0700)]
vcl: add worker unregister api
Type:feature
Change-Id: Ie73644aed94e58d5dce822de5000183e414401df
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Mon, 8 Jul 2019 20:00:00 +0000 (13:00 -0700)]
vcl: cleanup listener accept fifo
Type: fix
Change-Id: Ic470d429f4bf1924185f720d66efe06f4727bcbd
Signed-off-by: Florin Coras <fcoras@cisco.com>
Paul Vinciguerra [Wed, 15 May 2019 01:01:28 +0000 (21:01 -0400)]
map gbp papi: match endianess of f64
clib_net_to_host_f64, clib_host_to_net_f64 are now implemented as '=',
https://gerrit.fd.io/r/#/c/20406/ set papi to match.
- all f64 api references are now wrapped with
clib_net_to_host_f64 or clib_host_to_net_f64.
IEEE f64 endianess is not defined. If clib_net_to_host_f64 and
clib_host_to_net_f64 are later defined in VPP as big-endian, it is
a single character change in the papi vpp_serializer.
Note: This breaks the api in a manner that would not be detected by
the flag day initiative. The scope is small. This only impacts map.api,
which applied the u64 transformation, while the gbp api uses '='.
The implementation of "=" raises issues for the papi socket implementation
if used between systems of differing endianess. See Vratko's comments.
- Added get_f64_endian_value() to api to allow client to verify endianess of f64's.
Type: fix
Depends-on: https://gerrit.fd.io/r/#/c/20484/
Change-Id: I00fc64a6557ba0190398df211aa0ea5c7eb101df
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Matthew Smith [Sun, 7 Jul 2019 00:27:29 +0000 (19:27 -0500)]
ip: retain local interface address adjacency
Type: feature
ip4_local_check_src() was overwriting vnet buffer opaque data
on the adjacency for packets with "local" (dpo-receive) destination
addresses.
Retain the dpo receive index in vnet_buffer()->adj_index[VLIB_TX].
This can allow a graph node to distinguish the interface where the
destination address is configured from the interface where the
packet was received. This can be useful in correctly handling
packets that have been sent to an address configured on a loopback
interface.
Change-Id: I52a942e85b5302b338a2d0404a37c5ea1a99e89f
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Nathan Skrzypczak [Thu, 4 Jul 2019 12:26:21 +0000 (14:26 +0200)]
session: add flag to disable session lookup
Type: feature
Change-Id: I1369859be0a722ea37e5d3ecb35dee5684fc69f8
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Neale Ranns [Fri, 14 Jun 2019 07:49:50 +0000 (07:49 +0000)]
gbp: More unit tests
Type: test
Change-Id: I0a58cc19bdfb73eabadbf6eb49b57e8db96959b5
Signed-off-by: Neale Ranns <nranns@cisco.com>
Nathan Skrzypczak [Fri, 5 Jul 2019 09:58:22 +0000 (11:58 +0200)]
session: target app.fib_index in unbind_uri
Type: fix
Change-Id: Iafcf85315c73bcd73af20bd84b1ccba030e2065b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Paul Vinciguerra [Wed, 26 Jun 2019 02:30:19 +0000 (22:30 -0400)]
api: Implement log_dump/log_details
- Replaces the need to screen scrape "show log".
- Adds an api to return the system time. When running over a socket, the
api client may have different time than the vpp host.
expected use:
vpp_time_before_command = self.vapi.show_vpe_system_time_ticks().vpe_system_time_ticks
<run some commands>
log_output = self.vapi.log_dump(start_timestamp=vpp_time_before_command)
Depends-on: https://gerrit.fd.io/r/20484
Depends-on: https://gerrit.fd.io/r/#/c/19581/
==============================================================================
TestVpeApi
==============================================================================
log_details(_0=838, context=3, timestamp_ticks=2.
4954863503546518e+48, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'vlib_physmem_shared_map_create: clib_mem_create_hugetlb_fd: open: No such file or directory\n\n')
log_details(_0=838, context=3, timestamp_ticks=1.
6101902879480125e+159, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'falling back to non-hugepage backed buffer pool')
test_log_dump_default (test_vpe_api.TestVpeApi) OK
log_details(_0=838, context=13, timestamp_ticks=2.
4954863503546518e+48, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'vlib_physmem_shared_map_create: clib_mem_create_hugetlb_fd: open: No such file or directory\n\n')
log_details(_0=838, context=13, timestamp_ticks=1.
6101902879480125e+159, level=<vl_api_log_level_t.VPE_API_LOG_LEVEL_WARNING: 4>, timestamp=u'2019/07/04 20:35:41:281', msg_class=u'buffer', message=u'falling back to non-hugepage backed buffer pool')
test_log_dump_timestamp_0 (test_vpe_api.TestVpeApi) OK
test_log_dump_timestamp_future (test_vpe_api.TestVpeApi) SKIP
test_show_vpe_system_time_ticks (test_vpe_api.TestVpeApi) SKIP
==============================================================================
TEST RESULTS:
Scheduled tests: 4
Executed tests: 4
Passed tests: 2
Skipped tests: 2
==============================================================================
Test run was successful
Type: feature
Change-Id: I893fc0a65f39749d2091093c2c604659aadd8447
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Benoît Ganne [Wed, 3 Jul 2019 15:34:21 +0000 (17:34 +0200)]
gbp: refactor policy nodes
Refactor both policy and policy-dpo nodes so they share the same code
for contract & acl lookup and for tracing.
This should help to implement new policy schemes.
Type: refactor
Change-Id: If5704bda708838eb01516dd39473d9bf248cfdf6
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Damjan Marion [Sat, 29 Jun 2019 09:27:40 +0000 (11:27 +0200)]
misc: allow second ':' in commit message
Type: fix
Fixes:
26ce6ca
Change-Id: I3ffa1e60966ba3e20670a7b95bba53e86e9861e0
Signed-off-by: Damjan Marion <damarion@cisco.com>
Neale Ranns [Thu, 4 Jul 2019 14:12:50 +0000 (14:12 +0000)]
vxlan-gbp: Decap ignores reserved bits
Type: fix
from the draft:
3. Backward Compatibility
VXLAN [RFC7348] requires reserved fields to be set to zero on
transmit and ignored on receive.
Change-Id: I98544907894f1a6eba9595a37c3c88322905630e
Signed-off-by: Neale Ranns <nranns@cisco.com>
Neale Ranns [Wed, 26 Jun 2019 15:22:01 +0000 (08:22 -0700)]
ethernet: ARP disabled node
Type: feature
improve the tracing from:
00:00:01:259665: pg-input
stream pcap3, 42 bytes, 3 sw_if_index
current data 0, length 42, buffer-pool 0, ref-count 1, trace handle 0x0
ARP: 02:03:00:00:ff:02 -> ff:ff:ff:ff:ff:ff
request, type ethernet/IP4, address size 6/4
02:03:00:00:ff:02/172.16.3.5 -> 00:00:00:00:00:00/172.16.2.1
00:00:01:259690: ethernet-input
frame: flags 0x1, hw-if-index 3, sw-if-index 3
ARP: 02:03:00:00:ff:02 -> ff:ff:ff:ff:ff:ff
00:00:01:259702: arp-input
request, type ethernet/IP4, address size 6/4
02:03:00:00:ff:02/172.16.3.5 -> 00:00:00:00:00:00/172.16.2.1
00:00:01:259710: error-drop
rx:pg2
00:00:01:259717: drop
null-node: blackholed packets
to
00:00:01:283323: pg-input
stream pcap3, 42 bytes, 3 sw_if_index
current data 0, length 42, buffer-pool 0, ref-count 1, trace handle 0x0
ARP: 02:03:00:00:ff:02 -> ff:ff:ff:ff:ff:ff
request, type ethernet/IP4, address size 6/4
02:03:00:00:ff:02/172.16.3.5 -> 00:00:00:00:00:00/172.16.2.1
00:00:01:283348: ethernet-input
frame: flags 0x1, hw-if-index 3, sw-if-index 3
ARP: 02:03:00:00:ff:02 -> ff:ff:ff:ff:ff:ff
00:00:01:283360: arp-input
request, type ethernet/IP4, address size 6/4
02:03:00:00:ff:02/172.16.3.5 -> 00:00:00:00:00:00/172.16.2.1
00:00:01:283369: arp-disabled
request, type ethernet/IP4, address size 6/4
02:03:00:00:ff:02/172.16.3.5 -> 00:00:00:00:00:00/172.16.2.1
00:00:01:283374: error-drop
rx:pg2
00:00:01:283380: drop
arp-disabled: ARP Disabled on this interface
Change-Id: I49b915b84cf56d6c138dedd8a596c045c150c4fb
Signed-off-by: Neale Ranns <nranns@cisco.com>
Florin Coras [Wed, 26 Jun 2019 23:27:13 +0000 (16:27 -0700)]
sctp: move to plugins, disabled by default
Removed sctp buffer metadata from vnet/buffer.h, added it to the
plugin. Add registration APIs for plugin-based vlib_buffer_opaque /
opaque2 decoders, used by "pcap dispatch trace ..." for display in the
wireshark dissector.
Type:refactor
Not actively maintained.
Change-Id: Ie4cb6ba66f68b3b3a7d7d2c63c917fdccf994371
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
Vladimir Kropylev [Tue, 2 Jul 2019 08:25:26 +0000 (11:25 +0300)]
tcp: timestamp adjustment
Type: feature
Change-Id: Icb3c574100cde95ab5be4923c8739889cf7e48c6
Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
Benoît Ganne [Fri, 5 Jul 2019 09:29:39 +0000 (11:29 +0200)]
gbp: use bd index at ext-itf creation instead of bd id
Type: fix
Fixes:
cfc7a107e6cb8be6e7c53a08e23a146c431c8e90
Change-Id: I341cbc94271ab89c3c643756a9c04b790cef8591
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Florin Coras [Fri, 5 Jul 2019 00:05:59 +0000 (17:05 -0700)]
tcp: add cc algo start tx event
Type: feature
Notify cc algos that new data is sent on a connection that was
apparently idle.
Change-Id: I892e5e9bb5b88d791265ffbbefce6f9694d01970
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Thu, 4 Jul 2019 02:51:02 +0000 (19:51 -0700)]
tcp: add cc algo undo recovery notification
Type:feature
Change-Id: Iedefe87555f0a0033abed8569bc2995c8f523d7e
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Thu, 4 Jul 2019 00:47:22 +0000 (17:47 -0700)]
tcp: add loss signal to cc algo
Type:feature
Change-Id: Ibe1a4c555b55fb929d55b02599aaf099ed522cdf
Signed-off-by: Florin Coras <fcoras@cisco.com>
Benoît Ganne [Mon, 1 Jul 2019 15:10:41 +0000 (17:10 +0200)]
gbp: add unit-tests for anonymous l3out
Type: test
Change-Id: Ib32c87b7f07c0552a6801a895332a0156c3c37f0
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Benoît Ganne [Thu, 4 Jul 2019 14:43:26 +0000 (16:43 +0200)]
gbp: update gbp-ext-itf API
Change gbp-ext-itf API to create anonymous ext-itf through the same API
as non-anonymous instead of a new API
Type: refactor
Change-Id: I381ff2a5bcd55276793df78ca891334c28946cd0
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Zhiyong Yang [Thu, 4 Jul 2019 02:56:24 +0000 (22:56 -0400)]
vxlan-gpe: simplify counter code
Type: style
Change-Id: Ia50867a853388d9f69571815ddcdaadfc47206bc
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Dave Wallace [Tue, 2 Jul 2019 06:01:40 +0000 (06:01 +0000)]
hsa: clean up quic_echo
- Fix typo
- Use same prefix on all error messages
- Fix time arg parsing
Type: fix
Change-Id: I27334ada47d8512d2b43ce770a55f87081af2a1e
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Florin Coras [Wed, 3 Jul 2019 02:33:15 +0000 (19:33 -0700)]
vcl: disable ldp bidirectional multiple socket tests
Type: fix
Change-Id: I83778d897b6aa37a37ffdfa1d0932bb5e95225e2
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Barach [Wed, 3 Jul 2019 14:04:44 +0000 (10:04 -0400)]
doxygen: improve .md file discovery
Add directories under .../src which contain .md files to
DOXY_SRC_DIRECTORIES.
Type: fix
Change-Id: If7ce833b6cb9cd5ec30a8df8e263087e276cfe97
Signed-off-by: Dave Barach <dave@barachs.net>
Dave Barach [Wed, 3 Jul 2019 19:21:50 +0000 (15:21 -0400)]
misc: fix coverity warnings
Type: fix
Ticket: VPP-1649
Change-Id: I93a393eca80065c379035478500e75e855f39b12
Signed-off-by: Dave Barach <dave@barachs.net>
Vratko Polak [Tue, 2 Jul 2019 09:07:24 +0000 (11:07 +0200)]
api: remove garbage from sockclnt_create reply
The fix uses memset to zero after alloc,
as sizing of source string is not obvious.
Function vl_msg_api_alloc_zero is added (and used),
so similar bugs can be fixed easily.
Type: fix
Ticket: VPP-1716
Change-Id: I3b20040d0de4222686c58779f2c0af78c5543504
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Aloys Augustin [Wed, 3 Jul 2019 14:59:43 +0000 (16:59 +0200)]
quic: fifo notifications fix
Add SESSION_IO_EVT_RX handling in session_send_evt_to_thread to allow
internal apps to send rx events ("tx notifications") to quic.
Add a call to quic_send_packets in quic_custom_app_rx_callback to
ensure QUIC ACKs are sent if there is no other activity on the
connection.
Type: fix
Change-Id: I885e01e6475e5b0274f274e9dd34d4a771719e69
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Neale Ranns [Fri, 21 Jun 2019 09:09:25 +0000 (02:09 -0700)]
gbp: Consider data-plane learnt source better than control-plane
Type: feature
Change-Id: Ice8fc0da6450d2aa8ba63ca1277393ac3605aa2c
Signed-off-by: Neale Ranns <nranns@cisco.com>
Neale Ranns [Tue, 2 Jul 2019 14:35:28 +0000 (14:35 +0000)]
gbp: improve contract formatting
Type: feature
Change-Id: I04be003bd86f828ec387dd0309bebcbf0a041e3a
Signed-off-by: Neale Ranns <nranns@cisco.com>
Paul Vinciguerra [Tue, 2 Jul 2019 17:00:58 +0000 (13:00 -0400)]
vppapigen: allow decimal number in NUM token
Needed to set f64 default values.
Type: feature
Change-Id: Ic58ebc0d9d890bf0e7821894285e61a5bee13199
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Neale Ranns [Tue, 2 Jul 2019 14:33:29 +0000 (14:33 +0000)]
fib: allow route delete with no paths and multipath=0 to remove the
whole route
Type: fix
Fixes:
097fa66b
Change-Id: I017ab5797670eb278c27c6e306cd8cadaacddf9d
Signed-off-by: Neale Ranns <nranns@cisco.com>
Florin Coras [Tue, 2 Jul 2019 20:07:37 +0000 (13:07 -0700)]
svm: fix multi-chunk fifo alloc and add more tests
Type: fix
- make sure that chunks and the rbtree are initialized if fifo segment
allocates multiple chunks for the fifo.
- ensure head/tail chunks are updated on all enqueue/dequeue events,
including when dropping data.
- more unit tests
Also fixes dequeue drop updates of head chunk.
Change-Id: I77f3550bc4e8b4e077f80ea87fe82b83ed013aeb
Signed-off-by: Florin Coras <fcoras@cisco.com>
juraj.linkes [Wed, 3 Jul 2019 08:42:40 +0000 (10:42 +0200)]
tests: fix FORCE_FOREGROUND
Type: fix
Change-Id: I145f9984c1d944d5b7de0487e8b41ae4fdb95b6d
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
Neale Ranns [Wed, 3 Jul 2019 08:00:53 +0000 (08:00 +0000)]
vat: Fix the incrementing IPv6 address
Type: fix
Change-Id: Ie085713f45672e112993638e01cdb325f451020a
Signed-off-by: Neale Ranns <nranns@cisco.com>
Paul Vinciguerra [Sun, 30 Jun 2019 19:38:55 +0000 (15:38 -0400)]
tests: Have worker return immediately on bad executable
No reason to waste CI cycles if we know the test will not run.
See:
17:55:11 ==============================================================================
17:55:11 VPP Object Model Test
17:55:11 ==============================================================================
17:55:11 Exception in thread Thread-4:
17:55:11 Traceback (most recent call last):
17:55:11 File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
17:55:11 self.run()
17:55:11 File "/w/workspace/vpp-beta-verify-master-ubuntu1804/test/framework.py", line 1475, in run
17:55:11 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
17:55:11 File "/w/workspace/vpp-beta-verify-master-ubuntu1804/test/run/venv/local/lib/python2.7/site-packages/subprocess32.py", line 617, in __init__
17:55:11 restore_signals, start_new_session)
17:55:11 File "/w/workspace/vpp-beta-verify-master-ubuntu1804/test/run/venv/local/lib/python2.7/site-packages/subprocess32.py", line 1415, in _execute_child
17:55:11 raise child_exception_type(errno_num, err_msg)
17:55:11 OSError: [Errno 2] No such file or directory: '/w/workspace/vpp-beta-verify-master-ubuntu1804/test/build/vom_test/vom_test'
17:55:11
17:55:11 17:55:11,328 Timeout! Worker did not finish in 120s
17:55:11 run C++ VOM tests ERROR [ temp dir used by test case: /tmp/vpp-unittest-VOMTestCase-vpMcWF ]
17:55:11
Type: fix
Change-Id: I3d8252807e98a09a8abd70de8a22517151f9d786
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Florin Coras [Mon, 1 Jul 2019 15:57:42 +0000 (08:57 -0700)]
svm: fix shm segment delete
Type:fix
Change-Id: Ia8f3496bf24a7dbe0a295b038aa6dfa24f034989
Signed-off-by: Florin Coras <fcoras@cisco.com>
Dave Barach [Mon, 1 Jul 2019 13:42:41 +0000 (09:42 -0400)]
api: fix coverity warnings
New coverity toolset, new set of squawks to fix
Ticket: VPP-1649
Type: fix
Change-Id: I2a7e4c42b101c6c79c01b150b2523ce3d5d62354
Signed-off-by: Dave Barach <dave@barachs.net>
Benoît Ganne [Wed, 26 Jun 2019 12:05:51 +0000 (14:05 +0200)]
gbp: add anonymous l3-out subnets
An anonymous l3-out subnet is a locally attached l3-out subnet, and
differs from regular l3-out subnets in the way adjacencies are managed.
It is required for the anonymous l3-out external interfaces to correctly
classify locally attached l3-out hosts.
Type: feature
Change-Id: Ie7bc88b1f22abc4d0b46db5f3cfbf208bc53ba5f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Benoît Ganne [Wed, 26 Jun 2019 11:36:51 +0000 (13:36 +0200)]
gbp: add anonymous l3-out external interfaces
So far, GBP l3-out packets classification & policy relied on programmed
EP. All traffic to/from l3-out must go through a known EP.
This patch introduces a new feature where l3-out next-hops are only
known by their subnets (l3-out prefixes). As there are no longer known
EPs to program, an interface must be configured as external anonymous
l3-out. Packets classification & policy on this interface will rely on
the external subnets programmed in the BD VRF.
Note that contrary to all other interfaces in a GBP BD, external
anonymous l3-out interfaces have BD L2 learning turned on and rely on
ARP/ND.
Type: feature
Change-Id: Ieedb29dff4e967d08c4301e82d06bff450a63e5f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Benoît Ganne [Wed, 26 Jun 2019 11:58:09 +0000 (13:58 +0200)]
gbp: disable L2 BD learning per-interface
Disable L2 BD learning for each GBP interface instead of at the bridge
level. This does not change the current behavior (learning is disabled
for all GBP interfaces) but enables turning it on selectively for future
features such as anonymous l3-out.
Type: refactor
Change-Id: Id88644277941d703600acf97d49cbc3332ae3f68
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Jakub Grajciar [Mon, 1 Jul 2019 12:24:48 +0000 (14:24 +0200)]
libmemif: version 3.0
Add support for multi-thread connection establishment.
- control_fd_update() callback now passes private context
associated with updated file descriptor. File descriptor
can belong to memif socket, memif connection or timerfd.
In case of timerfd the context is NULL.
- memif_create_socket() new API. Creates memif socket
handle to be passed to memif_create() in memif_conn_args_t.
This API allows to pass private context whenever the file
descriptor is updated.
- memif_delete_socket() new API. Deletes memif socket.
Socket must not be in use by any interface.
Type: feature
Change-Id: I7ca4e4349595d4477195f1c32403d3e3a6eb5361
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Neale Ranns [Mon, 1 Jul 2019 12:43:33 +0000 (12:43 +0000)]
fib: Coverity fix to remove dead code
Type: fix
Change-Id: I678f523f058165030572d9cd395802b772db9ed7
Signed-off-by: Neale Ranns <nranns@cisco.com>
Florin Coras [Mon, 1 Jul 2019 14:56:47 +0000 (07:56 -0700)]
lisp: init locator probed field in parser
Type: fix
Reported by coverity.
Change-Id: Ic84ac8c373c4c834bfddbf3ca08e2cfa2152e2ae
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Mon, 1 Jul 2019 14:32:31 +0000 (07:32 -0700)]
vcl: handle fd rcv msg error
Type:fix
Also cleanup worker fds on error. Reported by coverity
Change-Id: I52cf77ca90e9ba1cc8ee9ddb3edaeabdc073beda
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Mon, 1 Jul 2019 15:29:39 +0000 (08:29 -0700)]
vcl: fix sock client and server tests
Type:fix
Reported by coverity.
Change-Id: Ie623c5aa3ef54b649039c5ffa10476373c532825
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Mon, 1 Jul 2019 15:15:30 +0000 (08:15 -0700)]
lisp: fix unitialized ip prefix in cp unit test
Type: fix
Found by coverity.
Change-Id: Ibfc753d2c42219d275e3722d6ce1ef0cec189adf
Signed-off-by: Florin Coras <fcoras@cisco.com>
Neale Ranns [Mon, 1 Jul 2019 12:23:10 +0000 (05:23 -0700)]
vom: Fix [m]route dump
Type: fix
Fixes:
097fa66b
Change-Id: I4ada76982c680ee9b0af5828c7268b9b2098ce6b
Signed-off-by: Neale Ranns <nranns@cisco.com>
Benoît Ganne [Tue, 25 Jun 2019 08:32:28 +0000 (10:32 +0200)]
ip: check all fib src for a connected dst entry
When looking for a connected fib entry matching the ARP destination,
there can be other DPO interposed prior to the connected one.
Type: fix
Change-Id: I9b4ab387fb08acf9879d5fda3791e6572a099492
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Dave Barach [Mon, 1 Jul 2019 23:08:33 +0000 (19:08 -0400)]
build: vpp-ext-deps .rpm may not be installed
It's fine to remove the old .rpm, but don't stop the parade if there
wasn't an old .rpm to remove.
Type: fix
Change-Id: I500c740cc4ded16d3345c1e98462a1e8533f1028
Signed-off-by: Dave Barach <dave@barachs.net>
Florin Coras [Mon, 1 Jul 2019 16:51:54 +0000 (09:51 -0700)]
ip: fix ip lookup for arm
Type:fix
Fixes:
cb54e3c
Change-Id: I3120eaabdc00a6c1248cf7eb81f2075983836dfd
Signed-off-by: Florin Coras <fcoras@cisco.com>
Jakub Grajciar [Mon, 24 Jun 2019 08:22:12 +0000 (10:22 +0200)]
libmemif: icmp-responder example buffer management fix
Type: fix
Change-Id: Ieeb763f282ee929a121585747119f458c00056ae
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Neale Ranns [Wed, 19 Jun 2019 13:25:56 +0000 (06:25 -0700)]
gbp: VRF scoped contracts
Type: feature
Change-Id: I01772cfc3a0118a5c49bf346339788824e6931b2
Signed-off-by: Neale Ranns <nranns@cisco.com>
Paul Vinciguerra [Sat, 29 Jun 2019 12:33:05 +0000 (08:33 -0400)]
papi: refactor set_errors_str
Assuming 2500 50 char lines:
string_concat elapsed: 5.
919933e-04
string_join elapsed: 2.
830029e-04
string_concat size: 156,312,500
string_join size: 125,000
Type: refactor
Change-Id: I0a400265426bde492e9a651d24996ddcfe954aa1
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Neale Ranns [Sun, 30 Jun 2019 09:05:05 +0000 (09:05 +0000)]
igmp: accept packets that have more on the wire data than IGMP reports.
IGMPv3 sends a variable length of sources in a query. Today if the
amount of data on the wire does not exactly match that required for the
number of sources the packet is dropped.
Relax this check and instead accept the packet is the amount of wire
data is equal or greater than the number of sources.
Some devices on the wild internet pad small packets.
Type: feature
Change-Id: I102682814b38c0a0614d71816c9a286d90b834df
Signed-off-by: Neale Ranns <nranns@cisco.com>
Paul Vinciguerra [Wed, 26 Jun 2019 01:02:40 +0000 (21:02 -0400)]
pg: format_pg_input_trace - reorder fields
00:00:00:814640: pg-input
stream pcap0-sw_if_index-1, 42 bytes, 1 sw_if_index
is changed to:
00:00:00:814640: pg-input
stream pcap0-sw_if_index-1, 42 bytes, sw_if_index 1
Type: style
Change-Id: I9bb32494c9c1d08bc7588f088ed67a60ed3236dd
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Steven Luong [Tue, 25 Jun 2019 20:47:06 +0000 (13:47 -0700)]
devices: virtio pci leaking spinlock
Memory is dirt cheap. But there is no need to throw it away.
Type: fix
Change-Id: I155130ab3c435b1c04d7c0e9f54795b8de9383d9
Signed-off-by: Steven Luong <sluong@cisco.com>
Florin Coras [Fri, 28 Jun 2019 19:45:12 +0000 (12:45 -0700)]
svm: rename fifo tx notifications to reflect use
Type: refactor
Change-Id: I651db44acdcb666a9c63e1037352cf88c68795b5
Signed-off-by: Florin Coras <fcoras@cisco.com>
Vijayabhaskar Katamreddy [Fri, 28 Jun 2019 19:59:23 +0000 (12:59 -0700)]
interface: fixes for buliding for 32bit targets
* structure alignment and padding issues
Type: fix
Change-Id: Ic7c2a8cb5a5526902463f3b4d2d93284b454ab6f
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
Neale Ranns [Wed, 19 Jun 2019 07:14:10 +0000 (07:14 +0000)]
ip: ip-lookup - remove the dead code
Type: refactor
Change-Id: I791cc63e989df049104420faf74fc28f965b6648
Signed-off-by: Neale Ranns <nranns@cisco.com>
Dave Barach [Fri, 28 Jun 2019 19:08:49 +0000 (15:08 -0400)]
vppinfra: add dummy/noop f32/f64 endian swap fns
Makes life easier for binary API language bindings
Type: fix
Change-Id: Ib459274fda05153d01cbb7bc328a8407e3ee5027
Signed-off-by: Dave Barach <dave@barachs.net>
Nathan Skrzypczak [Wed, 22 May 2019 16:41:50 +0000 (18:41 +0200)]
quic : Use TX event for app read notification
Type: feature
Change-Id: I1846cdeb35f079249f66a0351aa244c540923a43
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Florin Coras [Fri, 28 Jun 2019 16:18:48 +0000 (09:18 -0700)]
tcp: reject out-of-order fins
Type:fix
Change-Id: Iab2c308739f7733dbf70953e0ea87dcc404c60da
Signed-off-by: Florin Coras <fcoras@cisco.com>
Florin Coras [Fri, 28 Jun 2019 16:41:28 +0000 (09:41 -0700)]
tcp: fix close-waiting check for outstanding tx data
Type: fix
Change-Id: I9e0e1bb933c38b17ac9fb8bf11b81e2fed021bf8
Signed-off-by: Florin Coras <fcoras@cisco.com>
Nathan Skrzypczak [Wed, 26 Jun 2019 11:53:08 +0000 (13:53 +0200)]
session: add half_open_has_fifos for UDPC
Type: fix
Change-Id: Iede83a4e72b88fd55bf56ec0ca71c9196ce743cd
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Paul Vinciguerra [Thu, 27 Jun 2019 00:45:08 +0000 (20:45 -0400)]
tests: handle TypeErrors in calls to VppDiedError
Type: test
Change-Id: I869768ed25efa3350f025fba329466db69805803
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Benoît Ganne [Thu, 27 Jun 2019 15:31:28 +0000 (17:31 +0200)]
tap: fix memory errors in create/delete
If the host interface name is not specified at creation, host_if_name
was wrongly set to a stack-allocated variable. Make sure it always
points to a heap allocated vector.
At deletion time, we must free all allocated vectors.
Type:fix
Change-Id: I17751f38e95097998d51225fdccbf3ce3c365593
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Neale Ranns [Fri, 28 Jun 2019 08:33:24 +0000 (08:33 +0000)]
igmp: Trace more data form input packets
Type: feature
Change-Id: I40ecc0da1281115f6e540064224538fe9472887e
Signed-off-by: Neale Ranns <nranns@cisco.com>
Vladimir Kropylev [Wed, 26 Jun 2019 09:56:21 +0000 (12:56 +0300)]
tcp: Setup initial CWND as configured
Type: feature
Change-Id: I7f476f4f81994c9c6cc2e8091de08adff4bcbc77
Signed-off-by: Vladimir Kropylev <vladimir.kropylev@enea.com>
Florin Coras [Thu, 27 Jun 2019 17:32:27 +0000 (10:32 -0700)]
sctp: add option to enable/disable
Type: feature
By default sctp is disabled to avoid wasting cycles.
Change-Id: I1e2f764c7168b5c15062efbe5895de93dcc2614e
Signed-off-by: Florin Coras <fcoras@cisco.com>
Aloys Augustin [Fri, 21 Jun 2019 15:04:29 +0000 (17:04 +0200)]
tests: pin python dependencies
This commit ensures that the tests always run with the exact same
version for all the Python dependencies. It uses pip-tools to achieve
that.
Our top-level dependencies are specified in the requirements.txt file.
From this file, pip-tools generates the requirements-{2,3}.txt file,
which pins all the versions of all the recursive dependencies, and is
used to install the packages in the test virtualenv.
To change or add a top-level dependency, update requirements.txt and run
make test as usual with python2 and python3. The requirements-{2,3}.txt
file will be updated and you can verify that nothing breaks. Then add
all requirements* files in your commit.
To refresh the python packages (i.e. get new versions of the recursive
dependencies, or of the dependencies that are not pinned in
requirements.txt), just run:
PYTHON=python2.7 make test-refresh-deps
PYTHON=python3.6 make test-refresh-deps
and this will update the requirements-{2,3}.txt files. Ideally we
should run this after each release.
Type: make
Change-Id: Ic533de3d06ec4019ff38f5231208da6f1025bfc7
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Nathan Skrzypczak [Wed, 19 Jun 2019 11:42:37 +0000 (13:42 +0200)]
session: Add transport vft protocol options
Type: refactor
Change-Id: I4e0afc206e4871596c2ed8a6ca00914a379f1526
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>