Deleted Added
sdiff udiff text old ( 153809 ) new ( 160787 )
full compact
1/* $FreeBSD: head/usr.bin/netstat/pfkey.c 153809 2005-12-28 20:36:55Z kbyanc $ */
2/* $NetBSD: inet.c,v 1.35.2.1 1999/04/29 14:57:08 perry Exp $ */
3/* $KAME: ipsec.c,v 1.25 2001/03/12 09:04:39 itojun Exp $ */
4
5/*
6 * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without

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

65 */
66
67#include <sys/cdefs.h>
68#ifndef lint
69/*
70static char sccsid[] = "@(#)inet.c 8.5 (Berkeley) 5/24/95";
71*/
72static const char rcsid[] =
73 "$FreeBSD: head/usr.bin/netstat/pfkey.c 153809 2005-12-28 20:36:55Z kbyanc $";
74#endif /* not lint */
75
76#include <sys/param.h>
77#include <sys/queue.h>
78#include <sys/socket.h>
79
80#include <netinet/in.h>
81
82#if defined(IPSEC) && !defined(FAST_IPSEC)
83#include <netkey/keysock.h>
84#endif
85
86#ifdef FAST_IPSEC
87#include <netipsec/keysock.h>
88#endif
89
90#include <stdio.h>
91#include <string.h>
92#include <unistd.h>
93#include "netstat.h"
94
95#ifdef IPSEC
96
97static const char *pfkey_msgtypenames[] = {

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

125 unsigned first, type;
126
127 if (off == 0)
128 return;
129 printf ("%s:\n", name);
130 kread(off, (char *)&pfkeystat, sizeof(pfkeystat));
131
132#define p(f, m) if (pfkeystat.f || sflag <= 1) \
133 printf(m, (unsigned long long)pfkeystat.f, plural(pfkeystat.f))
134
135 /* userland -> kernel */
136 p(out_total, "\t%llu request%s sent from userland\n");
137 p(out_bytes, "\t%llu byte%s sent from userland\n");
138 for (first = 1, type = 0;
139 type < sizeof(pfkeystat.out_msgtype)/sizeof(pfkeystat.out_msgtype[0]);
140 type++) {
141 if (pfkeystat.out_msgtype[type] <= 0)
142 continue;
143 if (first) {
144 printf("\thistogram by message type:\n");
145 first = 0;
146 }
147 printf("\t\t%s: %llu\n", pfkey_msgtype_names(type),
148 (unsigned long long)pfkeystat.out_msgtype[type]);
149 }
150 p(out_invlen, "\t%llu message%s with invalid length field\n");
151 p(out_invver, "\t%llu message%s with invalid version field\n");
152 p(out_invmsgtype, "\t%llu message%s with invalid message type field\n");
153 p(out_tooshort, "\t%llu message%s too short\n");
154 p(out_nomem, "\t%llu message%s with memory allocation failure\n");
155 p(out_dupext, "\t%llu message%s with duplicate extension\n");
156 p(out_invexttype, "\t%llu message%s with invalid extension type\n");
157 p(out_invsatype, "\t%llu message%s with invalid sa type\n");
158 p(out_invaddr, "\t%llu message%s with invalid address extension\n");
159
160 /* kernel -> userland */
161 p(in_total, "\t%llu request%s sent to userland\n");
162 p(in_bytes, "\t%llu byte%s sent to userland\n");
163 for (first = 1, type = 0;
164 type < sizeof(pfkeystat.in_msgtype)/sizeof(pfkeystat.in_msgtype[0]);
165 type++) {
166 if (pfkeystat.in_msgtype[type] <= 0)
167 continue;
168 if (first) {
169 printf("\thistogram by message type:\n");
170 first = 0;
171 }
172 printf("\t\t%s: %llu\n", pfkey_msgtype_names(type),
173 (unsigned long long)pfkeystat.in_msgtype[type]);
174 }
175 p(in_msgtarget[KEY_SENDUP_ONE],
176 "\t%llu message%s toward single socket\n");
177 p(in_msgtarget[KEY_SENDUP_ALL],
178 "\t%llu message%s toward all sockets\n");
179 p(in_msgtarget[KEY_SENDUP_REGISTERED],
180 "\t%llu message%s toward registered sockets\n");
181 p(in_nomem, "\t%llu message%s with memory allocation failure\n");
182#undef p
183}
184#endif /* IPSEC */