1139826Simp/*-
278064Sume * Copyright (C) 2001 WIDE Project.
378064Sume * All rights reserved.
478064Sume *
578064Sume * Redistribution and use in source and binary forms, with or without
678064Sume * modification, are permitted provided that the following conditions
778064Sume * are met:
878064Sume * 1. Redistributions of source code must retain the above copyright
978064Sume *    notice, this list of conditions and the following disclaimer.
1078064Sume * 2. Redistributions in binary form must reproduce the above copyright
1178064Sume *    notice, this list of conditions and the following disclaimer in the
1278064Sume *    documentation and/or other materials provided with the distribution.
1378064Sume * 3. Neither the name of the project nor the names of its contributors
1478064Sume *    may be used to endorse or promote products derived from this software
1578064Sume *    without specific prior written permission.
1678064Sume *
1778064Sume * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
1878064Sume * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1978064Sume * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2078064Sume * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
2178064Sume * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2278064Sume * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2378064Sume * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2478064Sume * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2578064Sume * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2678064Sume * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2778064Sume * SUCH DAMAGE.
28174510Sobrien *
29174510Sobrien *	$KAME: raw_ip6.h,v 1.2 2001/05/27 13:28:35 itojun Exp $
30174510Sobrien * $FreeBSD$
3178064Sume */
3278064Sume
3378064Sume#ifndef _NETINET6_RAW_IP6_H_
3478064Sume#define _NETINET6_RAW_IP6_H_
3578064Sume
3678064Sume/*
3778064Sume * ICMPv6 stat is counted separately.  see netinet/icmp6.h
3878064Sume */
3978064Sumestruct rip6stat {
40253081Sae	uint64_t rip6s_ipackets;	/* total input packets */
41253081Sae	uint64_t rip6s_isum;		/* input checksum computations */
42253081Sae	uint64_t rip6s_badsum;		/* of above, checksum error */
43253081Sae	uint64_t rip6s_nosock;		/* no matching socket */
44253081Sae	uint64_t rip6s_nosockmcast;	/* of above, arrived as multicast */
45253081Sae	uint64_t rip6s_fullsock;	/* not delivered, input socket full */
4678064Sume
47253081Sae	uint64_t rip6s_opackets;	/* total output packets */
4878064Sume};
4978064Sume
5078064Sume#ifdef _KERNEL
51253085Sae#include <sys/counter.h>
52253085Sae
53253085SaeVNET_PCPUSTAT_DECLARE(struct rip6stat, rip6stat);
54253085Sae#define	RIP6STAT_ADD(name, val)	\
55253085Sae    VNET_PCPUSTAT_ADD(struct rip6stat, rip6stat, name, (val))
56252007Sae#define	RIP6STAT_INC(name)	RIP6STAT_ADD(name, 1)
57253085Sae#endif /* _KERNEL */
5878064Sume
5978064Sume#endif
60