--- zzzz-none-000/linux-4.19.183/drivers/net/ppp/ppp_generic.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/drivers/net/ppp/ppp_generic.c 2023-06-28 08:54:19.000000000 +0000 @@ -706,6 +706,17 @@ break; case PPPIOCGIDLE: +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + { + BlogStats_t bStats; + memset(&bStats, 0, sizeof(BlogStats_t)); + blog_get_dev_running_stats(ppp->dev, &bStats); + if(bStats.tx_packets) + ppp->last_xmit = jiffies; + if(bStats.rx_packets) + ppp->last_recv = jiffies; + } +#endif idle.xmit_idle = (jiffies - ppp->last_xmit) / HZ; idle.recv_idle = (jiffies - ppp->last_recv) / HZ; if (copy_to_user(argp, &idle, sizeof(idle))) @@ -1538,6 +1549,10 @@ #endif /* CONFIG_PPP_FILTER */ } +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + blog_link(IF_DEVICE, blog_ptr(skb), (void*)ppp->dev, DIR_TX, skb->len - 2 ); +#endif + ++ppp->stats64.tx_packets; ppp->stats64.tx_bytes += skb->len - 2; @@ -2135,6 +2150,9 @@ break; } +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + blog_link(IF_DEVICE, blog_ptr(skb), (void*)ppp->dev, DIR_RX, skb->len - 2 ); +#endif ++ppp->stats64.rx_packets; ppp->stats64.rx_bytes += skb->len - 2; @@ -2969,6 +2987,19 @@ st->p.ppp_opackets = ppp->stats64.tx_packets; st->p.ppp_oerrors = ppp->dev->stats.tx_errors; st->p.ppp_obytes = ppp->stats64.tx_bytes; +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + { + BlogStats_t bStats; + memset(&bStats, 0, sizeof(bStats)); + blog_get_dev_stats(ppp->dev, &bStats); + + st->p.ppp_ipackets += bStats.rx_packets; + st->p.ppp_ibytes += bStats.rx_bytes; + st->p.ppp_opackets += bStats.tx_packets; + st->p.ppp_obytes += bStats.tx_bytes; + } +#endif + if (!vj) return; st->vj.vjs_packets = vj->sls_o_compressed + vj->sls_o_uncompressed; @@ -3269,6 +3300,33 @@ return idr_find(p, n); } +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) +int +bcm_ppp_rcv_decomp_run(struct ppp_channel *chan) +{ + struct channel *ch; + struct ppp *ppp; + + if (!chan) + return 0; + ch = chan->ppp; + if (!ch) + return 0; + ppp = ch->ppp; + if (!ppp) + return 0; + + /*pr_info("%s: flags 0x%x xstate 0x%x rstate 0x%x\n", + __FUNCTION__, ppp->flags, ppp->xstate, ppp->rstate);*/ + + if (ppp->rstate & SC_DECOMP_RUN) + return 1; + else + return 0; +} +#endif + + /* Module/initialization stuff */ module_init(ppp_init); @@ -3285,6 +3343,9 @@ EXPORT_SYMBOL(ppp_output_wakeup); EXPORT_SYMBOL(ppp_register_compressor); EXPORT_SYMBOL(ppp_unregister_compressor); +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) +EXPORT_SYMBOL(bcm_ppp_rcv_decomp_run); +#endif MODULE_LICENSE("GPL"); MODULE_ALIAS_CHARDEV(PPP_MAJOR, 0); MODULE_ALIAS_RTNL_LINK("ppp");