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