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 34static bool generic_pkt_to_tuple(const struct sk_buff *skb, unsigned int nhoff, 35 struct nf_conntrack_tuple *tuple) 36{ 37 memset(&tuple->src.u3, 0, sizeof(tuple->src.u3)); 38 memset(&tuple->dst.u3, 0, sizeof(tuple->dst.u3)); 39 40 return true; 41} 42 43static bool generic_invert_tuple(struct nf_conntrack_tuple *tuple, 44 const struct nf_conntrack_tuple *orig) 45{ 46 memset(&tuple->src.u3, 0, sizeof(tuple->src.u3)); 47 memset(&tuple->dst.u3, 0, sizeof(tuple->dst.u3)); 48 49 return true; 50} 51 52static int generic_print_tuple(struct seq_file *s, 53 const struct nf_conntrack_tuple *tuple) 54{ 55 return 0; 56} 57 58static int generic_get_l4proto(const struct sk_buff *skb, unsigned int nhoff, 59 unsigned int *dataoff, u_int8_t *protonum) 60{ 61 /* Never track !!! */ 62 return -NF_ACCEPT; 63} 64 65 66struct nf_conntrack_l3proto nf_conntrack_l3proto_generic __read_mostly = { 67 .l3proto = PF_UNSPEC, 68 .name = "unknown", 69 .pkt_to_tuple = generic_pkt_to_tuple, 70 .invert_tuple = generic_invert_tuple, 71 .print_tuple = generic_print_tuple, 72 .get_l4proto = generic_get_l4proto, 73}; 74EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_generic); 75