Hello, On Thu, 24 Nov 2016, Hannes Frederic Sowa wrote:
> I think some people are thinking about it already (me also ;) ). > > But it is not easy to come up with a solution. First of all, we need to > look up the L2 address again in the neighbor cache and confirm the > appropriate neighbor. Secondly we should only do that for packets which > we can actually confirm (that means passing the TCP recv tests or some > other kind of confirmation besides simply spamming the box etc). Also it > needs to be fast. Another option would be to add similar bit to struct sock (sk_dst_pending_confirm), may be ip_finish_output2 can propagate it to dst_neigh_output via new arg and then to reset it. Or to change n->confirmed via some new inline sock function instead of changing dst_neigh_output. At this place skb->sk is optional, may be we need (skb->sk && dst == skb->sk->sk_dst_cache) check. Also, when sk_dst_cache changes we should clear this flag. Regards -- Julian Anastasov <j...@ssi.bg>