> -----Original Message----- > From: Jakub Kicinski <kuba@xxxxxxxxxx> > Sent: Friday, August 05, 2022 6:44 PM > To: ecree@xxxxxxxxxx > Cc: netdev@xxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; pabeni@xxxxxxxxxx; > edumazet@xxxxxxxxxx; corbet@xxxxxxx; linux-doc@xxxxxxxxxxxxxxx; Edward > Cree <ecree.xilinx@xxxxxxxxx>; linux-net-drivers@xxxxxxx; Keller, Jacob E > <jacob.e.keller@xxxxxxxxx>; Brandeburg, Jesse <jesse.brandeburg@xxxxxxxxx>; > Michael Chan <michael.chan@xxxxxxxxxxxx>; Andy Gospodarek > <andy@xxxxxxxxxxxxx>; Saeed Mahameed <saeed@xxxxxxxxxx>; Jiri Pirko > <jiri@xxxxxxxxxxx>; Shannon Nelson <snelson@xxxxxxxxxxx>; Simon Horman > <simon.horman@xxxxxxxxxxxx>; Alexander Duyck > <alexander.duyck@xxxxxxxxx> > Subject: Re: [RFC PATCH net-next] docs: net: add an explanation of VF (and other) > Representors > > On Fri, 5 Aug 2022 17:58:50 +0100 ecree@xxxxxxxxxx wrote: > > From: Edward Cree <ecree.xilinx@xxxxxxxxx> > > > > There's no clear explanation of what VF Representors are for, their > > semantics, etc., outside of vendor docs and random conference slides. > > Add a document explaining Representors and defining what drivers that > > implement them are expected to do. > > > > Signed-off-by: Edward Cree <ecree.xilinx@xxxxxxxxx> > > --- > > This documents representors as I understand them, but I suspect others > > (including other vendors) might disagree (particularly with the "what > > functions should have a rep" section). I'm hoping that through review > > of this doc we can converge on a consensus. > > Thanks for doing this, we need to CC people tho. Otherwise they won't > pay attention. (adding semi-non-exhaustively those I have in my address > book) > > > +============================= > > +Network Function Representors > > +============================= > > + > > +This document describes the semantics and usage of representor netdevices, > as > > +used to control internal switching on SmartNICs. For the closely-related port > > +representors on physical (multi-port) switches, see > > +:ref:`Documentation/networking/switchdev.rst <switchdev>`. > > + > > +Motivation > > +---------- > > + > > +Since the mid-2010s, network cards have started offering more complex > > +virtualisation capabilities than the legacy SR-IOV approach (with its simple > > +MAC/VLAN-based switching model) can support. This led to a desire to > offload > > +software-defined networks (such as OpenVSwitch) to these NICs to specify the > > +network connectivity of each function. The resulting designs are variously > > +called SmartNICs or DPUs. > > + > > +Network function representors provide the mechanism by which network > functions > > +on an internal switch are managed. They are used both to configure the > > +corresponding function ('representee') and to handle slow-path traffic to and > > +from the representee for which no fast-path switching rule is matched. > > I think we should just describe how those netdevs bring SR-IOV > forwarding into Linux networking stack. This section reads too much > like it's a hack rather than an obvious choice. I agree. Though not all of the devices can support it, representor devices and switchdev are able to be supported even in some cases which may not be as fully featured or capable as "SmartNIC". Ofcourse the terminology here can get muddled with various branding etc..