Dataplane batching

FRRouting uses the concept of a data plane which is the part of the code that processes thedata requests. It is used in communication with kernel i.a. to update routing tables. There areseveral different methods for reading kernel routing table information, updating kernel routingtables, and for looking up interfaces. One of them is Linux Netlink - asynchronouscommunication between kernel and user. FRRouting with its dataplane abstraction, uses aqueue of dataplane context objects for messages waiting to be sent. A separate thread loopsover this queue and sends the context objects to the appropriate dataplane. Every singlemessage is handled and sent separately, but there’s room for improvement. Certaindataplanes allow for sending multiple messages to them at once, so we could benefit from it.This would improve overall processing time. My proposal will involve implementing one ofthe proposed ideas, namely “Dataplane Batching”.



Jakub Urbańczyk


  • Quentin Young
  • sworley