]> git.baikalelectronics.ru Git - kernel.git/commit
net: ip_gre: Separate ERSPAN newlink / changelink callbacks
authorPetr Machata <petrm@mellanox.com>
Fri, 13 Mar 2020 11:39:36 +0000 (13:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Mar 2020 07:14:08 +0000 (00:14 -0700)
commit60f0595fdbc47aa791b22f046a93e11b6abeb730
tree89cd80a7eb60df2e1eb7c134f0cf9f73fb817679
parent83cc0ad578df7ac5680828ba44e178fdbe6e6dab
net: ip_gre: Separate ERSPAN newlink / changelink callbacks

ERSPAN shares most of the code path with GRE and gretap code. While that
helps keep the code compact, it is also error prone. Currently a broken
userspace can turn a gretap tunnel into a de facto ERSPAN one by passing
IFLA_GRE_ERSPAN_VER. There has been a similar issue in ip6gretap in the
past.

To prevent these problems in future, split the newlink and changelink code
paths. Split the ERSPAN code out of ipgre_netlink_parms() into a new
function erspan_netlink_parms(). Extract a piece of common logic from
ipgre_newlink() and ipgre_changelink() into ipgre_newlink_encap_setup().
Add erspan_newlink() and erspan_changelink().

Fixes: 47b2af5234e3 ("gre: introduce native tunnel support for ERSPAN")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_gre.c