blob: 6fdfc884fdeb3d3cf81dcbd40c52c0b8c8d203b1 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_ERRQUEUE_H
2#define _LINUX_ERRQUEUE_H 1
3
Linus Torvalds1da177e2005-04-16 15:20:36 -07004
Linus Torvalds1da177e2005-04-16 15:20:36 -07005#include <net/ip.h>
Eric Dumazetdfd56b82011-12-10 09:48:31 +00006#if IS_ENABLED(CONFIG_IPV6)
Linus Torvalds1da177e2005-04-16 15:20:36 -07007#include <linux/ipv6.h>
8#endif
David Howells607ca462012-10-13 10:46:48 +01009#include <uapi/linux/errqueue.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070010
11#define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb))
12
Eric Dumazetd94d9fe2009-11-04 09:50:58 -080013struct sock_exterr_skb {
Linus Torvalds1da177e2005-04-16 15:20:36 -070014 union {
15 struct inet_skb_parm h4;
Eric Dumazetdfd56b82011-12-10 09:48:31 +000016#if IS_ENABLED(CONFIG_IPV6)
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 struct inet6_skb_parm h6;
18#endif
19 } header;
20 struct sock_extended_err ee;
21 u16 addr_offset;
Al Virob4063132006-09-27 18:34:02 -070022 __be16 port;
Soheil Hassas Yeganeh4ef1b282017-03-18 17:03:00 -040023 u8 opt_stats:1,
24 unused:7;
Linus Torvalds1da177e2005-04-16 15:20:36 -070025};
26
27#endif