ipv4: Fix "Set rt->rt_iif more sanely on output routes."
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Thu, 7 Apr 2011 21:04:08 +0000 (14:04 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 Apr 2011 21:04:08 +0000 (14:04 -0700)
commit1b86a58f9d7ce4fe2377687f378fbfb53bdc9b6c
treee931b86166c2a644470e3754e2d3139f97834951
parent9b57e1a79e2142df8412ab223c90ba6f47c6b3a3
ipv4: Fix "Set rt->rt_iif more sanely on output routes."

Commit 1018b5c01636c7c6bda31a719bda34fc631db29a ("Set rt->rt_iif more
sanely on output routes.")  breaks rt_is_{output,input}_route.

This became the cause to return "IP_PKTINFO's ->ipi_ifindex == 0".

To fix it, this does:

1) Add "int rt_route_iif;" to struct rtable

2) For input routes, always set rt_route_iif to same value as rt_iif

3) For output routes, always set rt_route_iif to zero.  Set rt_iif
   as it is done currently.

4) Change rt_is_{output,input}_route() to test rt_route_iif

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/route.h
net/ipv4/route.c
net/ipv4/xfrm4_policy.c