--- zzzz-none-000/linux-5.15.111/net/ipv4/icmp.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-arm-6670-761/linux-5.15.111/net/ipv4/icmp.c 2024-02-07 09:28:09.000000000 +0000 @@ -56,6 +56,10 @@ * - Should use skb_pull() instead of all the manual checking. * This would also greatly simply some upper layer error handlers. --AK */ +/* +Includes Intel Corporation's changes/modifications dated: 2014. +Changed/modified portions - Copyright © 2014, Intel Corporation. +*/ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt @@ -434,6 +438,10 @@ inet->tos = ip_hdr(skb)->tos; ipc.sockc.mark = mark; daddr = ipc.addr = ip_hdr(skb)->saddr; +#ifdef CONFIG_TI_META_DATA + /* Initialize the meta-information. */ + ipc.ti_meta_info = 0; +#endif saddr = fib_compute_spec_dst(skb); if (icmp_param->replyopts.opt.opt.optlen) { @@ -449,6 +457,10 @@ fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos); fl4.flowi4_proto = IPPROTO_ICMP; fl4.flowi4_oif = l3mdev_master_ifindex(skb->dev); +#ifdef CONFIG_INTEL_DOCSIS_ICMP_IIF + if(skb->docsis_icmp_iif) + fl4.flowi4_oif = skb->docsis_icmp_iif, +#endif /* CONFIG_INTEL_DOCSIS_ICMP_IIF */ security_skb_classify_flow(skb, flowi4_to_flowi_common(&fl4)); rt = ip_route_output_key(net, &fl4); if (IS_ERR(rt)) @@ -739,6 +751,11 @@ ipc.opt = &icmp_param.replyopts.opt; ipc.sockc.mark = mark; +#ifdef CONFIG_TI_META_DATA + /* Initialize the meta-information. */ + ipc.ti_meta_info = 0; +#endif + rt = icmp_route_lookup(net, &fl4, skb_in, iph, saddr, tos, mark, type, code, &icmp_param); if (IS_ERR(rt))