[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20171016142639.2453-1-jiri@resnulli.us>
Date: Mon, 16 Oct 2017 16:26:34 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, petrm@...lanox.com, idosch@...lanox.com,
mlxsw@...lanox.com
Subject: [patch net-next 0/5] mlxsw: GRE: Offload decap without encap
From: Jiri Pirko <jiri@...lanox.com>
Petr says:
The current code doesn't offload GRE decapsulation unless there's a
corresponding encapsulation route as well. While not strictly incorrect (when
encap route is absent, the decap route traps traffic to CPU and the kernel
handles it), it's a missed optimization opportunity.
With this patchset, IPIP entries are created as soon as offloadable tunneling
netdevice is created. This then leads to offloading of decap route, if one
exists, or is added afterwards, even when no encap route is present.
In Linux, when there is a decap route, matching IP-in-IP packets are always
decapsulated. However, with IPv4 overlays in particular, whether the inner
packet is then forwarded depends on setting of net.ipv4.conf.*.rp_filter. When
RP filtering is turned on, inner packets aren't forwarded unless there's a
matching encap route. The mlxsw driver doesn't reflect this behavior in other
router interfaces, and thus it's not implemented for tunnel types either. A
better support for this will be subject of follow-up work.
Petr Machata (5):
mlxsw: spectrum: Move netdevice NB to struct mlxsw_sp
mlxsw: spectrum_router: Move mlxsw_sp_netdev_ipip_type()
mlxsw: spectrum: Support decap-only IP-in-IP tunnels
mlxsw: spectrum: Support IPIP overlay VRF migration
mlxsw: spectrum: Drop refcounting of IPIP entries
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 31 ++-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 8 +
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.h | 1 -
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 233 ++++++++++++++++-----
4 files changed, 209 insertions(+), 64 deletions(-)
--
2.9.5
Powered by blists - more mailing lists