diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2018-11-08 12:19:23 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-09 02:13:08 +0100 |
commit | b8a51b38e4d4dec3e379d52c0fe1a66827f7cf1e (patch) | |
tree | 03a60c4c9b5988ff6283467e31bf8ad8bdd49eea /net/ipv4/protocol.c | |
parent | udp: Support for error handlers of tunnels with arbitrary destination port (diff) | |
download | linux-b8a51b38e4d4dec3e379d52c0fe1a66827f7cf1e.tar.xz linux-b8a51b38e4d4dec3e379d52c0fe1a66827f7cf1e.zip |
fou, fou6: ICMP error handlers for FoU and GUE
As the destination port in FoU and GUE receiving sockets doesn't
necessarily match the remote destination port, we can't associate errors
to the encapsulating tunnels with a socket lookup -- we need to blindly
try them instead. This means we don't even know if we are handling errors
for FoU or GUE without digging into the packets.
Hence, implement a single handler for both, one for IPv4 and one for IPv6,
that will check whether the packet that generated the ICMP error used a
direct IP encapsulation or if it had a GUE header, and send the error to
the matching protocol handler, if any.
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/protocol.c')
-rw-r--r-- | net/ipv4/protocol.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/protocol.c b/net/ipv4/protocol.c index 32a691b7ce2c..92d249e053be 100644 --- a/net/ipv4/protocol.c +++ b/net/ipv4/protocol.c @@ -29,6 +29,7 @@ #include <net/protocol.h> struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS] __read_mostly; +EXPORT_SYMBOL(inet_protos); const struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS] __read_mostly; EXPORT_SYMBOL(inet_offloads); |