numam-dpdk/drivers/net/mlx5
Viacheslav Ovsiienko 7a2d6d99a4 net/mlx5: add E-Switch VXLAN encapsulation rules
VXLAN encap rules are applied to the VF ingress traffic and have the
VTEP as actual redirection destinations instead of outer PF.
The encapsulation rule should provide:
- redirection action VF->PF
- VF port ID
- some inner network parameters (MACs/IP)
- the tunnel outer source IP (v4/v6)
- the tunnel outer destination IP (v4/v6). Current
- VNI - Virtual Network Identifier

There is no direct way found to provide kernel with all required
encapsulatioh header parameters. The encapsulation VTEP is created
attached to the outer interface and assumed as default path for
egress encapsulated traffic. The outer tunnel IP address are
assigned to interface using Netlink, the implicit route is
created like this:

  ip addr add <src_ip> peer <dst_ip> dev <outer> scope link

Peer address provides implicit route, and scode link reduces
the risk of conflicts. At initialization time all local scope
link addresses are flushed from device (see next part of patchset).

The destination MAC address is provided via permenent neigh rule:

  ip neigh add dev <outer> lladdr <dst_mac> to <dst_ip> nud permanent

At initialization time all neigh rules of this type are flushed
from device (see the next part of patchset).

Suggested-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-11-05 15:01:25 +01:00
..
Makefile net/mlx5: prepare makefile for adding E-Switch VXLAN 2018-11-05 15:01:25 +01:00
meson.build net/mlx5: prepare meson build for adding E-Switch VXLAN 2018-11-05 15:01:25 +01:00
mlx5_defs.h net/mlx5: fix minimum number of Multi-Packet RQ buffers 2018-08-05 13:29:34 +02:00
mlx5_ethdev.c mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
mlx5_flow_dv.c net/mlx5: add caching of encap/decap actions 2018-11-05 15:01:25 +01:00
mlx5_flow_tcf.c net/mlx5: add E-Switch VXLAN encapsulation rules 2018-11-05 15:01:25 +01:00
mlx5_flow_verbs.c net/mlx5: fix flow counters deletion in Verbs 2018-11-05 15:01:25 +01:00
mlx5_flow.c net/mlx5: fix validation of MLPS-in-GRE 2018-11-05 15:01:25 +01:00
mlx5_flow.h net/mlx5: add necessary structures for E-Switch VXLAN 2018-11-05 15:01:25 +01:00
mlx5_glue.c net/mlx5: add flow action functions to glue 2018-11-05 15:01:25 +01:00
mlx5_glue.h net/mlx5: add flow action functions to glue 2018-11-05 15:01:25 +01:00
mlx5_mac.c net/mlx5: always use representor ifindex for ioctl 2018-10-11 18:56:02 +02:00
mlx5_mr.c net/mlx5: support externally allocated static memory 2018-10-11 18:53:49 +02:00
mlx5_mr.h net/mlx5: clean-up developer logs 2018-07-03 01:35:57 +02:00
mlx5_nl.c net/mlx5: fix invalid network interface index 2018-07-26 14:05:52 +02:00
mlx5_prm.h net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_rss.c net/mlx5: use a macro for the RSS key size 2018-07-12 12:10:03 +02:00
mlx5_rxmode.c net/mlx5: preserve allmulticast flag for flow isolation mode 2018-08-05 08:47:41 +02:00
mlx5_rxq.c net/mlx5: enable loopback by configured mode 2018-11-05 15:01:25 +01:00
mlx5_rxtx_vec_neon.h net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_rxtx_vec_sse.h net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_rxtx_vec.c net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_rxtx_vec.h net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_rxtx.c net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_rxtx.h net/mlx5: support externally allocated static memory 2018-10-11 18:53:49 +02:00
mlx5_socket.c mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
mlx5_stats.c net/mlx5: always use representor ifindex for ioctl 2018-10-11 18:56:02 +02:00
mlx5_trigger.c net/mlx5: fix queue rollback when starting device 2018-07-26 14:05:52 +02:00
mlx5_txq.c net/mlx5: support metadata as flow rule criteria 2018-10-26 22:14:06 +02:00
mlx5_utils.h net/mlx5: add hardware flow debug dump 2018-04-27 18:00:56 +01:00
mlx5_vlan.c align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
mlx5.c net/mlx5: add 128B padding of Rx completion entry 2018-11-05 15:01:25 +01:00
mlx5.h net/mlx5: add caching of encap/decap actions 2018-11-05 15:01:25 +01:00
rte_pmd_mlx5_version.map mlx5: introduce new driver for Mellanox ConnectX-4 adapters 2015-10-30 22:03:42 +01:00