> It looks like you forgot > skb_reserve(skb, 16); //14 = size of an ethernet header + 2 to > align and eth = (__u8 *) skb_push(skb, 14); And of cource fill ethernet header fields somewhere before hard_start_xmit() with apropriate values. If you work not in ethernet lan, than all will be something like this. But you also can simple use ndisc_build_ll_hdr() or look into the net/ipv6/ndisc.c file, where function ndisc_send_na() does exactly what you want. Good luck. Evgeniy Polyakov ( s0mbre ). - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html