History log of /vpp/src/plugins/rdma/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
4a302ee7 13-May-2020 John Lo <loj@cisco.com>

ethernet: fix DMAC check and skip unnecessary ones (VPP-1868)

Fix and optimize DMAC check in ethernet-input node to utilize NIC or
driver which support L3 DMAC-filtering mode so that DMAC check can be
bypassed safely for interfaces/sub-interfaces in L3 mode.
Checking of interface in L3-DMAC-filtering state to avoid DMAC check
require the following:
a) Fix interface driver init sequence for devices which supports L3
DMAC-filtering to indicate its capability and initialize interface
to L3 DMAC-filtering state.
b) Fix ethernet_set_flags() function and its associated callback
flags_change() functions registered by various drivers in interface
infra to provide proper L3 DMAC filtering status.
Maintain interface/sub-interface L3 config count so DMAC checks can be
bypassed if L3 forwarding is not setup on any main/sub-interfaces.

Type: fix
Ticket: VPP-1868

Signed-off-by: John Lo <loj@cisco.com>
Change-Id: I204d90459c13e9e486cfcba4e64e3d479bc9f2ae

a1e03d4d 06-May-2020 Damjan Marion <damarion@cisco.com>

rdma: fix alignment issue

Type: fix

Change-Id: I0ff7a6f3354066c2252c1ebd0d43ac59db278bf0
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Elias Rudberg <elias.rudberg@bahnhof.net>

971c5be2 04-May-2020 Benoît Ganne <bganne@cisco.com>

rdma: fix clang build

Type: fix

Change-Id: I9b613f0af484f601dd20a851e2f59ee5e06b5c37
Signed-off-by: Benoît Ganne <bganne@cisco.com>

2d25467d 24-Apr-2020 Benoît Ganne <bganne@cisco.com>

rdma: tx: interleave prefetches

Type: improvement

Change-Id: Ic2d9b17cf5e524f3ad2a3c5343fe1230aa360e73
Signed-off-by: Benoît Ganne <bganne@cisco.com>

e6b4a5ac 30-Mar-2020 Damjan Marion <damarion@cisco.com>

rdma: print device info from PCI VPD in 'show hardware' output

Type: improvement
Change-Id: I275bbca17c5a0263b3e017b48aa6ccd8f59bc7c3
Signed-off-by: Damjan Marion <damarion@cisco.com>

72f4921c 19-Mar-2020 Benoît Ganne <bganne@cisco.com>

rdma: ring db only once per vector on tx

Type: improvement

Change-Id: I09b017d60bc38ff8a4a7a73aff42b27611bd8955
Signed-off-by: Benoît Ganne <bganne@cisco.com>

aaa65a12 16-Mar-2020 Damjan Marion <damarion@cisco.com>

rdma: optimize tx wqe_init

Type: improvement
Change-Id: I7f28a3f03ab1ea8461c52743c61dc23a57965237
Signed-off-by: Damjan Marion <damarion@cisco.com>

dc812d9a 16-Dec-2019 Benoît Ganne <bganne@cisco.com>

rdma: introduce direct verb for Cx4/5 tx

Direct Verb allows for direct access to NIC HW rx/tx rings. This patch
introduce TX direct verb support for Mellanox ConnectX-4/5 adapters.
'dv' mode must be explicitely selected at interface creation to benefit
from this.

Type: feature

Change-Id: If830ba9f33db73299acdbddc68b5c09eaf6add98
Signed-off-by: Benoît Ganne <bganne@cisco.com>

dd648aac 12-Mar-2020 Damjan Marion <damarion@cisco.com>

rdma: add Mellanox mlx5 Direct Verbs receive support

Type: feature
Change-Id: I3f287ab536a482c366ad7df47e1c04e640992ebc
Signed-off-by: Damjan Marion <damarion@cisco.com>

b9250a9e 02-Mar-2020 Damjan Marion <damarion@cisco.com>

rdma: improve rx loop

Type: improvement
Change-Id: If81847bc0c92d167ce03e1e94a2f8e18f8154af2
Signed-off-by: Damjan Marion <damarion@cisco.com>

599d0888 02-Mar-2020 Damjan Marion <damarion@cisco.com>

rdma: improve refill

Type: improvement
Change-Id: Ib9921718ec88e6dc56a38e40a140f16f86ed2e44
Signed-off-by: Damjan Marion <damarion@cisco.com>

a3188feb 02-Mar-2020 Damjan Marion <damarion@cisco.com>

rdma: use per-thread buffer template

Type: improvement
Change-Id: Ie6f2c79e0a769f70eab079c75a500b9308dd51e6
Signed-off-by: Damjan Marion <damarion@cisco.com>

e5ecf3ea 17-Feb-2020 Elias Rudberg <elias.rudberg@bahnhof.net>

rdma: fix bug related to ring buffer

Fix a bug that caused some input packets to be dropped due to errors of
the type 'ip4 length > l2 length'. The change is related to the second
call to the rdma_device_input_bufs() function that happens when the end
of the ring buffer is reached.

Type: fix
Change-Id: I332d69ab22242b3443a0baca6e5dd86349a54765
Signed-off-by: Elias Rudberg <elias.rudberg@bahnhof.net>

d8c1ef92 07-Jan-2020 Benoît Ganne <bganne@cisco.com>

rdma: api: prepare support for direct verb

Prepare rdma interface creation API for direct verb support:
- add new optional 'mode' parameters to select between ibverb or direct
verb backend (optional, default to 'auto')
- set default value for rxq_num (1), rxq_size (1024) and txq_size
(1024) so they are now optional
- bump default create value for rxq_size and txq_size to 1024 if
unset (0) so they are coherent with default values above

Type: feature

Change-Id: Id9eae2b8eb0baaf34a0fcd55da6ad09515f57a93
Signed-off-by: Benoît Ganne <bganne@cisco.com>

5dfc03f1 07-Jan-2020 Benoît Ganne <bganne@cisco.com>

rdma: add FEATURE.yaml

Type: docs

Change-Id: I91d701814e4bd9953616d2b7c76ae2ea7c07074b
Signed-off-by: Benoît Ganne <bganne@cisco.com>

b644eb54 06-Dec-2019 Ole Troan <ot@cisco.com>

rdma: add explicit types in api

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I80c674b73b7f86cf159b8779aab31a87b20def9a

972d71da 05-Nov-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix next node rx redirect

Type: fix

Change-Id: I694db40c3a0361852d01b84c7a45e32e39e9f4af
Signed-off-by: Benoît Ganne <bganne@cisco.com>

a50892e1 06-Nov-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix name auto-generation on create

When creating rdma interface without specifying a name, we need to
generate one instead of NULL.

Type: fix

Change-Id: If41870691dec47e8e673d48ac4b4ddffd2385a03
Signed-off-by: Benoît Ganne <bganne@cisco.com>

386ebb6e 22-Oct-2019 Benoît Ganne <bganne@cisco.com>

rdma: build: fix ibverb compilation test

Type: fix

Change-Id: Ib6389ecbcf4a1b7bae25b2bd9e7fbdec49545aaa
Signed-off-by: Benoît Ganne <bganne@cisco.com>

812afe71 15-Oct-2019 Benoît Ganne <bganne@cisco.com>

rdma: add rdma API

Type: feature

Change-Id: I590612989cb3c114f8d99227ad36c3434e998597
Signed-off-by: Benoît Ganne <bganne@cisco.com>

0dd97d47 07-Oct-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix crash when failing to read pci addr on create

Type: fix

Change-Id: I543e2e5976cb384b81278a7ec98a0a6ab1612438
Signed-off-by: Benoît Ganne <bganne@cisco.com>

90ea5dc1 07-Oct-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix crash when failing to detect numa node on create

Type: fix

Change-Id: Ibb8e7c1c13869c1dce2385f58bd7260fcf776c5a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

df213385 04-Oct-2019 Benoît Ganne <bganne@cisco.com>

rdma: prevent loopback of broadcast packets

TX queues must be created before RX queues on Mellanox cards in order to
not receive our own broadcast packets.

Type: fix

Change-Id: I32ae25a47d819f715feda621a5ecddcf4efd71ba
Signed-off-by: Benoît Ganne <bganne@cisco.com>

4a98388d 04-Oct-2019 Benoît Ganne <bganne@cisco.com>

rdma: make sure pci subsystem is initialized

The rdma driver use the pci subsystem, make sure the dependency is
recorded.

Type: fix

Change-Id: Ibd613f623d355612881acc31b9423f2de13793a3
Signed-off-by: Benoît Ganne <bganne@cisco.com>

7ff07354 30-Sep-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix non-NULL terminated C-string overflow

Type: fix

Change-Id: I584777825636347c116bd084e348858bcb1b7d75
Signed-off-by: Benoît Ganne <bganne@cisco.com>

7ca5aaac 24-Sep-2019 Damjan Marion <damarion@cisco.com>

vlib: add flag to explicitelly mark nodes which can init per-node packet trace

Type: feature

Change-Id: I913f08383ee1c24d610c3d2aac07cef402570e2c
Signed-off-by: Damjan Marion <damarion@cisco.com>

1ec093fe 27-Aug-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix pending packets check on tx

Fix coverity CID 203636: Control flow issues (NO_EFFECT).
This greater-than-or-equal-to-zero comparison of an unsigned value is
always true. "n_left_from >= 0U".

Type: fix
Fixes: e7e8bf37f100b20acb99957572f1796f648c2853

Change-Id: Ibbf8c82defb12d6d532345eea657d5f300e6a514
Signed-off-by: Benoît Ganne <bganne@cisco.com>

e7e8bf37 21-Aug-2019 Benoît Ganne <bganne@cisco.com>

rdma: use rings for buffers management

Refactor rdma driver for improved performance and prepare for raw
datapath access.

Type: refactor

Change-Id: Iae31872055a6947708ea9f430bd1dc083ea63b5a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

0dcafcc5 12-Aug-2019 Benoît Ganne <bganne@cisco.com>

rdma: add support for MAC changes

Type: feature

Change-Id: I5803b52d12e56f2ccc1316e89ece6f1c5898810a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

74eba446 07-Aug-2019 Benoît Ganne <bganne@cisco.com>

rdma: add support for input feature arcs

Input feature arcs enable functions such as l2patch or bonding.

Type: feature

Change-Id: Ie333c9b8f7ea20f8a3a409a9a06367807e215a57
Signed-off-by: Benoît Ganne <bganne@cisco.com>

c0bc26ea 06-Aug-2019 Benoît Ganne <bganne@cisco.com>

rdma: add missing symbols

rdma-core-25.0 move some symbol to another library, make sure we link
to it.

Type: fix
Fixes: ec757593859bd8c16839ea8a81a2ef4eb8b29539

Change-Id: I6b8a56ea5fc7787d3de0982015ed47b767557c06
Signed-off-by: Benoît Ganne <bganne@cisco.com>

dd1ccb4f 05-Aug-2019 Benoît Ganne <bganne@cisco.com>

rdma: fix double-free in rdma-tx

In case of tx success after multiple retries, the last buffers to be
enqueued will be both enqueued for tx and freed.

Type: fix
Fixes: 211ef2eb24

Change-Id: I57d218cff58b74c1f3d6dc5722624327f0821758
Signed-off-by: Benoît Ganne <bganne@cisco.com>

3940de36 23-Jul-2019 Dave Barach <dave@barachs.net>

api: binary api cleanup

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

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

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

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

Type: fix

Change-Id: I29996e8d0768fd9e0c5495bd91ff8bedcf2c5697
Signed-off-by: Dave Barach <dave@barachs.net>

58b2eb1a 15-Jul-2019 Andreas Schultz <andreas.schultz@travelping.com>

vlib: convert frame_index into real pointers

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

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

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

Type: refactor
Change-Id: Ifa6e6e984aafe1e2755bff80f0a4dfcddee3623c
Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
Signed-off-by: Dave Barach <dave@barachs.net>

f2d5cdbf 22-May-2019 Benoît Ganne <bganne@cisco.com>

rdma: add support for promiscuous mode

rdma interfaces filter packets per MAC by default to share the physical
interface between multiple users (eg. VPP and Linux).
When configured in promiscuous mode, all packets will go to this
interface, regardless of the MAC. All other interface will not receive
anymore packet while it is in promiscuous mode.
Promiscuous mode is needed (and automatically turned on) for L2 path
(l2patch, xconnect, bridge...).

Change-Id: I4c0eb4421f51d116e635e7828d00f202f4a97ded
Signed-off-by: Benoît Ganne <bganne@cisco.com>

a7752129 06-May-2019 Benoît Ganne <bganne@cisco.com>

rdma: update MAINTAINERS and add doc

Change-Id: Ida681d299fd57eba66338444b99d2476bdb3c695
Signed-off-by: Benoît Ganne <bganne@cisco.com>

1d1985de 23-Apr-2019 Dave Wallace <dwallacelf@gmail.com>

plugins: clean up plugin descriptions

- Make plugin descriptions more consistent
so the output of "show plugin" can be
used in the wiki.

Change-Id: I4c6feb11e7dcc5a4cf0848eed37f1d3b035c7dda
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

5763e47b 03-Apr-2019 Benoît Ganne <bganne@cisco.com>

rdma: add multiqueue support

Add support for multiqueue for RDMA devices.

Change-Id: I78a2481cec6747494c670cc776475828be3af55b
Signed-off-by: Benoît Ganne <bganne@cisco.com>

dc195d68 03-Apr-2019 Benoît Ganne <bganne@cisco.com>

rdma: more batching, compile rdma-core in release mode

rx: add batching for WC processing and release
tx: improve batching for WC submission and processing
rdma-core: compile in release mode to remove assert()

Change-Id: I5fb8736db36b50f8b758cd688100477b67e72d80
Signed-off-by: Benoît Ganne <bganne@cisco.com>

211ef2eb 01-Apr-2019 Benoît Ganne <bganne@cisco.com>

rdma: tx: fix stats and add batching

Tx stats are no longer counted twice.
Submit tx packets as a single batch per vector instead of per-packet

Change-Id: I26820b21f23842b3a67ace0b939095f3550d3856
Signed-off-by: Benoît Ganne <bganne@cisco.com>

96d4e533 28-Mar-2019 Damjan Marion <damarion@cisco.com>

rdma: add option to specify inteface name

Change-Id: Ic6244511b88bdd42756f74e3163a70b8014e8547
Signed-off-by: Damjan Marion <damarion@cisco.com>

9fd24793 28-Mar-2019 Damjan Marion <damarion@cisco.com>

cmake: add vpp_plugin_find_library macro

Change-Id: I0b996460e05c40e74766563fb2a94c62a65063ce
Signed-off-by: Damjan Marion <damarion@cisco.com>

fe750c24 25-Mar-2019 Benoît Ganne <bganne@cisco.com>

Add RDMA ibverb driver plugin

RDMA ibverb is a userspace API to efficiently rx/tx packets. This is an
initial, unoptimized driver targeting Mellanox cards.
Next steps should include batching, multiqueue and additional cards.

Change-Id: I0309c7a543f75f2f9317eaf63ca502ac7a093ef9
Signed-off-by: Benoît Ganne <bganne@cisco.com>