From: Ido Schimmel <ido...@idosch.org> Date: Wed, 16 Sep 2020 09:35:13 +0300
> From: Ido Schimmel <ido...@nvidia.com> > > Petr says: > > On Spectrum, port buffers, also called port headroom, is where packets are > stored while they are parsed and the forwarding decision is being made. For > lossless traffic flows, in case shared buffer admission is not allowed, > headroom is also where to put the extra traffic received before the sent > PAUSE takes effect. Another aspect of the port headroom is the so called > internal buffer, which is used for egress mirroring. > > Linux supports two DCB interfaces related to the headroom: dcbnl_setbuffer > for configuration, and dcbnl_getbuffer for inspection. In order to make it > possible to implement these interfaces, it is first necessary to clean up > headroom handling, which is currently strewn in several places in the > driver. > > The end goal is an architecture whereby it is possible to take a copy of > the current configuration, adjust parameters, and then hand the proposed > configuration over to the system to implement it. When everything works, > the proposed configuration is accepted and saved. First, this centralizes > the reconfiguration handling to one function, which takes care of > coordinating buffer size changes and priority map changes to avoid > introducing drops. Second, the fact that the configuration is all in one > place makes it easy to keep a backup and handle error path rollbacks, which > were previously hard to understand. ... Series applied, thank you.