--- ntop/globals-structtypes.h 2003-10-22 10:20:47.000000000 -0500
+++ ntop/globals-structtypes.h 2003-10-22 11:22:03.000000000 -0500
@@ -722,6 +722,7 @@
   /*
    * The packets section
    */
+  TrafficCounter receivedPkts;   /* # of pkts recevied by the application */
   TrafficCounter droppedPkts;    /* # of pkts dropped by the application */
   TrafficCounter ethernetPkts;   /* # of Ethernet pkts captured by the application */
   TrafficCounter broadcastPkts;  /* # of broadcast pkts captured by the application */
@@ -850,6 +851,7 @@
 /*XML n              tcpv                 Work          "" */
 
 /*XML e              packetStats          parent:Work   "" */
+/*XML trafficcounter receivedPkts         Work          "" */
 /*XML trafficcounter droppedPkts          Work          "" */
 /*XML trafficcounter ethernetPkts         Work          "" */
 /*XML trafficcounter broadcastPkts        Work          "" */
@@ -1825,6 +1827,7 @@
 #if defined(CFG_MULTITHREADED)
   PacketInformation packetQueue[CONST_PACKET_QUEUE_LENGTH+1];
   u_int packetQueueLen, maxPacketQueueLen, packetQueueHead, packetQueueTail;
+  Counter receivedPackets, receivedPacketsProcessed, receivedPacketsQueued, receivedPacketsLostQ;
 #endif
 
   TransactionTime transTimeHash[CONST_NUM_TRANSACTION_ENTRIES];
--- ntop/globals-core.c 2003-10-15 09:14:39.000000000 -0500
+++ ntop/globals-core.c 2003-10-22 11:11:27.000000000 -0500
@@ -329,8 +329,12 @@
   for (i = 0; i <= CONST_PACKET_QUEUE_LENGTH; i ++)
     memset(&myGlobals.packetQueue[i], 0, sizeof(PacketInformation));
 
+  myGlobals.receivedPackets = 0;
+  myGlobals.receivedPacketsProcessed = 0;
+  myGlobals.receivedPacketsQueued = 0;
   myGlobals.packetQueueLen = 0;
   myGlobals.maxPacketQueueLen = 0;
+  myGlobals.receivedPacketsLostQ = 0;
   myGlobals.packetQueueHead = 0;
   myGlobals.packetQueueTail = 0;
 #endif
--- ntop/ntop.c 2003-10-03 18:13:12.000000000 -0500
+++ ntop/ntop.c 2003-10-22 10:31:14.000000000 -0500
@@ -916,12 +916,12 @@
 	traceEvent(CONST_TRACE_INFO, "STATS: %s packets received by filter on %s",
 		   formatPkts((Counter)pcapStat.ps_recv), myGlobals.device[i].name);
 
-	traceEvent(CONST_TRACE_INFO, "STATS: %s packets dropped by kernel", formatPkts((Counter)pcapStat.ps_drop));
+	traceEvent(CONST_TRACE_INFO, "STATS: %s packets dropped (according to libpcap)", formatPkts((Counter)pcapStat.ps_drop));
+      }
 #ifdef CFG_MULTITHREADED
-	traceEvent(CONST_TRACE_INFO, "STATS: %s packets dropped by ntop",
-		   formatPkts(myGlobals.device[i].droppedPkts.value));
+      traceEvent(CONST_TRACE_INFO, "STATS: %s packets dropped (by ntop)",
+                 formatPkts(myGlobals.device[i].droppedPkts.value));
 #endif
-      }
     }
 
     if(myGlobals.device[i].ipTrafficMatrix != NULL) {
--- ntop/http.c 2003-10-15 09:14:39.000000000 -0500
+++ ntop/http.c 2003-10-22 10:31:14.000000000 -0500
@@ -1427,22 +1427,6 @@
 
   /* **************** */
   
-  /* Update number of dropped packets */
-  if(myGlobals.device[myGlobals.actualReportDeviceId].pcapPtr 
-     && (!myGlobals.device[myGlobals.actualReportDeviceId].virtualDevice)) {
-    struct pcap_stat pcapStats;
-    
-    if(pcap_stats(myGlobals.device[myGlobals.actualReportDeviceId].pcapPtr, &pcapStats) >= 0) {
-#ifdef WIN32
-      myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value =  pcapStats.ps_drop;
-#else
-      incrementTrafficCounter(&myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts, pcapStats.ps_drop);
-#endif
-    }
-  }
-
-  /* **************** */
-
   if(strncmp(pageName, PLUGINS_HEADER, strlen(PLUGINS_HEADER)) == 0) {
     if(handlePluginHTTPRequest(&pageName[strlen(PLUGINS_HEADER)])) {
       return(0);
--- ntop/pbuf.c 2003-10-15 09:14:40.000000000 -0500
+++ ntop/pbuf.c 2003-10-22 11:12:38.000000000 -0500
@@ -1597,6 +1597,7 @@
 		 const struct pcap_pkthdr *h,
 		 const u_char *p) {
   int len;
+  int deviceId;
 
   /* ***************************
      - If the queue is full then wait until a slot is freed
@@ -1605,10 +1606,10 @@
      until a slot is freed
      **************************** */
 
-#ifdef WIN32_DEMO
-  static int numQueuedPackets=0;
+  myGlobals.receivedPackets++;
 
-  if(numQueuedPackets++ >= MAX_NUM_PACKETS)
+#ifdef WIN32_DEMO
+  if(myGlobals.receivedPackets >= MAX_NUM_PACKETS)
     return;
 #endif
 
@@ -1618,10 +1619,20 @@
   traceEvent(CONST_TRACE_INFO, "Got packet from %s (%d)", myGlobals.device[*_deviceId].name, *_deviceId);
 #endif
 
+#ifdef WIN32
+  deviceId = 0;
+#else
+  deviceId = (int)_deviceId;
+#endif
+
+  incrementTrafficCounter(&myGlobals.device[getActualInterface(deviceId)].receivedPkts, 1);
+
   if(tryLockMutex(&myGlobals.packetProcessMutex, "queuePacket") == 0) {
     /* Locked so we can process the packet now */
     u_char p1[MAX_PACKET_LEN];
 
+    myGlobals.receivedPacketsProcessed++;
+
     len = h->caplen;
     if(len >= DEFAULT_SNAPLEN) len = DEFAULT_SNAPLEN-1;
     memcpy(p1, p, len);
@@ -1641,17 +1652,12 @@
   */
 
   if(myGlobals.packetQueueLen >= CONST_PACKET_QUEUE_LENGTH) {
-    int deviceId;
 #ifdef DEBUG
     traceEvent(CONST_TRACE_INFO, "Dropping packet!!! [packet queue=%d/max=%d]",
 	       myGlobals.packetQueueLen, myGlobals.maxPacketQueueLen);
 #endif
 
-#ifdef WIN32
-    deviceId = 0;
-#else
-    deviceId = (int)_deviceId;
-#endif
+    myGlobals.receivedPacketsLostQ++;
 
     incrementTrafficCounter(&myGlobals.device[getActualInterface(deviceId)].droppedPkts, 1);
 
@@ -1666,6 +1672,7 @@
     traceEvent(CONST_TRACE_INFO, "About to queue packet... ");
 #endif
     accessMutex(&myGlobals.packetQueueMutex, "queuePacket");
+    myGlobals.receivedPacketsQueued++;
     memcpy(&myGlobals.packetQueue[myGlobals.packetQueueHead].h, h, sizeof(struct pcap_pkthdr));
     memset(myGlobals.packetQueue[myGlobals.packetQueueHead].p, 0, sizeof(myGlobals.packetQueue[myGlobals.packetQueueHead].p));
     /* Just to be safe */
--- ntop/report.c 2003-10-15 09:14:40.000000000 -0500
+++ ntop/report.c 2003-10-22 12:14:59.000000000 -0500
@@ -181,6 +181,7 @@
   int i;
   char buf[LEN_GENERAL_WORK_BUFFER];
   struct stat statbuf;
+  struct pcap_stat pcapStat;
 
   unicastPkts = 0;
   printHTMLheader("Global Traffic Statistics", 0);
@@ -284,16 +285,25 @@
     sendString(buf);
   }
 
-  if(myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value > 0) {
-    Counter dummyCounter;
-    sendString("<TR><TH "TH_BG" align=left>Packets</TH><TD "TH_BG">\n<TABLE BORDER=1 WIDTH=100%>");
-
 #ifndef EMBEDDED
-    if(myGlobals.numRealDevices > 1)
-      sendString("<TR "TR_ON"><TD "TD_BG" ALIGN=CENTER COLSPAN=3>"
+  if(myGlobals.numRealDevices > 1)
+    sendString("<TR "TR_ON"><TD "TD_BG" ALIGN=CENTER COLSPAN=3>"
 		 "<IMG SRC=interfaceTrafficPie"CHART_FORMAT"></TD></TR>\n");
 #endif
 
+  if(myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value > 0) {
+    Counter dummyCounter;
+
+    sendString("</TABLE>"TABLE_OFF"</CENTER>\n");
+    if(snprintf(buf, sizeof(buf),
+                "For device: '%s' (current reporting device)",
+                myGlobals.device[myGlobals.actualReportDeviceId].name) < 0)
+      BufferTooShort();
+    printHTMLheader(buf, 0);
+    sendString("<CENTER>"TABLE_ON"<TABLE BORDER=1>\n");
+
+    sendString("<TR><TH "TH_BG" align=left>Packets</TH><TD "TH_BG">\n<TABLE BORDER=1 WIDTH=100%>");
+
     unicastPkts = myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value
       - myGlobals.device[myGlobals.actualReportDeviceId].broadcastPkts.value
       - myGlobals.device[myGlobals.actualReportDeviceId].multicastPkts.value;
@@ -302,25 +312,65 @@
       myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value = 1;
 
     if(myGlobals.device[myGlobals.actualReportDeviceId].pcapPtr != NULL) {
-      if(snprintf(buf, sizeof(buf),
-		  "<TR "TR_ON" %s><TH "TH_BG" align=left>Total</th>"
+      if (pcap_stats(myGlobals.device[myGlobals.actualReportDeviceId].pcapPtr, &pcapStat) >= 0) {
+        if(snprintf(buf, sizeof(buf),
+		    "<TR "TR_ON" %s><TH "TH_BG" align=left>Received&nbsp;(libpcap)</th>"
+		    "<TD "TD_BG" COLSPAN=2 align=right>%s</td></TR>\n",
+		    getRowColor(),
+                    formatPkts((Counter)pcapStat.ps_recv)) < 0)
+          BufferTooShort();
+        sendString(buf);
+        if(snprintf(buf, sizeof(buf),
+		    "<TR "TR_ON" %s><TH "TH_BG" align=left>Less:&nbsp;Dropped&nbsp;(libpcap)</th>"
+		    "<TD "TD_BG" COLSPAN=2 align=right>%s</td></TR>\n",
+		    getRowColor(),
+                    formatPkts((Counter)pcapStat.ps_drop)) < 0)
+          BufferTooShort();
+        sendString(buf);
+        if(snprintf(buf, sizeof(buf),
+		    "<TR "TR_ON" %s><TH "TH_BG" align=left>Gives:&nbsp;Given&nbsp;to&nbsp;ntop</th>"
+		    "<TD "TD_BG" COLSPAN=2 align=right>%s</td></TR>\n",
+		    getRowColor(),
+                    formatPkts((Counter)(pcapStat.ps_recv-pcapStat.ps_drop))) < 0)
+          BufferTooShort();
+        sendString(buf);
+      }
+    }
+
+    if(snprintf(buf, sizeof(buf),
+		  "<TR "TR_ON" %s><TH "TH_BG" align=left>Total&nbsp;Received&nbsp;by&nbsp;ntop</th>"
 		  "<TD "TD_BG" COLSPAN=2 align=right>%s</td></TR>\n",
-		  getRowColor(), formatPkts(myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value)) < 0)
-	BufferTooShort();
-      sendString(buf);
+		  getRowColor(), formatPkts(myGlobals.device[myGlobals.actualReportDeviceId].receivedPkts.value)) < 0)
+      BufferTooShort();
+    sendString(buf);
 
-      if(myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value > 0) {
-	if(snprintf(buf, sizeof(buf),
-		    "<TR "TR_ON" %s><TH "TH_BG" align=left>Dropped&nbsp;by&nbsp;the&nbsp;kernel</th>"
-		    "<TD "TD_BG" COLSPAN=2 align=right>%s [%.2f %%]</td></TR>\n",
-		    getRowColor(), formatPkts(myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value),
+    if(myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value > 0) {
+      if(snprintf(buf, sizeof(buf),
+		    "<TR "TR_ON" %s><TH "TH_BG" align=left>Less:&nbsp;Dropped&nbsp;by&nbsp;ntop</th>"
+                    "<TD "TD_BG" align=right>%.1f%%</td><TD "TD_BG" align=right>%s</td></TR>\n",
+
+		    getRowColor(),
 		    (float)(myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value*100)
-		    /(float)myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value) < 0)
-	  BufferTooShort();
-	sendString(buf);
-      }
+		    /(float)myGlobals.device[myGlobals.actualReportDeviceId].receivedPkts.value,
+                    formatPkts(myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value)) < 0)
+        BufferTooShort();
+      sendString(buf);
+      if(snprintf(buf, sizeof(buf),
+                  "<TR "TR_ON" %s><TH "TH_BG" align=left>Gives:&nbsp;processed&nbsp;by&nbsp;ntop</th>"
+                  "<TD "TD_BG" COLSPAN=2 align=right>%s</td></TR>\n",
+                  getRowColor(), 
+                  formatPkts(myGlobals.device[myGlobals.actualReportDeviceId].receivedPkts.value
+                           - myGlobals.device[myGlobals.actualReportDeviceId].droppedPkts.value)) < 0)
+        BufferTooShort();
     }
 
+    if(snprintf(buf, sizeof(buf),
+		  "<TR "TR_ON" %s><TH "TH_BG" align=left>Gives:&nbsp;Total&nbsp;packets</th>"
+		  "<TD "TD_BG" COLSPAN=2 align=right>%s</td></TR>\n",
+		  getRowColor(), formatPkts(myGlobals.device[myGlobals.actualReportDeviceId].ethernetPkts.value)) < 0)
+      BufferTooShort();
+    sendString(buf);
+
     if(snprintf(buf, sizeof(buf), "<TR "TR_ON" %s><TH "TH_BG" align=left>Unicast</th>"
 		"<TD "TD_BG" align=right>%.1f%%</td><TD "TD_BG" align=right>%s</td></TR>\n",
 		getRowColor(), (float)(100*unicastPkts)/(float)myGlobals.device[myGlobals.actualReportDeviceId].
--- ntop/webInterface.c 2003-10-22 10:20:47.000000000 -0500
+++ ntop/webInterface.c 2003-10-22 11:46:38.000000000 -0500
@@ -3629,17 +3629,36 @@
 
   /* **** */
 
+  sendString(texthtml("\n\nPackets\n\n", "<tr><th colspan=2 "DARK_BG">Packets</th></tr>\n"));
+
+  if(snprintf(buf, sizeof(buf), "%d", myGlobals.receivedPackets) < 0)
+    BufferTooShort();
+  printFeatureConfigInfo(textPrintFlag, "Received", buf);
+
+  if(snprintf(buf, sizeof(buf), "%d", myGlobals.receivedPacketsProcessed) < 0)
+    BufferTooShort();
+  printFeatureConfigInfo(textPrintFlag, "Processed immediately", buf);
+
 #ifdef CFG_MULTITHREADED
 
-  sendString(texthtml("\n\nPacket queue\n\n", "<tr><th colspan=2 "DARK_BG">Packet queue</th></tr>\n"));
+  if(snprintf(buf, sizeof(buf), "%d", myGlobals.receivedPacketsQueued) < 0)
+    BufferTooShort();
+  printFeatureConfigInfo(textPrintFlag, "Queued", buf);
+
+  if(myGlobals.receivedPacketsLostQ > 0) {
+    if(snprintf(buf, sizeof(buf), "%d", myGlobals.receivedPacketsLostQ) < 0)
+      BufferTooShort();
+    printFeatureConfigInfo(textPrintFlag, "Lost in ntop queue", buf);
+  }
 
   if(snprintf(buf, sizeof(buf), "%d", myGlobals.packetQueueLen) < 0)
     BufferTooShort();
-  printFeatureConfigInfo(textPrintFlag, "Queued to Process", buf);
+  printFeatureConfigInfo(textPrintFlag, "Current queue", buf);
 
   if(snprintf(buf, sizeof(buf), "%d", myGlobals.maxPacketQueueLen) < 0)
     BufferTooShort();
   printFeatureConfigInfo(textPrintFlag, "Maximum queue", buf);
+
 #endif
 
   /* **** */
@@ -4512,10 +4531,32 @@
   sendString("Hardware:  CPU:           _____ (i86, SPARC, etc.)\n");
   sendString("           # Processors:  _____\n");
   sendString("           Memory:        _____ MB\n");
-  sendString("Network:\n");
+
+  sendString("\nPackets\n");
+  snprintf(buf, sizeof(buf), "Received:  %10u\n", myGlobals.receivedPackets);
+  sendString(buf);
+  snprintf(buf, sizeof(buf), "Processed: %10u (immediately)\n", myGlobals.receivedPacketsProcessed);
+  sendString(buf);
+
+#ifdef CFG_MULTITHREADED
+  snprintf(buf, sizeof(buf), "Queued:    %10u\n", myGlobals.receivedPacketsQueued);
+  sendString(buf);
+  snprintf(buf, sizeof(buf), "Lost:      %10u (queue full)\n", myGlobals.receivedPacketsLostQ);
+  sendString(buf);
+  snprintf(buf, sizeof(buf), "Queue:     Current: %u Maximum: %u\n",
+           myGlobals.packetQueueLen,
+           myGlobals.maxPacketQueueLen);
+  sendString(buf);
+#endif
+
+  sendString("\nNetwork:\n");
 
   if(myGlobals.mergeInterfaces == 1) {
     sendString("Merged packet counts:\n");
+    if(myGlobals.device[0].receivedPkts.value > 0) {
+      snprintf(buf, sizeof(buf), "     Received:  %10u\n", myGlobals.device[0].receivedPkts.value);
+      sendString(buf);
+    }
     if(myGlobals.device[0].droppedPkts.value > 0) {
       snprintf(buf, sizeof(buf), "     Dropped:   %10u\n", myGlobals.device[0].droppedPkts.value);
       sendString(buf);
@@ -4569,47 +4610,49 @@
       sendString("\n");
     }
 
+/* pcap_stats gets weirded out under some circumstances under WIN32 - skip this */
+#ifndef WIN32 
+    if((myGlobals.device[i].pcapPtr != NULL) && 
+       (pcap_stats(myGlobals.device[i].pcapPtr, &pcapStats) >= 0)) {
+      snprintf(buf, sizeof(buf), "     Received (pcap):%10u\n", pcapStats.ps_recv);
+      sendString(buf);
+      if (pcapStats.ps_ifdrop > 0) {
+        snprintf(buf, sizeof(buf), "     Dropped (NIC):  %10u\n", pcapStats.ps_ifdrop);
+        sendString(buf);
+      }
+      snprintf(buf, sizeof(buf), "     Dropped (pcap): %10u\n", pcapStats.ps_drop);
+      sendString(buf);
+    }
+#endif
+
     if(myGlobals.mergeInterfaces == 0) {
+      if(myGlobals.device[i].receivedPkts.value > 0) {
+	snprintf(buf, sizeof(buf), "     Received:       %10u\n", myGlobals.device[i].receivedPkts.value);
+	sendString(buf);
+      }
       if(myGlobals.device[i].droppedPkts.value > 0) {
-	snprintf(buf, sizeof(buf), "     Dropped:   %10u\n", myGlobals.device[i].droppedPkts.value);
+	snprintf(buf, sizeof(buf), "     Dropped (ntop): %10u\n", myGlobals.device[i].droppedPkts.value);
 	sendString(buf);
       }
-
       if(myGlobals.device[i].ethernetPkts.value > 0) {
-	snprintf(buf, sizeof(buf), "     Ethernet:  %10u\n", myGlobals.device[i].ethernetPkts.value);
+	snprintf(buf, sizeof(buf), "     Ethernet:       %10u\n", myGlobals.device[i].ethernetPkts.value);
 	sendString(buf);
       }
       if(myGlobals.device[i].broadcastPkts.value > 0) {
-	snprintf(buf, sizeof(buf), "     Broadcast: %10u\n", myGlobals.device[i].broadcastPkts.value);
+	snprintf(buf, sizeof(buf), "     Broadcast:      %10u\n", myGlobals.device[i].broadcastPkts.value);
 	sendString(buf);
       }
       if(myGlobals.device[i].multicastPkts.value > 0) {
-	snprintf(buf, sizeof(buf), "     Multicast: %10u\n", myGlobals.device[i].multicastPkts.value);
+	snprintf(buf, sizeof(buf), "     Multicast:      %10u\n", myGlobals.device[i].multicastPkts.value);
 	sendString(buf);
       }
       if(myGlobals.device[i].ipPkts.value > 0) {
-	snprintf(buf, sizeof(buf), "     IP:        %10u\n", myGlobals.device[i].ipPkts.value);
+	snprintf(buf, sizeof(buf), "     IP:             %10u\n", myGlobals.device[i].ipPkts.value);
 	sendString(buf);
       }
 
     }
 
-/* pcap_stats gets weirded out under some circumstances under WIN32 - skip this */
-#ifndef WIN32 
-    if((myGlobals.device[i].pcapPtr != NULL) && 
-       (pcap_stats(myGlobals.device[i].pcapPtr, &pcapStats) >= 0)) {
-      snprintf(buf, sizeof(buf), "          pcap stats: Received %u Dropped %u", 
-                                 pcapStats.ps_recv,
-                                 pcapStats.ps_drop);
-      sendString(buf);
-      if (pcapStats.ps_ifdrop > 0) {
-        snprintf(buf, sizeof(buf), ", ifDropped %u", pcapStats.ps_ifdrop);
-        sendString(buf);
-      }
-      sendString("\n");
-    }
-#endif
-
     sendString("          Mfg: ____________________  Model: ____________________\n");
     sendString("          NIC Speed: 10/100/1000/Other  Bus: PCI ISA USB Firewire Other\n");
     sendString("          Location:  Public Internet / LAN / WAN\n");
--- ntop/plugins/netflowPlugin.c 2003-09-18 07:18:48.000000000 -0500
+++ ntop/plugins/netflowPlugin.c 2003-10-22 11:23:45.000000000 -0500
@@ -461,6 +461,7 @@
 	break;
       }
 
+      myGlobals.device[actualDeviceId].receivedPkts.value += numPkts;
       myGlobals.device[actualDeviceId].ethernetPkts.value += numPkts;
       myGlobals.device[actualDeviceId].ipPkts.value       += numPkts;
       updateDevicePacketStats((u_int)len, actualDeviceId);
--- ntop/emitter.c 2003-08-13 08:33:00.000000000 -0500
+++ ntop/emitter.c 2003-10-22 11:21:20.000000000 -0500
@@ -1268,6 +1268,8 @@
 	wrtLlongItm(fDescr, lang, "\t", "droppedPkts",myGlobals.device[i].droppedPkts, ',', numEntries);
     }
 
+    if(checkFilter(filter, "receivedPkts"))
+      wrtLlongItm(fDescr, lang, "\t", "receivedPkts",myGlobals.device[i].receivedPkts, ',', numEntries);
     if(checkFilter(filter, "ethernetPkts"))
       wrtLlongItm(fDescr, lang, "\t", "ethernetPkts",myGlobals.device[i].ethernetPkts, ',', numEntries);
     if(checkFilter(filter, "broadcastPkts"))
--- ntop/initialize.c 2003-10-15 09:14:39.000000000 -0500
+++ ntop/initialize.c 2003-10-22 11:03:18.000000000 -0500
@@ -339,6 +339,7 @@
    
   memset(myGlobals.device[devIdx].hash_hostTraffic, 0, len); 
 
+  resetTrafficCounter(&myGlobals.device[devIdx].receivedPkts);
   resetTrafficCounter(&myGlobals.device[devIdx].droppedPkts);
   resetTrafficCounter(&myGlobals.device[devIdx].ethernetPkts);
   resetTrafficCounter(&myGlobals.device[devIdx].broadcastPkts);
