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.
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.
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?