~ [ 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 ] ~

Diff markup

Differences between /include/uapi/linux/icmpv6.h (Version linux-6.11.5) and /include/uapi/linux/icmpv6.h (Version linux-5.0.21)


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

~ [ 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