mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
net: ipv4: add second dif to inet socket lookups
Add a second device index, sdif, to inet 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 the cb move in tcp_v4_rcv the tcp_v4_sdif helper is used. Signed-off-by: David Ahern <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
fb74c27735
commit
3fa6f616a7
7 changed files with 58 additions and 35 deletions
|
|
@ -256,7 +256,7 @@ static void dccp_v4_err(struct sk_buff *skb, u32 info)
|
|||
sk = __inet_lookup_established(net, &dccp_hashinfo,
|
||||
iph->daddr, dh->dccph_dport,
|
||||
iph->saddr, ntohs(dh->dccph_sport),
|
||||
inet_iif(skb));
|
||||
inet_iif(skb), 0);
|
||||
if (!sk) {
|
||||
__ICMP_INC_STATS(net, ICMP_MIB_INERRORS);
|
||||
return;
|
||||
|
|
@ -804,7 +804,7 @@ static int dccp_v4_rcv(struct sk_buff *skb)
|
|||
|
||||
lookup:
|
||||
sk = __inet_lookup_skb(&dccp_hashinfo, skb, __dccp_hdr_len(dh),
|
||||
dh->dccph_sport, dh->dccph_dport, &refcounted);
|
||||
dh->dccph_sport, dh->dccph_dport, 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