lkml.org 
[lkml]   [1999]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: 2.2.12pre[13] network problem
Date
From
> I've tried 2.2.12pre1 and 2.2.12pre3 today.  Output from ifconfig looks
> normal. Interface eth0 works fine. Interface eth1 doesn't: if pinged
> from another box, it may or may not (mostly not) wake up and ping back,
> and if it does, and I ping from the local host, that may work for a bit;
> but very soon (under 20 seconds) the interface seems to revert to
> inactivity. All this time eth0 is quite normal. Taking eth1 down and
> bringing it back up manually with ifconfig doesn't help. Rebooting
> 2.2.11 causes the problem to go away.

Do you have any of the IP virtual server stuff built in ?

Can you see if backing out this helps


diff -u --new-file --recursive --exclude-from ../exclude linux.vanilla/net/ipv4/arp.c linux.12p2/net/ipv4/arp.c
--- linux.vanilla/net/ipv4/arp.c Tue Aug 10 21:45:41 1999
+++ linux.12p2/net/ipv4/arp.c Wed Aug 11 22:54:16 1999
@@ -65,6 +65,8 @@
* clean up the APFDDI & gen. FDDI bits.
* Alexey Kuznetsov: new arp state machine;
* now it is in net/core/neighbour.c.
+ * Wensong Zhang : NOARP device (such as tunl) arp fix.
+ * Peter Kese : arp_solicit: saddr opt disabled for vs.
*/

/* RFC1122 Status:
@@ -306,9 +308,15 @@
u32 target = *(u32*)neigh->primary_key;
int probes = neigh->probes;

+#if !defined(CONFIG_IP_MASQUERADE_VS) /* Virtual server */
+ /* use default interface address as source address in virtual
+ * server environment. Otherways the saddr might be the virtual
+ * address and gateway's arp cache might start routing packets
+ * to the real server */
if (skb && inet_addr_type(skb->nh.iph->saddr) == RTN_LOCAL)
saddr = skb->nh.iph->saddr;
else
+#endif
saddr = inet_select_addr(dev, target, RT_SCOPE_LINK);

if ((probes -= neigh->parms->ucast_probes) < 0) {
@@ -534,6 +542,7 @@
struct rtable *rt;
unsigned char *sha, *tha;
u32 sip, tip;
+ struct device *tdev;
u16 dev_type = dev->type;
int addr_type;
struct in_device *in_dev = dev->ip_ptr;
@@ -627,6 +636,13 @@
* addresses. If this is one such, delete it.
*/
if (LOOPBACK(tip) || MULTICAST(tip))
+ goto out;
+
+/*
+ * Check for the device flags for the target IP. If the IFF_NOARP
+ * is set, just delete it. No arp reply is sent. -- WZ
+ */
+ if ((tdev = ip_dev_find(tip)) && (tdev->flags & IFF_NOARP))
goto out;

/*
-
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/

\
 
 \ /
  Last update: 2005-03-22 13:53    [from the cache]
©2003-2011 Jasper Spaans