~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/icmpv6.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php