1/* 2 * (C) 2003,2004 USAGI/WIDE Project <http://www.linux-ipv6.org> 3 * 4 * Based largely upon the original ip_conntrack code which 5 * had the following copyright information: 6 * 7 * (C) 1999-2001 Paul `Rusty' Russell 8 * (C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 * 14 * Author: 15 * Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp> 16 */ 17 18#include <linux/types.h> 19#include <linux/ip.h> 20#include <linux/netfilter.h> 21#include <linux/module.h> 22#include <linux/skbuff.h> 23#include <linux/icmp.h> 24#include <linux/sysctl.h> 25#include <net/ip.h> 26 27#include <linux/netfilter_ipv4.h> 28#include <net/netfilter/nf_conntrack.h> 29#include <net/netfilter/nf_conntrack_l4proto.h> 30#include <net/netfilter/nf_conntrack_l3proto.h> 31#include <net/netfilter/nf_conntrack_core.h> 32#include <net/netfilter/ipv4/nf_conntrack_ipv4.h> 33 34#define DEBUGP(format, args...) 35 36static int generic_pkt_to_tuple(const struct sk_buff *skb, unsigned int nhoff, 37 struct nf_conntrack_tuple *tuple) 38{ 39 memset(&tuple->src.u3, 0, sizeof(tuple->src.u3)); 40 memset(&tuple->dst.u3, 0, sizeof(tuple->dst.u3)); 41 42 return 1; 43} 44 45static int generic_invert_tuple(struct nf_conntrack_tuple *tuple, 46 const struct nf_conntrack_tuple *orig) 47{ 48 memset(&tuple->src.u3, 0, sizeof(tuple->src.u3)); 49 memset(&tuple->dst.u3, 0, sizeof(tuple->dst.u3)); 50 51 return 1; 52} 53 54static int generic_print_tuple(struct seq_file *s, 55 const struct nf_conntrack_tuple *tuple) 56{ 57 return 0; 58} 59 60static int generic_print_conntrack(struct seq_file *s, 61 const struct nf_conn *conntrack) 62{ 63 return 0; 64} 65 66static int 67generic_prepare(struct sk_buff **pskb, unsigned int hooknum, 68 unsigned int *dataoff, u_int8_t *protonum) 69{ 70 /* Never track !!! */ 71 return -NF_ACCEPT; 72} 73 74 75static u_int32_t generic_get_features(const struct nf_conntrack_tuple *tuple) 76 77{ 78 return NF_CT_F_BASIC; 79} 80 81struct nf_conntrack_l3proto nf_conntrack_l3proto_generic = { 82 .l3proto = PF_UNSPEC, 83 .name = "unknown", 84 .pkt_to_tuple = generic_pkt_to_tuple, 85 .invert_tuple = generic_invert_tuple, 86 .print_tuple = generic_print_tuple, 87 .print_conntrack = generic_print_conntrack, 88 .prepare = generic_prepare, 89 .get_features = generic_get_features, 90}; 91EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_generic); 92