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