Commit Graph

10737 Commits

Author SHA1 Message Date
Benoît Ganne e9d7b0982d fib: make sure dpo is valid even when path pool expands
The path pool can expand during in fib_path_attached_next_hop_get_adj()
when calling adj_nbr_add_or_lock(). If dpo points to a path->fp_dpo, its
reference becomes stale.
Use a temporary copy instead.

Type: fix

Change-Id: Ie966cb5f3f7b416425964dca12f1f586bfc2010c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-08 18:53:01 +02:00
Benoît Ganne 9f10edbb46 fib: make sure adj is valid during walk
The adj can be deleted during fib_walk_sync(), make sure it can happen
only after clearing the SYNC_WALK_ACTIVE flag.

Type: fix

Change-Id: I68be00e9602e2783d9dced71c51547c38b7e8a00
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-08 16:44:19 +00:00
Matthew Smith 51d56bab70 ipsec: fix async crypto frame leak
Type: fix

If an async crypto frame is allocated during ESP encrypt/decrypt but
a buffer/op is not subsequently added to the frame, the frame leaks. It
is not submitted if the count of async ops is zero nor is it
returned to the frame pool. This happens frequently if >= 2 worker
threads are configured and a vector of buffers all have to be handed
off to other threads.

Wait until it is almost certain that the buffer will be added to the
frame before allocating the frame to make it more unlikely that an
allocated frame will not have any operations added to it.

For encrypt this is sufficient to ressolve the leak. For decrypt there
is still a chance that the buffer will fail to be added to the frame, so
remove the counter of async ops and ensure that all frames that were
allocated get either submitted or freed at the end.

Change-Id: I4778c3265359b192d8a88ab9f8c53519d46285a2
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-06-08 16:05:37 +00:00
Dave Barach 4de5f9be88 vppinfra: pool_free_elts() now supports fixed-size pools
Test added to the unittest plugin / test_vlib.py

Type: improvement
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I73445e57918347c102ff6f5e8c9ddb9bd96f1407
2021-06-08 15:23:15 +00:00
Florin Coras 0b0d28e9bf vcl: accept zero length writes
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I84985f59274e77219a38ea6ac865fc73ac635d72
2021-06-07 15:24:40 +00:00
Florin Coras 2336831806 vcl: avoid multiple reads on peek
Only try once and return what was found.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I50b1d26babf1b7431d36f6b7472a1fb01475bb35
2021-06-07 15:24:21 +00:00
Simon Zhang 778b3186fc tls: change picotls plugin crypto module to accommodate new version picotls
Type: fix

Change-Id: I58931e235535be7d596ca578790f389b64a4fbd2
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2021-06-07 15:14:30 +00:00
Neale Ranns 68d48d94a8 pg: Reduce the inclusion of pg.h
Type: style

reduce the number of files recompiled after changing pg.h from 1110 to
102.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I50611eba818eeb3a2dffd437a3c72c77766bed80
2021-06-07 07:19:00 +00:00
Florin Coras 2645f68985 vcl: epoll error handling fixes and improvements
- return VPPCOM_EEXIST if attempting to re-add a session
- return VPPCOM_ENOENT if the session to be removed is not epolled
- generate EPOLLIN if adding it through a mod operation on a session
that has data and did not have the event previously set.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I728a06b8cf84af8d8c1dea7406e284de8886dffc
2021-06-05 21:25:39 +00:00
Dave Wallace e20d3c8c00 build: fix centos-8 cmake missing package dependency
Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I199fea4607cf38a127ed31b2ddf1dd993a2462ba
2021-06-05 15:46:15 +00:00
Benoît Ganne e631ece4aa ipsec: fix crypto ops in esp decrypt
When both chained and non-chained buffers are processed in the same
vector, make sure the non-chained buffers are processed as non-chained
crypto ops.

Type: fix

Change-Id: I19fc02c25a0d5e2e8a1342e2b88bbae3fe92862f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-04 18:38:08 +00:00
pibr d838e533f1 dpdk: silence coverity warning on use of uninitialized value
Type: fix

Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Change-Id: I76923ad5035498aae821db4fd42a127617476fbb
2021-06-04 18:49:15 +02:00
Tianyu Li 0b65213475 build: fix build error after make wipe
ninja: error: '/home/vpp/src/vpp-api/vapi/fake.api.json',
needed by 'CMakeFiles/vpp-api/vapi/fake.api.vapi.h',
missing and no known rule to make it

Recent fake.api.json has been moved from test/ to src/,
update make wipe to reflect the movement.

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I1e8ef414a3f8a2fce11767e0778fe21e14d54e6f
2021-06-04 18:06:43 +08:00
jinshaohui dcd7e24037 policer: fix vnet/policer cli <policer bind [unbind] name <name> <worker>> handle
an exception

Type: fix

Signed-off-by: jinshaohui <jinsh11@chinatelecom.cn>
Change-Id: I67b7d0b52c33a5b13ace8fe2d918139d2820e9bf
2021-06-04 08:43:12 +00:00
Florin Coras 5f33d0d437 vcl: avoid updating errno on ldp init check
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I7f5887865aa29c9881b5063be1d7d42369a493c1
2021-06-03 21:47:43 +00:00
Dave Wallace 18c17cb8af build: fix install-deps on centos-8
- Required to fix CI jobs failing due to errant
  upgrade of glibc-devel which cannot be found.

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Iea5ae51de25b7ade1f75e3ce34d8383ed97f12ef
2021-06-03 17:37:27 -04:00
Florin Coras 324d161963 svm: release mem order for fifo chunk list CAS
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ifad679f46abd6e9c18a3eaf7e55800a09f3791ab
2021-06-03 17:17:43 +00:00
Florin Coras 821b5002bf session: avoid ct connects loop
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I99af136ecab9be1f9e00de6d197b8f1c74ab4b20
2021-06-03 14:25:17 +00:00
Florin Coras 67c90a32b7 session: lcl transport info on accept
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia46b0b8afed30f84b244c06f0457303f9e8832cd
2021-06-03 14:25:00 +00:00
Matthew Smith 8dd0d75b55 linux-cp: use default adjacency
Type: fix

Outbound packets from the host have an adjacency lookup performed so
buffer metadata can be filled in and output features can be applied.
If no adjacency is found for a packet, it gets dropped. This breaks
DHCP and possibly other things since the DHCP reply to a discover
request is sent to a destination MAC address that is determined by
the contents of the request packet rather than any existing neighbor
table entry.

If adjacency lookup for outbound packets does not find an entry, use
the default adjacency for the interface & address family.

Change-Id: Ia53a4df3a5bad2991768cfe4a84c560b879e656f
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-06-03 14:13:44 +00:00
Arthur de Kerhor c5e3a41bbe fib: fix flags updates when adding routes with a udp encap path
When adding a route via a udp encap instance, FIB_ENTRY_FLAG_IMPORT
should not be set. In particular, fib_route_attached_cross_table should
always return false for such paths.
Modified test_udp_encap to leverage the bug that needed to be fixed.

Type: fix
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Change-Id: Iaa9489e96d1cff09751f92c62caf7999d924fd7f
2021-06-03 14:12:54 +00:00
Arthur de Kerhor 9cfbd3b786 misc: bug fixes and improvements for stats Fuse fs
Added syslogs
Added support for symlinks
Relocated make commands in a local Makefile
Dumping stats on index instead of paths
Updated README
Added go.mod and go.sum with relevant dependencies for the module

Type: fix
Change-Id: I2c91317939b2f4d765771ab7038372ae27d3109d
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-06-03 07:25:04 +00:00
Florin Coras 2f64790c59 vcl: ldp placeholder for SO_LINGER
Make sure we don't return error if app tries to setsockopt it.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1a9a6a8da03380b0b6a6d01efed9b672a3f0b1f9
2021-06-02 15:20:52 +00:00
Florin Coras 427feb6fdd srtp: cleanup build and default to disabled
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I62fb56257445a05105e556d1ea6cc6280b5eeccc
2021-06-01 18:19:02 +00:00
Arthur de Kerhor 7aeb647c69 udp: calculate inner checksums if needed before udp encap
We do not want to encap headers containing wrong checksums.

Additionnally, this clears the checksums offlads flags, which
was something missing since the outer headers checksums were
calculated during the encap. Hence, those should not be
recalculated afterwards.

Type: fix
Change-Id: I7fd07987b4f13f76c6990a1c08dc2f960bdd8de1
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-06-01 12:03:47 +02:00
Ruslan Babayev 90f7008dc0 nat: fix broken nat44-ed cli
snat_set_frame_queue_nelts has been replaced with
nat44_ed_set_frame_queue_nelts.

Type: fix
Signed-off-by: Ruslan Babayev <ruslan@babayev.com>
Change-Id: I8d970be71376fdbb2bfd383d4d5824a8def93bb3
2021-05-31 20:23:57 -07:00
Dave Barach 64d20e76b9 interface: fix vnet_sw_interface_update_unnumbered
Unless a software interface is actually unnumbered, do not set
ip[46]_main.lookup_main.if_address_pool_index_by_sw_if_index [sw_if_index]
to ~0

Fixes this scenario:

loop create
set int state loop0 up
create sub-interface loop0 1
set interface ip addr loop0.1 192.168.1.1/24
delete sub-interface loop0.1
set int ip addr loop0 192.168.1.1/24

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I46141d862fa57d70b93d7bb0c105403708165264
2021-05-31 16:23:38 +00:00
Florin Coras 71ee375f72 tls: fix handling of failed connects
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ifbf43dd69aa07be485fe7fa01c917512e423036e
2021-05-29 19:51:58 +00:00
Arthur de Kerhor 8a6f5d394c udp: add udp decapsulation
Possibility to register a port via CLI or API to decap incoming UDP
packets:
 - For CLI, a user needs to specify the inner protocol (only MPLS
   supported for now)
 - For API, the protocol is specified by index
Added unittests

Type: feature
Change-Id: Ifedd86d8db2e355b7618472554fd67d77a13a4aa
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-05-29 18:13:01 +00:00
Florin Coras b740fdc8ff hsa: proxy listener support addition of fifo segments
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I59218f784140ef5ecb8468af6aebfe25fd7703a4
2021-05-29 16:46:03 +00:00
Florin Coras b6fe52f3da tls: fix handling of failed accepts
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I34b53dcaf4f049157b538ea40a39033d43e525a5
2021-05-28 18:48:22 -07:00
Dave Wallace 5c520919e8 svm: fix inadequate atomic load for chunk mgr
- Fixes intermittent LDP cut thru iperf3 test
  failure on AARCH64

Type: fix

Change-Id: Id21a078d642e03d974bacacd1f4d0faa42fb6652
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-05-28 16:08:09 +00:00
Damjan Marion d63360cacc build: bash set in ./configure
Type: make
Change-Id: I29dce242579d130afe031715b328d6bba73ec6dd
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-28 17:33:49 +02:00
Mohsin Kazmi 79e087fb0a gso: fix the error handling
Type: fix

Change-Id: I7ada1b780b5c40261f6b14cfadc3f382e4e39086
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-05-28 07:24:10 +00:00
Damjan Marion c0d9ca7fe1 vlib: handoff rework
Type: improvement
Change-Id: I1e199ae31e969154319e94c5cd286b8d8adc6660
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-27 20:54:20 +00:00
Damjan Marion 7cf80af582 build: kindly ask python not to polute src/
Type: make
Change-Id: I1ec82e0f3c19dee79f942996339240c73d4e380c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-27 20:53:50 +00:00
Fan Zhang 9303b10897 dpdk: bump to 21.05
Type: feature

This patch bumps DPDK version to 21.05 and updated VPP to
accomodate the changes in DPDK latest version.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: If217441f70c9ab531196dca7ec7a486ec9931cff
2021-05-27 19:38:04 +00:00
Mohsin Kazmi 005605f9b4 interface: add tx-queue cli support for new tx infra
Type: improvement

set interface tx-queue tap1 queue 2 threads 1-2
show hardware-interfaces tap1
              Name                Idx   Link  Hardware
tap1                               2     up   tap1
  Link speed: unknown
  RX Queues:
    queue thread         mode
    0     vpp_wk_1 (2)   polling
  TX Queues:
    queue shared thread(s)
    0     no     0
    1     no     1
    2     yes    1-2
    3     no     3
    4     no     4
  Ethernet address 02:fe:09:3a:48:ff
  VIRTIO interface
     instance 1

set interface tx-queue tap0 queue 4 threads
show hardware-interfaces tap0
              Name                Idx   Link  Hardware
tap0                               1     up   tap0
  Link speed: unknown
  RX Queues:
    queue thread         mode
    0     vpp_wk_0 (1)   polling
  TX Queues:
    queue shared thread(s)
    0     no     0
    1     no     1
    2     no     2
    3     no     3
    4     no
  Ethernet address 02:fe:03:6a:66:fc
  VIRTIO interface
     instance 0

Change-Id: I6154476ec9ff0b14287098529c88a14b779371a5
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-05-27 12:53:02 +00:00
Neale Ranns dfef64b4cd ip: allow the 'ip6 enable' on tunnel interface types
Type: feature

This was limited to HW interface types (for historical reason AFAICT)

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3785a356ae31722fa60d84f64ec9aa53ebdd615f
2021-05-27 12:06:57 +00:00
Fan Zhang 3f3da0d27d dpdk: fix missing symbol
Type: fix

This patch fixes the missing symbol of dpdk_plugin.so when
creating symmetric key. The solution is to add dependency
of libssl to dpdk cryptodev and disable cryptodev engine
when libssl is not presented.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I30aa6e3e3af1faefa82883bad613e1d82235a2ec
2021-05-26 21:06:34 +00:00
Florin Coras 57e0af924b vppinfra: explicit blocking mode for sock connects
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3a33230de13fef613dc9523cf24a9968d200c2e5
2021-05-26 18:47:41 +00:00
Neale Ranns 46cb4c4094 tests: Fix 'test-wipe'
Type: fix

Error:
vagrant@ ~/vpp (make-test-wipe) $ make test-wipe
make[1]: Entering directory '/home/vagrant/vpp/test'
make[2]: Entering directory '/home/vagrant/vpp/test'
make[2]: *** ext: No such file or directory.  Stop.
make[2]: Leaving directory '/home/vagrant/vpp/test'
make[1]: *** [Makefile:239: wipe] Error 2
make[1]: Leaving directory '/home/vagrant/vpp/test'
make: *** [Makefile:440: test-wipe] Error 2

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3615a962882d5d56c394aa628e9942fed07cde84
2021-05-26 18:44:08 +00:00
Andrew Yourtchenko 91d6a94845 misc: Initial 21.10-rc0 commit
- Add 21.10 Release Notes placeholder
- Add test framework link

Type:docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I30770a0968bb7215f2727afec4cdc4ef87e49a5e
v21.10-rc0
2021-05-26 11:37:38 +00:00
Neale Ranns 1372178e0e fib: During the mfib lookup set the unicast FIB index in the packet so that a uRPF check on a for-us packet is done in the correct VRF
Type: fix

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Iafa6efea0d96962aa9136dccefc148a961f74476
2021-05-26 10:22:02 +00:00
Ray Kinsella 457271d71c pg: revert exec file fixes
This reverts commit fd4fd0d185.

Type: fix
Change-Id: I6ef84f646372270ded486eacee81817067e49106
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
2021-05-26 08:23:09 +00:00
Klement Sekera 2de7e96e6f nat: add thread index assertions
Add extra assertions to debug build.

Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Ib20130365e8f9dbb556fcbb4321dd184c7eff603
2021-05-26 07:38:01 +00:00
Florin Coras 5fe9457fa2 api: socket client connect set to blocking
Binary api client must otherwise check the returned error and if it was
EAGAIN/EINPROGRESS poll for connect completion.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I89845b1a59b9fa2ab0968029435ceb203bfa8f6c
2021-05-26 07:37:06 +00:00
Ray Kinsella 3fb978e261 vlib: revert exec cmd handle scripts with blank lines
This reverts commit 269e1569e1.

Type: fix

Change-Id: I40bd71ae3b5e9dc8345fb2460aae437de8a9a5ba
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
2021-05-26 07:03:26 +00:00
Ray Kinsella dbf90d499b perfmon: revert raw column support
Revert raw column from the perfmon plugin.

Type: refactor

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: If127f57ee2022cc1c0ea5177f1655a792f195f1d
2021-05-26 06:45:40 +00:00
Damjan Marion a2d6d352c6 tests: move vapi C/C++ test files into src/
Type: improvement
Change-Id: Iaad004661db1e9076e6c27227878f1612fa7289f
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-05-26 06:32:43 +00:00