Classification: UNCLASSIFIED Caveats: NONE I'm not sure if this is the right group, but my question is about reinjecting packets after modification. I wrote a simple kernel module which took a skb, copied it with skb_clone(skb), called dev_queue_xmit(cloned_skb) and returned NF_STOLEN. unsigned int process_outgoing( unsigned int hooknum, struct sk_buff **skb, ... ) struct sk_buff *skbuf = skb_copy(*skb, GFP_ATOMIC); ... ... int rtval; If(!skbuf) Return NF_ACCEPT; ... ... rtval = dev_queue_xmit(skbuf); if( rtval == NET_XMIT_SUCCESS) printk("Great packet queued\n"); else { printk("packet not resent\n") } return NF_STOLEN; } After installing this module, my client/server application transmits the first packet then hangs. Nothing else is received on both ends. If I remove the module, packet will slowly begin to be received. Admittedly there is a lot that I don't understand about netfilters, but this makes absolutely no sense to me. I can't seem find a lot of documentation about reinjecting packets. I came across the function nf_reinject(skb,nf_info,verdict) but I have no idea where the middle parameter is coming from or how this verdict is affecting the return value of my process_outgoing function of my kernel mod. Both documentation lacks sample implementation. Again, I simply want to capture packets, modify them, then reinject them to their incoming or outgoing queue. I appreciate any help. Thanx Richard Classification: UNCLASSIFIED Caveats: NONE -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html