Index: /trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DevVirtioNet.cpp	(revision 23577)
+++ /trunk/src/VBox/Devices/Network/DevVirtioNet.cpp	(revision 23578)
@@ -757,4 +757,36 @@
     }
     return rc;
+}
+
+/**
+ * Turns on/off the write status LED.
+ *
+ * @returns VBox status code.
+ * @param   pState          Pointer to the device state structure.
+ * @param   fOn             New LED state.
+ */
+void vpciSetWriteLed(PVPCISTATE pState, bool fOn)
+{
+    LogFlow(("%s vpciSetWriteLed: %s\n", INSTANCE(pState), fOn?"on":"off"));
+    if (fOn)
+        pState->led.Asserted.s.fWriting = pState->led.Actual.s.fWriting = 1;
+    else
+        pState->led.Actual.s.fWriting = fOn;
+}
+
+/**
+ * Turns on/off the read status LED.
+ *
+ * @returns VBox status code.
+ * @param   pState          Pointer to the device state structure.
+ * @param   fOn             New LED state.
+ */
+void vpciSetReadLed(PVPCISTATE pState, bool fOn)
+{
+    LogFlow(("%s vpciSetReadLed: %s\n", INSTANCE(pState), fOn?"on":"off"));
+    if (fOn)
+        pState->led.Asserted.s.fReading = pState->led.Actual.s.fReading = 1;
+    else
+        pState->led.Actual.s.fReading = fOn;
 }
 
@@ -1356,6 +1388,10 @@
         return rc;
 
+    vpciSetReadLed(&pState->VPCI, true);
     if (vnetAddressFilter(pState, pvBuf, cb))
+    {
         rc = vnetHandleRxPacket(pState, pvBuf, cb);
+    }
+    vpciSetReadLed(&pState->VPCI, false);
 
     return rc;
@@ -1442,4 +1478,6 @@
         return;
     }
+
+    vpciSetWriteLed(&pState->VPCI, true);
 
     VQUEUEELEM elem;
@@ -1486,4 +1524,5 @@
         vqueueSync(&pState->VPCI, pQueue);
     }
+    vpciSetWriteLed(&pState->VPCI, false);
 }
 
