On Wed, May 31, 2017 at 08:23:09AM -0700, Stephen Hemminger wrote: > On Mon, 29 May 2017 15:42:20 +0200 > Gaetan Rivet <gaetan.ri...@6wind.com> wrote: > > > Signed-off-by: Gaetan Rivet <gaetan.ri...@6wind.com> > > Acked-by: Olga Shern <ol...@mellanox.com> > > --- > > doc/guides/nics/features/failsafe.ini | 6 ++ > > drivers/net/failsafe/failsafe_ops.c | 131 > > +++++++++++++++++++++++++++++++++- > > 2 files changed, 135 insertions(+), 2 deletions(-) > > Once again what about case of dumb synthetic NIC combined with SR-IOV VF? > The VF has offloads the virtual NIC does not. >
The rules for capabilities are a little complicated. In the case both VF and the virtual NIC are present at launch, then the logical AND is done both their capabilities sets. If one has additional capabilities that the user is requesting, and the fail-safe recognize them (currently, all RX offloads, as TX offloads were not yet expressed by flags), and this capability is not supported by one slave, then this offload is disabled in the configuration. > What about late plugin. how do you program the offloads of the later arriving > VF device. If the VF is not present at launch, then the fail-safe reads only the set of capabilities from the fallback device. It does not have to do any AND-ing of the flags. The consequence is that upon plugin of the VF, the latter has to respect the current running configuration. Probing will actually fail if some capability is not supported (depending on PMDs), and the running configuration is not updated as it is considered "live". There are only two solutions to this, either: * Complicate a lot the fail-safe design and the rules applied in the decision made on NIC configuration. The user then has bad surprises upon seeing that his performance have been degraded for arcane reasons. * Emulate in software the offloads and try to advertize as many as possible. This is done for example in the TAP PMD for some flags, allowing those offloads to be used with hardware NICs. The user then has a clear view of the available offloads by comparing both sets of capabilities. -- Gaëtan Rivet 6WIND