В ip_output есть две строки кода, которые я не могу понять:
mhlen = sizeof(struct ip)
и
if (hlen > sizeof(struct ip)) { ...
зачем нам сравнивать длину hlen, которая является длиной заголовка исходного ip-пакета, с sizeof (struct ip)?
Не могли бы вы помочь?