--- zzzz-none-000/linux-4.4.271/net/ipv6/icmp.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/net/ipv6/icmp.c 2023-04-19 10:22:30.000000000 +0000 @@ -69,6 +69,7 @@ #include #include #include +#include #include @@ -92,9 +93,10 @@ struct net *net = dev_net(skb->dev); if (type == ICMPV6_PKT_TOOBIG) - ip6_update_pmtu(skb, net, info, 0, 0); + ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL)); else if (type == NDISC_REDIRECT) - ip6_redirect(skb, net, skb->dev->ifindex, 0); + ip6_redirect(skb, net, skb->dev->ifindex, 0, + sock_net_uid(net, NULL)); if (!(type & ICMPV6_INFOMSG_MASK)) if (icmp6->icmp6_type == ICMPV6_ECHO_REQUEST) @@ -482,6 +484,7 @@ fl6.flowi6_oif = iif; fl6.fl6_icmp_type = type; fl6.fl6_icmp_code = code; + fl6.flowi6_uid = sock_net_uid(net, NULL); security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); sk = icmpv6_xmit_lock(net); @@ -586,6 +589,7 @@ fl6.flowi6_oif = l3mdev_fib_oif(skb->dev); fl6.fl6_icmp_type = ICMPV6_ECHO_REPLY; fl6.flowi6_mark = mark; + fl6.flowi6_uid = sock_net_uid(net, NULL); security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); sk = icmpv6_xmit_lock(net); @@ -729,6 +733,8 @@ ICMP6MSGIN_INC_STATS_BH(dev_net(dev), idev, type); + avm_pa_add_local_session(AVM_PA_NET_IP6_DEVINFO(dev_net(skb->dev)), skb, NULL); + switch (type) { case ICMPV6_ECHO_REQUEST: icmpv6_echo_reply(skb);