Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
emulab
emulab-devel
Commits
d8bcb1c4
Commit
d8bcb1c4
authored
Mar 22, 2001
by
Christopher Alfeld
Browse files
Fixed bug involving LANs.
parent
6af03a3d
Changes
2
Hide whitespace changes
Inline
Side-by-side
tbsetup/ir/assign_wrapper.in
View file @
d8bcb1c4
...
...
@@ -221,16 +221,16 @@ foreach $lan (keys(%lans)) {
printdb
"
Setting up link
\n
";
$extlink
=
$lanlinks
[
0
];
(
$src
,
$dst
,
$bw
,
$delay
,
$loss
)
=
@
{
$links
{
$extlink
}};
delete
$links
{
$extlink
};
if
(
$src
eq
"
$lan
")
{
$rdst
=
$dst
;
}
else
{
$rdst
=
$src
;
}
$nodes
{
$ssnode
}
=
["
ext-
$ssnode
"];
printdb
"
nodes{
$ssnode
} = ext-
$ssnode
\n
";
$links
{"
ext-
$ssnode
"}
=
[
$ssnode
,
$rdst
,
$bw
,
$delay
,
$loss
];
printdb
"
links{ext-
$ssnode
} = [
$ssnode
,
$rdst
,
$bw
,
$delay
,
$loss
]
\n
";
delete
$links
{
$extlink
};
$nodes
{
$ssnode
}
=
["
$extlink
"];
printdb
"
nodes{
$ssnode
} =
$extlink
\n
";
$links
{"
$extlink
"}
=
[
$ssnode
,
$rdst
,
$bw
,
$delay
,
$loss
];
printdb
"
links{
$extlink
} = [
$ssnode
,
$rdst
,
$bw
,
$delay
,
$loss
]
\n
";
}
else
{
$nodes
{
$ssnode
}
=
[]
;
printdb
"
nodes{
$ssnode
} = []
\n
";
...
...
tbsetup/ir/handle_ip.in
View file @
d8bcb1c4
...
...
@@ -103,6 +103,16 @@ foreach (split("\n",&ir_get("/topology/links"))) {
$links
{
$link
}
=
[
$src
,
$dst
];
}
# Get a list of delays
&ir_exists
("
/delay
")
||
do
{
print
STDERR
"
IR does not contain delay section.
\n
";
exit
(
1
);
};
foreach
(
split
("
\n
",
&ir_get
("
/delay
")))
{
@t
=
split
;
$delays
{
$t
[
0
]}
=
1
;
}
# Pull the MAC table from the database.
# MACTABLE is indexed by virtual node name and contains a reference
# to a list of MACs.
...
...
@@ -304,13 +314,14 @@ sub get_macs {
if
(
defined
(
$vlanmap
{"
ddst_
$_
[0]
"}))
{
push
(
@$macs
,
@
{
$vlanmap
{"
ddst_
$_
[0]
"}});
}
# XXX - Not sure if this is correct
if
(
defined
(
$links
{
$_
[
0
]}))
{
my
(
$src
,
$dst
)
=
@
{
$links
{
$_
[
0
]}};
if
(
&islan
(
$src
))
{
push
(
@$macs
,
@
{
$vlanmap
{
$src
}});
}
elsif
(
&islan
(
$dst
))
{
push
(
@$macs
,
@
{
$vlanmap
{
$dst
}});
}
my
(
$src
,
$dst
)
=
@
{
$links
{
$_
[
0
]}};
if
(
&islan
(
$src
)
&&
defined
(
$delays
{
$dst
})
)
{
push
(
@$macs
,
@
{
$vlanmap
{
$src
}});
}
elsif
(
&islan
(
$dst
)
&&
defined
(
$delays
{
$src
})
)
{
push
(
@$macs
,
@
{
$vlanmap
{
$dst
}});
}
}
return
$macs
;
...
...
@@ -496,10 +507,13 @@ foreach $left (keys(%to_assign)) {
$ipB
=
&find_free_ip
(
$subnet
);
$ips_assigned
{
$ipB
}
=
1
;
$ip_section
.=
"
$node
$dst
$ipA
\n
";
printdb
"
ip_section .=
$node
$dst
$ipA
\n
";
$macs
=
&get_macs
(
$left
);
push
(
@ip_mac_section
,[
&intersect
(
$MACTABLE
{
$node
},
$macs
),
$ipA
]);
printdb
"
ip_mac_section .=
"
.
&intersect
(
$MACTABLE
{
$node
},
$macs
)
.
"
,
$ipA
\n
";
$ip_section
.=
"
$dst
$node
$ipB
\n
";
push
(
@ip_mac_section
,[
&intersect
(
$MACTABLE
{
$dst
},
$macs
),
$ipB
]);
printdb
"
ip_mac_section .=
"
.
&intersect
(
$MACTABLE
{
$dst
},
$macs
)
.
"
,
$ipB
\n
";
push
(
@
{
$ips_node
{
$node
}},
$ipA
);
push
(
@
{
$ips_node
{
$dst
}},
$ipB
);
}
else
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment