title: addition of a new network protocol in the linux kernel
body: <p>I know that in the linux kernel we can add our own protocol at the transport layer, similar to TCP, UDP etc.</p>
  
  <p>Are there any hooks to register a new protocol, at the network layer, similar to IP, ARP, which could transfer the packets to the application and how to add this protocol in the linux kernel?</p>