On Fri, Jul 16, 2021 at 3:08 PM Kevin Bowling <kevin.bowling@kev009.com> wrote:
Yup was just going to say this is standard in the modern BSD network
drivers, looks like Clem says it's older. 
Absolutely -- I believe it was Rob's undergrad project at Brown that he brought to BBN.

The first use, if I saw, was the 'portable IP/TCP' stack  BBN did for HP/3000 and a couple of other systems.  That code seems to have been lost.  I have asked about it on the Internet history mailing list.  I had a copy of it one time, but sadly I don't think I still do.  IIRC The original PDP-11 IP implementation which ran on a couple of dedicated systems, whose names/function I frankly do not remember) was also based on a version of this code.  I think it ran something like RT-11 or DOS-11 and then started the IP code -- basically RTR style today.   Later it morphed into Rob's Vax BSD  4.1 specific stack,  which we ran at UCB on a couple of the systems using 3M Xerox board.  This latest until 4.1A and Joy's rewrite and I want to say we switched in Interlan 10M boards then.  We have a couple of the 3Com boards, but because of the lack of buffering, they were a bear to use and stopped as soon as we got the Interlan one. 


Anyway, all of these IP/TCP stacks used Rob's mbuf code.  Which was a blessing and a curse.  By writing his own, he avoids huge changes/integration into the memory system, but it also helped to make BSD such a mess under the covers because there were so many private memory managers between the network, the I/O systems etc...  As discussed previously on the TUHS list, the one thing Risner really did well had a uniform memory design.   Later BSD's moved to Mach and tried to clean this up a little, but the network code was by then so screwed into Rob's mbuf scheme, it stayed around a long time.  Werner -- what is the state of this these days in FreeBSD is it still there?


 
There are recent optimizations to help the CPU with prefetch, and some ideas around vectors of mbufs.  What's remarkable is the mbuf design scales to
200gbps in practice, it must feel great to design something like that so long ago :)
Well, ask Rob :-)  I've lost track of him since Stellar, and I think he I heard he left high tech but frankly don't know.

Clem