Messages in this thread Patch in this message |  | | Date | Sat, 17 Nov 2001 19:37:50 +0800 | From | zhongyu <> | Subject | ARP bug and a patch |
| |
Bug's description : A computer has two ethernet cards connected to the same hub, each ethernet card was in a different logical sub net and turn on the ip_forward on each ethernet card. Dozens of ARP request packet will cause a "neibour table overflow" error then the netcard can not work . reason: The arp_rcv fuction would call the ip_route_input function to build the dst entry of the skb. When the ip_forward is on , the code will run direct into the rt_intern_hash fuction which add the target ip to the neighbour buffer . patch:
diff -Naur linux-2.4.9/net/ipv4/route.c linux-2.4.9n/net/ipv4/route.c --- linux-2.4.9/net/ipv4/route.c Fri Nov 16 17:19:06 2001 +++ linux-2.4.9n/net/ipv4/route.c Fri Nov 16 17:17:59 2001 @@ -1501,6 +1501,12 @@ } #endif
+ if (skb->protocol == __constant_htons(ETH_P_ARP)){ + skb->dst = rth; + err = 0; + goto done; + } + intern: err = rt_intern_hash(hash, rth, (struct rtable**)&skb->dst); done: zhongyu xxx_pku@yahoo.com
_________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |