Hello all, I am facing problems capturing DHCP packets sent from a client to a server.... Basically, the hook function (defined below) is not getting called for each packet going out of the system.. Any ideas ? Thanks in adv, Subhash ------------------------------------------------------------------------------- #define DHCP_SERVER_PORT 67 unsigned int out_hook_func(unsigned int hooknum, struct sk_buff **skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff *)) { struct udphdr *udp_hdr; struct sk_buff *sb = *skb; unsigned char *dhcp_hdr, *ptr; unsigned int len, sub_id, xid; printk (KERN_INFO "Here\n"); /* Check if the message is valid and is a UDP message */ if(!sb || !sb->nh.iph || sb->nh.iph->protocol != IPPROTO_UDP) return NF_ACCEPT; /* Check if the UDP message contains DHCP in the payload */ udp_hdr = (struct udphdr *)(sb->data + ((sb->nh.iph->ihl)<<2)); if(udp_hdr->dest != htons(DHCP_SERVER_PORT)) return NF_ACCEPT; printk(KERN_INFO "DHCP packet\n"); return NF_ACCEPT; } int init_module() { /* Register Hook for packets sent */ out_nfho.hook = out_hook_func; //out_nfho.hooknum = NF_IP_LOCAL_OUT; out_nfho.hooknum = NF_IP_POST_ROUTING; out_nfho.pf = PF_INET; out_nfho.priority = NF_IP_PRI_FIRST; nf_register_hook(&out_nfho); } void cleanup_module() { nf_unregister_hook(&out_nfho); } -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/