Le mardi 24 mai 2011 Ã 15:09 +0200, Pierre Rondou a Ãcrit : > Hello, > > I'm a student at the University of Liege, currently developing a NAT64 > (see RFC 6146) module for Netfilter. > > I am using the icmp_send() function in my module to send icmp message in > case the packet represent an error (like, TTL exceeded or DEST_UNREACHABLE). > > But it seems to be broken for me, the dst of the original packet doesn't > seem to be set. > > I'm using 2.6.32-5 kernel to developp, but the function itself didn't > seem to have been updated in the 2.6.38 kernel. > You really should use 2.6.39 kernel for your dev... > The modification I had to apply is to re-execute the routing process on > the incoming paquet in order to get the ICMP packet sent: > instead of the simple > > if (!rt) > // goto out; > > Is there an other reason why the rtable of the incoming packet was not set? It is set by caller. check ip_rcv_finish() Also please take a look at commit 64f3b9e203bd06855 net: ip_expire() must revalidate route [ Since I understand from a prior mail that you maybe queued an skb for a while for your defrag purpose ] -- 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