I am writing a module for getting the udp packets @ kernel level to optimize an application i am building. I am running the following code by using virtual Linux Kernel for debugging purpose(using some umlscript shell). But I am not able to catch udp packets at the kernel level when the packets are sent to it. Can anybody help please??? ---------------------------------------------- #define __LITTLE_ENDIAN_BITFIELD #include <linux/ip.h> #include <linux/kernel.h> #include <linux/signal.h> #include <linux/module.h> #include <linux/netdevice.h> #include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> #include <linux/if_arp.h> #include <linux/skbuff.h> #include <linux/udp.h> #include <linux/init.h> #include <linux/sched.h> #include <linux/tty.h> #include <linux/version.h> #include <linux/slab.h> #include <linux/list.h> #include <linux/workqueue.h> #define E_INVALID_ARGS -1 #define E_OUT_OF_MEMORY -2 #define MAX_KEY_LEN 20 #define MAX_VALUE_LEN 20 MODULE_LICENSE("GPL"); static struct nf_hook_ops netfilter_ops; unsigned char *port = "\x13\x8d"; struct udphdr *udp_header; struct tty_struct *my_tty = NULL; static int pkts = 0; struct workqueue_struct *knfd_wq; static char *interface = "lo"; struct sk_buff *sock_buff; extern __sum16 skb_checksum_complete(struct sk_buff *skb); unsigned int main_hook(unsigned int hooknum, struct sk_buff **skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff*)) { struct sk_buff *sock_buff = *skb; //struct Tupple* t = ethernet_packet_parser(*skb); printk(KERN_ALERT"i m in the start\n"); if(!sock_buff){ return NF_ACCEPT;} //if(!(sock_buff->nh.iph)){ return NF_ACCEPT;} if(sock_buff->protocol!=17) { printk(KERN_ALERT"i m out , protcol: %d \n",sock_buff->protocol); return NF_ACCEPT; } ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ///////////////// PROBLEM PROBLEM PROBLEM PROBLEM /////////// ///// I never reach there Even i send UDP packets /////// to my machine... /////////// ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// printk(KERN_ALERT"\n\ni got it \r\n"); return 0; } int init_module() { printk(KERN_ALERT"init_module called\r\n"); netfilter_ops.hook = main_hook; netfilter_ops.pf = PF_INET; netfilter_ops.hooknum = NF_IP_PRE_ROUTING; netfilter_ops.priority = NF_IP_PRI_FIRST; nf_register_hook(&netfilter_ops); printk(KERN_ALERT"Module loaded\n\r"); net_enable_timestamp(); return 0; } -- Ghulam Murtaza Lahore University of Management Sciences _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf