1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds #ifndef _LINUX_ERRQUEUE_H 31da177e4SLinus Torvalds #define _LINUX_ERRQUEUE_H 1 41da177e4SLinus Torvalds 51da177e4SLinus Torvalds 61da177e4SLinus Torvalds #include <net/ip.h> 7dfd56b8bSEric Dumazet #if IS_ENABLED(CONFIG_IPV6) 81da177e4SLinus Torvalds #include <linux/ipv6.h> 91da177e4SLinus Torvalds #endif 10607ca46eSDavid Howells #include <uapi/linux/errqueue.h> 111da177e4SLinus Torvalds 121da177e4SLinus Torvalds #define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb)) 131da177e4SLinus Torvalds 14d94d9feeSEric Dumazet struct sock_exterr_skb { 151da177e4SLinus Torvalds union { 161da177e4SLinus Torvalds struct inet_skb_parm h4; 17dfd56b8bSEric Dumazet #if IS_ENABLED(CONFIG_IPV6) 181da177e4SLinus Torvalds struct inet6_skb_parm h6; 191da177e4SLinus Torvalds #endif 201da177e4SLinus Torvalds } header; 211da177e4SLinus Torvalds struct sock_extended_err ee; 221da177e4SLinus Torvalds u16 addr_offset; 23b406313cSAl Viro __be16 port; 244ef1b286SSoheil Hassas Yeganeh u8 opt_stats:1, 254ef1b286SSoheil Hassas Yeganeh unused:7; 261da177e4SLinus Torvalds }; 271da177e4SLinus Torvalds 281da177e4SLinus Torvalds #endif 29