I know kernel itself handles protocols in layer 2, layer3 and layer 4 at ipv4 stack, but why can't kernel itself doesn't have protocols such as STP/RSTP/xSTP/OSPF...etc, implemented.

Why should we need a separate protocol stack from user space/Control Plane. What restricts kernel itself to had, and limitations? Any views are helpful. Thanks in advance.

  • You seem to be asking about host operating systems, which are explicitly off-topic here, see the help center. – Zac67 Dec 22 '19 at 7:30
  • NE is a site to ask and provide answers about professional managed networks in a business environment. Your question appears to fall outside the areas that our community has decided are on topic. Please see What topics can I ask about here? for more details. This question seems to be more about how an OS is designed and developed rather than a network question. You could try posting this on a different site on the network, such as Unix & Linux. – YLearn Dec 22 '19 at 14:47

It is desirable to have less stuff in the kernel. On my Mac I could theoretically implement an OSPF process (or another new experimental routing protocol) and have it update the route table. If my process crashed it would not crash the kernel. That is good! Not bad. Even on a dedicated Cisco router you don’t want a malformed snmp/ssh/stp packet crashing a monolithic kernel.


I'm only making assumptions here based on your question but it seems you may have Kernal confused with cli/ Bash. Are you asking why a Linux distro does not have routing protocols built-in?

Answering the question of why separate the control and forwarding plane is something completely different.