Commit 93971eef authored by Shashi Guruprasad's avatar Shashi Guruprasad
Browse files

I found the bug. In one path, the host route calculation was being

skipped.

----------------
    if ($optimize) {
	my $newip = inet_ntoa(inet_aton($dstip) & inet_aton($NETMASK));

	if (defined($netroutes{"$src:$newip"})) {
	    if ($netroutes{"$src:$newip"} ne $hop) {
		die("*** $0:\n".
		    "    network route mismatch: $src:$dst:$hop!\n");
	    }
	    next;
^^^^^^^^^^^^^^^^^^^^^^^^^^
	}

	$netroutes{"$src:$newip"} = $hop;
	$type  = "net";
	$dstip = $newip;
    }

HOSTROUTES:
----------------

If a NET route is already defined for a subnet because of a previous route
(to a different dst on the same LAN), it would skip doing the HOSTROUTES.
This problem wouldn't occur with links alone in the topology. Looks like
it was never caught because no one probably tried pinging IPs of all
interfaces while using LANs. Note that this problem wouldn't occur for
directly connected neighbors (even if they are on a LAN). The latter is
the reason why maryland folks didn't encounter this problem.

The bottomline: We need Dave (West)'s automated testing tool!

Fixed, committed and installed.

Mike, I have fixed the routes in your experiment. Just reboot your
nodes/vnodes.

-Shashi

On Fri, 15 Aug 2003, Mike Hibler wrote:

> I've know we have been round and round this one, but it appears that
> rtproto Static is not producing routes to all IP addrs listed in the
> hosts file.  Again, it is nodes with multiple interfaces and we don't
> have routes to the nodes on all of those interfaces.  I thought we came
> up with some solution (or at least hack) for this?
>
> You can see this in the testbed/vroutetest experiment by logging into
> say EGG1.vroutetest.testbed.emulab.net and trying to ping "F-3".
> Note that this is a vnode so you'll have to slogin from ops or, better,
> use the fine ssh-mime.pl thingee of Leigh's from the web page.
>
> Honestly, I tried going back to the mail archive to find last time this
> came up, but I didn't find anything useful!
>
parent daf09464
......@@ -444,7 +444,7 @@ foreach my $route (keys(%routes)) {
die("*** $0:\n".
" network route mismatch: $src:$dst:$hop!\n");
}
next;
goto HOSTROUTES;
}
$netroutes{"$src:$newip"} = $hop;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment