regarding ICMP ERROR MESSAGES

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

In Linux 2.4 6

In the function ip_local_deliver_finish()

we have the following lines ..
if(raw_sk != NULL)
	raw_sk = raw_v4_input(skb, skb->nh.iph, hash);
Now in this raw_v4_input() we call raw_rcv once wherein the skb is pushed to
the raw application listening on that socket.

then we have some piece of code wherein it hashes into the kernel protocol n
decides whether the packet is to be given for kernel stack processing or
not.

the again we have ,
if(raw_sk != NULL)

			raw_rcv(raw_sk, skb);
			sock_put(raw_sk);
		} else if (!flag)

			icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PROT_UNREACH, 0);
out:
			kfree_skb(skb);
		}

Now my question is
why do we call raw_rcv twice??????

for eg: if we get an ICMP_DEST_UNREACHABLE or any ICMP error message how
will the packet flow????

Thanks,
-Lakshmi


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux