Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stable/1810 #8

Open
wants to merge 70 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
9039574
Update .gitreview for stable 18.10 branch
mvarlese Oct 10, 2018
5551e41
Fix vpp-ext-deps package version in stable branch
dmarion Oct 11, 2018
376414f
vnet: complete the fix for l3_hdr_offset calculation for single loop …
ayourtch Oct 10, 2018
7212e61
acl-plugin: reduce the syslog level for debug messages (VPP-1443)
ayourtch Oct 10, 2018
33f276e
NAT44: identity NAT fix (VPP-1441)
matfabia Oct 11, 2018
713322b
Integer underflow and out-of-bounds read (VPP-1442)
Oct 10, 2018
0d222f8
Stats: Include stat_segment.h in packages.
otroan Oct 11, 2018
1257609
bfd:fix handling session creation batch
Oct 11, 2018
9864f87
vmxnet3: better error handling [VPP-1449]
Oct 10, 2018
9a5f9c9
L2-flood: no clone for 1 replication
Oct 2, 2018
02a60e0
session: don't wait indefinitely for apps to consume evts (VPP-1454)
florincoras Oct 12, 2018
7955393
vcl: fix empty epoll returns (VPP-1453)
florincoras Oct 12, 2018
6a86ca9
vxlan:fix ip6 tunnel deletion
Oct 14, 2018
051984c
VPP-1448: Fix error when recurse on down the trie.
Oct 11, 2018
3d29e83
vmxnet3: vmxnet3_test_plugin.so: undefined symbol: format_vlib_pci_ad…
Oct 15, 2018
347c523
vmxnet3: show vmxnet3 with filtering capability [VPP-1452]
Oct 12, 2018
d6a0d0e
vcl: fix bidirectional tests (VPP-1455)
florincoras Oct 13, 2018
84112dd
acl-plugin: tuplemerge: refresh the pointer to hash-readied ACL entri…
ayourtch Oct 16, 2018
7d76878
tls: fix multi threaded medium scale test (VPP-1457)
florincoras Oct 16, 2018
b3aff92
VPP-1459:Ip4 lookup fail when exist prefix cover.
Oct 17, 2018
f1a1a4d
tcp: avoid sack processing when not needed (VPP-1460)
florincoras Oct 17, 2018
44c6ca6
Update to doxygen documentation for release 18.10
mvarlese Oct 17, 2018
44c6e1d
fix ip6 prefix check for tap_v2
Oct 17, 2018
0d87894
vxlan:decap caching error (VPP-1462)
Oct 17, 2018
c10c73f
tcp: fix multiple fin retries (VPP-1461)
florincoras Oct 17, 2018
dc532e4
tcp: fix cleanup of non established connections (VPP-1463)
florincoras Oct 17, 2018
e1fe33d
Update version (18.10) for API changes script
mvarlese Oct 18, 2018
703ee73
tcp: fix sacks lost bytes counting (VPP-1465)
florincoras Oct 18, 2018
9a1e6ea
tls: fix connection failures/interrupts at scale (VPP-1464)
florincoras Oct 17, 2018
23064dd
Test FW: Use unittest temp dir as unix runtime dir
Oct 9, 2018
79e4bc2
NAT44: fix ICMP virtual fragmentation reassembly (VPP-1466)
matfabia Oct 19, 2018
c8f3638
tcp: count first lost hole (VPP-1465)
florincoras Oct 20, 2018
6a7103d
lisp-gpe: register udp port only if enabled (VPP-1468)
florincoras Oct 21, 2018
9734c0a
stats: Add wrapper for vec_free
otroan Oct 22, 2018
78d828e
Fix buffer overflow when fragmenting packets (VPP-1383)
juslo Oct 16, 2018
3a9a6f7
Release Notes for 18.10
mvarlese Oct 18, 2018
64c5a5c
vmxnet3: add logging support to the control plane [VPP-1470]
Oct 23, 2018
975b4b1
Makefile: support both RHEL and CentOS in install-dep (VPP-1481)
yicwang Oct 31, 2018
c92341d
Use throttle_t for ND throttling (VPP-1480)
Aug 31, 2018
d23f37e
vlib: define minimum chained buffer segment size
dmarion Oct 31, 2018
12806a3
VPP-1450: binary api call for dumping SPD to interface registration
Nov 2, 2018
06eaab0
NAT44: fix undesired dependency between static mapping and address fr…
matfabia Nov 7, 2018
6ff8790
NAT44: fix bug in TCP close with output-feature interface (VPP-1493)
matfabia Nov 16, 2018
45ed202
NAT44: fix virtual fragmentation reassembly in forwarding mode (VPP-1…
matfabia Nov 20, 2018
1d403ab
NAT44: Apply transitory timeout on TCP RST (VPP-1494)
matfabia Nov 21, 2018
9e182dc
acl-plugin: optimize hash memory usage + fix the startup config parsi…
ayourtch Nov 21, 2018
0858497
NAT44: improve expired sessions reuse (VPP-1503)
matfabia Nov 22, 2018
277681e
acl-plugin: fix coverity error that the fix related for [VPP-1502] ha…
ayourtch Nov 23, 2018
00adcce
Fix permission for vpp_papi
Nov 23, 2018
ad5f2de
IPSEC-AH: fix packet drop
Nov 30, 2018
c90a2aa
MPLS: buffer over-run with incorrectly init'd vector. fix VAT dump
Dec 4, 2018
e351f35
Add UDP encap flag
ftehlar Nov 30, 2018
4d1f956
Delete shared memory segment files when vpp starts
Nov 30, 2018
5567042
ip4_rewrite_inline: fix variable error
ZhiyongYang2020 Dec 13, 2018
a8e3001
Fix vat dependencies
jlinkes Dec 4, 2018
69a9fc0
install-dep: force osleap boost dep install
florincoras Dec 27, 2018
9858d37
virtio: fix kick race issue [VPP-1489]
dmarion Dec 20, 2018
13f5dcf
bond: packet drops on VPP bond interface [VPP-1544]
Jan 17, 2019
a867edf
vhost: VPP stalls with vhost performing control plane actions
Feb 1, 2019
1dd1a77
reassembly fixes merged into one for stable/18.10.
otroan Feb 28, 2019
ca561df
VPP-1529: check hop-by-hop header length
Dec 12, 2018
3d09e99
1810 version of VPP-1573 fix crash in ip6 reassembly
otroan Mar 1, 2019
a000570
Makefile: correct opensuse 15.0 dep naming
Snergster Feb 19, 2019
0f86765
Fix 'show interface span' field length
imichail Jan 11, 2019
43e7d25
assign flood_class to vnet_sw_interface_t template in subif api handl…
Mar 7, 2019
a6562a2
FIB: path parsing, table-id not fib-index (VPP-1586)
Mar 11, 2019
fe18c80
FIB: pass a copy the walk context
Feb 14, 2019
1161dda
SPAN: Add pending frame on current thread, not on main
imichail Mar 30, 2019
c2f8265
VPP-1477: Replace DatatypeConverter.printHexBinary with bytesToHex
Nov 14, 2018
cce845e
mp_safe SW_INTERFACE_DUMP, SW_INTERFACE_DETAILS, SW_INTERFACE_TAG_ADD…
Apr 25, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitreview
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/1810
19 changes: 11 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -131,22 +131,21 @@ RPM_SUSE_PLATFORM_DEPS = distribution-release shadow rpm-build

ifeq ($(OS_ID),opensuse)
ifeq ($(SUSE_NAME),Tumbleweed)
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc
RPM_SUSE_DEVEL_DEPS = libboost_headers1_68_0-devel-1.68.0 libboost_thread1_68_0-devel-1.68.0 gcc
RPM_SUSE_PYTHON_DEPS += python2-ply python2-virtualenv
endif
ifeq ($(SUSE_ID),15.0)
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc6
RPM_SUSE_PYTHON_DEPS += python2-ply python2-virtualenv
else
RPM_SUSE_DEVEL_DEPS += boost_1_61-devel gcc6
RPM_SUSE_DEVEL_DEPS += libboost_headers1_68_0-devel-1.68.0 gcc6
RPM_SUSE_PYTHON_DEPS += python-virtualenv
endif
endif

ifeq ($(OS_ID),opensuse-leap)
ifeq ($(SUSE_ID),15.0)
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc6
RPM_SUSE_PYTHON_DEPS += python2-ply python2-virtualenv
RPM_SUSE_DEVEL_DEPS = libboost_headers-devel libboost_thread-devel gcc
RPM_SUSE_PYTHON_DEPS += python3-ply python2-virtualenv
endif
endif

Expand Down Expand Up @@ -296,21 +295,25 @@ endif
@sudo -E apt-get update
@sudo -E apt-get $(APT_ARGS) $(CONFIRM) $(FORCE) install $(DEB_DEPENDS)
else ifneq ("$(wildcard /etc/redhat-release)","")
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
ifeq ($(OS_ID),rhel)
@sudo -E yum-config-manager --enable rhel-server-rhscl-7-rpms
else ifeq ($(OS_ID),centos)
@sudo -E yum install $(CONFIRM) centos-release-scl-rh
endif
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@sudo -E yum install $(CONFIRM) $(RPM_DEPENDS)
@sudo -E debuginfo-install $(CONFIRM) glibc openssl-libs mbedtls-devel zlib
else ifeq ($(filter opensuse-tumbleweed,$(OS_ID)),$(OS_ID))
@sudo -E zypper refresh
@sudo -E zypper install -y $(RPM_SUSE_DEPENDS)
else ifeq ($(filter opensuse-leap,$(OS_ID)),$(OS_ID))
@sudo -E zypper refresh
@sudo -E zypper install -y $(RPM_SUSE_DEPENDS)
@sudo -E zypper install -y $(RPM_SUSE_DEPENDS)
else ifeq ($(filter opensuse,$(OS_ID)),$(OS_ID))
@sudo -E zypper refresh
@sudo -E zypper install -y $(RPM_SUSE_DEPENDS)
else
$(error "This option currently works only on Ubuntu, Debian, Centos or openSUSE systems")
$(error "This option currently works only on Ubuntu, Debian, RHEL, CentOS or openSUSE systems")
endif

define make
Expand Down
316 changes: 316 additions & 0 deletions RELEASE.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion build-root/deb/debian/vpp.service
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ After=network.target

[Service]
Type=simple
ExecStartPre=-/bin/rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api
ExecStartPre=-/sbin/modprobe uio_pci_generic
ExecStart=/usr/bin/vpp -c /etc/vpp/startup.conf
ExecStopPost=/bin/rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api
Expand Down
3 changes: 1 addition & 2 deletions build-root/deb/debian/vpp.upstart
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
description "vector packet processing engine"
author "Cisco Systems, Inc <listname@cisco.com>"
author "Cisco Systems, Inc <vpp-dev@lists.fd.io>"

manual

respawn

pre-start script
rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api || true
# should be there via dkms, but if not, start anyway
modprobe uio_pci_generic || true
end script
Expand Down
2 changes: 1 addition & 1 deletion build/external/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ MAKE_ARGS ?= -j
BUILD_DIR ?= $(CURDIR)/_build
INSTALL_DIR ?= $(CURDIR)/_install
PKG_VERSION ?= $(shell git describe --abbrev=0 | cut -d- -f1 | cut -dv -f2)
PKG_SUFFIX ?= $(shell git log --oneline $$(git describe --abbrev=0).. . | wc -l)
PKG_SUFFIX ?= $(shell git log --oneline v$(PKG_VERSION)-rc0.. . | wc -l)
JOBS := $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo),\
$(shell grep -c ^processor /proc/cpuinfo), 2)

Expand Down
2 changes: 2 additions & 0 deletions doxygen/test_framework_doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ Test Framework Documentation {#test_framework_doc}
PyDoc generated documentation for the "make test" framework is available for
the following releases:

- [Test framework documentation for VPP 18.10](https://docs.fd.io/vpp/18.10/vpp_make_test/html)
- [Test framework documentation for VPP 18.07](https://docs.fd.io/vpp/18.07/vpp_make_test/html)
- [Test framework documentation for VPP 18.04](https://docs.fd.io/vpp/18.04/vpp_make_test/html)
- [Test framework documentation for VPP 18.01](https://docs.fd.io/vpp/18.01/vpp_make_test/html)
- [Test framework documentation for VPP 17.10](https://docs.fd.io/vpp/17.10/vpp_make_test/html)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import io.fd.vpp.jvpp.core.dto.InputAclSetInterface;
import io.fd.vpp.jvpp.core.dto.InputAclSetInterfaceReply;
import io.fd.vpp.jvpp.core.future.FutureJVppCoreFacade;
import javax.xml.bind.DatatypeConverter;

/**
* <p>Tests L2 ACL creation and read.<br> Equivalent to the following vppctl commands:<br>
Expand All @@ -50,6 +49,8 @@
public class L2AclExample {

private static final int LOCAL0_IFACE_ID = 0;
private static final char[] hexArray = "0123456789ABCDEF".toCharArray();


private static ClassifyAddDelTable createClassifyTable() {
ClassifyAddDelTable request = new ClassifyAddDelTable();
Expand All @@ -67,6 +68,16 @@ private static ClassifyAddDelTable createClassifyTable() {
return request;
}

private static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for ( int j = 0; j < bytes.length; j++ ) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}

private static ClassifyTableInfo createClassifyTableInfoRequest(final int tableId) {
ClassifyTableInfo request = new ClassifyTableInfo();
request.tableId = tableId;
Expand Down Expand Up @@ -120,7 +131,7 @@ private static void print(ClassifyTableIdsReply reply) {
private static void print(final ClassifyTableInfoReply reply) {
System.out.println(reply);
if (reply != null) {
System.out.println("Mask hex: " + DatatypeConverter.printHexBinary(reply.mask));
System.out.println("Mask hex: " + bytesToHex(reply.mask));
}
}

Expand All @@ -132,7 +143,7 @@ private static void print(final ClassifySessionDetailsReplyDump reply) {
System.out.println(reply);
reply.classifySessionDetails.forEach(detail -> {
System.out.println(detail);
System.out.println("Match hex: " + DatatypeConverter.printHexBinary(detail.match));
System.out.println("Match hex: " + bytesToHex(detail.match));
});
}

Expand Down
2 changes: 1 addition & 1 deletion extras/rpm/vpp.spec
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ fi
/usr/share/java/*

%files api-python
%defattr(644,root,root)
%defattr(644,root,root,755)
%{python2_sitelib}/vpp_*

%files selinux-policy
Expand Down
4 changes: 2 additions & 2 deletions extras/scripts/list_api_changes.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env python
import os, fnmatch, subprocess

starttag = 'v18.07-rc0'
endtag = 'v18.07'
starttag = 'v18.10-rc0'
endtag = 'v18.10'
emit_md = True
apifiles = []

Expand Down
16 changes: 10 additions & 6 deletions src/plugins/acl/acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -4091,12 +4091,12 @@ acl_plugin_config (vlib_main_t * vm, unformat_input_t * input)
{
acl_main_t *am = &acl_main;
u32 conn_table_hash_buckets;
u32 conn_table_hash_memory_size;
uword conn_table_hash_memory_size;
u32 conn_table_max_entries;
uword main_heap_size;
uword hash_heap_size;
u32 hash_lookup_hash_buckets;
u32 hash_lookup_hash_memory;
uword hash_lookup_hash_memory;
u32 reclassify_sessions;
u32 use_tuple_merge;
u32 tuple_merge_split_threshold;
Expand All @@ -4106,8 +4106,10 @@ acl_plugin_config (vlib_main_t * vm, unformat_input_t * input)
if (unformat
(input, "connection hash buckets %d", &conn_table_hash_buckets))
am->fa_conn_table_hash_num_buckets = conn_table_hash_buckets;
else if (unformat (input, "connection hash memory %d",
&conn_table_hash_memory_size))
else
if (unformat
(input, "connection hash memory %U", unformat_memory_size,
&conn_table_hash_memory_size))
am->fa_conn_table_hash_memory_size = conn_table_hash_memory_size;
else if (unformat (input, "connection count max %d",
&conn_table_max_entries))
Expand All @@ -4125,8 +4127,10 @@ acl_plugin_config (vlib_main_t * vm, unformat_input_t * input)
else if (unformat (input, "hash lookup hash buckets %d",
&hash_lookup_hash_buckets))
am->hash_lookup_hash_buckets = hash_lookup_hash_buckets;
else if (unformat (input, "hash lookup hash memory %d",
&hash_lookup_hash_memory))
else
if (unformat
(input, "hash lookup hash memory %U", unformat_memory_size,
&hash_lookup_hash_memory))
am->hash_lookup_hash_memory = hash_lookup_hash_memory;
else if (unformat (input, "use tuple merge %d", &use_tuple_merge))
am->use_tuple_merge = use_tuple_merge;
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/acl/acl.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ typedef struct {
hash_acl_info_t *hash_acl_infos; /* corresponding hash matching housekeeping info */
clib_bihash_48_8_t acl_lookup_hash; /* ACL lookup hash table. */
u32 hash_lookup_hash_buckets;
u32 hash_lookup_hash_memory;
uword hash_lookup_hash_memory;

/* mheap to hold all the miscellaneous allocations related to hash-based lookups */
void *hash_lookup_mheap;
Expand Down
28 changes: 28 additions & 0 deletions src/plugins/acl/hash_lookup.c
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,17 @@ hash_acl_set_heap(acl_main_t *am)
clib_error("ACL plugin failed to allocate lookup heap of %U bytes",
format_memory_size, am->hash_lookup_mheap_size);
}
#if USE_DLMALLOC != 0
/*
* DLMALLOC is being "helpful" in that it ignores the heap size parameter
* by default and tries to allocate the larger amount of memory.
*
* Pin the heap so this does not happen and if we run out of memory
* in this heap, we will bail out with "out of memory", rather than
* an obscure error sometime later.
*/
mspace_disable_expand(am->hash_lookup_mheap);
#endif
}
void *oldheap = clib_mem_set_heap(am->hash_lookup_mheap);
return oldheap;
Expand Down Expand Up @@ -736,6 +747,14 @@ hash_acl_apply(acl_main_t *am, u32 lc_index, int acl_index, u32 acl_position)


vec_validate(am->hash_applied_mask_info_vec_by_lc_index, lc_index);

/* since we know (in case of no split) how much we expand, preallocate that space */
if (vec_len(ha->rules) > 0) {
int old_vec_len = vec_len(*applied_hash_aces);
vec_validate((*applied_hash_aces), old_vec_len + vec_len(ha->rules) - 1);
_vec_len((*applied_hash_aces)) = old_vec_len;
}

/* add the rules from the ACL to the hash table for lookup and append to the vector*/
for(i=0; i < vec_len(ha->rules); i++) {
/*
Expand Down Expand Up @@ -1171,6 +1190,13 @@ void hash_acl_add(acl_main_t *am, int acl_index)

/* walk the newly added ACL entries and ensure that for each of them there
is a mask type, increment a reference count for that mask type */

/* avoid small requests by preallocating the entire vector before running the additions */
if (a->count > 0) {
vec_validate(ha->rules, a->count-1);
vec_reset_length(ha->rules);
}

for(i=0; i < a->count; i++) {
hash_ace_info_t ace_info;
fa_5tuple_t mask;
Expand Down Expand Up @@ -1487,6 +1513,8 @@ split_partition(acl_main_t *am, u32 first_index,
int i=0;
u64 collisions = vec_len(pae->colliding_rules);
for(i=0; i<collisions; i++){
/* reload the hash acl info as it might be a different ACL# */
ha = vec_elt_at_index(am->hash_acl_infos, pae->acl_index);

DBG( "TM-collision: base_ace:%d (ace_mask:%d, first_collision_mask:%d)",
pae->ace_index, pae->mask_type_index, coll_mask_type_index);
Expand Down
11 changes: 6 additions & 5 deletions src/plugins/acl/sess_mgmt_node.c
Original file line number Diff line number Diff line change
Expand Up @@ -689,7 +689,7 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
}
}
}
acl_log_err
acl_log_info
("ACL_FA_CLEANER_DELETE_BY_SW_IF_INDEX bitmap: %U, clear_all: %u",
format_bitmap_hex, clear_sw_if_index_bitmap, clear_all);
vec_foreach (pw0, am->per_worker_data)
Expand Down Expand Up @@ -727,7 +727,7 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
pw0->pending_clear_sw_if_index_bitmap =
clib_bitmap_dup (clear_sw_if_index_bitmap);
}
acl_log_err
acl_log_info
("ACL_FA_CLEANER: thread %u, pending clear bitmap: %U",
(am->per_worker_data - pw0), format_bitmap_hex,
pw0->pending_clear_sw_if_index_bitmap);
Expand All @@ -738,8 +738,9 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
send_interrupts_to_workers (vm, am);

/* now wait till they all complete */
acl_log_err ("CLEANER mains len: %u per-worker len: %d",
vec_len (vlib_mains), vec_len (am->per_worker_data));
acl_log_info ("CLEANER mains len: %u per-worker len: %d",
vec_len (vlib_mains),
vec_len (am->per_worker_data));
vec_foreach (pw0, am->per_worker_data)
{
CLIB_MEMORY_BARRIER ();
Expand All @@ -758,7 +759,7 @@ acl_fa_session_cleaner_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
}
}
}
acl_log_err ("ACL_FA_NODE_CLEAN: cleaning done");
acl_log_info ("ACL_FA_NODE_CLEAN: cleaning done");
clib_bitmap_free (clear_sw_if_index_bitmap);
}
am->fa_cleaner_cnt_delete_by_sw_index_ok++;
Expand Down
Loading