--- zzzz-none-000/linux-4.9.279/net/ipv6/datagram.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-atom-6591-750/linux-4.9.279/net/ipv6/datagram.c 2023-02-08 11:43:43.000000000 +0000 @@ -54,6 +54,7 @@ fl6->fl6_dport = inet->inet_dport; fl6->fl6_sport = inet->inet_sport; fl6->flowlabel = np->flow_label; + fl6->flowi6_uid = sk->sk_uid; if (!fl6->flowi6_oif) fl6->flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; @@ -611,6 +612,20 @@ struct inet6_skb_parm *opt = IP6CB(skb); unsigned char *nh = skb_network_header(skb); +#ifdef CONFIG_TI_IP_PKTINFO_SOCKOPT + if (np->rxopt.bits.ti_rxinfo) { + struct ti_pktinfo info; + struct ethhdr *ehdr; +#ifdef CONFIG_TI_META_DATA + info.ifcpe_side = skb->ti_meta_info; + skb->ti_meta_info=0; +#endif + ehdr = eth_hdr(skb); + memcpy( info.mac_addr, ehdr->h_source, sizeof(info.mac_addr)); + put_cmsg(msg, SOL_IPV6, TI_IPV6_PKTINFO, sizeof(info), &info); + } +#endif + if (np->rxopt.bits.rxhlim) { int hlim = ipv6_hdr(skb)->hop_limit; put_cmsg(msg, SOL_IPV6, IPV6_HOPLIMIT, sizeof(hlim), &hlim);