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
0cbde1a8
Commit
0cbde1a8
authored
Mar 12, 2010
by
Leigh B Stoller
Browse files
Add support for vlan devices.
parent
135e92b8
Changes
1
Hide whitespace changes
Inline
Side-by-side
tmcd/linux/openvz/libvnode_openvz.pm
View file @
0cbde1a8
#!/usr/bin/perl -wT
#
# EMULAB-COPYRIGHT
# Copyright (c) 2008-200
9
University of Utah and the Flux Group.
# Copyright (c) 2008-20
1
0 University of Utah and the Flux Group.
# All rights reserved.
#
# Implements the libvnode API for OpenVZ support in Emulab.
...
...
@@ -79,6 +79,7 @@ my $BRCTL = "/usr/sbin/brctl";
my
$IPTABLES
=
"
/sbin/iptables
";
my
$MODPROBE
=
"
/sbin/modprobe
";
my
$RMMOD
=
"
/sbin/rmmod
";
my
$VLANCONFIG
=
"
/sbin/vconfig
";
my
$VZRC
=
"
/etc/init.d/vz
";
my
$MKEXTRAFS
=
"
/usr/local/etc/emulab/mkextrafs.pl
";
...
...
@@ -244,6 +245,10 @@ sub vz_rootPreConfig {
# For tunnels
mysystem
("
$MODPROBE
ip_gre
");
# For VLANs
mysystem
("
$MODPROBE
8021q
");
system
("
$VLANCONFIG
set_name_type VLAN_PLUS_VID_NO_PAD
");
# we need this stuff for traffic shaping -- only root context can
# modprobe, for now.
mysystem
("
$MODPROBE
sch_plr
");
...
...
@@ -322,7 +327,20 @@ sub vz_rootPreConfigNetwork {
foreach
my
$ifc
(
@
{
$node_ifs
->
{
$node
}})
{
next
if
(
!
$ifc
->
{
ISVIRT
});
if
(
$ifc
->
{
PMAC
}
eq
"
none
")
{
if
(
$ifc
->
{
ITYPE
}
eq
"
vlan
")
{
my
$iface
=
$ifc
->
{
IFACE
};
my
$vtag
=
$ifc
->
{
VTAG
};
my
$vdev
=
"
vlan
${vtag}
";
system
("
$VLANCONFIG
add
$iface
$vtag
");
system
("
$IFCONFIG
$vdev
up
");
my
$brname
=
"
pbr
$vdev
";
$brs
{
$brname
}{
ENCAP
}
=
1
;
$brs
{
$brname
}{
SHORT
}
=
0
;
$brs
{
$brname
}{
PHYSDEV
}
=
$vdev
;
}
elsif
(
$ifc
->
{
PMAC
}
eq
"
none
")
{
my
$brname
=
"
br
"
.
$ifc
->
{
VTAG
};
# if no PMAC, we don't need encap on the bridge
$brs
{
$brname
}{
ENCAP
}
=
0
;
...
...
@@ -1154,7 +1172,13 @@ sub vz_vnodePreConfigExpNetwork {
#
my
$veth
=
"
veth
$vmid
.
$ifc
->{ID}
";
my
$br
;
if
(
$ifc
->
{
PMAC
}
eq
"
none
")
{
if
(
$ifc
->
{
ITYPE
}
eq
"
vlan
")
{
my
$vtag
=
$ifc
->
{
VTAG
};
my
$vdev
=
"
vlan
${vtag}
";
$br
=
"
pbr
$vdev
";
}
elsif
(
$ifc
->
{
PMAC
}
eq
"
none
")
{
$br
=
"
br
"
.
$ifc
->
{
VTAG
};
}
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