1*1da177e4SLinus Torvalds #ifndef _LINUX_ERRQUEUE_H 2*1da177e4SLinus Torvalds #define _LINUX_ERRQUEUE_H 1 3*1da177e4SLinus Torvalds 4*1da177e4SLinus Torvalds struct sock_extended_err 5*1da177e4SLinus Torvalds { 6*1da177e4SLinus Torvalds __u32 ee_errno; 7*1da177e4SLinus Torvalds __u8 ee_origin; 8*1da177e4SLinus Torvalds __u8 ee_type; 9*1da177e4SLinus Torvalds __u8 ee_code; 10*1da177e4SLinus Torvalds __u8 ee_pad; 11*1da177e4SLinus Torvalds __u32 ee_info; 12*1da177e4SLinus Torvalds __u32 ee_data; 13*1da177e4SLinus Torvalds }; 14*1da177e4SLinus Torvalds 15*1da177e4SLinus Torvalds #define SO_EE_ORIGIN_NONE 0 16*1da177e4SLinus Torvalds #define SO_EE_ORIGIN_LOCAL 1 17*1da177e4SLinus Torvalds #define SO_EE_ORIGIN_ICMP 2 18*1da177e4SLinus Torvalds #define SO_EE_ORIGIN_ICMP6 3 19*1da177e4SLinus Torvalds 20*1da177e4SLinus Torvalds #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) 21*1da177e4SLinus Torvalds 22*1da177e4SLinus Torvalds #ifdef __KERNEL__ 23*1da177e4SLinus Torvalds 24*1da177e4SLinus Torvalds #include <linux/config.h> 25*1da177e4SLinus Torvalds #include <net/ip.h> 26*1da177e4SLinus Torvalds #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) 27*1da177e4SLinus Torvalds #include <linux/ipv6.h> 28*1da177e4SLinus Torvalds #endif 29*1da177e4SLinus Torvalds 30*1da177e4SLinus Torvalds #define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb)) 31*1da177e4SLinus Torvalds 32*1da177e4SLinus Torvalds struct sock_exterr_skb 33*1da177e4SLinus Torvalds { 34*1da177e4SLinus Torvalds union { 35*1da177e4SLinus Torvalds struct inet_skb_parm h4; 36*1da177e4SLinus Torvalds #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) 37*1da177e4SLinus Torvalds struct inet6_skb_parm h6; 38*1da177e4SLinus Torvalds #endif 39*1da177e4SLinus Torvalds } header; 40*1da177e4SLinus Torvalds struct sock_extended_err ee; 41*1da177e4SLinus Torvalds u16 addr_offset; 42*1da177e4SLinus Torvalds u16 port; 43*1da177e4SLinus Torvalds }; 44*1da177e4SLinus Torvalds 45*1da177e4SLinus Torvalds #endif 46*1da177e4SLinus Torvalds 47*1da177e4SLinus Torvalds #endif 48