diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/6pack.c linux-2.4.15-pre5-dj/drivers/net/hamradio/6pack.c --- linux-2.4.15-pre5/drivers/net/hamradio/6pack.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/6pack.c Sun Nov 18 19:15:24 2001 @@ -256,6 +256,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_AX25); netif_rx(skb); + dev->last_rx = jiffies; sp->stats.rx_packets++; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/baycom_epp.c linux-2.4.15-pre5-dj/drivers/net/hamradio/baycom_epp.c --- linux-2.4.15-pre5/drivers/net/hamradio/baycom_epp.c Mon Sep 10 16:04:53 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/baycom_epp.c Sun Nov 18 19:16:37 2001 @@ -706,6 +706,7 @@ skb->protocol = htons(ETH_P_AX25); skb->mac.raw = skb->data; netif_rx(skb); + dev->last_rx = jiffies; bc->stats.rx_packets++; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/bpqether.c linux-2.4.15-pre5-dj/drivers/net/hamradio/bpqether.c --- linux-2.4.15-pre5/drivers/net/hamradio/bpqether.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/bpqether.c Sun Nov 18 19:14:03 2001 @@ -255,6 +255,7 @@ skb->pkt_type = PACKET_HOST; netif_rx(skb); + dev->last_rx = jiffies; return 0; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/dmascc.c linux-2.4.15-pre5-dj/drivers/net/hamradio/dmascc.c --- linux-2.4.15-pre5/drivers/net/hamradio/dmascc.c Wed Apr 18 21:40:06 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/dmascc.c Sun Nov 18 19:16:14 2001 @@ -1122,6 +1122,7 @@ skb->protocol = ntohs(ETH_P_AX25); skb->mac.raw = skb->data; netif_rx(skb); + priv->dev->last_rx = jiffies; priv->stats.rx_packets++; priv->stats.rx_bytes += cb; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/hdlcdrv.c linux-2.4.15-pre5-dj/drivers/net/hamradio/hdlcdrv.c --- linux-2.4.15-pre5/drivers/net/hamradio/hdlcdrv.c Wed Aug 15 08:22:15 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/hdlcdrv.c Sun Nov 18 19:14:31 2001 @@ -223,6 +223,7 @@ skb->protocol = htons(ETH_P_AX25); skb->mac.raw = skb->data; netif_rx(skb); + dev->last_rx = jiffies; s->stats.rx_packets++; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/mkiss.c linux-2.4.15-pre5-dj/drivers/net/hamradio/mkiss.c --- linux-2.4.15-pre5/drivers/net/hamradio/mkiss.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/mkiss.c Sun Nov 18 19:14:50 2001 @@ -346,6 +346,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_AX25); netif_rx(skb); + dev->last_rx = jiffies; tmp_ax->rx_packets++; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/scc.c linux-2.4.15-pre5-dj/drivers/net/hamradio/scc.c --- linux-2.4.15-pre5/drivers/net/hamradio/scc.c Thu Oct 25 20:58:15 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/scc.c Sun Nov 18 19:15:05 2001 @@ -1661,6 +1661,7 @@ skb->pkt_type = PACKET_HOST; netif_rx(skb); + dev->last_rx = jiffies; return; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/hamradio/yam.c linux-2.4.15-pre5-dj/drivers/net/hamradio/yam.c --- linux-2.4.15-pre5/drivers/net/hamradio/yam.c Sun Sep 30 19:26:08 2001 +++ linux-2.4.15-pre5-dj/drivers/net/hamradio/yam.c Sun Nov 18 19:16:56 2001 @@ -528,6 +528,7 @@ skb->protocol = htons(ETH_P_AX25); skb->mac.raw = skb->data; netif_rx(skb); + dev->last_rx = jiffies; ++yp->stats.rx_packets; } } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/ali-ircc.c linux-2.4.15-pre5-dj/drivers/net/irda/ali-ircc.c --- linux-2.4.15-pre5/drivers/net/irda/ali-ircc.c Sun Sep 30 19:26:06 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/ali-ircc.c Sun Nov 18 19:22:18 2001 @@ -1941,6 +1941,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_IRDA); netif_rx(skb); + self->netdev->last_rx = jiffies; } } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/irda-usb.c linux-2.4.15-pre5-dj/drivers/net/irda/irda-usb.c --- linux-2.4.15-pre5/drivers/net/irda/irda-usb.c Fri Nov 16 18:14:13 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/irda-usb.c Sun Nov 18 19:21:49 2001 @@ -832,6 +832,7 @@ new->mac.raw = new->data; new->protocol = htons(ETH_P_IRDA); netif_rx(new); + self->netdev->last_rx = jiffies; done: /* Note : at this point, the URB we've just received (purb) diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/nsc-ircc.c linux-2.4.15-pre5-dj/drivers/net/irda/nsc-ircc.c --- linux-2.4.15-pre5/drivers/net/irda/nsc-ircc.c Fri Oct 5 01:41:09 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/nsc-ircc.c Sun Nov 18 19:21:32 2001 @@ -1571,6 +1571,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_IRDA); netif_rx(skb); + self->netdev->last_rx = jiffies; } } /* Restore bank register */ diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/smc-ircc.c linux-2.4.15-pre5-dj/drivers/net/irda/smc-ircc.c --- linux-2.4.15-pre5/drivers/net/irda/smc-ircc.c Fri Oct 5 01:41:09 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/smc-ircc.c Sun Nov 18 19:19:12 2001 @@ -957,6 +957,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_IRDA); netif_rx(skb); + self->netdev->last_rx = jiffies; } /* diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/toshoboe.c linux-2.4.15-pre5-dj/drivers/net/irda/toshoboe.c --- linux-2.4.15-pre5/drivers/net/irda/toshoboe.c Sun Sep 30 19:26:06 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/toshoboe.c Sun Nov 18 19:21:07 2001 @@ -433,8 +433,10 @@ self->rxs++; self->rxs %= RX_SLOTS; - if (skb) + if (skb) { netif_rx (skb); + self->netdev->last_rx = jiffies; + } } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/vlsi_ir.c linux-2.4.15-pre5-dj/drivers/net/irda/vlsi_ir.c --- linux-2.4.15-pre5/drivers/net/irda/vlsi_ir.c Fri Nov 16 18:14:13 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/vlsi_ir.c Sun Nov 18 19:22:43 2001 @@ -637,6 +637,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_IRDA); netif_rx(skb); + ndev->last_rx = jiffies; } else { idev->stats.rx_dropped++; diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/irda/w83977af_ir.c linux-2.4.15-pre5-dj/drivers/net/irda/w83977af_ir.c --- linux-2.4.15-pre5/drivers/net/irda/w83977af_ir.c Sun Sep 30 19:26:06 2001 +++ linux-2.4.15-pre5-dj/drivers/net/irda/w83977af_ir.c Sun Nov 18 19:19:38 2001 @@ -924,6 +924,7 @@ skb->mac.raw = skb->data; skb->protocol = htons(ETH_P_IRDA); netif_rx(skb); + self->netdev->last_rx = jiffies; } } /* Restore set register */ diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/lp486e.c linux-2.4.15-pre5-dj/drivers/net/lp486e.c --- linux-2.4.15-pre5/drivers/net/lp486e.c Sun Sep 30 19:26:06 2001 +++ linux-2.4.15-pre5-dj/drivers/net/lp486e.c Sun Nov 18 19:24:20 2001 @@ -676,6 +676,7 @@ skb->protocol = eth_type_trans(skb,dev); netif_rx(skb); + dev->last_rx = jiffies; lp->stats.rx_packets++; } else { #if 0 diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/ns83820.c linux-2.4.15-pre5-dj/drivers/net/ns83820.c --- linux-2.4.15-pre5/drivers/net/ns83820.c Fri Nov 16 18:14:13 2001 +++ linux-2.4.15-pre5-dj/drivers/net/ns83820.c Sun Nov 18 19:26:09 2001 @@ -747,6 +747,8 @@ skb->protocol = eth_type_trans(skb, &dev->net_dev); if (NET_RX_DROP == netif_rx(skb)) dev->stats.rx_dropped ++; + else + dev->last_rx = jiffies; #ifndef __i386__ done:; #endif diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/pcnet32.c linux-2.4.15-pre5-dj/drivers/net/pcnet32.c --- linux-2.4.15-pre5/drivers/net/pcnet32.c Fri Nov 16 18:14:13 2001 +++ linux-2.4.15-pre5-dj/drivers/net/pcnet32.c Sun Nov 18 19:03:19 2001 @@ -1334,6 +1334,7 @@ lp->stats.rx_bytes += skb->len; skb->protocol=eth_type_trans(skb,dev); netif_rx(skb); + dev->last_rx = jiffies; lp->stats.rx_packets++; } } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/saa9730.c linux-2.4.15-pre5-dj/drivers/net/saa9730.c --- linux-2.4.15-pre5/drivers/net/saa9730.c Wed Oct 17 04:56:29 2001 +++ linux-2.4.15-pre5-dj/drivers/net/saa9730.c Sun Nov 18 19:27:18 2001 @@ -685,6 +685,7 @@ len, 0); skb->protocol = eth_type_trans(skb, dev); netif_rx(skb); + dev->last_rx = jiffies; } } else { /* We got an error packet. */ diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/strip.c linux-2.4.15-pre5-dj/drivers/net/strip.c --- linux-2.4.15-pre5/drivers/net/strip.c Fri Nov 16 18:14:13 2001 +++ linux-2.4.15-pre5-dj/drivers/net/strip.c Sun Nov 18 19:55:43 2001 @@ -2081,6 +2081,7 @@ #ifdef EXT_COUNTERS strip_info->rx_bytes += packetlen; #endif + skb->dev->last_rx = jiffies; netif_rx(skb); } } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/dscc4.c linux-2.4.15-pre5-dj/drivers/net/wan/dscc4.c --- linux-2.4.15-pre5/drivers/net/wan/dscc4.c Fri Nov 16 18:14:13 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/dscc4.c Sun Nov 18 19:48:24 2001 @@ -441,6 +441,7 @@ hdlc_netif_rx(&dpriv->hdlc, skb); else netif_rx(skb); + skb->dev->last_rx = jiffies; try_get_rx_skb(dpriv, cur, dev); } else { if(skb->data[pkt_len] & FrameRdo) diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/hd6457x.c linux-2.4.15-pre5-dj/drivers/net/wan/hd6457x.c --- linux-2.4.15-pre5/drivers/net/wan/hd6457x.c Wed Mar 7 03:44:36 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/hd6457x.c Sun Nov 18 19:50:45 2001 @@ -295,6 +295,7 @@ #endif port->hdlc.stats.rx_packets++; port->hdlc.stats.rx_bytes += skb->len; + skb->dev->last_rx = jiffies; hdlc_netif_rx(&port->hdlc, skb); } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/hdlc.c linux-2.4.15-pre5-dj/drivers/net/wan/hdlc.c --- linux-2.4.15-pre5/drivers/net/wan/hdlc.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/hdlc.c Sun Nov 18 19:50:05 2001 @@ -138,6 +138,7 @@ case ETH_P_IPV6: skb->protocol = data->protocol; skb->dev = hdlc_to_dev(hdlc); + skb->dev->last_rx = jiffies; netif_rx(skb); return; @@ -686,6 +687,7 @@ skb_pull(skb, 4); /* Remove 4-byte header (hdr, UI, NLPID) */ skb->protocol = htons(ETH_P_IP); skb->dev = &pvc->netdev; + skb->dev->last_rx = jiffies; netif_rx(skb); return; } @@ -695,6 +697,7 @@ skb_pull(skb, 4); /* Remove 4-byte header (hdr, UI, NLPID) */ skb->protocol = htons(ETH_P_IPV6); skb->dev = &pvc->netdev; + skb->dev->last_rx = jiffies; netif_rx(skb); return; } @@ -705,6 +708,7 @@ skb_pull(skb, 10); skb->protocol = htons(ETH_P_ARP); skb->dev = &pvc->netdev; + skb->dev->last_rx = jiffies; netif_rx(skb); return; } @@ -895,6 +899,7 @@ skb->mac.raw = skb->data; skb->pkt_type = PACKET_HOST; + skb->dev->last_rx = jiffies; netif_rx(skb); } @@ -922,6 +927,7 @@ skb->mac.raw = skb->data; skb->pkt_type = PACKET_HOST; + skb->dev->last_rx = jiffies; return netif_rx(skb); } @@ -1106,6 +1112,7 @@ case MODE_HDLC: skb->protocol = htons(ETH_P_IP); skb->dev = hdlc_to_dev(hdlc); + skb->dev->last_rx = jiffies; netif_rx(skb); return; @@ -1124,6 +1131,7 @@ #else skb->protocol = htons(ETH_P_WAN_PPP); skb->dev = hdlc_to_dev(hdlc); + skb->dev->last_rx = jiffies; netif_rx(skb); #endif return; diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/lapbether.c linux-2.4.15-pre5-dj/drivers/net/wan/lapbether.c --- linux-2.4.15-pre5/drivers/net/wan/lapbether.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/lapbether.c Sun Nov 18 19:39:24 2001 @@ -171,6 +171,7 @@ skb->mac.raw = skb->data; skb->pkt_type = PACKET_HOST; + skb->dev->last_rx = jiffies; return netif_rx(skb); } @@ -265,6 +266,7 @@ skb->mac.raw = skb->data; skb->pkt_type = PACKET_HOST; + skb->dev->last_rx = jiffies; netif_rx(skb); } @@ -287,6 +289,7 @@ skb->mac.raw = skb->data; skb->pkt_type = PACKET_HOST; + skb->dev->last_rx = jiffies; netif_rx(skb); } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/lmc/lmc_proto.c linux-2.4.15-pre5-dj/drivers/net/wan/lmc/lmc_proto.c --- linux-2.4.15-pre5/drivers/net/wan/lmc/lmc_proto.c Wed Mar 7 03:44:36 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/lmc/lmc_proto.c Sun Nov 18 19:46:41 2001 @@ -255,6 +255,7 @@ case LMC_PPP: case LMC_NET: default: + skb->dev->last_rx = jiffies; netif_rx(skb); break; case LMC_RAW: diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/sdla_chdlc.c linux-2.4.15-pre5-dj/drivers/net/wan/sdla_chdlc.c --- linux-2.4.15-pre5/drivers/net/wan/sdla_chdlc.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/sdla_chdlc.c Sun Nov 18 19:44:52 2001 @@ -2230,6 +2230,7 @@ skb->dev = dev; skb->mac.raw = skb->data; netif_rx(skb); + dev->last_rx = jiffies; } rx_exit: @@ -3285,6 +3286,8 @@ new_skb->mac.raw = new_skb->data; netif_rx(new_skb); + dev->last_rx = jiffies; + } else { printk(KERN_INFO "%s: no socket buffers available!\n", diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/sdla_fr.c linux-2.4.15-pre5-dj/drivers/net/wan/sdla_fr.c --- linux-2.4.15-pre5/drivers/net/wan/sdla_fr.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/sdla_fr.c Sun Nov 18 19:38:49 2001 @@ -2358,6 +2358,7 @@ /* Send a packed up the IP stack */ + skb->dev->last_rx = jiffies; netif_rx(skb); ++chan->drvstats_rx_intr.rx_intr_bfr_passed_to_stack; ++chan->ifstats.rx_packets; diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/sdla_ppp.c linux-2.4.15-pre5-dj/drivers/net/wan/sdla_ppp.c --- linux-2.4.15-pre5/drivers/net/wan/sdla_ppp.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/sdla_ppp.c Sun Nov 18 19:40:12 2001 @@ -1903,6 +1903,7 @@ #endif ++ppp_priv_area->rx_intr_stat.rx_intr_bfr_passed_to_stack; netif_rx(skb); + dev->last_rx = jiffies; } } else { @@ -2965,6 +2966,7 @@ new_skb->dev = dev; new_skb->mac.raw = new_skb->data; netif_rx(new_skb); + dev->last_rx = jiffies; } else { diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/syncppp.c linux-2.4.15-pre5-dj/drivers/net/wan/syncppp.c --- linux-2.4.15-pre5/drivers/net/wan/syncppp.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/syncppp.c Sun Nov 18 19:41:44 2001 @@ -275,6 +275,7 @@ printk(KERN_DEBUG "Yow an IP frame.\n"); skb->protocol=htons(ETH_P_IP); netif_rx(skb); + dev->last_rx = jiffies; return; } break; @@ -284,6 +285,7 @@ if (sp->lcp.state == LCP_STATE_OPENED) { skb->protocol=htons(ETH_P_IPX); netif_rx(skb); + dev->last_rx = jiffies; return; } break; @@ -311,12 +313,14 @@ case ETH_P_IP: skb->protocol=htons(ETH_P_IP); netif_rx(skb); + dev->last_rx = jiffies; return; #endif #ifdef CONFIG_IPX case ETH_P_IPX: skb->protocol=htons(ETH_P_IPX); netif_rx(skb); + dev->last_rx = jiffies; return; #endif } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/wanpipe_multppp.c linux-2.4.15-pre5-dj/drivers/net/wan/wanpipe_multppp.c --- linux-2.4.15-pre5/drivers/net/wan/wanpipe_multppp.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/wanpipe_multppp.c Sun Nov 18 19:51:38 2001 @@ -1572,6 +1572,7 @@ skb->dev = dev; skb->mac.raw = skb->data; netif_rx(skb); + dev->last_rx = jiffies; } rx_exit: @@ -2175,6 +2176,7 @@ new_skb->mac.raw = new_skb->data; netif_rx(new_skb); + dev->last_rx = jiffies; } else { printk(KERN_INFO "%s: no socket buffers available!\n", @@ -2470,6 +2472,7 @@ new_skb->mac.raw = new_skb->data; netif_rx(new_skb); + dev->last_rx = jiffies; } } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wan/x25_asy.c linux-2.4.15-pre5-dj/drivers/net/wan/x25_asy.c --- linux-2.4.15-pre5/drivers/net/wan/x25_asy.c Thu Sep 13 23:04:43 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wan/x25_asy.c Sun Nov 18 19:42:53 2001 @@ -250,6 +250,7 @@ else { netif_rx(skb); + sl->dev->last_rx = jiffies; sl->rx_packets++; } } @@ -397,6 +398,7 @@ static int x25_asy_data_indication(void *token, struct sk_buff *skb) { + skb->dev->last_rx = jiffies; return netif_rx(skb); } @@ -448,6 +450,7 @@ skb->mac.raw = skb->data; skb->pkt_type = PACKET_HOST; + sl->dev->last_rx = jiffies; netif_rx(skb); } @@ -471,6 +474,7 @@ skb->pkt_type = PACKET_HOST; netif_rx(skb); + sl->dev->last_rx = jiffies; } diff -urN --exclude-from=/home/davej/.exclude linux-2.4.15-pre5/drivers/net/wireless/orinoco.c linux-2.4.15-pre5-dj/drivers/net/wireless/orinoco.c --- linux-2.4.15-pre5/drivers/net/wireless/orinoco.c Tue Oct 9 22:13:03 2001 +++ linux-2.4.15-pre5-dj/drivers/net/wireless/orinoco.c Sun Nov 18 19:52:13 2001 @@ -1253,6 +1253,7 @@ /* Pass the packet to the networking stack */ netif_rx(skb); + dev->last_rx = jiffies; stats->rx_packets++; stats->rx_bytes += length;