Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | #ifndef _LINUX_ERRQUEUE_H |
2 | #define _LINUX_ERRQUEUE_H 1 |
||
3 | |||
4 | struct sock_extended_err |
||
5 | { |
||
6 | __u32 ee_errno; |
||
7 | __u8 ee_origin; |
||
8 | __u8 ee_type; |
||
9 | __u8 ee_code; |
||
10 | __u8 ee_pad; |
||
11 | __u32 ee_info; |
||
12 | __u32 ee_data; |
||
13 | }; |
||
14 | |||
15 | #define SO_EE_ORIGIN_NONE 0 |
||
16 | #define SO_EE_ORIGIN_LOCAL 1 |
||
17 | #define SO_EE_ORIGIN_ICMP 2 |
||
18 | #define SO_EE_ORIGIN_ICMP6 3 |
||
19 | |||
20 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) |
||
21 | |||
22 | #ifdef __KERNEL__ |
||
23 | |||
24 | #include <linux/config.h> |
||
25 | |||
26 | #define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb)) |
||
27 | |||
28 | struct sock_exterr_skb |
||
29 | { |
||
30 | union { |
||
31 | struct inet_skb_parm h4; |
||
32 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) |
||
33 | struct inet6_skb_parm h6; |
||
34 | #endif |
||
35 | } header; |
||
36 | struct sock_extended_err ee; |
||
37 | u16 addr_offset; |
||
38 | u16 port; |
||
39 | }; |
||
40 | |||
41 | #endif |
||
42 | |||
43 | #endif |