History log of /vpp/src/plugins/rdma/device.c
Revision Date Author Comments
# 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

# 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>

# 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>

# 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>

# 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>

# 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

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>

# 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>

# 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>

# 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>

# 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>

# 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>