Deleted Added
full compact
icmp6.h (250251) icmp6.h (253081)
1/* $FreeBSD: head/sys/netinet/icmp6.h 250251 2013-05-04 19:16:26Z hrs $ */
1/* $FreeBSD: head/sys/netinet/icmp6.h 253081 2013-07-09 09:32:06Z ae $ */
2/* $KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $ */
3
4/*-
5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions

--- 540 unchanged lines hidden (view full) ---

550#define ICMP6_FILTER_WILLBLOCK(type, filterp) \
551 ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
552
553/*
554 * Variables related to this implementation
555 * of the internet control message protocol version 6.
556 */
557struct icmp6errstat {
2/* $KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $ */
3
4/*-
5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions

--- 540 unchanged lines hidden (view full) ---

550#define ICMP6_FILTER_WILLBLOCK(type, filterp) \
551 ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
552
553/*
554 * Variables related to this implementation
555 * of the internet control message protocol version 6.
556 */
557struct icmp6errstat {
558 u_quad_t icp6errs_dst_unreach_noroute;
559 u_quad_t icp6errs_dst_unreach_admin;
560 u_quad_t icp6errs_dst_unreach_beyondscope;
561 u_quad_t icp6errs_dst_unreach_addr;
562 u_quad_t icp6errs_dst_unreach_noport;
563 u_quad_t icp6errs_packet_too_big;
564 u_quad_t icp6errs_time_exceed_transit;
565 u_quad_t icp6errs_time_exceed_reassembly;
566 u_quad_t icp6errs_paramprob_header;
567 u_quad_t icp6errs_paramprob_nextheader;
568 u_quad_t icp6errs_paramprob_option;
569 u_quad_t icp6errs_redirect; /* we regard redirect as an error here */
570 u_quad_t icp6errs_unknown;
558 uint64_t icp6errs_dst_unreach_noroute;
559 uint64_t icp6errs_dst_unreach_admin;
560 uint64_t icp6errs_dst_unreach_beyondscope;
561 uint64_t icp6errs_dst_unreach_addr;
562 uint64_t icp6errs_dst_unreach_noport;
563 uint64_t icp6errs_packet_too_big;
564 uint64_t icp6errs_time_exceed_transit;
565 uint64_t icp6errs_time_exceed_reassembly;
566 uint64_t icp6errs_paramprob_header;
567 uint64_t icp6errs_paramprob_nextheader;
568 uint64_t icp6errs_paramprob_option;
569 uint64_t icp6errs_redirect; /* we regard redirect as an error here */
570 uint64_t icp6errs_unknown;
571};
572
573struct icmp6stat {
574/* statistics related to icmp6 packets generated */
571};
572
573struct icmp6stat {
574/* statistics related to icmp6 packets generated */
575 u_quad_t icp6s_error; /* # of calls to icmp6_error */
576 u_quad_t icp6s_canterror; /* no error 'cuz old was icmp */
577 u_quad_t icp6s_toofreq; /* no error 'cuz rate limitation */
578 u_quad_t icp6s_outhist[256];
575 uint64_t icp6s_error; /* # of calls to icmp6_error */
576 uint64_t icp6s_canterror; /* no error 'cuz old was icmp */
577 uint64_t icp6s_toofreq; /* no error 'cuz rate limitation */
578 uint64_t icp6s_outhist[256];
579/* statistics related to input message processed */
579/* statistics related to input message processed */
580 u_quad_t icp6s_badcode; /* icmp6_code out of range */
581 u_quad_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */
582 u_quad_t icp6s_checksum; /* bad checksum */
583 u_quad_t icp6s_badlen; /* calculated bound mismatch */
580 uint64_t icp6s_badcode; /* icmp6_code out of range */
581 uint64_t icp6s_tooshort; /* packet < sizeof(struct icmp6_hdr) */
582 uint64_t icp6s_checksum; /* bad checksum */
583 uint64_t icp6s_badlen; /* calculated bound mismatch */
584 /*
585 * number of responses: this member is inherited from netinet code, but
586 * for netinet6 code, it is already available in icp6s_outhist[].
587 */
584 /*
585 * number of responses: this member is inherited from netinet code, but
586 * for netinet6 code, it is already available in icp6s_outhist[].
587 */
588 u_quad_t icp6s_reflect;
589 u_quad_t icp6s_inhist[256];
590 u_quad_t icp6s_nd_toomanyopt; /* too many ND options */
588 uint64_t icp6s_reflect;
589 uint64_t icp6s_inhist[256];
590 uint64_t icp6s_nd_toomanyopt; /* too many ND options */
591 struct icmp6errstat icp6s_outerrhist;
592#define icp6s_odst_unreach_noroute \
593 icp6s_outerrhist.icp6errs_dst_unreach_noroute
594#define icp6s_odst_unreach_admin icp6s_outerrhist.icp6errs_dst_unreach_admin
595#define icp6s_odst_unreach_beyondscope \
596 icp6s_outerrhist.icp6errs_dst_unreach_beyondscope
597#define icp6s_odst_unreach_addr icp6s_outerrhist.icp6errs_dst_unreach_addr
598#define icp6s_odst_unreach_noport icp6s_outerrhist.icp6errs_dst_unreach_noport
599#define icp6s_opacket_too_big icp6s_outerrhist.icp6errs_packet_too_big
600#define icp6s_otime_exceed_transit \
601 icp6s_outerrhist.icp6errs_time_exceed_transit
602#define icp6s_otime_exceed_reassembly \
603 icp6s_outerrhist.icp6errs_time_exceed_reassembly
604#define icp6s_oparamprob_header icp6s_outerrhist.icp6errs_paramprob_header
605#define icp6s_oparamprob_nextheader \
606 icp6s_outerrhist.icp6errs_paramprob_nextheader
607#define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option
608#define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect
609#define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown
591 struct icmp6errstat icp6s_outerrhist;
592#define icp6s_odst_unreach_noroute \
593 icp6s_outerrhist.icp6errs_dst_unreach_noroute
594#define icp6s_odst_unreach_admin icp6s_outerrhist.icp6errs_dst_unreach_admin
595#define icp6s_odst_unreach_beyondscope \
596 icp6s_outerrhist.icp6errs_dst_unreach_beyondscope
597#define icp6s_odst_unreach_addr icp6s_outerrhist.icp6errs_dst_unreach_addr
598#define icp6s_odst_unreach_noport icp6s_outerrhist.icp6errs_dst_unreach_noport
599#define icp6s_opacket_too_big icp6s_outerrhist.icp6errs_packet_too_big
600#define icp6s_otime_exceed_transit \
601 icp6s_outerrhist.icp6errs_time_exceed_transit
602#define icp6s_otime_exceed_reassembly \
603 icp6s_outerrhist.icp6errs_time_exceed_reassembly
604#define icp6s_oparamprob_header icp6s_outerrhist.icp6errs_paramprob_header
605#define icp6s_oparamprob_nextheader \
606 icp6s_outerrhist.icp6errs_paramprob_nextheader
607#define icp6s_oparamprob_option icp6s_outerrhist.icp6errs_paramprob_option
608#define icp6s_oredirect icp6s_outerrhist.icp6errs_redirect
609#define icp6s_ounknown icp6s_outerrhist.icp6errs_unknown
610 u_quad_t icp6s_pmtuchg; /* path MTU changes */
611 u_quad_t icp6s_nd_badopt; /* bad ND options */
612 u_quad_t icp6s_badns; /* bad neighbor solicitation */
613 u_quad_t icp6s_badna; /* bad neighbor advertisement */
614 u_quad_t icp6s_badrs; /* bad router advertisement */
615 u_quad_t icp6s_badra; /* bad router advertisement */
616 u_quad_t icp6s_badredirect; /* bad redirect message */
610 uint64_t icp6s_pmtuchg; /* path MTU changes */
611 uint64_t icp6s_nd_badopt; /* bad ND options */
612 uint64_t icp6s_badns; /* bad neighbor solicitation */
613 uint64_t icp6s_badna; /* bad neighbor advertisement */
614 uint64_t icp6s_badrs; /* bad router advertisement */
615 uint64_t icp6s_badra; /* bad router advertisement */
616 uint64_t icp6s_badredirect; /* bad redirect message */
617};
618
619#ifdef _KERNEL
620/*
621 * In-kernel consumers can use these accessor macros directly to update
622 * stats.
623 */
624#define ICMP6STAT_ADD(name, val) V_icmp6stat.name += (val)

--- 135 unchanged lines hidden ---
617};
618
619#ifdef _KERNEL
620/*
621 * In-kernel consumers can use these accessor macros directly to update
622 * stats.
623 */
624#define ICMP6STAT_ADD(name, val) V_icmp6stat.name += (val)

--- 135 unchanged lines hidden ---