Hi. I try to develop driver that has to catch all incomming traffic and proceed it. I use register_firewall() function that registers three functions: in_check, out_check, forward_check. There is call to register_firewall in my driver's init_module(). So, in in_check() I receive packet and give it to my processing function Parse() that makes decision regarding to the packet: - to let it in and calls to ip_rcv(skb, skb->dev, NULL); - to block it. Always in_check returns FW_BLOCK. The problem is when I call to ip_rcv() my computer is hanged up. All I see is printing log after function Parse(). Below is cut of my source. int Parse(struct sk_buff * skb) { [ packet analyze ] if ( packet may enter ) return ip_rcv(skb, skb->dev, NULL); else { kfree_skb(skb); return BLOCKED; } } int in_check(struct firewall_ops *this, int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb) { int res; ip_statistics.IpInReceives--; res = Parse(*pskb); printk(...); if(res == BLOCKED) { [ something ] } return FW_BLOCK; } What ip_rcv() has to return? Do I do everything right? Is there maybe common way to perform such a trik? Thanks a lot. Andrey ******************************* IMPORTANT ! ********************************** The content of this email and any attachments are confidential and intended for the named recipient(s) only. If you have received this email in error please notify the sender immediately. Do not disclose the content of this message or make copies. This email was scanned by eSafe Mail for viruses, vandals and other malicious content. ****************************************************************************** - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/