aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki@daynix.com>2023-02-23 19:20:15 +0900
committerJason Wang <jasowang@redhat.com>2023-03-10 15:35:38 +0800
commitc50b152485d4e10dfa1e1d7ea668f29a5fb92e9c (patch)
tree629e201fb632196b8216d92243ac2fb620d1759c /hw
parentbf2a7212c2d1b6e58fdb4ab6deffef8e6f3c1baa (diff)
downloadqemu-c50b152485d4e10dfa1e1d7ea668f29a5fb92e9c.zip
qemu-c50b152485d4e10dfa1e1d7ea668f29a5fb92e9c.tar.gz
qemu-c50b152485d4e10dfa1e1d7ea668f29a5fb92e9c.tar.bz2
e1000: Count CRC in Tx statistics
The Software Developer's Manual 13.7.4.5 "Packets Transmitted (64 Bytes) Count" says: > This register counts the number of packets transmitted that are > exactly 64 bytes (from <Destination Address> through <CRC>, > inclusively) in length. It also says similar for the other Tx statistics registers. Add the number of bytes for CRC to those registers. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/net/e1000.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index c81d914..c830798 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -571,7 +571,7 @@ e1000_send_packet(E1000State *s, const uint8_t *buf, int size)
qemu_send_packet(nc, buf, size);
}
inc_tx_bcast_or_mcast_count(s, buf);
- e1000x_increase_size_stats(s->mac_reg, PTCregs, size);
+ e1000x_increase_size_stats(s->mac_reg, PTCregs, size + 4);
}
static void
@@ -635,7 +635,7 @@ xmit_seg(E1000State *s)
}
e1000x_inc_reg_if_not_full(s->mac_reg, TPT);
- e1000x_grow_8reg_if_not_full(s->mac_reg, TOTL, s->tx.size);
+ e1000x_grow_8reg_if_not_full(s->mac_reg, TOTL, s->tx.size + 4);
s->mac_reg[GPTC] = s->mac_reg[TPT];
s->mac_reg[GOTCL] = s->mac_reg[TOTL];
s->mac_reg[GOTCH] = s->mac_reg[TOTH];