OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [icmpv6.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
#ifndef _LINUX_ICMPV6_H
2
#define _LINUX_ICMPV6_H
3
 
4
#include <linux/types.h>
5
#include <asm/byteorder.h>
6
 
7
struct icmp6hdr {
8
 
9
        __u8            icmp6_type;
10
        __u8            icmp6_code;
11
        __sum16         icmp6_cksum;
12
 
13
 
14
        union {
15
                __be32                  un_data32[1];
16
                __be16                  un_data16[2];
17
                __u8                    un_data8[4];
18
 
19
                struct icmpv6_echo {
20
                        __be16          identifier;
21
                        __be16          sequence;
22
                } u_echo;
23
 
24
                struct icmpv6_nd_advt {
25
#if defined(__LITTLE_ENDIAN_BITFIELD)
26
                        __u32           reserved:5,
27
                                        override:1,
28
                                        solicited:1,
29
                                        router:1,
30
                                        reserved2:24;
31
#elif defined(__BIG_ENDIAN_BITFIELD)
32
                        __u32           router:1,
33
                                        solicited:1,
34
                                        override:1,
35
                                        reserved:29;
36
#else
37
#error  "Please fix <asm/byteorder.h>"
38
#endif                                          
39
                } u_nd_advt;
40
 
41
                struct icmpv6_nd_ra {
42
                        __u8            hop_limit;
43
#if defined(__LITTLE_ENDIAN_BITFIELD)
44
                        __u8            reserved:3,
45
                                        router_pref:2,
46
                                        home_agent:1,
47
                                        other:1,
48
                                        managed:1;
49
 
50
#elif defined(__BIG_ENDIAN_BITFIELD)
51
                        __u8            managed:1,
52
                                        other:1,
53
                                        home_agent:1,
54
                                        router_pref:2,
55
                                        reserved:3;
56
#else
57
#error  "Please fix <asm/byteorder.h>"
58
#endif
59
                        __be16          rt_lifetime;
60
                } u_nd_ra;
61
 
62
        } icmp6_dataun;
63
 
64
#define icmp6_identifier        icmp6_dataun.u_echo.identifier
65
#define icmp6_sequence          icmp6_dataun.u_echo.sequence
66
#define icmp6_pointer           icmp6_dataun.un_data32[0]
67
#define icmp6_mtu               icmp6_dataun.un_data32[0]
68
#define icmp6_unused            icmp6_dataun.un_data32[0]
69
#define icmp6_maxdelay          icmp6_dataun.un_data16[0]
70
#define icmp6_router            icmp6_dataun.u_nd_advt.router
71
#define icmp6_solicited         icmp6_dataun.u_nd_advt.solicited
72
#define icmp6_override          icmp6_dataun.u_nd_advt.override
73
#define icmp6_ndiscreserved     icmp6_dataun.u_nd_advt.reserved
74
#define icmp6_hop_limit         icmp6_dataun.u_nd_ra.hop_limit
75
#define icmp6_addrconf_managed  icmp6_dataun.u_nd_ra.managed
76
#define icmp6_addrconf_other    icmp6_dataun.u_nd_ra.other
77
#define icmp6_rt_lifetime       icmp6_dataun.u_nd_ra.rt_lifetime
78
#define icmp6_router_pref       icmp6_dataun.u_nd_ra.router_pref
79
};
80
 
81
 
82
#define ICMPV6_ROUTER_PREF_LOW          0x3
83
#define ICMPV6_ROUTER_PREF_MEDIUM       0x0
84
#define ICMPV6_ROUTER_PREF_HIGH         0x1
85
#define ICMPV6_ROUTER_PREF_INVALID      0x2
86
 
87
#define ICMPV6_DEST_UNREACH             1
88
#define ICMPV6_PKT_TOOBIG               2
89
#define ICMPV6_TIME_EXCEED              3
90
#define ICMPV6_PARAMPROB                4
91
 
92
#define ICMPV6_INFOMSG_MASK             0x80
93
 
94
#define ICMPV6_ECHO_REQUEST             128
95
#define ICMPV6_ECHO_REPLY               129
96
#define ICMPV6_MGM_QUERY                130
97
#define ICMPV6_MGM_REPORT               131
98
#define ICMPV6_MGM_REDUCTION            132
99
 
100
#define ICMPV6_NI_QUERY                 139
101
#define ICMPV6_NI_REPLY                 140
102
 
103
#define ICMPV6_MLD2_REPORT              143
104
 
105
#define ICMPV6_DHAAD_REQUEST            144
106
#define ICMPV6_DHAAD_REPLY              145
107
#define ICMPV6_MOBILE_PREFIX_SOL        146
108
#define ICMPV6_MOBILE_PREFIX_ADV        147
109
 
110
/*
111
 *      Codes for Destination Unreachable
112
 */
113
#define ICMPV6_NOROUTE                  0
114
#define ICMPV6_ADM_PROHIBITED           1
115
#define ICMPV6_NOT_NEIGHBOUR            2
116
#define ICMPV6_ADDR_UNREACH             3
117
#define ICMPV6_PORT_UNREACH             4
118
#define ICMPV6_POLICY_FAIL              5
119
#define ICMPV6_REJECT_ROUTE             6
120
 
121
/*
122
 *      Codes for Time Exceeded
123
 */
124
#define ICMPV6_EXC_HOPLIMIT             0
125
#define ICMPV6_EXC_FRAGTIME             1
126
 
127
/*
128
 *      Codes for Parameter Problem
129
 */
130
#define ICMPV6_HDR_FIELD                0
131
#define ICMPV6_UNK_NEXTHDR              1
132
#define ICMPV6_UNK_OPTION               2
133
 
134
/*
135
 *      constants for (set|get)sockopt
136
 */
137
 
138
#define ICMPV6_FILTER                   1
139
 
140
/*
141
 *      ICMPV6 filter
142
 */
143
 
144
#define ICMPV6_FILTER_BLOCK             1
145
#define ICMPV6_FILTER_PASS              2
146
#define ICMPV6_FILTER_BLOCKOTHERS       3
147
#define ICMPV6_FILTER_PASSONLY          4
148
 
149
struct icmp6_filter {
150
        __u32           data[8];
151
};
152
 
153
/*
154
 *      Definitions for MLDv2
155
 */
156
#define MLD2_MODE_IS_INCLUDE    1
157
#define MLD2_MODE_IS_EXCLUDE    2
158
#define MLD2_CHANGE_TO_INCLUDE  3
159
#define MLD2_CHANGE_TO_EXCLUDE  4
160
#define MLD2_ALLOW_NEW_SOURCES  5
161
#define MLD2_BLOCK_OLD_SOURCES  6
162
 
163
#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } }
164
 
165
 
166
#endif /* _LINUX_ICMPV6_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.