summaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_policy.c
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2013-09-09 10:38:38 +0200
committerSteffen Klassert <steffen.klassert@secunet.com>2013-09-16 09:39:43 +0200
commitbafd4bd4dcfa13145db7f951251eef3e10f8c278 (patch)
treeea58f7ef1aa6fc37c97013492484af3afe24a799 /net/ipv6/xfrm6_policy.c
parent4479ff76c43607b680f9349128d8493228b49dce (diff)
downloadop-kernel-dev-bafd4bd4dcfa13145db7f951251eef3e10f8c278.zip
op-kernel-dev-bafd4bd4dcfa13145db7f951251eef3e10f8c278.tar.gz
xfrm: Decode sessions with output interface.
The output interface matching does not work on forward policy lookups, the output interface of the flowi is always 0. Fix this by setting the output interface when we decode the session. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/ipv6/xfrm6_policy.c')
-rw-r--r--net/ipv6/xfrm6_policy.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
index 23ed03d..08ed277 100644
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -138,6 +138,7 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
memset(fl6, 0, sizeof(struct flowi6));
fl6->flowi6_mark = skb->mark;
+ fl6->flowi6_oif = skb_dst(skb)->dev->ifindex;
fl6->daddr = reverse ? hdr->saddr : hdr->daddr;
fl6->saddr = reverse ? hdr->daddr : hdr->saddr;
OpenPOWER on IntegriCloud