mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
net: ipv6: add second dif to inet6 socket lookups
Add a second device index, sdif, to inet6 socket lookups. sdif is the index for ingress devices enslaved to an l3mdev. It allows the lookups to consider the enslaved device as well as the L3 domain when searching for a socket. TCP moves the data in the cb. Prior to tcp_v4_rcv (e.g., early demux) the ingress index is obtained from IPCB using inet_sdif and after tcp_v4_rcv tcp_v4_sdif is used. Signed-off-by: David Ahern <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
1801b570dd
commit
4297a0ef08
7 changed files with 56 additions and 32 deletions
|
|
@ -89,7 +89,7 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
|||
sk = __inet6_lookup_established(net, &dccp_hashinfo,
|
||||
&hdr->daddr, dh->dccph_dport,
|
||||
&hdr->saddr, ntohs(dh->dccph_sport),
|
||||
inet6_iif(skb));
|
||||
inet6_iif(skb), 0);
|
||||
|
||||
if (!sk) {
|
||||
__ICMP6_INC_STATS(net, __in6_dev_get(skb->dev),
|
||||
|
|
@ -687,7 +687,7 @@ static int dccp_v6_rcv(struct sk_buff *skb)
|
|||
lookup:
|
||||
sk = __inet6_lookup_skb(&dccp_hashinfo, skb, __dccp_hdr_len(dh),
|
||||
dh->dccph_sport, dh->dccph_dport,
|
||||
inet6_iif(skb), &refcounted);
|
||||
inet6_iif(skb), 0, &refcounted);
|
||||
if (!sk) {
|
||||
dccp_pr_debug("failed to look up flow ID in table and "
|
||||
"get corresponding socket\n");
|
||||
|
|
|
|||
Loading…
Reference in a new issue