sctp: Make the association hashtable handle multiple network namespaces
- Use struct net in the hash calculation - Use sock_net(association.base.sk) in the association lookups. - On receive calculate the network namespace from skb->dev. - Pass struct net from receive down to the functions that actually do the association lookup. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Acked-by: Vlad Yasevich <vyasevich@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
4cdadcbcb6
commit
4110cc255d
@@ -154,6 +154,7 @@ SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
struct ipv6_pinfo *np;
|
||||
sk_buff_data_t saveip, savesctp;
|
||||
int err;
|
||||
struct net *net = dev_net(skb->dev);
|
||||
|
||||
idev = in6_dev_get(skb->dev);
|
||||
|
||||
@@ -162,7 +163,7 @@ SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
savesctp = skb->transport_header;
|
||||
skb_reset_network_header(skb);
|
||||
skb_set_transport_header(skb, offset);
|
||||
sk = sctp_err_lookup(AF_INET6, skb, sctp_hdr(skb), &asoc, &transport);
|
||||
sk = sctp_err_lookup(net, AF_INET6, skb, sctp_hdr(skb), &asoc, &transport);
|
||||
/* Put back, the original pointers. */
|
||||
skb->network_header = saveip;
|
||||
skb->transport_header = savesctp;
|
||||
|
Reference in New Issue
Block a user