diff options
author | Jakub Kicinski <kuba@kernel.org> | 2021-11-02 04:05:14 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-11-02 04:05:14 +0100 |
commit | 8a33dcc2f6d5cf60cc77b72c277d1eba8e4ac8fb (patch) | |
tree | 83f899fd5d970d220e04da03b045fd46261437f1 /net/core | |
parent | Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next (diff) | |
parent | ibmvnic: delay complete() (diff) | |
download | linux-8a33dcc2f6d5cf60cc77b72c277d1eba8e4ac8fb.tar.xz linux-8a33dcc2f6d5cf60cc77b72c277d1eba8e4ac8fb.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Merge in the fixes we had queued in case there was another -rc.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/flow_dissector.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 7d0a9f84aaf7..3255f57f5131 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -1306,6 +1306,11 @@ ip_proto_again: switch (ip_proto) { case IPPROTO_GRE: + if (flags & FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP) { + fdret = FLOW_DISSECT_RET_OUT_GOOD; + break; + } + fdret = __skb_flow_dissect_gre(skb, key_control, flow_dissector, target_container, data, &proto, &nhoff, &hlen, flags); @@ -1363,6 +1368,11 @@ ip_proto_again: break; } case IPPROTO_IPIP: + if (flags & FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP) { + fdret = FLOW_DISSECT_RET_OUT_GOOD; + break; + } + proto = htons(ETH_P_IP); key_control->flags |= FLOW_DIS_ENCAPSULATION; @@ -1375,6 +1385,11 @@ ip_proto_again: break; case IPPROTO_IPV6: + if (flags & FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP) { + fdret = FLOW_DISSECT_RET_OUT_GOOD; + break; + } + proto = htons(ETH_P_IPV6); key_control->flags |= FLOW_DIS_ENCAPSULATION; |