Bug 258986 - [ixgbe] sysctl stats don't report jumbo frames
Summary: [ixgbe] sysctl stats don't report jumbo frames
Status: In Progress
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-net (Nobody)
URL:
Keywords: IntelNetworking
Depends on:
Blocks:
 
Reported: 2021-10-07 15:48 UTC by Alan Somers
Modified: 2021-10-08 00:05 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alan Somers freebsd_committer freebsd_triage 2021-10-07 15:48:28 UTC
The ixgbe driver publishes a bunch of stats via the sysctl interface.  Among them are a histogram of the sent and received frame sizes.  However, this histogram ends at 1522 bytes.  For example:

# sysctl dev.ix.0 | grep x_frame
dev.ix.0.mac_stats.tx_frames_1024_1522: 102041616251
dev.ix.0.mac_stats.tx_frames_512_1023: 918277489
dev.ix.0.mac_stats.tx_frames_256_511: 1797068858
dev.ix.0.mac_stats.tx_frames_128_255: 1826567947
dev.ix.0.mac_stats.tx_frames_65_127: 10586619068
dev.ix.0.mac_stats.tx_frames_64: 1407126
dev.ix.0.mac_stats.rx_frames_1024_1522: 114257985091
dev.ix.0.mac_stats.rx_frames_512_1023: 1442145561
dev.ix.0.mac_stats.rx_frames_256_511: 2456033440
dev.ix.0.mac_stats.rx_frames_128_255: 624033055
dev.ix.0.mac_stats.rx_frames_65_127: 24790890291
dev.ix.0.mac_stats.rx_frames_64: 12574573

On this particular system, I am sending and receiving jumbo frames, as confirmed by netstat:

# netstat -I ix0 1 | awk '$1 ~ /[1-9]/ {print ("bytes/packet tx:", $4 / $1, "bytes/packet rx:", $7 /  $5)}'
bytes/packet tx: 1270.04 bytes/packet rx: 1229.77
bytes/packet tx: 1322.84 bytes/packet rx: 874.726
bytes/packet tx: 2240 bytes/packet rx: 1062.68
bytes/packet tx: 2128.77 bytes/packet rx: 1106.72
bytes/packet tx: 1174.64 bytes/packet rx: 1346.54

Ideally the sysctl stats would have at least one more bin for > 1522 bytes.
Comment 1 Kevin Bowling freebsd_committer freebsd_triage 2021-10-07 23:43:19 UTC
I checked the datasheets for X520 and X550 to see two different implementations the register that becomes dev.ix.0.mac_stats.tx_frames_1024_1522 actually covers anything >= 1024 bytes.  There is no separate bucket for larger frames, and it could have been named something more obvious like dev.ix.0.mac_stats.tx_frames_1024_max.
Comment 2 Kevin Bowling freebsd_committer freebsd_triage 2021-10-08 00:05:03 UTC
Do you have any input based on the above?  I think it would be strenuous to rename the sysctl as it stands but maybe we can correct the description?