mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-20 08:40:47 +00:00
net: ipv6: more places need LOOPBACK_IFINDEX for flowi6_iif
To properly match iif in ip rules we have to provide LOOPBACK_IFINDEX in flowi6_iif, not 0. Some ip6mr_fib_lookup and fib6_rule_lookup callers need such fix. Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8c2eab9097
commit
e374c618b1
@ -1633,7 +1633,7 @@ struct sock *mroute6_socket(struct net *net, struct sk_buff *skb)
|
||||
{
|
||||
struct mr6_table *mrt;
|
||||
struct flowi6 fl6 = {
|
||||
.flowi6_iif = skb->skb_iif,
|
||||
.flowi6_iif = skb->skb_iif ? : LOOPBACK_IFINDEX,
|
||||
.flowi6_oif = skb->dev->ifindex,
|
||||
.flowi6_mark = skb->mark,
|
||||
};
|
||||
|
@ -33,6 +33,7 @@ static bool rpfilter_lookup_reverse6(const struct sk_buff *skb,
|
||||
struct ipv6hdr *iph = ipv6_hdr(skb);
|
||||
bool ret = false;
|
||||
struct flowi6 fl6 = {
|
||||
.flowi6_iif = LOOPBACK_IFINDEX,
|
||||
.flowlabel = (* (__be32 *) iph) & IPV6_FLOWINFO_MASK,
|
||||
.flowi6_proto = iph->nexthdr,
|
||||
.daddr = iph->saddr,
|
||||
|
@ -1273,6 +1273,7 @@ void ip6_redirect(struct sk_buff *skb, struct net *net, int oif, u32 mark)
|
||||
struct flowi6 fl6;
|
||||
|
||||
memset(&fl6, 0, sizeof(fl6));
|
||||
fl6.flowi6_iif = LOOPBACK_IFINDEX;
|
||||
fl6.flowi6_oif = oif;
|
||||
fl6.flowi6_mark = mark;
|
||||
fl6.daddr = iph->daddr;
|
||||
@ -1294,6 +1295,7 @@ void ip6_redirect_no_header(struct sk_buff *skb, struct net *net, int oif,
|
||||
struct flowi6 fl6;
|
||||
|
||||
memset(&fl6, 0, sizeof(fl6));
|
||||
fl6.flowi6_iif = LOOPBACK_IFINDEX;
|
||||
fl6.flowi6_oif = oif;
|
||||
fl6.flowi6_mark = mark;
|
||||
fl6.daddr = msg->dest;
|
||||
|
Loading…
x
Reference in New Issue
Block a user