|
@@ -0,0 +1,61 @@
|
|
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
|
+
|