[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What is wrong with this kernel module??? :((
From: |
Murtaza |
Subject: |
What is wrong with this kernel module??? :(( |
Date: |
Mon, 31 Dec 2007 15:23:18 +0500 |
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
- What is wrong with this kernel module??? :((,
Murtaza <=