summaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 7bf867c97043..d45a58db4ba3 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1521,6 +1521,17 @@ struct packet_type {
1521 struct list_head list; 1521 struct list_head list;
1522}; 1522};
1523 1523
1524struct packet_offload {
1525 __be16 type; /* This is really htons(ether_type). */
1526 struct sk_buff *(*gso_segment)(struct sk_buff *skb,
1527 netdev_features_t features);
1528 int (*gso_send_check)(struct sk_buff *skb);
1529 struct sk_buff **(*gro_receive)(struct sk_buff **head,
1530 struct sk_buff *skb);
1531 int (*gro_complete)(struct sk_buff *skb);
1532 struct list_head list;
1533};
1534
1524#include <linux/notifier.h> 1535#include <linux/notifier.h>
1525 1536
1526/* netdevice notifier chain. Please remember to update the rtnetlink 1537/* netdevice notifier chain. Please remember to update the rtnetlink
@@ -1615,6 +1626,9 @@ extern struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short
1615extern void dev_add_pack(struct packet_type *pt); 1626extern void dev_add_pack(struct packet_type *pt);
1616extern void dev_remove_pack(struct packet_type *pt); 1627extern void dev_remove_pack(struct packet_type *pt);
1617extern void __dev_remove_pack(struct packet_type *pt); 1628extern void __dev_remove_pack(struct packet_type *pt);
1629extern void dev_add_offload(struct packet_offload *po);
1630extern void dev_remove_offload(struct packet_offload *po);
1631extern void __dev_remove_offload(struct packet_offload *po);
1618 1632
1619extern struct net_device *dev_get_by_flags_rcu(struct net *net, unsigned short flags, 1633extern struct net_device *dev_get_by_flags_rcu(struct net *net, unsigned short flags,
1620 unsigned short mask); 1634 unsigned short mask);