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