1/*- 2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 47 unchanged lines hidden (view full) --- 56 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 57 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 58 * SUCH DAMAGE. 59 * 60 * @(#)ip_icmp.c 8.2 (Berkeley) 1/4/94 61 */ 62 63#include <sys/cdefs.h> |
64__FBSDID("$FreeBSD: head/sys/netinet6/icmp6.c 241916 2012-10-22 21:49:56Z delphij $"); |
65 66#include "opt_inet.h" 67#include "opt_inet6.h" 68#include "opt_ipsec.h" 69 70#include <sys/param.h> 71#include <sys/domain.h> 72#include <sys/jail.h> --- 55 unchanged lines hidden (view full) --- 128#define V_icmp6errppslim VNET(icmp6errppslim) 129#define V_icmp6errpps_count VNET(icmp6errpps_count) 130#define V_icmp6errppslim_last VNET(icmp6errppslim_last) 131#define V_icmp6_nodeinfo VNET(icmp6_nodeinfo) 132 133static void icmp6_errcount(struct icmp6errstat *, int, int); 134static int icmp6_rip6_input(struct mbuf **, int); 135static int icmp6_ratelimit(const struct in6_addr *, const int, const int); |
136static const char *icmp6_redirect_diag(struct in6_addr *, 137 struct in6_addr *, struct in6_addr *); |
138static struct mbuf *ni6_input(struct mbuf *, int); 139static struct mbuf *ni6_nametodns(const char *, int, int); 140static int ni6_dnsmatch(const char *, int, const char *, int); |
141static int ni6_addrs(struct icmp6_nodeinfo *, struct mbuf *, 142 struct ifnet **, struct in6_addr *); 143static int ni6_store_addrs(struct icmp6_nodeinfo *, struct icmp6_nodeinfo *, 144 struct ifnet *, int); |
145static int icmp6_notify_error(struct mbuf **, int, int, int); 146 147/* 148 * Kernel module interface for updating icmp6stat. The argument is an index 149 * into icmp6stat treated as an array of u_quad_t. While this encodes the 150 * general layout of icmp6stat into the caller, it doesn't encode its 151 * location, so that future changes to add, for example, per-CPU stats 152 * support won't cause binary compatibility problems for kernel modules. --- 2783 unchanged lines hidden --- |