struct inet_protocol error handler

From: Sunny So (sunnyso@netscape.net)
Date: Tue Jun 13 2000 - 21:07:09 EST


Hi all,
  
I have a question on the struct inet_protocol error handler. I am referring to
a 2.2.x kenrel.
  
Let's say I want to make a "traceroute call" from a transport layer protocol
(say XYP, with protocol number 177) routine. So, an ICMP with TIME_EXCEED
returns. Below is how I think the routine call works:
  
ip_rcv() -> ip_local_deliver() -> icmp_rcv() -> icmp_unreach() -> 'a protocol
with the matched protocol #'->errhandler()
  
However, the below statement in icmp_unreach() is never satisfied since I
guess that skb->nh.iph->protocol always equals 0x01 (ICMP) but not 177:
  
if(iph->protocol == ipprot->protocol && ipprot->err_handler)
ipprot->err_handler(skb, dp, len);
  
The error handler never goes into my xyp_err().
  
Is my description clear? I surely have missed out something but I have no
clue. Can my xyp_err() ever be called? Could anyone help me? Thanks in
advance.

____________________________________________________________________
Get your own FREE, personal Netscape WebMail account today at http://webmail.netscape.com.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jun 15 2000 - 21:00:30 EST