diff options
Diffstat (limited to 'include/linux/icmpv6.h')
-rw-r--r-- | include/linux/icmpv6.h | 165 |
1 files changed, 1 insertions, 164 deletions
diff --git a/include/linux/icmpv6.h b/include/linux/icmpv6.h index ba45e6bc076..b4f6c29cace 100644 --- a/include/linux/icmpv6.h +++ b/include/linux/icmpv6.h @@ -1,174 +1,13 @@ #ifndef _LINUX_ICMPV6_H #define _LINUX_ICMPV6_H -#include <linux/types.h> -#include <asm/byteorder.h> - -struct icmp6hdr { - - __u8 icmp6_type; - __u8 icmp6_code; - __sum16 icmp6_cksum; - - - union { - __be32 un_data32[1]; - __be16 un_data16[2]; - __u8 un_data8[4]; - - struct icmpv6_echo { - __be16 identifier; - __be16 sequence; - } u_echo; - - struct icmpv6_nd_advt { -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u32 reserved:5, - override:1, - solicited:1, - router:1, - reserved2:24; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u32 router:1, - solicited:1, - override:1, - reserved:29; -#else -#error "Please fix <asm/byteorder.h>" -#endif - } u_nd_advt; - - struct icmpv6_nd_ra { - __u8 hop_limit; -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u8 reserved:3, - router_pref:2, - home_agent:1, - other:1, - managed:1; - -#elif defined(__BIG_ENDIAN_BITFIELD) - __u8 managed:1, - other:1, - home_agent:1, - router_pref:2, - reserved:3; -#else -#error "Please fix <asm/byteorder.h>" -#endif - __be16 rt_lifetime; - } u_nd_ra; - - } icmp6_dataun; - -#define icmp6_identifier icmp6_dataun.u_echo.identifier -#define icmp6_sequence icmp6_dataun.u_echo.sequence -#define icmp6_pointer icmp6_dataun.un_data32[0] -#define icmp6_mtu icmp6_dataun.un_data32[0] -#define icmp6_unused icmp6_dataun.un_data32[0] -#define icmp6_maxdelay icmp6_dataun.un_data16[0] -#define icmp6_router icmp6_dataun.u_nd_advt.router -#define icmp6_solicited icmp6_dataun.u_nd_advt.solicited -#define icmp6_override icmp6_dataun.u_nd_advt.override -#define icmp6_ndiscreserved icmp6_dataun.u_nd_advt.reserved -#define icmp6_hop_limit icmp6_dataun.u_nd_ra.hop_limit -#define icmp6_addrconf_managed icmp6_dataun.u_nd_ra.managed -#define icmp6_addrconf_other icmp6_dataun.u_nd_ra.other -#define icmp6_rt_lifetime icmp6_dataun.u_nd_ra.rt_lifetime -#define icmp6_router_pref icmp6_dataun.u_nd_ra.router_pref -}; - -#ifdef __KERNEL__ #include <linux/skbuff.h> +#include <uapi/linux/icmpv6.h> static inline struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb) { return (struct icmp6hdr *)skb_transport_header(skb); } -#endif - -#define ICMPV6_ROUTER_PREF_LOW 0x3 -#define ICMPV6_ROUTER_PREF_MEDIUM 0x0 -#define ICMPV6_ROUTER_PREF_HIGH 0x1 -#define ICMPV6_ROUTER_PREF_INVALID 0x2 - -#define ICMPV6_DEST_UNREACH 1 -#define ICMPV6_PKT_TOOBIG 2 -#define ICMPV6_TIME_EXCEED 3 -#define ICMPV6_PARAMPROB 4 - -#define ICMPV6_INFOMSG_MASK 0x80 - -#define ICMPV6_ECHO_REQUEST 128 -#define ICMPV6_ECHO_REPLY 129 -#define ICMPV6_MGM_QUERY 130 -#define ICMPV6_MGM_REPORT 131 -#define ICMPV6_MGM_REDUCTION 132 - -#define ICMPV6_NI_QUERY 139 -#define ICMPV6_NI_REPLY 140 - -#define ICMPV6_MLD2_REPORT 143 - -#define ICMPV6_DHAAD_REQUEST 144 -#define ICMPV6_DHAAD_REPLY 145 -#define ICMPV6_MOBILE_PREFIX_SOL 146 -#define ICMPV6_MOBILE_PREFIX_ADV 147 - -/* - * Codes for Destination Unreachable - */ -#define ICMPV6_NOROUTE 0 -#define ICMPV6_ADM_PROHIBITED 1 -#define ICMPV6_NOT_NEIGHBOUR 2 -#define ICMPV6_ADDR_UNREACH 3 -#define ICMPV6_PORT_UNREACH 4 - -/* - * Codes for Time Exceeded - */ -#define ICMPV6_EXC_HOPLIMIT 0 -#define ICMPV6_EXC_FRAGTIME 1 - -/* - * Codes for Parameter Problem - */ -#define ICMPV6_HDR_FIELD 0 -#define ICMPV6_UNK_NEXTHDR 1 -#define ICMPV6_UNK_OPTION 2 - -/* - * constants for (set|get)sockopt - */ - -#define ICMPV6_FILTER 1 - -/* - * ICMPV6 filter - */ - -#define ICMPV6_FILTER_BLOCK 1 -#define ICMPV6_FILTER_PASS 2 -#define ICMPV6_FILTER_BLOCKOTHERS 3 -#define ICMPV6_FILTER_PASSONLY 4 - -struct icmp6_filter { - __u32 data[8]; -}; - -/* - * Definitions for MLDv2 - */ -#define MLD2_MODE_IS_INCLUDE 1 -#define MLD2_MODE_IS_EXCLUDE 2 -#define MLD2_CHANGE_TO_INCLUDE 3 -#define MLD2_CHANGE_TO_EXCLUDE 4 -#define MLD2_ALLOW_NEW_SOURCES 5 -#define MLD2_BLOCK_OLD_SOURCES 6 - -#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } } - -#ifdef __KERNEL__ #include <linux/netdevice.h> @@ -192,5 +31,3 @@ extern void icmpv6_flow_init(struct sock *sk, const struct in6_addr *daddr, int oif); #endif - -#endif |