// SPDX-License-Identifier: GPL-2.0-or-later /* * IPV6 GSO/GRO offload support * Linux INET6 implementation * * IPV6 Extension Header GSO/GRO support */ #include <net/protocol.h> #include "ip6_offload.h" static const struct net_offload rthdr_offload = { .flags = INET6_PROTO_GSO_EXTHDR, }; static const struct net_offload dstopt_offload = { .flags = INET6_PROTO_GSO_EXTHDR, }; int __init ipv6_exthdrs_offload_init(void) { int ret; ret = inet6_add_offload(&rthdr_offload, IPPROTO_ROUTING); if (ret) goto out; ret = inet6_add_offload(&dstopt_offload, IPPROTO_DSTOPTS); if (ret) goto out_rt; out: return ret; out_rt: inet6_del_offload(&rthdr_offload, IPPROTO_ROUTING); goto out; }