Linux Audio

Check our new training course

Loading...
v6.8
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 *	IPV6 GSO/GRO offload support
 4 *	Linux INET6 implementation
 5 *
 6 *      IPV6 Extension Header GSO/GRO support
 7 */
 8#include <net/protocol.h>
 9#include "ip6_offload.h"
10
11static const struct net_offload rthdr_offload = {
12	.flags		=	INET6_PROTO_GSO_EXTHDR,
13};
14
15static const struct net_offload dstopt_offload = {
16	.flags		=	INET6_PROTO_GSO_EXTHDR,
17};
18
19static const struct net_offload hbh_offload = {
20	.flags		=	INET6_PROTO_GSO_EXTHDR,
21};
22
23int __init ipv6_exthdrs_offload_init(void)
24{
25	int ret;
26
27	ret = inet6_add_offload(&rthdr_offload, IPPROTO_ROUTING);
28	if (ret)
29		goto out;
30
31	ret = inet6_add_offload(&dstopt_offload, IPPROTO_DSTOPTS);
32	if (ret)
33		goto out_rt;
34
35	ret = inet6_add_offload(&hbh_offload, IPPROTO_HOPOPTS);
36	if (ret)
37		goto out_dstopts;
38
39out:
40	return ret;
41
42out_dstopts:
43	inet6_del_offload(&dstopt_offload, IPPROTO_DSTOPTS);
44
45out_rt:
46	inet6_del_offload(&rthdr_offload, IPPROTO_ROUTING);
47	goto out;
48}
v6.8
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 *	IPV6 GSO/GRO offload support
 4 *	Linux INET6 implementation
 5 *
 6 *      IPV6 Extension Header GSO/GRO support
 7 */
 8#include <net/protocol.h>
 9#include "ip6_offload.h"
10
11static const struct net_offload rthdr_offload = {
12	.flags		=	INET6_PROTO_GSO_EXTHDR,
13};
14
15static const struct net_offload dstopt_offload = {
16	.flags		=	INET6_PROTO_GSO_EXTHDR,
17};
18
19static const struct net_offload hbh_offload = {
20	.flags		=	INET6_PROTO_GSO_EXTHDR,
21};
22
23int __init ipv6_exthdrs_offload_init(void)
24{
25	int ret;
26
27	ret = inet6_add_offload(&rthdr_offload, IPPROTO_ROUTING);
28	if (ret)
29		goto out;
30
31	ret = inet6_add_offload(&dstopt_offload, IPPROTO_DSTOPTS);
32	if (ret)
33		goto out_rt;
34
35	ret = inet6_add_offload(&hbh_offload, IPPROTO_HOPOPTS);
36	if (ret)
37		goto out_dstopts;
38
39out:
40	return ret;
41
42out_dstopts:
43	inet6_del_offload(&dstopt_offload, IPPROTO_DSTOPTS);
44
45out_rt:
46	inet6_del_offload(&rthdr_offload, IPPROTO_ROUTING);
47	goto out;
48}