#include <netinet/icmp6.h>

netinet/icmp6.h

$KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $
includes: netinet/in.h, sys/appleapiopts.h, sys/types.h
229 macros · 28 structs

macroICMPV6_PLD_MAXLEN

#define ICMPV6_PLD_MAXLEN 1232
IPV6_MMTU - sizeof(struct ip6_hdr) - sizeof(struct icmp6_hdr)

structicmp6_hdr

size 8, align 1 · packed
u_int8_ticmp6_typetype field
u_int8_ticmp6_codecode field
u_int16_ticmp6_cksumchecksum field
unnamed union at netinet/icmp6.h:107:2icmp6_dataun
u_int32_t[1]icmp6_un_data32type-specific field
u_int16_t[2]icmp6_un_data16type-specific field
u_int8_t[4]icmp6_un_data8type-specific field

macroicmp6_data32

#define icmp6_data32 icmp6_dataun.icmp6_un_data32

macroicmp6_data16

#define icmp6_data16 icmp6_dataun.icmp6_un_data16

macroicmp6_data8

#define icmp6_data8 icmp6_dataun.icmp6_un_data8

macroicmp6_pptr

#define icmp6_pptr icmp6_data32[0]
parameter prob

macroicmp6_mtu

#define icmp6_mtu icmp6_data32[0]
packet too big

macroicmp6_id

#define icmp6_id icmp6_data16[0]
echo request/reply

macroicmp6_seq

#define icmp6_seq icmp6_data16[1]
echo request/reply

macroicmp6_maxdelay

#define icmp6_maxdelay icmp6_data16[0]
mcast group membership

macroICMP6_DST_UNREACH

#define ICMP6_DST_UNREACH 1
dest unreachable, codes:

macroICMP6_PACKET_TOO_BIG

#define ICMP6_PACKET_TOO_BIG 2
packet too big

macroICMP6_TIME_EXCEEDED

#define ICMP6_TIME_EXCEEDED 3
time exceeded, code:

macroICMP6_PARAM_PROB

#define ICMP6_PARAM_PROB 4
ip6 header bad

macroICMP6_ECHO_REQUEST

#define ICMP6_ECHO_REQUEST 128
echo service

macroICMP6_ECHO_REPLY

#define ICMP6_ECHO_REPLY 129
echo reply

macroMLD_LISTENER_QUERY

#define MLD_LISTENER_QUERY 130
multicast listener query

macroMLD_LISTENER_REPORT

#define MLD_LISTENER_REPORT 131
multicast listener report

macroMLD_LISTENER_DONE

#define MLD_LISTENER_DONE 132
multicast listener done

macroMLD_LISTENER_REDUCTION

#define MLD_LISTENER_REDUCTION MLD_LISTENER_DONE
RFC3542 definition

macroICMP6_MEMBERSHIP_QUERY

RFC2292 decls
#define ICMP6_MEMBERSHIP_QUERY 130
group membership query

macroICMP6_MEMBERSHIP_REPORT

#define ICMP6_MEMBERSHIP_REPORT 131
group membership report

macroICMP6_MEMBERSHIP_REDUCTION

#define ICMP6_MEMBERSHIP_REDUCTION 132
group membership termination

macroMLD6_LISTENER_QUERY

the followings are for backward compatibility to old KAME apps.
#define MLD6_LISTENER_QUERY MLD_LISTENER_QUERY

macroMLD6_LISTENER_REPORT

#define MLD6_LISTENER_REPORT MLD_LISTENER_REPORT

macroMLD6_LISTENER_DONE

#define MLD6_LISTENER_DONE MLD_LISTENER_DONE

macroND_ROUTER_SOLICIT

#define ND_ROUTER_SOLICIT 133
router solicitation

macroND_ROUTER_ADVERT

#define ND_ROUTER_ADVERT 134
router advertisement

macroND_NEIGHBOR_SOLICIT

#define ND_NEIGHBOR_SOLICIT 135
neighbor solicitation

macroND_NEIGHBOR_ADVERT

#define ND_NEIGHBOR_ADVERT 136
neighbor advertisement

macroND_REDIRECT

#define ND_REDIRECT 137
redirect

macroICMP6_ROUTER_RENUMBERING

#define ICMP6_ROUTER_RENUMBERING 138
router renumbering

macroICMP6_WRUREQUEST

#define ICMP6_WRUREQUEST 139
who are you request

macroICMP6_WRUREPLY

#define ICMP6_WRUREPLY 140
who are you reply

macroICMP6_FQDN_QUERY

#define ICMP6_FQDN_QUERY 139
FQDN query

macroICMP6_FQDN_REPLY

#define ICMP6_FQDN_REPLY 140
FQDN reply

macroICMP6_NI_QUERY

#define ICMP6_NI_QUERY 139
node information request

macroICMP6_NI_REPLY

#define ICMP6_NI_REPLY 140
node information reply

macroMLDV2_LISTENER_REPORT

#define MLDV2_LISTENER_REPORT 143
RFC3810 listener report

macroMLD_MTRACE_RESP

The definitions below are experimental. TBA
#define MLD_MTRACE_RESP 200
mtrace resp (to sender)

macroMLD_MTRACE

#define MLD_MTRACE 201
mtrace messages

macroMLD6_MTRACE_RESP

#define MLD6_MTRACE_RESP MLD_MTRACE_RESP

macroMLD6_MTRACE

#define MLD6_MTRACE MLD_MTRACE

macroICMP6_MAXTYPE

#define ICMP6_MAXTYPE 201

macroICMP6_DST_UNREACH_NOROUTE

#define ICMP6_DST_UNREACH_NOROUTE 0
no route to destination

macroICMP6_DST_UNREACH_ADMIN

#define ICMP6_DST_UNREACH_ADMIN 1
administratively prohibited

macroICMP6_DST_UNREACH_NOTNEIGHBOR

#define ICMP6_DST_UNREACH_NOTNEIGHBOR 2
not a neighbor(obsolete)

macroICMP6_DST_UNREACH_BEYONDSCOPE

#define ICMP6_DST_UNREACH_BEYONDSCOPE 2
beyond scope of source address

macroICMP6_DST_UNREACH_ADDR

#define ICMP6_DST_UNREACH_ADDR 3
address unreachable

macroICMP6_DST_UNREACH_NOPORT

#define ICMP6_DST_UNREACH_NOPORT 4
port unreachable

macroICMP6_TIME_EXCEED_TRANSIT

#define ICMP6_TIME_EXCEED_TRANSIT 0
ttl==0 in transit

macroICMP6_TIME_EXCEED_REASSEMBLY

#define ICMP6_TIME_EXCEED_REASSEMBLY 1
ttl==0 in reass

macroICMP6_PARAMPROB_HEADER

#define ICMP6_PARAMPROB_HEADER 0
erroneous header field

macroICMP6_PARAMPROB_NEXTHEADER

#define ICMP6_PARAMPROB_NEXTHEADER 1
unrecognized next header

macroICMP6_PARAMPROB_OPTION

#define ICMP6_PARAMPROB_OPTION 2
unrecognized option

macroICMP6_PARAMPROB_FIRSTFRAG_INCOMP_HDR

#define ICMP6_PARAMPROB_FIRSTFRAG_INCOMP_HDR 3
first fragment has incomplete IPv6 Header Chain

macroICMP6_INFOMSG_MASK

#define ICMP6_INFOMSG_MASK 0x80
all informational messages

macroICMP6_NI_SUBJ_IPV6

#define ICMP6_NI_SUBJ_IPV6 0
Query Subject is an IPv6 address

macroICMP6_NI_SUBJ_FQDN

#define ICMP6_NI_SUBJ_FQDN 1
Query Subject is a Domain name

macroICMP6_NI_SUBJ_IPV4

#define ICMP6_NI_SUBJ_IPV4 2
Query Subject is an IPv4 address

macroICMP6_NI_SUCCESS

#define ICMP6_NI_SUCCESS 0
node information successful reply

macroICMP6_NI_REFUSED

#define ICMP6_NI_REFUSED 1
node information request is refused

macroICMP6_NI_UNKNOWN

#define ICMP6_NI_UNKNOWN 2
unknown Qtype

macroICMP6_ROUTER_RENUMBERING_COMMAND

#define ICMP6_ROUTER_RENUMBERING_COMMAND 0
rr command

macroICMP6_ROUTER_RENUMBERING_RESULT

#define ICMP6_ROUTER_RENUMBERING_RESULT 1
rr result

macroICMP6_ROUTER_RENUMBERING_SEQNUM_RESET

#define ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET 255
rr seq num reset

macroND_REDIRECT_ROUTER

#define ND_REDIRECT_ROUTER 1
redirect to a better router

structmld_hdr

Multicast Listener Discovery
size 24, align 1 · packed
struct icmp6_hdrmld_icmp6_hdr
struct in6_addrmld_addrmulticast address

macromld6_hdr

definitions to provide backward compatibility to old KAME applications
#define mld6_hdr mld_hdr

macromld6_type

#define mld6_type mld_type

macromld6_code

#define mld6_code mld_code

macromld6_cksum

#define mld6_cksum mld_cksum

macromld6_maxdelay

#define mld6_maxdelay mld_maxdelay

macromld6_reserved

#define mld6_reserved mld_reserved

macromld6_addr

#define mld6_addr mld_addr

macromld_type

shortcut macro definitions
#define mld_type mld_icmp6_hdr.icmp6_type

macromld_code

#define mld_code mld_icmp6_hdr.icmp6_code

macromld_cksum

#define mld_cksum mld_icmp6_hdr.icmp6_cksum

macromld_maxdelay

#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0]

macromld_reserved

#define mld_reserved mld_icmp6_hdr.icmp6_data16[1]

macromld_v2_reserved

#define mld_v2_reserved mld_icmp6_hdr.icmp6_data16[0]

macromld_v2_numrecs

#define mld_v2_numrecs mld_icmp6_hdr.icmp6_data16[1]

macroICMP6_ERRORTYPE

#define ICMP6_ERRORTYPE(type) ((type) == ICMP6_DST_UNREACH || (type) == ICMP6_PACKET_TOO_BIG ||
	(type) == ICMP6_TIME_EXCEEDED || (type) == ICMP6_PARAM_PROB)

structnd_router_solicit

size 8, align 1 · packed
struct icmp6_hdrnd_rs_hdr

macrond_rs_type

#define nd_rs_type nd_rs_hdr.icmp6_type

macrond_rs_code

#define nd_rs_code nd_rs_hdr.icmp6_code

macrond_rs_cksum

#define nd_rs_cksum nd_rs_hdr.icmp6_cksum

macrond_rs_reserved

#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]

structnd_router_advert

size 16, align 1 · packed
struct icmp6_hdrnd_ra_hdr
u_int32_tnd_ra_reachablereachable time
u_int32_tnd_ra_retransmitretransmit timer

macrond_ra_type

#define nd_ra_type nd_ra_hdr.icmp6_type

macrond_ra_code

#define nd_ra_code nd_ra_hdr.icmp6_code

macrond_ra_cksum

#define nd_ra_cksum nd_ra_hdr.icmp6_cksum

macrond_ra_curhoplimit

#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]

macrond_ra_flags_reserved

#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]

macroND_RA_FLAG_MANAGED

#define ND_RA_FLAG_MANAGED 0x80

macroND_RA_FLAG_OTHER

#define ND_RA_FLAG_OTHER 0x40

macroND_RA_FLAG_HA

#define ND_RA_FLAG_HA 0x20

macroND_RA_FLAG_RTPREF_MASK

Router preference values based on RFC 4191
#define ND_RA_FLAG_RTPREF_MASK 0x18
00011000

macroND_RA_FLAG_RTPREF_HIGH

#define ND_RA_FLAG_RTPREF_HIGH 0x08
00001000

macroND_RA_FLAG_RTPREF_MEDIUM

#define ND_RA_FLAG_RTPREF_MEDIUM 0x00
00000000

macroND_RA_FLAG_RTPREF_LOW

#define ND_RA_FLAG_RTPREF_LOW 0x18
00011000

macroND_RA_FLAG_RTPREF_RSV

#define ND_RA_FLAG_RTPREF_RSV 0x10
00010000

macrond_ra_router_lifetime

#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]

structnd_neighbor_solicit

size 24, align 1 · packed
struct icmp6_hdrnd_ns_hdr
struct in6_addrnd_ns_targettarget address

macrond_ns_type

#define nd_ns_type nd_ns_hdr.icmp6_type

macrond_ns_code

#define nd_ns_code nd_ns_hdr.icmp6_code

macrond_ns_cksum

#define nd_ns_cksum nd_ns_hdr.icmp6_cksum

macrond_ns_reserved

#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]

structnd_neighbor_advert

size 24, align 1 · packed
struct icmp6_hdrnd_na_hdr
struct in6_addrnd_na_targettarget address

macrond_na_type

#define nd_na_type nd_na_hdr.icmp6_type

macrond_na_code

#define nd_na_code nd_na_hdr.icmp6_code

macrond_na_cksum

#define nd_na_cksum nd_na_hdr.icmp6_cksum

macrond_na_flags_reserved

#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]

macroND_NA_FLAG_ROUTER

#define ND_NA_FLAG_ROUTER 0x80

macroND_NA_FLAG_SOLICITED

#define ND_NA_FLAG_SOLICITED 0x40

macroND_NA_FLAG_OVERRIDE

#define ND_NA_FLAG_OVERRIDE 0x20

structnd_redirect

size 40, align 1 · packed
struct icmp6_hdrnd_rd_hdr
struct in6_addrnd_rd_targettarget address
struct in6_addrnd_rd_dstdestination address

macrond_rd_type

#define nd_rd_type nd_rd_hdr.icmp6_type

macrond_rd_code

#define nd_rd_code nd_rd_hdr.icmp6_code

macrond_rd_cksum

#define nd_rd_cksum nd_rd_hdr.icmp6_cksum

macrond_rd_reserved

#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]

structnd_opt_hdr

size 2, align 1 · packed
u_int8_tnd_opt_type
u_int8_tnd_opt_len

macroND_OPT_SOURCE_LINKADDR

#define ND_OPT_SOURCE_LINKADDR 1

macroND_OPT_TARGET_LINKADDR

#define ND_OPT_TARGET_LINKADDR 2

macroND_OPT_PREFIX_INFORMATION

#define ND_OPT_PREFIX_INFORMATION 3

macroND_OPT_REDIRECTED_HEADER

#define ND_OPT_REDIRECTED_HEADER 4

macroND_OPT_MTU

#define ND_OPT_MTU 5

macroND_OPT_NONCE

#define ND_OPT_NONCE 14
RFC 3971

macroND_OPT_PVD

#define ND_OPT_PVD 21
RFC 8801

macroND_OPT_ROUTE_INFO

#define ND_OPT_ROUTE_INFO 24
RFC 4191

macroND_OPT_RDNSS

#define ND_OPT_RDNSS 25
RFC 6106

macroND_OPT_DNSSL

#define ND_OPT_DNSSL 31
RFC 6106

macroND_OPT_CAPTIVE_PORTAL

#define ND_OPT_CAPTIVE_PORTAL 37
RFC 7710

macroND_OPT_PREF64

#define ND_OPT_PREF64 38
RFC 8781

macroND_OPT_DNR

#define ND_OPT_DNR 144
RFC 9463

structnd_opt_prefix_info

size 32, align 1 · packed
u_int8_tnd_opt_pi_type
u_int8_tnd_opt_pi_len
u_int8_tnd_opt_pi_prefix_len
u_int8_tnd_opt_pi_flags_reserved
u_int32_tnd_opt_pi_valid_time
u_int32_tnd_opt_pi_preferred_time
u_int32_tnd_opt_pi_reserved2
struct in6_addrnd_opt_pi_prefix

macroND_OPT_PI_FLAG_AUTO

#define ND_OPT_PI_FLAG_AUTO 0x40

macroND_OPT_NONCE_LEN

#define ND_OPT_NONCE_LEN ((1 * 8) - 2)

structnd_opt_nonce

size 8, align 1 · packed
u_int8_tnd_opt_nonce_type
u_int8_tnd_opt_nonce_len
u_int8_t[6]nd_opt_nonce

structnd_opt_rd_hdr

size 8, align 1 · packed
u_int8_tnd_opt_rh_type
u_int8_tnd_opt_rh_len
u_int16_tnd_opt_rh_reserved1
u_int32_tnd_opt_rh_reserved2

structnd_opt_mtu

size 8, align 1 · packed
u_int8_tnd_opt_mtu_type
u_int8_tnd_opt_mtu_len
u_int16_tnd_opt_mtu_reserved
u_int32_tnd_opt_mtu_mtu

structnd_opt_route_info

size 8, align 1 · packed
u_int8_tnd_opt_rti_type
u_int8_tnd_opt_rti_len
u_int8_tnd_opt_rti_prefixlen
u_int8_tnd_opt_rti_flags
u_int32_tnd_opt_rti_lifetime

structnd_opt_rdnss

size 24, align 1 · packed
u_int8_tnd_opt_rdnss_type
u_int8_tnd_opt_rdnss_len
u_int16_tnd_opt_rdnss_reserved
u_int32_tnd_opt_rdnss_lifetime
struct in6_addr[1]nd_opt_rdnss_addr

structnd_opt_dnssl

size 16, align 1 · packed
u_int8_tnd_opt_dnssl_type
u_int8_tnd_opt_dnssl_len
u_int16_tnd_opt_dnssl_reserved
u_int32_tnd_opt_dnssl_lifetime
u_int8_t[8]nd_opt_dnssl_domains

structnd_opt_dnr

DNR (Discovery of Network-designated Resolvers) RFC 9463
size 11, align 1 · packed
u_int8_tnd_opt_dnr_type
u_int8_tnd_opt_dnr_len
u_int8_t[2]nd_opt_dnr_svc_priority
u_int8_t[4]nd_opt_dnr_lifetime
u_int8_t[2]nd_opt_dnr_adn_len
u_int8_t[1]nd_opt_dnr_continuation

macroND_OPT_DNR_MIN_LENGTH

#define ND_OPT_DNR_MIN_LENGTH offsetof(struct nd_opt_dnr, nd_opt_dnr_continuation)

structnd_opt_pref64

PREF64 (NAT64 prefix) RFC 8781
size 16, align 1 · packed
u_int8_tnd_opt_pref64_type
u_int8_tnd_opt_pref64_len
u_int16_tnd_opt_pref64_scaled_lifetime_plc
u_int32_t[3]nd_opt_pref64_prefix

macroND_OPT_PREF64_SCALED_LIFETIME_MASK

#define ND_OPT_PREF64_SCALED_LIFETIME_MASK 0xfff8

macroND_OPT_PREF64_PLC_MASK

#define ND_OPT_PREF64_PLC_MASK 0x0007

macroND_OPT_PREF64_LIFETIME_MAX

#define ND_OPT_PREF64_LIFETIME_MAX 65528

macroND_OPT_PREF64_PLC_32

#define ND_OPT_PREF64_PLC_32 5

macroND_OPT_PREF64_PLC_40

#define ND_OPT_PREF64_PLC_40 4

macroND_OPT_PREF64_PLC_48

#define ND_OPT_PREF64_PLC_48 3

macroND_OPT_PREF64_PLC_56

#define ND_OPT_PREF64_PLC_56 2

macroND_OPT_PREF64_PLC_64

#define ND_OPT_PREF64_PLC_64 1

macroND_OPT_PREF64_PLC_96

#define ND_OPT_PREF64_PLC_96 0

structnd_opt_pvd

PvD (Provisioning Domain) RFC 8801
size 7, align 1 · packed
u_int8_tnd_opt_pvd_type
u_int8_tnd_opt_pvd_len
u_int8_t[2]nd_opt_flags_delayhttp: 1 bit legacy: 1 bit ra: 1 bit reserved: 9 bits delay: 4 bits
u_int16_tnd_opt_pvd_seq
u_int8_t[1]nd_opt_pvd_id

macroND_OPT_PVD_MIN_LENGTH

#define ND_OPT_PVD_MIN_LENGTH offsetof(struct nd_opt_pvd, nd_opt_pvd_id)

macroND_OPT_PVD_FLAGS_HTTP

#define ND_OPT_PVD_FLAGS_HTTP 0x80

macroND_OPT_PVD_FLAGS_LEGACY

#define ND_OPT_PVD_FLAGS_LEGACY 0x40

macroND_OPT_PVD_FLAGS_RA

#define ND_OPT_PVD_FLAGS_RA 0x20

macroND_OPT_PVD_DELAY_MASK

#define ND_OPT_PVD_DELAY_MASK 0x0f

structicmp6_namelookup

size 20, align 1 · packed
struct icmp6_hdricmp6_nl_hdr
u_int8_t[8]icmp6_nl_nonce
int32_ticmp6_nl_ttl

structicmp6_nodeinfo

icmp6 node information
size 16, align 1 · packed
struct icmp6_hdricmp6_ni_hdr
u_int8_t[8]icmp6_ni_nonce

macroni_type

#define ni_type icmp6_ni_hdr.icmp6_type

macroni_code

#define ni_code icmp6_ni_hdr.icmp6_code

macroni_cksum

#define ni_cksum icmp6_ni_hdr.icmp6_cksum

macroni_qtype

#define ni_qtype icmp6_ni_hdr.icmp6_data16[0]

macroni_flags

#define ni_flags icmp6_ni_hdr.icmp6_data16[1]

macroNI_QTYPE_NOOP

#define NI_QTYPE_NOOP 0
NOOP

macroNI_QTYPE_SUPTYPES

#define NI_QTYPE_SUPTYPES 1
Supported Qtypes

macroNI_QTYPE_FQDN

#define NI_QTYPE_FQDN 2
FQDN (draft 04)

macroNI_QTYPE_DNSNAME

#define NI_QTYPE_DNSNAME 2
DNS Name

macroNI_QTYPE_NODEADDR

#define NI_QTYPE_NODEADDR 3
Node Addresses

macroNI_QTYPE_IPV4ADDR

#define NI_QTYPE_IPV4ADDR 4
IPv4 Addresses

macroNI_SUPTYPE_FLAG_COMPRESS

#define NI_SUPTYPE_FLAG_COMPRESS 0x0100

macroNI_FQDN_FLAG_VALIDTTL

#define NI_FQDN_FLAG_VALIDTTL 0x0100

macroNI_NODEADDR_FLAG_TRUNCATE

#define NI_NODEADDR_FLAG_TRUNCATE 0x0100

macroNI_NODEADDR_FLAG_ALL

#define NI_NODEADDR_FLAG_ALL 0x0200

macroNI_NODEADDR_FLAG_COMPAT

#define NI_NODEADDR_FLAG_COMPAT 0x0400

macroNI_NODEADDR_FLAG_LINKLOCAL

#define NI_NODEADDR_FLAG_LINKLOCAL 0x0800

macroNI_NODEADDR_FLAG_SITELOCAL

#define NI_NODEADDR_FLAG_SITELOCAL 0x1000

macroNI_NODEADDR_FLAG_GLOBAL

#define NI_NODEADDR_FLAG_GLOBAL 0x2000

macroNI_NODEADDR_FLAG_ANYCAST

#define NI_NODEADDR_FLAG_ANYCAST 0x4000
just experimental. not in spec

structni_reply_fqdn

size 8, align 1 · packed
u_int32_tni_fqdn_ttlTTL
u_int8_tni_fqdn_namelenlength in octets of the FQDN
u_int8_t[3]ni_fqdn_nameXXX: alignment

structicmp6_router_renum

Router Renumbering. as router-renum-08.txt
size 16, align 1 · packed
struct icmp6_hdrrr_hdr
u_int8_trr_segnum
u_int8_trr_flags
u_int16_trr_maxdelay
u_int32_trr_reserved

macroICMP6_RR_FLAGS_TEST

#define ICMP6_RR_FLAGS_TEST 0x80

macroICMP6_RR_FLAGS_REQRESULT

#define ICMP6_RR_FLAGS_REQRESULT 0x40

macroICMP6_RR_FLAGS_FORCEAPPLY

#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20

macroICMP6_RR_FLAGS_SPECSITE

#define ICMP6_RR_FLAGS_SPECSITE 0x10

macroICMP6_RR_FLAGS_PREVDONE

#define ICMP6_RR_FLAGS_PREVDONE 0x08

macrorr_type

#define rr_type rr_hdr.icmp6_type

macrorr_code

#define rr_code rr_hdr.icmp6_code

macrorr_cksum

#define rr_cksum rr_hdr.icmp6_cksum

macrorr_seqnum

#define rr_seqnum rr_hdr.icmp6_data32[0]

structrr_pco_match

size 24, align 1 · packed
u_int8_trpm_code
u_int8_trpm_len
u_int8_trpm_ordinal
u_int8_trpm_matchlen
u_int8_trpm_minlen
u_int8_trpm_maxlen
u_int16_trpm_reserved
struct in6_addrrpm_prefix

macroRPM_PCO_ADD

#define RPM_PCO_ADD 1

macroRPM_PCO_CHANGE

#define RPM_PCO_CHANGE 2

macroRPM_PCO_SETGLOBAL

#define RPM_PCO_SETGLOBAL 3

macroRPM_PCO_MAX

#define RPM_PCO_MAX 4

structrr_pco_use

size 32, align 1 · packed
u_int8_trpu_uselen
u_int8_trpu_keeplen
u_int8_trpu_ramask
u_int8_trpu_raflags
u_int32_trpu_vltime
u_int32_trpu_pltime
u_int32_trpu_flags
struct in6_addrrpu_prefix

macroICMP6_RR_PCOUSE_RAFLAGS_AUTO

#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x40

macroICMP6_RR_PCOUSE_FLAGS_DECRVLTIME

#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80

macroICMP6_RR_PCOUSE_FLAGS_DECRPLTIME

#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40

structrr_result

size 24, align 1 · packed
u_int16_trrr_flags
u_int8_trrr_ordinal
u_int8_trrr_matchedlen
u_int32_trrr_ifid
struct in6_addrrrr_prefix

macroICMP6_RR_RESULT_FLAGS_OOB

#define ICMP6_RR_RESULT_FLAGS_OOB 0x0200

macroICMP6_RR_RESULT_FLAGS_FORBIDDEN

#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100

structicmp6_filter

size 32, align 4
u_int32_t[8]icmp6_filt

macroICMP6_FILTER_SETPASSALL

#define ICMP6_FILTER_SETPASSALL(filterp) memset(filterp, 0xff, sizeof(struct icmp6_filter))

macroICMP6_FILTER_SETBLOCKALL

#define ICMP6_FILTER_SETBLOCKALL(filterp) memset(filterp, 0x00, sizeof(struct icmp6_filter))

macroICMP6_FILTER_SETPASS

#define ICMP6_FILTER_SETPASS(type, filterp) (((filterp)->icmp6_filt[(type) >> 5]) |= (1u << ((type) & 31)))

macroICMP6_FILTER_SETBLOCK

#define ICMP6_FILTER_SETBLOCK(type, filterp) (((filterp)->icmp6_filt[(type) >> 5]) &= ~(1u << ((type) & 31)))

macroICMP6_FILTER_WILLPASS

#define ICMP6_FILTER_WILLPASS(type, filterp) ((((filterp)->icmp6_filt[(type) >> 5]) & (1u << ((type) & 31))) != 0)

macroICMP6_FILTER_WILLBLOCK

#define ICMP6_FILTER_WILLBLOCK(type, filterp) ((((filterp)->icmp6_filt[(type) >> 5]) & (1u << ((type) & 31))) == 0)

structicmp6errstat

Variables related to this implementation of the internet control message protocol version 6.
size 104, align 8
u_quad_ticp6errs_dst_unreach_noroute
u_quad_ticp6errs_dst_unreach_admin
u_quad_ticp6errs_dst_unreach_beyondscope
u_quad_ticp6errs_dst_unreach_addr
u_quad_ticp6errs_dst_unreach_noport
u_quad_ticp6errs_packet_too_big
u_quad_ticp6errs_time_exceed_transit
u_quad_ticp6errs_time_exceed_reassembly
u_quad_ticp6errs_paramprob_header
u_quad_ticp6errs_paramprob_nextheader
u_quad_ticp6errs_paramprob_option
u_quad_ticp6errs_redirectwe regard redirect as an error here
u_quad_ticp6errs_unknown

structicmp6stat

size 4344, align 8
u_quad_ticp6s_errorstatistics related to icmp6 packets generated # of calls to icmp6_error
u_quad_ticp6s_canterrorno error 'cuz old was icmp
u_quad_ticp6s_toofreqno error 'cuz rate limitation
u_quad_t[256]icp6s_outhist
u_quad_ticp6s_badcodestatistics related to input message processed icmp6_code out of range
u_quad_ticp6s_tooshortpacket < sizeof(struct icmp6_hdr)
u_quad_ticp6s_checksumbad checksum
u_quad_ticp6s_badlencalculated bound mismatch
u_quad_ticp6s_reflectnumber of responses
u_quad_t[256]icp6s_inhist
u_quad_ticp6s_nd_toomanyopttoo many ND options
struct icmp6errstaticp6s_outerrhist
u_quad_ticp6s_pmtuchgpath MTU changes
u_quad_ticp6s_nd_badoptbad ND options
u_quad_ticp6s_badnsbad neighbor solicitation
u_quad_ticp6s_badnabad neighbor advertisement
u_quad_ticp6s_badrsbad router advertisement
u_quad_ticp6s_badrabad router advertisement
u_quad_ticp6s_badredirectbad redirect message
u_quad_ticp6s_rfc6980_dropNDP packet dropped based on RFC 6980
u_quad_ticp6s_badpkttoobigbad packet too big

macroicp6s_odst_unreach_noroute

#define icp6s_odst_unreach_noroute icp6s_outerrhist.icp6errs_dst_unreach_noroute

macroicp6s_odst_unreach_admin

#define icp6s_odst_unreach_admin icp6s_outerrhist.icp6errs_dst_unreach_admin

macroicp6s_odst_unreach_beyondscope

#define icp6s_odst_unreach_beyondscope icp6s_outerrhist.icp6errs_dst_unreach_beyondscope

macroicp6s_odst_unreach_addr

#define icp6s_odst_unreach_addr icp6s_outerrhist.icp6errs_dst_unreach_addr

macroicp6s_odst_unreach_noport

#define icp6s_odst_unreach_noport icp6s_outerrhist.icp6errs_dst_unreach_noport

macroicp6s_opacket_too_big

#define icp6s_opacket_too_big icp6s_outerrhist.icp6errs_packet_too_big

macroicp6s_otime_exceed_transit

#define icp6s_otime_exceed_transit icp6s_outerrhist.icp6errs_time_exceed_transit

macroicp6s_otime_exceed_reassembly

#define icp6s_otime_exceed_reassembly icp6s_outerrhist.icp6errs_time_exceed_reassembly

macroicp6s_oparamprob_header

#define icp6s_oparamprob_header icp6s_outerrhist.icp6errs_paramprob_header

macroicp6s_oparamprob_nextheader

#define icp6s_oparamprob_nextheader icp6s_outerrhist.icp6errs_paramprob_nextheader

macroicp6s_oparamprob_option

#define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option

macroicp6s_oredirect

#define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect

macroicp6s_ounknown

#define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown

macroICMPV6CTL_STATS

Names for ICMP sysctl objects
#define ICMPV6CTL_STATS 1

macroICMPV6CTL_REDIRACCEPT

#define ICMPV6CTL_REDIRACCEPT 2
accept/process redirects

macroICMPV6CTL_REDIRTIMEOUT

#define ICMPV6CTL_REDIRTIMEOUT 3
redirect cache time

macroICMPV6CTL_ND6_PRUNE

#define ICMPV6CTL_ND6_PRUNE 6

macroICMPV6CTL_ND6_DELAY

#define ICMPV6CTL_ND6_DELAY 8

macroICMPV6CTL_ND6_UMAXTRIES

#define ICMPV6CTL_ND6_UMAXTRIES 9

macroICMPV6CTL_ND6_MMAXTRIES

#define ICMPV6CTL_ND6_MMAXTRIES 10

macroICMPV6CTL_ND6_USELOOPBACK

#define ICMPV6CTL_ND6_USELOOPBACK 11

macroICMPV6CTL_NODEINFO

#define ICMPV6CTL_ND6_PROXYALL 12 obsoleted, do not reuse here
#define ICMPV6CTL_NODEINFO 13

macroICMPV6CTL_ERRPPSLIMIT

#define ICMPV6CTL_ERRPPSLIMIT 14
ICMPv6 error pps limitation

macroICMPV6CTL_ND6_MAXNUDHINT

#define ICMPV6CTL_ND6_MAXNUDHINT 15

macroICMPV6CTL_MTUDISC_HIWAT

#define ICMPV6CTL_MTUDISC_HIWAT 16

macroICMPV6CTL_MTUDISC_LOWAT

#define ICMPV6CTL_MTUDISC_LOWAT 17

macroICMPV6CTL_ND6_DEBUG

#define ICMPV6CTL_ND6_DEBUG 18

macroICMPV6CTL_ND6_DRLIST

#define ICMPV6CTL_ND6_DRLIST 19

macroICMPV6CTL_ND6_PRLIST

#define ICMPV6CTL_ND6_PRLIST 20

macroICMPV6CTL_MLD_MAXSRCFILTER

#define ICMPV6CTL_MLD_MAXSRCFILTER 21

macroICMPV6CTL_MLD_SOMAXSRC

#define ICMPV6CTL_MLD_SOMAXSRC 22

macroICMPV6CTL_MLD_VERSION

#define ICMPV6CTL_MLD_VERSION 23

macroICMPV6CTL_ND6_MAXQLEN

#define ICMPV6CTL_ND6_MAXQLEN 24

macroICMPV6CTL_ND6_ACCEPT_6TO4

#define ICMPV6CTL_ND6_ACCEPT_6TO4 25

macroICMPV6CTL_ND6_OPTIMISTIC_DAD

#define ICMPV6CTL_ND6_OPTIMISTIC_DAD 26
RFC 4429

macroICMPV6CTL_ERRPPSLIMIT_RANDOM_INCR

#define ICMPV6CTL_ERRPPSLIMIT_RANDOM_INCR 27

macroICMPV6CTL_ND6_RTILIST

#define ICMPV6CTL_ND6_RTILIST 28

macroICMPV6CTL_MAXID

#define ICMPV6CTL_MAXID 29