summaryrefslogtreecommitdiffstats
path: root/package/siit/src/siit.h
blob: 47cf77645ff6ea9261e750ea6101dcef3ef18187 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
 * siit.h -- definitions for the SIIT module
 *
 *
 */

/*
 * Constants
 */

/* SIIT_ETH control the name of SIIT interface:
 * 0 - interface name is siit0,
 * 1 - interface name is ethX.
 */
#define SIIT_ETH 0

#define BUFF_SIZE 4096
#define FRAG_BUFF_SIZE 1232     /* IPv6 max fragment size without IPv6 header 
                                 * to fragmanet IPv4 if result IPv6 packet will be > 1280
                                 */

#define TRANSLATED_PREFIX 0x0000ffff /* third byte in IPv4-translated addr prefix */
#define MAPPED_PREFIX 0x0000ffff     /* third byte in IPv4-mapped addr prefix */

#define IP4_IP6_HDR_DIFF 20     /* diffirence between IPv4 and IPv6 headers */
#define IP6_FRAGMENT_SIZE 8     /* size of Fragment Header */

/* IPv6 header fields masks */
#define IP6F_OFF_MASK       0xfff8  /* mask out offset from frag_off */
#define IP6F_RESERVED_MASK  0x0006  /* reserved bits in frag_off */
#define IP6F_MORE_FRAG      0x0001  /* more-fragments flag */



/*
 * Macros to help debugging
 */

#undef PDEBUG             /* undef it, just in case */
#ifdef SIIT_DEBUG
#  ifdef __KERNEL__
     /* This one if debugging is on, and kernel space */
#    define PDEBUG(fmt, args...) printk(KERN_DEBUG "siit: " fmt, ## args)
#  else
     /* This one for user space */
#    define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
#  endif
#else
#  define PDEBUG(fmt, args...) /* not debugging: nothing */
#endif

#undef PDEBUGG
#define PDEBUGG(fmt, args...)