mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-03 09:12:00 +00:00
In the ENETC receive path, a frame received by the MAC is first stored in a 256KB 'FIFO' memory, then transferred to DRAM when enqueuing it to the RX ring. The FIFO is a shared resource for all ENETC ports, but every port keeps track of its own memory utilization, on RX and on TX. There is a setting for RX rings through which they can either operate in 'lossy' mode (where the lack of a free buffer causes an immediate discard of the frame) or in 'lossless' mode (where the lack of a free buffer in the ring makes the frame stay longer in the FIFO). In turn, when the memory utilization of the FIFO exceeds a certain margin, the MAC can be configured to emit PAUSE frames. There is enough FIFO memory to buffer up to 3 MTU-sized frames per RX port while not jeopardizing the other use cases (jumbo frames), and also not consume bytes from the port TX allocations. Also, 3 MTU-sized frames worth of memory is enough to ensure zero loss for 64 byte packets at 1G line rate. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
|---|---|---|
| .. | ||
| dpaa | ||
| dpaa2 | ||
| enetc | ||
| fman | ||
| fs_enet | ||
| fec_main.c | ||
| fec_mpc52xx_phy.c | ||
| fec_mpc52xx.c | ||
| fec_mpc52xx.h | ||
| fec_ptp.c | ||
| fec.h | ||
| fsl_pq_mdio.c | ||
| gianfar_ethtool.c | ||
| gianfar.c | ||
| gianfar.h | ||
| Kconfig | ||
| Makefile | ||
| ucc_geth_ethtool.c | ||
| ucc_geth.c | ||
| ucc_geth.h | ||
| xgmac_mdio.c | ||