LCOV - code coverage report
Current view: top level - netinet - icmp_var.h (source / functions) Hit Total Coverage
Test: 6.4 Lines: 0 3 0.0 %
Date: 2018-10-19 03:25:38 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*      $OpenBSD: icmp_var.h,v 1.15 2017/02/07 22:30:16 jmatthew Exp $  */
       2             : /*      $NetBSD: icmp_var.h,v 1.8 1995/03/26 20:32:19 jtc Exp $ */
       3             : 
       4             : /*
       5             :  * Copyright (c) 1982, 1986, 1993
       6             :  *      The Regents of the University of California.  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
      10             :  * are met:
      11             :  * 1. Redistributions of source code must retain the above copyright
      12             :  *    notice, this list of conditions and the following disclaimer.
      13             :  * 2. Redistributions in binary form must reproduce the above copyright
      14             :  *    notice, this list of conditions and the following disclaimer in the
      15             :  *    documentation and/or other materials provided with the distribution.
      16             :  * 3. Neither the name of the University nor the names of its contributors
      17             :  *    may be used to endorse or promote products derived from this software
      18             :  *    without specific prior written permission.
      19             :  *
      20             :  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
      21             :  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      22             :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      23             :  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
      24             :  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      25             :  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      26             :  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      27             :  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      28             :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      29             :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      30             :  * SUCH DAMAGE.
      31             :  *
      32             :  *      @(#)icmp_var.h  8.1 (Berkeley) 6/10/93
      33             :  */
      34             : 
      35             : #ifndef _NETINET_ICMP_VAR_H_
      36             : #define _NETINET_ICMP_VAR_H_
      37             : 
      38             : /*
      39             :  * Variables related to this implementation
      40             :  * of the internet control message protocol.
      41             :  */
      42             : struct  icmpstat {
      43             : /* statistics related to icmp packets generated */
      44             :         u_long  icps_error;             /* # of calls to icmp_error */
      45             :         u_long  icps_toofreq;           /* no error because rate limiter */
      46             :         u_long  icps_oldshort;          /* no error because old ip too short */
      47             :         u_long  icps_oldicmp;           /* no error because old was icmp */
      48             :         u_long  icps_outhist[ICMP_MAXTYPE + 1];
      49             : /* statistics related to input messages processed */
      50             :         u_long  icps_badcode;           /* icmp_code out of range */
      51             :         u_long  icps_tooshort;          /* packet < ICMP_MINLEN */
      52             :         u_long  icps_checksum;          /* bad checksum */
      53             :         u_long  icps_badlen;            /* calculated bound mismatch */
      54             :         u_long  icps_reflect;           /* number of responses */
      55             :         u_long  icps_bmcastecho;        /* rejected broadcast icmps */
      56             :         u_long  icps_inhist[ICMP_MAXTYPE + 1];
      57             : };
      58             : 
      59             : /*
      60             :  * Names for ICMP sysctl objects
      61             :  */
      62             : #define ICMPCTL_MASKREPL        1       /* allow replies to netmask requests */
      63             : #define ICMPCTL_BMCASTECHO      2       /* reply to icmps to broadcast/mcast */
      64             : #define ICMPCTL_ERRPPSLIMIT     3       /* ICMP error pps limitation */
      65             : #define ICMPCTL_REDIRACCEPT     4       /* Accept redirects from routers */
      66             : #define ICMPCTL_REDIRTIMEOUT    5       /* Remove routes added via redirects */
      67             : #define ICMPCTL_TSTAMPREPL      6       /* allow replies to timestamp requests */
      68             : #define ICMPCTL_STATS           7       /* ICMP statistics */
      69             : #define ICMPCTL_MAXID           8
      70             : 
      71             : #define ICMPCTL_NAMES { \
      72             :         { 0, 0 }, \
      73             :         { "maskrepl", CTLTYPE_INT }, \
      74             :         { "bmcastecho", CTLTYPE_INT }, \
      75             :         { "errppslimit", CTLTYPE_INT }, \
      76             :         { "rediraccept", CTLTYPE_INT }, \
      77             :         { "redirtimeout", CTLTYPE_INT }, \
      78             :         { "tstamprepl", CTLTYPE_INT }, \
      79             :         { "stats", CTLTYPE_STRUCT } \
      80             : }
      81             : 
      82             : #define ICMPCTL_VARS { \
      83             :         NULL, \
      84             :         &icmpmaskrepl, \
      85             :         &icmpbmcastecho, \
      86             :         &icmperrppslim, \
      87             :         &icmp_rediraccept, \
      88             :         NULL, \
      89             :         &icmptstamprepl, \
      90             :         NULL \
      91             : }
      92             : 
      93             : #ifdef _KERNEL
      94             : 
      95             : #include <sys/percpu.h>
      96             : 
      97             : enum icmpstat_counters {
      98             :         icps_error,
      99             :         icps_toofreq,
     100             :         icps_oldshort,
     101             :         icps_oldicmp,
     102             :         icps_outhist,
     103             :         icps_badcode = icps_outhist + ICMP_MAXTYPE + 1,
     104             :         icps_tooshort,
     105             :         icps_checksum,
     106             :         icps_badlen,
     107             :         icps_reflect,
     108             :         icps_bmcastecho,
     109             :         icps_inhist,
     110             :         icps_ncounters = icps_inhist + ICMP_MAXTYPE + 1
     111             : };
     112             : 
     113             : extern struct cpumem *icmpcounters;
     114             : 
     115             : static inline void
     116           0 : icmpstat_inc(enum icmpstat_counters c)
     117             : {
     118           0 :         counters_inc(icmpcounters, c);
     119           0 : }
     120             : 
     121             : #endif /* _KERNEL */
     122             : #endif /* _NETINET_ICMP_VAR_H_ */

Generated by: LCOV version 1.13