parent
a6538d1480
commit
651a578f52
@ -0,0 +1,43 @@ |
||||
#
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# $Id: Makefile 10203 2008-01-15 03:25:11Z matteo $
|
||||
|
||||
include $(TOPDIR)/rules.mk |
||||
include $(INCLUDE_DIR)/kernel.mk |
||||
|
||||
PKG_NAME:=siit
|
||||
PKG_VERSION:=1.1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk |
||||
|
||||
define KernelPackage/siit |
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Stateless IP ICMP Translation Algorithm
|
||||
FILES:=$(PKG_BUILD_DIR)/siit.$(LINUX_KMOD_SUFFIX)
|
||||
AUTOLOAD:=$(call AutoLoad,50,siit)
|
||||
endef |
||||
|
||||
define KernelPackage/siit/description |
||||
Stateless IP ICMP Translation Algorithm
|
||||
endef |
||||
|
||||
define Build/Prepare |
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
cp src/Makefile src/siit.h src/siit.c $(PKG_BUILD_DIR)/
|
||||
endef |
||||
|
||||
define Build/Compile |
||||
$(MAKE) -C $(LINUX_DIR) \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
KERNELDIR=$(LINUX_DIR) \
|
||||
CC="$(TARGET_CC)" \
|
||||
modules
|
||||
endef |
||||
|
||||
$(eval $(call KernelPackage,siit)) |
@ -0,0 +1,5 @@ |
||||
obj-m := siit.o
|
||||
ifeq ($(MAKING_MODULES),1) |
||||
-include $(TOPDIR)/Rules.make |
||||
endif |
||||
|
File diff suppressed because it is too large
Load Diff
@ -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...) |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in new issue