Commit 69b3118f authored by Leigh B Stoller's avatar Leigh B Stoller
Browse files

Better handling for tunnels that span aggregates.

Be sure to added the other side of the tunnel to the topomap, when the
tunnel spans aggregates, so that the host/route calculators on the
client do the right thing.
parent b7c7d845
......@@ -675,12 +675,28 @@ if ($experiment->geniflags()) {
print STDERR "Could not get vnode for $member\n";
goto bad;
}
if ($member->GetAttribute("node_id", \$node)) {
print STDERR "Could not get node for $member\n";
my $port = scalar(keys(%{ $nodes{$vnode} })) + 1;
# Store lan:ip into the portlist for the node.
$nodes{$vnode}->{$port} = "$vname:$ip";
#
# Add the other side of the tunnel, even though it is
# probably at a remote AM. We do this so that the hosts
# file is generated correctly.
#
if ($member->GetAttribute("tunnel_peerip", \$ip)) {
print STDERR "Could not get peer ip for $member\n";
goto bad;
}
my $port = scalar(keys(%{ $nodes{$vnode} })) + 1;
if ($member->GetAttribute("tunnel_peerid", \$vnode)) {
print STDERR "Could not get peer id for $member\n";
goto bad;
}
# If it is remote, it will be in the nodes table.
if (!exists($nodes{$vnode})) {
$nodes{$vnode} = {};
}
$port = scalar(keys(%{ $nodes{$vnode} })) + 1;
# Store lan:ip into the portlist for the node.
$nodes{$vnode}->{$port} = "$vname:$ip";
next;
......
Markdown is supported
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