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, 10 insertions, 1 deletions
diff --git a/include/net/protocol.h b/include/net/protocol.h
index 3b6dc15c68a5..c643bce64e55 100644
--- a/include/net/protocol.h
+++ b/include/net/protocol.h
@@ -36,7 +36,9 @@
36struct net_protocol { 36struct net_protocol {
37 int (*handler)(struct sk_buff *skb); 37 int (*handler)(struct sk_buff *skb);
38 void (*err_handler)(struct sk_buff *skb, u32 info); 38 void (*err_handler)(struct sk_buff *skb, u32 info);
39 struct sk_buff *(*gso_segment)(struct sk_buff *skb, int sg); 39 int (*gso_send_check)(struct sk_buff *skb);
40 struct sk_buff *(*gso_segment)(struct sk_buff *skb,
41 int features);
40 int no_policy; 42 int no_policy;
41}; 43};
42 44
@@ -49,11 +51,18 @@ struct inet6_protocol
49 struct inet6_skb_parm *opt, 51 struct inet6_skb_parm *opt,
50 int type, int code, int offset, 52 int type, int code, int offset,
51 __u32 info); 53 __u32 info);
54
55 int (*gso_send_check)(struct sk_buff *skb);
56 struct sk_buff *(*gso_segment)(struct sk_buff *skb,
57 int features);
58
52 unsigned int flags; /* INET6_PROTO_xxx */ 59 unsigned int flags; /* INET6_PROTO_xxx */
53}; 60};
54 61
55#define INET6_PROTO_NOPOLICY 0x1 62#define INET6_PROTO_NOPOLICY 0x1
56#define INET6_PROTO_FINAL 0x2 63#define INET6_PROTO_FINAL 0x2
64/* This should be set for any extension header which is compatible with GSO. */
65#define INET6_PROTO_GSO_EXTHDR 0x4
57#endif 66#endif
58 67
59/* This is used to register socket interfaces for IP protocols. */ 68/* This is used to register socket interfaces for IP protocols. */