[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAJUHuJpjdRLAPBA1TpSG5=gySDyaaKG+CU-v=h3h+davru+pMA@mail.gmail.com>
Date: Tue, 15 Oct 2013 15:34:17 +0330
From: Milad khajavi <khajavi@...il.com>
To: netdev@...r.kernel.org
Subject: How to filter and intercept packets by using net_dev_add api?
I'm writing ethernet network driver for linux. I want to receive
packets, edit and resend them. I know how to edit the packet in
packet_interceptor function, but how can I drop incoming packets in
this function??
Yesterday I've asked this question in stackoverflow [1], but since
now, no one reply that.
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/ip.h>
struct packet_type my_proto;
int packet_interceptor(struct sk_buff *skb,
struct net_device *dev,
struct packet_type *pt,
struct net_device *orig_dev) {
//// I don't want certain packets go to upper in net_devices for
further processing.
//// How can I drop sk_buff here?!
return 0;
}
static int hello_init( void ) {
printk(KERN_INFO "Hello, world!\n");
my_proto.type = htons(ETH_P_ALL);
my_proto.dev = NULL;
my_proto.func = packet_interceptor;
dev_add_pack(&my_proto);
return 0;
}
static void hello_exit(void) {
dev_remove_pack(&my_proto);
printk(KERN_INFO "Bye, world\n");
}
module_init(hello_init);
module_exit(hello_exit);
[1] - http://stackoverflow.com/questions/19342252/how-to-filter-and-intercept-linux-packets-by-using-net-dev-add-api
--
Milād Khājavi
http://blog.khajavi.ir
Having the source means you can do it yourself.
I tried to change the world, but I couldn’t find the source code.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists