net: ipv4: add second dif to udp socket lookups
Add a second device index, sdif, to udp 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. Early demux lookups are handled in the next patch as part of INET_MATCH changes. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
46d4b68f89
commit
fb74c27735
@@ -45,7 +45,7 @@ static int udp_dump_one(struct udp_table *tbl, struct sk_buff *in_skb,
|
||||
sk = __udp4_lib_lookup(net,
|
||||
req->id.idiag_src[0], req->id.idiag_sport,
|
||||
req->id.idiag_dst[0], req->id.idiag_dport,
|
||||
req->id.idiag_if, tbl, NULL);
|
||||
req->id.idiag_if, 0, tbl, NULL);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
else if (req->sdiag_family == AF_INET6)
|
||||
sk = __udp6_lib_lookup(net,
|
||||
@@ -182,7 +182,7 @@ static int __udp_diag_destroy(struct sk_buff *in_skb,
|
||||
sk = __udp4_lib_lookup(net,
|
||||
req->id.idiag_dst[0], req->id.idiag_dport,
|
||||
req->id.idiag_src[0], req->id.idiag_sport,
|
||||
req->id.idiag_if, tbl, NULL);
|
||||
req->id.idiag_if, 0, tbl, NULL);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
else if (req->sdiag_family == AF_INET6) {
|
||||
if (ipv6_addr_v4mapped((struct in6_addr *)req->id.idiag_dst) &&
|
||||
@@ -190,7 +190,7 @@ static int __udp_diag_destroy(struct sk_buff *in_skb,
|
||||
sk = __udp4_lib_lookup(net,
|
||||
req->id.idiag_dst[3], req->id.idiag_dport,
|
||||
req->id.idiag_src[3], req->id.idiag_sport,
|
||||
req->id.idiag_if, tbl, NULL);
|
||||
req->id.idiag_if, 0, tbl, NULL);
|
||||
|
||||
else
|
||||
sk = __udp6_lib_lookup(net,
|
||||
|
Reference in New Issue
Block a user