浏览代码

GRE: Add support for GRO/GSO of IPv6 GRE traffic

Since GRE doesn't really care about L3 protocol we can support IPv4 and
IPv6 using the same offloads.  With that being the case we can add a call
to register the offloads for IPv6 as a part of our GRE offload
initialization.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexander Duyck 9 年之前
父节点
当前提交
e0c20967c8
共有 1 个文件被更改,包括 13 次插入1 次删除
  1. 13 1
      net/ipv4/gre_offload.c

+ 13 - 1
net/ipv4/gre_offload.c

@@ -292,6 +292,18 @@ static const struct net_offload gre_offload = {
 
 
 static int __init gre_offload_init(void)
 static int __init gre_offload_init(void)
 {
 {
-	return inet_add_offload(&gre_offload, IPPROTO_GRE);
+	int err;
+
+	err = inet_add_offload(&gre_offload, IPPROTO_GRE);
+#if IS_ENABLED(CONFIG_IPV6)
+	if (err)
+		return err;
+
+	err = inet6_add_offload(&gre_offload, IPPROTO_GRE);
+	if (err)
+		inet_del_offload(&gre_offload, IPPROTO_GRE);
+#endif
+
+	return err;
 }
 }
 device_initcall(gre_offload_init);
 device_initcall(gre_offload_init);