title: How the kernel knows how much headroom/tailroom to assign, when it required to create SKB to send through net-device interface?
body: <p>I have a scenario in which the kernel builds SKB which came to my <code>.do_start_xmit</code> hook, without enough headroom for my extra headers.
  Actually, it happens when the previous <code>.do_start_xmit</code> hook call, returned with an error (not <code>0</code>). From that moment, the kernel keep trying to send SKBs (32-words length of data) without enough headroom for my extra headers. Until that error, the kernel made perfect SKBs with enough headroom for everything I needed.</p>
  
  <p>Where is the configuration in which from it the kernel takes the values to set the size of headroom/tailroom of SKB, when sending a ping (for example) from one userspace to another?</p>