--- zzzz-none-000/linux-4.9.279/net/ipv4/ipmr.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-atom-6591-750/linux-4.9.279/net/ipv4/ipmr.c 2023-02-08 11:43:43.000000000 +0000 @@ -114,6 +114,11 @@ static void mroute_clean_tables(struct mr_table *mrt, bool all); static void ipmr_expire_process(unsigned long arg); +#if IS_ENABLED(CONFIG_LANTIQ_MCAST_HELPER) +void (*five_tuple_info_ptr)(struct sk_buff *skb, char iface_name[20]) = NULL; +EXPORT_SYMBOL(five_tuple_info_ptr); +#endif + #ifdef CONFIG_IP_MROUTE_MULTIPLE_TABLES #define ipmr_for_each_table(mrt, net) \ list_for_each_entry_rcu(mrt, &net->ipv4.mr_tables, list) @@ -984,6 +989,12 @@ ip_hdr(skb)->tot_len = htons(ntohs(ip_hdr(pkt)->tot_len) + sizeof(struct iphdr)); } else { +#if IS_ENABLED(CONFIG_LANTIQ_MCAST_HELPER) + /* Send five tuple info to mcast helper */ + if(ip_hdr(pkt)->protocol == 17) + if(five_tuple_info_ptr != NULL) + five_tuple_info_ptr(pkt, mrt->vif_table[vifi].dev->name); +#endif /* Copy the IP header */ skb_set_network_header(skb, skb->len); skb_put(skb, ihl); @@ -1014,7 +1025,6 @@ ret = sock_queue_rcv_skb(mroute_sk, skb); rcu_read_unlock(); if (ret < 0) { - net_warn_ratelimited("mroute: pending queue full, dropping entries\n"); kfree_skb(skb); }