红联Linux门户
Linux帮助

请教如何在linux内核内实现数据的复制转发

发布时间:2007-06-04 01:08:29来源:红联作者:minben
原来的想法是利用hook函数把包抓下来后,通过clone 其skb结构再修改里面的目的mac地址然后用dev_queue_xmit将clone后的若干skb发送到不同的地址,后来发现这个想法有问题,就是每次clone然后dev_queue_xmit这个skb结构后,它不是马上发送这个包,而是放到一个队列里,这样若修改第二次clone的skb时就会发现第一次clone的skb所要发送的mac地址被改变了。。。当然clone改为copy就没问题了,但感觉这样开销太大了

有没有办法每次clone并调用dev_queue_xmit()后让它马上发出去呢?或者有什么别的办法呢?能不嫩仿照组播的做法呢?(看过相关源代码,组播是用clone的,但它有一个cache记录组播路由信息而且调用的是ipmr_queue_xmit)
文章评论

共有 0 条评论