summaryrefslogtreecommitdiffstats
path: root/ip6t_MAP66.h
blob: c3e124f5225983e6f25748eb8d9d485532f001e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * MAP66: Network Address Translation IPv6-to-IPv6 as
 * proposed in the IETF's second NAT66 draft document.
 * (c) 2010 sven-ola()gmx.de
 */

#ifndef _IP6T_MAP66_H
#define _IP6T_MAP66_H

#define IP6T_MAP66_DST_TO "dst-to"
#define IP6T_MAP66_SRC_TO "src-to"

#define IP6T_MAP66_OPT_DST_TO 0x01
#define IP6T_MAP66_OPT_SRC_TO 0x02
#define IP6T_MAP66_OPT_OFFSET 0x04
#define IP6T_MAP66_OPT_NOCHECK 0x08

struct ip6t_MAP66_info {
	struct in6_addr	pfix_dst_to;	/* The prefix to map destination addrs to */
	u_int16_t	pfix_dst_len;	/* Destination addrs prefix length DIV 16 */
	u_int16_t	pfix_dst_csum;	/* Pre-calculated csum for destination addrs */
	struct in6_addr	pfix_src_to;	/* The prefix to map source addrs from */
	u_int16_t	pfix_src_len;	/* Source addrs prefix length DIV 16 */
	u_int16_t	pfix_src_csum;	/* Pre-calculated csum for source addrs */
	u_int16_t	mapoffset;	/* Offset in addrs for balanced csum change */
	u_int16_t	mapflags;	/* Some flags */
};

extern void _init(void);

#endif /*_IPT_MAP66_H*/