--- zzzz-none-000/linux-4.4.60/net/ipv6/udp.c 2017-04-08 07:53:53.000000000 +0000 +++ dragonfly-4020-701/linux-4.4.60/net/ipv6/udp.c 2018-11-08 13:36:17.000000000 +0000 @@ -53,6 +53,10 @@ #include #include "udp_impl.h" +#ifdef CONFIG_AVM_PA +#include +#endif + static u32 udp6_ehashfn(const struct net *net, const struct in6_addr *laddr, const u16 lport, @@ -375,9 +379,15 @@ sk = skb_steal_sock(skb); if (unlikely(sk)) return sk; - return __udp6_lib_lookup(dev_net(skb_dst(skb)->dev), &iph->saddr, sport, + + sk = __udp6_lib_lookup(dev_net(skb_dst(skb)->dev), &iph->saddr, sport, &iph->daddr, dport, inet6_iif(skb), udptable); +#ifdef CONFIG_AVM_PA + if (sk) + avm_pa_add_local_session(skb, sk); +#endif + return sk; } struct sock *udp6_lib_lookup(struct net *net, const struct in6_addr *saddr, __be16 sport,