9556 Commits

Author SHA1 Message Date
Damjan Marion
8c1afb56b6 misc: deprecate VOM
Type: make
Change-Id: Ifb3e52af93d24fcc2f2e6a0c408e16902a2fe553
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-16 15:33:18 +02:00
Damjan Marion
fbe4e36b99 acl: do vlib_buffer_enqueue_to_next in outer function
Improves compilation time and reduces object file size for 1MB

Type: improvement
Change-Id: Ibe4840c0ced22070248d93822ea61afe20aff65c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-16 12:33:46 +00:00
Eric Kinzie
609d579ed2 ipsec: fix instance, and cli del for new ipsec interface
- use user instance number in interface name

Restore the behavior of previous versions where the IPsec tunnel
interface name contained the value of the user-provided instance number.
For example, a command similar to

	create ipsec tunnel local-ip . . . instance 5

would result in the creation of interface "ipsec5".

- ipsec: delete tunnel protection when asked

The "ipsec tunnel protect" command will parse a "del" argument but does
not undo the tunnel protection, leaving the SAs hanging around with
reference counts that were incremented by a previous invocation of the
command. Allow the tunnel protection to be deleted and also update the
help text to indicate that deletion is an option.

- test: ipsec: add test for ipsec interface instance

Also cleanup (unconfig) after TestIpsecItf4 NULL algo test.

Type: fix
Fixes: dd4ccf2623b5 ("ipsec: Dedicated IPSec interface type")
Signed-off-by: Eric Kinzie <ekinzie@labn.net>
Signed-off-by: Christian Hopps <chopps@labn.net>
Change-Id: Idb59ceafa0633040344473c9942b6536e3d941ce
2020-10-16 12:32:31 +00:00
Damjan Marion
c1b94c8353 misc: bump debian compatibility level to 10
Level 9 is deprecated in new ubuntu release.

Type: improvement
Change-Id: I9376b5f7a1aa0860e35475c5d32f3626257d2f01
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-16 11:38:46 +00:00
Dengfeng Liu
8c292338b7 nat: error in input parameter of init_nat_k
Type: fix
Signed-off-by: Dengfeng Liu <liudf0716@gmail.com>
Change-Id: I3e7ee771d0cf5b7b1b9fbbc833776d523dfa9f09
2020-10-16 10:44:16 +00:00
Chuan Han
6414674061 build: Add missing debian dependencies
Otherwise, vpp install will fail.

Type: improvement

Signed-off-by: Chuan Han <chuan.han.comm@gmail.com>
Change-Id: Ifb4d7b8f6fb7b333b8205ba6b424176f8554cfdc
2020-10-16 09:40:43 +00:00
Dave Barach
500ba9fcc5 vlib: add cgo-friendly plugin registration support
Allows us to declare plugin registrations in a non-disgusting way:

var plugin_reg = vpp.PluginRegistration{
        Description: "The CGO plugin",
        Version:     "My Version",
        Overrides:   "sample_plugin.so",
}

It turns out that the specific compiler setup generates (.data section
offset, length) pairs in the .vlib_plugin_r2 section:

Contents of section .vlib_plugin_r2:
 1ba9d0 00000000 00000000 50a81800 00000000  ........P.......
 1ba9e0 0a000000 00000000 00000000 00000000  ................
 1ba9f0 00000000 00000000 00000000 00000000  ................
 1baa00 00000000 00000000 00000000 00000000  ................
 1baa10 00000000 00000000 70a81800 00000000  ........p.......
 1baa20 0e000000 00000000                    ........

Contents of section .data:
 18a800 00a81800 00000000 00000000 00000000  ................
 18a810 00000000 00000000 00000000 00000000  ................
 18a820 00000000 00000000 00000000 00000000  ................
 18a830 00000000 00000000 00000000 00000000  ................
 18a840 00000000 00000000 14000000 00000000  ................
 18a850 4d792056 65727369 6f6e0000 00000000  My Version......
 18a860 00000000 00000000 14000000 00000000  ................
 18a870 54686520 45474f20 706c7567 696e0000  The CGO plugin..
 18a880 00000000 00000000 0c000000 00000000  ................
 <etc>

Unfortunately, it seems impossible to torture clang / gcc into
producing anything like this. This patch fabricates a plausible
vlib_plugin_registration_t from the so-called vlib_plugin_r2_t.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I8c0c5a24f3b7bfea07d5181a7250b3d9685e8446
2020-10-15 17:08:23 -04:00
Aloys Augustin
2a65804259 build: forward dependencies to arch-specific libs
Without this, if a multiarch source depends on a generated api header
for instance, the build would be racy between the api header generation
and the multiarch object compilation.

Type: improvement
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Change-Id: I08fcd0e5a1c51398ac1a8f37cf6562064b400d4a
2020-10-15 19:41:45 +00:00
Ivan Shvedunov
7286943e7e ethernet: fix Ethernet DMAC checks
Type: fix

Due to confusion between ethernet flags and hw interface flags, DMAC
filtering was not happening, most of the time.

Signed-off-by: Ivan Shvedunov <ivan4th@gmail.com>
Change-Id: I95209e1ea0f95f9be0b1a82ec9fcbc80955428d2
2020-10-15 19:36:08 +00:00
Florin Coras
c127d5ad0a vcl: refactor session state enum
Only allow one state instead of using flags.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I08ffccbf8c3f6e2f61533996bb36c799cbc931e7
2020-10-15 16:59:55 +00:00
Andrew Yourtchenko
e8346c8fd4 misc: 20.09 Release Notes
Type: docs
Change-Id: I1b12f1d14a1a68504767c01ceac0eed115fb7ba6
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
(cherry picked from commit 3c5414029bb432e51820e39e86f26fd6b39c6447)
2020-10-15 15:37:48 +00:00
PiotrX Kleski
9235d43d23 crypto: fixed ipsec_mb lib dependencies
Type: fix

This patch re-enables libIPSec_MB build for the ipsecmb crypto engine
plugin.

Also since DPDK meson build relies on system installed libIPSec_MB.so
that may be inconsistent with VPP compiled one (system installed
version vs VPP locally compiled version for example), this patch also
disables all libIPSec_MB dependant PMDs from DPDK build.

Also ipsec-mb version is incresed to 0.54.

Signed-off-by: PiotrX Kleski <piotrx.kleski@intel.com>
Reviewed-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I2ff9e7cd0c35cff9fa642895301a26a5350ea94e
2020-10-14 17:38:16 +00:00
Neale Ranns
444e800f42 mpls: no per-MPLS-tunnel tx node
Type: improvement

do not add a per-MPLS tunnel tx node. per-tunnl nodes limit the number
of tunnels that can be created to the number o fnodes that can be
created (64k).
improve the tx node.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I6016f05e809c6c64a0b098a101b28c9dd47824b3
2020-10-14 17:34:52 +00:00
Vladimir Isaev
238d3844b2 nat: Fix ICMP bypass session creation
After get_icmp_o2i_ed_key() bihash key may include
IP protocol and addresses from inner ICMP packet.

It is OK for session lookup, but we should not create
a session on ICMP error message receiving.

Type: fix

Signed-off-by: Vladimir Isaev <visaev@netgate.com>
Change-Id: Ic93272ebe90d2288a975265439f9e079eb28936a
2020-10-14 14:11:19 +00:00
Nathan Skrzypczak
41b5ed63c2 cnat: Fix backend LB
Type: fix

Change-Id: I4ea263270bcc38e505e88d512acacef7439f3823
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2020-10-14 13:33:35 +00:00
Dave Wallace
858856df16 build: add missing dnf-plugins-core package on centos-8
Type: fix

Change-Id: I1a4d9a7a8089cbf488dcd6f09eec6b4e0d0d72fe
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2020-10-14 13:30:58 +00:00
Florin Coras
8cf1f93820 vlib: avoid clipping in show error
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia884d745a11565918c7bf89435ceb0e17b6aef59
2020-10-14 09:20:59 +00:00
fanyf
a49d59dfe9 vcl: set STATE_UPDATED state when connect with non-blocking socket!
State set to STATE_UPDATED to ensure the session is not assumed to be open and to also allow the app to close it prior to vpp's connected reply!

Type: fix

Signed-off-by: fanyf <fanyufei521@outlook.com>
Change-Id: I7a6d0914599cb9296d112205dac725ecd11a5d0f
2020-10-14 05:54:08 +00:00
jiangxiaoming
b438c763a1 vcl: app_name format type error
Type: fix
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: I9f017ec84320ebc56f557385d73893ecf8f25bcd
2020-10-14 01:15:48 +00:00
Florin Coras
3e2ec42a07 tcp: fix bt acked_sacked on recovery
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2e2d76661fbb07dd8c6afa3583bb18e01b7a7fb6
2020-10-13 17:38:10 +00:00
Florin Coras
91413ace3e session: listeners verbose format alignment
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic8e98d7372af3bfde36bface49f9b90de5f3c64b
2020-10-13 17:37:45 +00:00
Florin Coras
927eee410d svm: fix coverity warning
Type: fix

Change-Id: I6c6255e66dd4cd0e4174b2a1658a3b8be40f0f7a
Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-10-13 16:50:37 +00:00
Florin Coras
d1b423c924 tcp: fix listener trace coverity warning
Type: fix

Change-Id: I75c0bd862260e188f625271c3bd545a7ab37af5d
Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-10-13 16:50:15 +00:00
Florin Coras
aae177e002 session: allow custom config of segment baseva
Type: improvement

Change-Id: If9ea09d652c228004492cf47854a7f6c1f8b3bc2
Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-10-13 16:49:56 +00:00
Ole Troan
148c7b7687 stats: counters data model
This adds a new data model for counters.
Specifying the errors severity and unit.
A later patch will update vpp_get_stats to take advantage of this.
Only the map plugin is updates as an example.

New .api language:
A new "counters" keyword to define counter sets.

counters map {
  none {
    severity info;
    type counter64;
    units "packets";
    description "valid MAP packets";
  };
  bad_protocol {
    severity error;
    type counter64;
    units "packets";
    description "bad protocol";
  };
};

Each counter has 4 keywords. severity, which is one of error, info or warn.
A type, which is one of counter64 or gauge64.
units, which is a text field using units from YANG.

paths {
  "/err/ip4-map" "map";
  "/err/ip6-map" "map";
  "/err/ip4-t-map" "map";
  "/err/ip6-t-map" "map";
};

A new paths keyword that maps the counter-set to a path in the stats segment KV store.

Updated VPP CLI to include severity so user can see error counter severity.
DBGvpp# show errors
   Count               Node                    Reason        Severity
        13        ethernet-input              no error         error

Type: feature
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ib2177543f49d4c3aef4d7fa72476cff2068f7771
Signed-off-by: Ole Troan <ot@cisco.com>
2020-10-13 11:42:58 +00:00
Filip Tehlar
e7c8396982 ikev2: fix initial contact cleanup
When looking for existing SA connection to clean up search all per
thread data, not only current one.

Type: fix

Change-Id: I59312e08a07ca1f474b6389999e59320c5128e7d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2020-10-13 09:56:55 +00:00
Filip Tehlar
dc6378f71b ikev2: fix coverity warning
Type: fix

Change-Id: Iee96b3ea3e71ec248c3c3c98d153a08372b5faf0
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2020-10-13 09:49:57 +00:00
Filip Tehlar
623d87fd39 ikev2: fix memory leak in auth routine
Type: fix

Change-Id: I93529b069925fcef32cdb22e27975b802b4c3b97
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2020-10-13 09:48:41 +00:00
Matthew Smith
3a97a456ab l2: mark l2 fib uninitialized after clearing
Type: fix

After clearing the l2fib with 'vppctl clear l2fib', a SEGV occurs the
next time a MAC address is learned.

In l2fib_clear_table(), the l2fib bihash is freed and then
l2fib_table_init() is called to reinitialize it. l2fib_table_init()
will not do anything if l2fib_main.mac_table_initialized is set to 1.
Reset the value of l2fib_main.mac_table_initialized to 0 before
calling l2fib_table_init().

Change-Id: I87f1a3f9a46c951f36c1c0a5ab795b0ec08c81a8
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2020-10-12 15:34:23 -05:00
Damjan Marion
8c6988797e misc: clang-11 and gcc-10 support
clang-11 complains:

 error: field 'buffer_template' with variable sized type 'vlib_buffer_t' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]

Type: improvement
Change-Id: I2cb6b4fde723a05b42cf33dd8130df074f0362ab
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-12 16:41:49 +00:00
Neale Ranns
c96ac7648e ip: IP6 incorrectly disabled on removing first ip6 prefix
Type: fix

reference counting on the ip6 state was broken, meaning that disabling
one of serveral ip6 configs on an interface, completely ip6 disabled the
interface.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ie3af51587310ffe871ad2a9cbd927e15a3ececa9
2020-10-12 15:08:04 +00:00
Florin Coras
70edc1c487 tcp: use 100us timer resolution
Experimental reduction of tcp timer resolution from 100ms that
allows for finer grained timers, if needed. Please report
issues if any encountered.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4050f7691aa7365b77298b4427408a4a447834fa
2020-10-12 15:05:14 +00:00
Florin Coras
d1cc38d5ad vcl svm: segments improvements
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I717c64666972bb4e440cb3d1180a5cb26ee25577
2020-10-12 15:03:01 +00:00
Florin Coras
355791c13f tcp: fix connection reuse with no listener
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I674872f68406ac778779a68d3ad991f41765d4e2
2020-10-12 15:02:41 +00:00
Vladimir Isaev
d3252adce2 nat: set fib index for bypass session
Bihash key already contains rx_fib_index for lookup
but fib value for session itself is set to 0.

In the result bihash is allocated with key with fib index
set, but free function is looking for key with fib index set
to zero. It leads to use-after-free because session itself is
removed from pool but bihash is not because of key mismatch.

Type: fix

Signed-off-by: Vladimir Isaev <visaev@netgate.com>
Change-Id: I8ac5a41b0a5a32b1baab9e9d757141d5b24b7798
2020-10-12 15:00:04 +00:00
Dmitry Vakhrushev
41bda04487 lldp: fix typo in mac address constant
Type: fix
Fixes: 149fd3fbd069a5f7be86e68472578ee7af229cb6
Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
Change-Id: I06956f3ed3689172c3682d6b707991613255cabd
2020-10-12 14:32:17 +00:00
Dmitry Vakhrushev
decf51a86a lldp: fix memory leakage
1. Typo in usage of vnet_hw_interface_add_del_mac_address(),
   which returns 0 when it succeeds instead non zero value.

2. Generated error doesn't clean allocated resources for
   an interface.

3. Returned value from vnet_hw_interface_add_del_mac_address()
   should be erased or reported.

Type: fix
Fixes: 149fd3fbd069a5f7be86e68472578ee7af229cb6

Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
Change-Id: Ia6b28ae70fea127d15eb0102223ff972358766bc
Signed-off-by: Dmitry Vakhrushev <dmitry@netgate.com>
2020-10-12 14:04:34 +03:00
jiangxiaoming
6b410e6d7c session: app_name should format with %v
Type: fix
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ib096ad14e6ddbaff52429a416ea4d245703a368d
2020-10-10 18:36:58 +00:00
jiangxiaoming
c9e9b976d4 misc: clib_unix_warning usage error
Type: fix
Signed-off-by: jiangxiaoming <jiangxiaoming@outlook.com>
Change-Id: Ibc4e961388d0976b55b9b936d6a37d36cddab5fe
2020-10-10 17:32:11 +08:00
Damjan Marion
1ab533cba2 avf: add add_del_mac_address handler
Type: improvement
Change-Id: I4d0b1cd87cf2f58a653f40a300da4b7a43348a06
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-09 19:27:24 +00:00
Damjan Marion
952056ce74 acl: move nonip nodes to separate file
Type: refactor
Change-Id: Idcef8effa86d6421e4b3e5f747695ddb2982e78f
Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-09 17:45:18 +00:00
Dave Barach
6754a16ca3 wireguard: park the timer process
Until the feature is configured. It would make sense to push more of
the feature init code into the newly-added wg_feature_init()
function. This patch fixes a severe hemorrhoid.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I87095575363baa41407dd52492159a7b8c2899e7
2020-10-09 17:20:28 +00:00
Dave Barach
695eb9353d vlib: save signal handler data to global vbls
Turns out that clang is a bit too enthusiastic about mapping static
variables to registers, which makes it hard to extract (especially)
the faulting VA from an optimized core file.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I836e5d9695aeb4c5ee4a27f9565acf08ee4eaac0
2020-10-09 16:52:13 +00:00
Filip Varga
dd9eae5c29 nat: ipfix logging separation & refactor
Type: refactor

Change-Id: I8785e4987e4f60361072440d0c3c6954c9c12394
Signed-off-by: Filip Varga <fivarga@cisco.com>
2020-10-09 10:20:21 +00:00
Florin Coras
aa04395573 tcp: treat pending timers as active
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ic63af51fab8dbefe79439554ea563f20e3788afa
2020-10-08 22:13:36 +00:00
Florin Coras
49036a5e82 tcp: custom geometry for timer wheel
Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I04f992e5d91d21f1e5bbafef070478cfe268d94a
2020-10-08 22:13:20 +00:00
Dave Barach
1046b1a631 vppinfra: memory leak be gone
Type: fix
Fixes: ab1a50cf7407e31097b550226c2b6954d6371bea / gerrit 29272

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ic8146a66b54bb9ac6223cf984d4566554b73276d
2020-10-08 16:05:01 -04:00
Neale Ranns
0e12131f8b pg: Choose the input interface from the stream's rx
Type: fix

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I656918a417d33ec6bea30054805e03ae19c38f2d
2020-10-08 14:02:35 +00:00
Neale Ranns
533bf08cf4 gre: MPLS over GRE does not select correct fixup function
Type: fix

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: I9eff41407b0f172f2b567e6a4ea1c48be8df883a
2020-10-08 13:06:01 +00:00
Neale Ranns
0c25492eb4 l2: Fix compile error on unused next_index
Type: fix

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ifc6b4c15f6055df4f403e9cd633e31f061a6d2da
2020-10-08 10:39:07 +00:00