On Thu, 28 Feb 2019 09:44:29 +0100, Jiri Pirko wrote:
> >Okay, so let me explain the way I see it, and you can explain your way
> >or tell me where you disagree.  Those devlink ports and netdevs are pf
> >ports and vf ports, which most refer to as "representor".  If one sends
> >packets to the netdev indicated in DEVLINK_ATTR_PORT_NETDEV_*
> >attributes they will _egress_ the switch from that port.  For physical
> >port that means going onto the Ethernet or IB wire.  For PCIe it means
> >getting DMAed over the PCIe link to host memory.
> >
> >There is a netdev construct on the host which is in charge of that 
> >host memory.  Maybe we shall call that host netdev?
> >
> >(I said I don't like "representor" for the reason that people don't
> >refer to the physical port as "representor" even though it has exactly
> >the semantics we are following.  This distinction between behaviour of
> >physical and PCI ports is what leads to confusion, I think.)
> >
> >Let me bring out the moose :)
> >
> >                    HOST A             ||          HOST B                  
> >                                       ||                                  
> >        PF A       | V | V | V | V     ||       PF B        | V | V | V      
> >          
> >                   |*F |*F |*F |*F ... ||                   |*F |*F |*F ...  
> >          
> >*port A0 |*port A1 | 0 | 1 | 2 | 3     ||*port B0 |*port B1 | 0 | 1 | 2      
> >      
> >                                       ||                                  
> >             PCI Express link          ||        PCI Express link          
> >        \      \      \  |   |   |          |       |      /   /   /         
> >         \      \      \ |   |   |          |       |     /   /   /          
> >      /\  \______\______\'___|___|__________|_______'____/___/___/__    /\
> >      ||  |+PF0s0|+PF0s1 |+VF0|+VF1| ...|   |+PF1s0|+PF1s1|+VF0|+VF1|   ||  
> >  i   ||  |------ ------ ----- ---- ----|--- ------ ------ ---- ----|   ||   
> > i
> >d n H ||  |               <<==========                              |   || d 
> >n H
> >e s O ||  |                            ==========>>                 |   || e 
> >s O
> >v t S ||  |                    SR-IOV e-switch                      |   || v 
> >t S
> >l a T ||  |               <<==========                              |   || l 
> >a T
> >i n   ||  |                            ==========>>                 |   || i 
> >n
> >n c A ||  |               ________ _________ ________               |   || n 
> >c B
> >k e   ||  |              |+Phys 0 |+Phys 1  |+Phys 2 |              |   || k 
> >e
> >      ||  \---------------------------------------------------------/   ||
> >      \/                      |        |         |                      \/   
> >  
> >                              |        |         |                          
> >                                 ||         ||                               
> >                          MAC 0  ||  MAC 1  || MAC 2                   
> >                                 ||         ||                              
> >
> >Things marked with + are devlink ports and have port (-repr-) netdevs
> >(including physical ports).
> >Things marked with * are host netdevs, don't have devlink ports.  
> 
> Okay, I got it. So you say that devlink ports should always be only
> ports of eswitch.
> 
> PF host netdev should have "devlink port" instance, correct?
> But it still "belongs" under the ASIC represented by the devlink
> instance...

Yes, I think so.

Reply via email to