NetDev 0x13 on Software Gone Wild
The last Software Gone Wild podcast recorded in 2019 focused on advances in Linux networking - in particular on interesting stuff presented at NetDev 0x13 conference in Prague. The guests (in alphabetical first name order) Jamal Hadi Salim, Shrijeet Mukherjee, Sowmini Varadhan, and Tom Herbert shared their favorite topics, and commented on the future of Linux networking.
Shortly after the blog post was published, Donald Sharp (of the FRR fame) sent me detailed explanation of FRR threading behavior we briefly touched upon during our chat
Currently both BGP and Zebra have been modified to take advantage of pthreads. Each pthread does use the micro thread/event loop as you alluded to Shrijeet but they are independent entities now.
Zebra creates a pthread per connecting protocol as well as having a dplane and processing pthreads. So for example if you have BGP and OSPF running, Zebra would have 4 pthreads running. BGP has a i/o pthread, keepalive pthread and main processing pthread (more details).
Long term plans are to eventually add more pthreads but only after appropriate profiling shows a need to break up processing a bit more. The only protocol that I foresee someone adding pthreads to is PIM in the near future, mainly because that protocol is very chatty.