add siit for stateless ip and icmp translation to ipv6
[openwrt/svn-archive/archive.git] / package / siit / src / siit.h
1 /*
2 * siit.h -- definitions for the SIIT module
3 *
4 *
5 */
6
7 /*
8 * Constants
9 */
10
11 /* SIIT_ETH control the name of SIIT interface:
12 * 0 - interface name is siit0,
13 * 1 - interface name is ethX.
14 */
15 #define SIIT_ETH 0
16
17 #define BUFF_SIZE 4096
18 #define FRAG_BUFF_SIZE 1232 /* IPv6 max fragment size without IPv6 header
19 * to fragmanet IPv4 if result IPv6 packet will be > 1280
20 */
21
22 #define TRANSLATED_PREFIX 0x0000ffff /* third byte in IPv4-translated addr prefix */
23 #define MAPPED_PREFIX 0x0000ffff /* third byte in IPv4-mapped addr prefix */
24
25 #define IP4_IP6_HDR_DIFF 20 /* diffirence between IPv4 and IPv6 headers */
26 #define IP6_FRAGMENT_SIZE 8 /* size of Fragment Header */
27
28 /* IPv6 header fields masks */
29 #define IP6F_OFF_MASK 0xfff8 /* mask out offset from frag_off */
30 #define IP6F_RESERVED_MASK 0x0006 /* reserved bits in frag_off */
31 #define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */
32
33
34
35 /*
36 * Macros to help debugging
37 */
38
39 #undef PDEBUG /* undef it, just in case */
40 #ifdef SIIT_DEBUG
41 # ifdef __KERNEL__
42 /* This one if debugging is on, and kernel space */
43 # define PDEBUG(fmt, args...) printk(KERN_DEBUG "siit: " fmt, ## args)
44 # else
45 /* This one for user space */
46 # define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
47 # endif
48 #else
49 # define PDEBUG(fmt, args...) /* not debugging: nothing */
50 #endif
51
52 #undef PDEBUGG
53 #define PDEBUGG(fmt, args...)
54
55
56
57
58
59
60
61