zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/os/linux/linux-3.4.x/include/net/SI/fast6.h b/ap/os/linux/linux-3.4.x/include/net/SI/fast6.h
new file mode 100644
index 0000000..dac21fe
--- /dev/null
+++ b/ap/os/linux/linux-3.4.x/include/net/SI/fast6.h
@@ -0,0 +1,92 @@
+/* * Copyright (c) 2011 Qualcomm Atheros, Inc. * */
+#ifndef _FAST_6_H
+#define _FAST_6_H
+
+#include <linux/in.h>
+#include <linux/ip.h>
+#include <linux/udp.h>
+#include <linux/tcp.h>
+#include <linux/icmp.h>
+#include <net/ip.h>
+#include <linux/if_arp.h>
+
+#include <linux/inetdevice.h>
+#include <linux/netfilter.h>
+#include <linux/netfilter_ipv6.h>
+#include <linux/netfilter_arp.h>
+//#include <linux/netfilter_ipv4/ip_tables.h>
+#include <linux/netfilter/xt_multiport.h>
+#include <linux/netfilter/xt_iprange.h>
+#include <linux/netfilter/nf_conntrack_tcp.h>
+#include <net/checksum.h>
+#include <net/dsfield.h>
+#include <net/route.h>
+#include <net/netfilter/nf_nat.h>
+#include <net/netfilter/nf_nat_core.h>
+#include <net/netfilter/nf_nat_rule.h>
+#include <net/netfilter/nf_conntrack_helper.h>
+#include <linux/module.h>
+
+#include <linux/proc_fs.h>
+
+#include <net/SI/fast_common.h>
+
+/* *******************************ºê¶¨Òå******************************* */
+/* *******************************ºê¶¨Òå******************************* */
+/* *******************************ºê¶¨Òå******************************* */
+
+/* *****************************½á¹¹Ì嶨Òå***************************** */
+/* *****************************½á¹¹Ì嶨Òå***************************** */
+/* *****************************½á¹¹Ì嶨Òå***************************** */
+struct ip6_opthdr
+{
+ unsigned char nxt;
+ unsigned char len;
+};
+
+struct ip6_hdr
+{
+ union
+ {
+ struct ip6_hdrctl
+ {
+ uint32_t ip6_un1_flow; /* 4 bits version, 8 bits TC,
+ 20 bits flow-ID */
+ uint16_t ip6_un1_plen; /* payload length */
+ uint8_t ip6_un1_nxt; /* next header */
+ uint8_t ip6_un1_hlim; /* hop limit */
+ } ip6_un1;
+ uint8_t ip6_un2_vfc; /* 4 bits version, top 4 bits tclass */
+ } ip6_ctlun;
+ struct in6_addr ip6_src; /* source address */
+ struct in6_addr ip6_dst; /* destination address */
+};
+
+#define ip6_vfc ip6_ctlun.ip6_un2_vfc
+#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
+#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
+#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
+#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
+#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim
+
+/* *****************************±äÁ¿ÉùÃ÷***************************** */
+/* *****************************±äÁ¿ÉùÃ÷***************************** */
+/* *****************************±äÁ¿ÉùÃ÷***************************** */
+extern spinlock_t fast6_spinlock; //×ÔÐýËø£¬±£»¤Á´±íµÄ²Ù×÷
+extern fast_list_t working_list6 ;
+extern struct hlist_nulls_head *working_hash6;
+
+/* *****************************½Ó¿ÚÉùÃ÷***************************** */
+/* *****************************½Ó¿ÚÉùÃ÷***************************** */
+/* *****************************½Ó¿ÚÉùÃ÷***************************** */
+int fast6_get_tuple(struct sk_buff *skb, struct nf_conntrack_tuple *tuple);
+
+int fast6_recv(struct sk_buff *skb);
+
+unsigned int napt6_handle(unsigned int hooknum,
+ struct sk_buff *skb,
+ const struct net_device *in,
+ const struct net_device *out, int (*okfn) (struct sk_buff *));
+
+#endif //_FAST_6_H
+