xref: /openbsd-src/sys/netinet/ip_ether.h (revision b2ea75c1b17e1a9a339660e7ed45cd24946b230e)
1 /*	$OpenBSD: ip_ether.h,v 1.11 2001/06/25 05:11:58 angelos Exp $ */
2 /*
3  * The author of this code is Angelos D. Keromytis (angelos@adk.gr)
4  *
5  * This code was written by Angelos D. Keromytis in October 1999.
6  *
7  * Copyright (C) 1999-2001 Angelos D. Keromytis.
8  *
9  * Permission to use, copy, and modify this software with or without fee
10  * is hereby granted, provided that this entire notice is included in
11  * all copies of any software which is or includes a copy or
12  * modification of this software.
13  * You may use this code under the GNU public license if you so wish. Please
14  * contribute changes back to the authors under this freer than GPL license
15  * so that we may further the use of strong encryption without limitations to
16  * all.
17  *
18  * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
19  * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
20  * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
21  * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
22  * PURPOSE.
23  */
24 
25 #ifndef _NETINET_IP_ETHER_H_
26 #define _NETINET_IP_ETHER_H_
27 
28 /*
29  * Ethernet-inside-IP processing.
30  */
31 
32 struct etheripstat {
33 	u_int32_t	etherip_hdrops;		/* packet shorter than header shows */
34 	u_int32_t	etherip_qfull;		/* bridge queue full, packet dropped */
35 	u_int32_t	etherip_noifdrops;	/* no interface/bridge information */
36 	u_int32_t	etherip_pdrops;		/* packet dropped due to policy */
37 	u_int32_t	etherip_adrops;         /* all other drops */
38 	u_int32_t	etherip_ipackets;	/* total input packets */
39 	u_int32_t	etherip_opackets;	/* total output packets */
40 	u_int64_t	etherip_ibytes;		/* input bytes */
41 	u_int64_t	etherip_obytes;		/* output bytes */
42 };
43 
44 struct etherip_header {
45 	u_int8_t	eip_ver;		/* version/reserved */
46 	u_int8_t	eip_pad;		/* required padding byte */
47 };
48 #define ETHERIP_VER_VERS_MASK	0x0f
49 #define ETHERIP_VER_RSVD_MASK	0xf0
50 
51 #define ETHERIP_VERSION		0x03
52 
53 /*
54  * Names for Ether-IP sysctl objects
55  */
56 #define	ETHERIPCTL_ALLOW	1	/* accept incoming EtherIP packets */
57 #define ETHERIPCTL_MAXID	2
58 
59 #define ETHERIPCTL_NAMES { \
60 	{ 0, 0 }, \
61 	{ "allow", CTLTYPE_INT }, \
62 }
63 
64 #ifdef _KERNEL
65 int	etherip_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
66 
67 extern int etherip_allow;
68 extern struct etheripstat etheripstat;
69 #endif /* _KERNEL */
70 #endif /* _NETINET_IP_ETHER_H_ */
71