xref: /linux-6.15/include/linux/errqueue.h (revision 607ca46e)
11da177e4SLinus Torvalds #ifndef _LINUX_ERRQUEUE_H
21da177e4SLinus Torvalds #define _LINUX_ERRQUEUE_H 1
31da177e4SLinus Torvalds 
41da177e4SLinus Torvalds 
51da177e4SLinus Torvalds #include <net/ip.h>
6dfd56b8bSEric Dumazet #if IS_ENABLED(CONFIG_IPV6)
71da177e4SLinus Torvalds #include <linux/ipv6.h>
81da177e4SLinus Torvalds #endif
9*607ca46eSDavid Howells #include <uapi/linux/errqueue.h>
101da177e4SLinus Torvalds 
111da177e4SLinus Torvalds #define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb))
121da177e4SLinus Torvalds 
13d94d9feeSEric Dumazet struct sock_exterr_skb {
141da177e4SLinus Torvalds 	union {
151da177e4SLinus Torvalds 		struct inet_skb_parm	h4;
16dfd56b8bSEric Dumazet #if IS_ENABLED(CONFIG_IPV6)
171da177e4SLinus Torvalds 		struct inet6_skb_parm	h6;
181da177e4SLinus Torvalds #endif
191da177e4SLinus Torvalds 	} header;
201da177e4SLinus Torvalds 	struct sock_extended_err	ee;
211da177e4SLinus Torvalds 	u16				addr_offset;
22b406313cSAl Viro 	__be16				port;
231da177e4SLinus Torvalds };
241da177e4SLinus Torvalds 
251da177e4SLinus Torvalds #endif
26