xref: /freebsd/sbin/ipf/iplang/iplang.h (revision 2e3507c25e42292b45a5482e116d278f5515d04d)
1 
2 /*
3  * Copyright (C) 2012 by Darren Reed.
4  *
5  * See the IPFILTER.LICENCE file for details on licencing.
6  */
7 typedef	struct iface {
8 	int	if_MTU;
9 	char	*if_name;
10 	struct	in_addr	if_addr;
11 	struct	ether_addr	if_eaddr;
12 	struct	iface *if_next;
13 	int	if_fd;
14 } iface_t;
15 
16 
17 typedef	struct	send	{
18 	struct	iface	*snd_if;
19 	struct	in_addr	snd_gw;
20 } send_t;
21 
22 
23 typedef	struct	arp	{
24 	struct	in_addr	arp_addr;
25 	struct	ether_addr	arp_eaddr;
26 	struct	arp *arp_next;
27 } arp_t;
28 
29 
30 typedef	struct	aniphdr	{
31 	union	{
32 		ip_t		*ahu_ip;
33 		char		*ahu_data;
34 		tcphdr_t	*ahu_tcp;
35 		udphdr_t	*ahu_udp;
36 		icmphdr_t	*ahu_icmp;
37 	} ah_un;
38 	int	ah_optlen;
39 	int	ah_lastopt;
40 	int	ah_p;
41 	size_t	ah_len;
42 	struct	aniphdr	*ah_next;
43 	struct	aniphdr	*ah_prev;
44 } aniphdr_t;
45 
46 #define	ah_ip	ah_un.ahu_ip
47 #define	ah_data	ah_un.ahu_data
48 #define	ah_tcp	ah_un.ahu_tcp
49 #define	ah_udp	ah_un.ahu_udp
50 #define	ah_icmp	ah_un.ahu_icmp
51 
52 extern	int	get_arpipv4(char *, char *);
53 
54