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