aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/protocol.h')
-rw-r--r--include/net/protocol.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/include/net/protocol.h b/include/net/protocol.h
index 7019c1637848..2c90794c139d 100644
--- a/include/net/protocol.h
+++ b/include/net/protocol.h
@@ -25,6 +25,7 @@
25#define _PROTOCOL_H 25#define _PROTOCOL_H
26 26
27#include <linux/in6.h> 27#include <linux/in6.h>
28#include <linux/skbuff.h>
28#if IS_ENABLED(CONFIG_IPV6) 29#if IS_ENABLED(CONFIG_IPV6)
29#include <linux/ipv6.h> 30#include <linux/ipv6.h>
30#endif 31#endif
@@ -59,8 +60,6 @@ struct inet6_protocol {
59 60
60#define INET6_PROTO_NOPOLICY 0x1 61#define INET6_PROTO_NOPOLICY 0x1
61#define INET6_PROTO_FINAL 0x2 62#define INET6_PROTO_FINAL 0x2
62/* This should be set for any extension header which is compatible with GSO. */
63#define INET6_PROTO_GSO_EXTHDR 0x4
64#endif 63#endif
65 64
66struct net_offload { 65struct net_offload {
@@ -72,6 +71,8 @@ struct net_offload {
72 int (*gro_complete)(struct sk_buff *skb); 71 int (*gro_complete)(struct sk_buff *skb);
73 unsigned int flags; /* Flags used by IPv6 for now */ 72 unsigned int flags; /* Flags used by IPv6 for now */
74}; 73};
74/* This should be set for any extension header which is compatible with GSO. */
75#define INET6_PROTO_GSO_EXTHDR 0x1
75 76
76/* This is used to register socket interfaces for IP protocols. */ 77/* This is used to register socket interfaces for IP protocols. */
77struct inet_protosw { 78struct inet_protosw {
@@ -93,10 +94,10 @@ struct inet_protosw {
93 94
94extern const struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS]; 95extern const struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS];
95extern const struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS]; 96extern const struct net_offload __rcu *inet_offloads[MAX_INET_PROTOS];
97extern const struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS];
96 98
97#if IS_ENABLED(CONFIG_IPV6) 99#if IS_ENABLED(CONFIG_IPV6)
98extern const struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS]; 100extern const struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS];
99extern const struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS];
100#endif 101#endif
101 102
102extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num); 103extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num);
@@ -109,10 +110,10 @@ extern void inet_unregister_protosw(struct inet_protosw *p);
109#if IS_ENABLED(CONFIG_IPV6) 110#if IS_ENABLED(CONFIG_IPV6)
110extern int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char num); 111extern int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char num);
111extern int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num); 112extern int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num);
112extern int inet6_add_offload(const struct net_offload *prot, unsigned char num);
113extern int inet6_del_offload(const struct net_offload *prot, unsigned char num);
114extern int inet6_register_protosw(struct inet_protosw *p); 113extern int inet6_register_protosw(struct inet_protosw *p);
115extern void inet6_unregister_protosw(struct inet_protosw *p); 114extern void inet6_unregister_protosw(struct inet_protosw *p);
116#endif 115#endif
116extern int inet6_add_offload(const struct net_offload *prot, unsigned char num);
117extern int inet6_del_offload(const struct net_offload *prot, unsigned char num);
117 118
118#endif /* _PROTOCOL_H */ 119#endif /* _PROTOCOL_H */