Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
mininet
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Olaf Bergmann
mininet
Commits
9011e0d2
Commit
9011e0d2
authored
15 years ago
by
Bob Lantz
Browse files
Options
Downloads
Patches
Plain Diff
Fixed user datapath support.
parent
6bd22292
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
mininet.py
+14
-12
14 additions, 12 deletions
mininet.py
with
14 additions
and
12 deletions
mininet.py
+
14
−
12
View file @
9011e0d2
...
@@ -407,7 +407,7 @@ def configRoutedControlNetwork( controller, switches,
...
@@ -407,7 +407,7 @@ def configRoutedControlNetwork( controller, switches,
while
not
switch
.
intfIsUp
(
switch
.
intfs
[
0
]
):
while
not
switch
.
intfIsUp
(
switch
.
intfs
[
0
]
):
print
"
*** Waiting for
"
,
switch
.
intfs
[
0
],
"
to come up
"
print
"
*** Waiting for
"
,
switch
.
intfs
[
0
],
"
to come up
"
sleep
(
1
)
sleep
(
1
)
if
pingTest
(
[
switch
,
controller
]
)
!=
0
:
if
pingTest
(
hosts
=
[
switch
,
controller
]
)
!=
0
:
print
"
*** Error: control network test failed
"
print
"
*** Error: control network test failed
"
exit
(
1
)
exit
(
1
)
...
@@ -444,7 +444,7 @@ def run( self, test ):
...
@@ -444,7 +444,7 @@ def run( self, test ):
print
"
*** Creating controller
"
print
"
*** Creating controller
"
controller
=
Controller
(
'
c0
'
,
kernel
)
controller
=
Controller
(
'
c0
'
,
kernel
)
print
"
*** Creating network
"
print
"
*** Creating network
"
switches
,
hosts
=
self
.
makeNet
()
switches
,
hosts
=
self
.
makeNet
(
controller
)
print
print
if
not
kernel
:
if
not
kernel
:
print
"
*** Configuring control network
"
print
"
*** Configuring control network
"
...
@@ -457,13 +457,14 @@ def run( self, test ):
...
@@ -457,13 +457,14 @@ def run( self, test ):
for
switch
in
switches
:
for
switch
in
switches
:
switch
.
start
(
controller
)
switch
.
start
(
controller
)
print
"
*** Running test
"
print
"
*** Running test
"
test
(
[
controller
],
switches
,
hosts
)
result
=
test
(
[
controller
],
switches
,
hosts
)
print
"
*** Stopping controller
"
print
"
*** Stopping controller
"
controller
.
stop
()
controller
.
stop
()
print
"
*** Stopping switches
"
print
"
*** Stopping switches
"
for
switch
in
switches
:
for
switch
in
switches
:
switch
.
stop
()
switch
.
stop
()
print
"
*** Test complete
"
print
"
*** Test complete
"
return
result
def
interact
(
self
):
def
interact
(
self
):
"
Create a network and run our simple CLI.
"
"
Create a network and run our simple CLI.
"
self
.
run
(
self
,
Cli
)
self
.
run
(
self
,
Cli
)
...
@@ -482,7 +483,7 @@ class TreeNet( Network ):
...
@@ -482,7 +483,7 @@ class TreeNet( Network ):
def
__init__
(
self
,
depth
,
fanout
,
kernel
=
True
):
def
__init__
(
self
,
depth
,
fanout
,
kernel
=
True
):
self
.
depth
,
self
.
fanout
=
depth
,
fanout
self
.
depth
,
self
.
fanout
=
depth
,
fanout
Network
.
__init__
(
self
,
kernel
)
Network
.
__init__
(
self
,
kernel
)
def
treeNet
(
self
,
depth
,
fanout
,
kernel
=
True
,
snames
=
None
,
def
treeNet
(
self
,
controller
,
depth
,
fanout
,
kernel
=
True
,
snames
=
None
,
hnames
=
None
,
dpnames
=
None
):
hnames
=
None
,
dpnames
=
None
):
"""
Return a tree network of the given depth and fanout as a triple:
"""
Return a tree network of the given depth and fanout as a triple:
( root, switches, hosts ), using the given switch, host and
( root, switches, hosts ), using the given switch, host and
...
@@ -501,26 +502,26 @@ def treeNet( self, depth, fanout, kernel=True, snames=None,
...
@@ -501,26 +502,26 @@ def treeNet( self, depth, fanout, kernel=True, snames=None,
print
switch
.
name
,
;
flush
()
print
switch
.
name
,
;
flush
()
switches
,
hosts
=
[
switch
],
[]
switches
,
hosts
=
[
switch
],
[]
for
i
in
range
(
0
,
fanout
):
for
i
in
range
(
0
,
fanout
):
child
,
slist
,
hlist
=
self
.
treeNet
(
child
,
slist
,
hlist
=
self
.
treeNet
(
controller
,
depth
-
1
,
fanout
,
kernel
,
snames
,
hnames
,
dpnames
)
depth
-
1
,
fanout
,
kernel
,
snames
,
hnames
,
dpnames
)
createLink
(
switch
,
child
)
createLink
(
switch
,
child
)
switches
+=
slist
switches
+=
slist
hosts
+=
hlist
hosts
+=
hlist
return
switch
,
switches
,
hosts
return
switch
,
switches
,
hosts
def
makeNet
(
self
):
def
makeNet
(
self
,
controller
):
root
,
switches
,
hosts
=
self
.
treeNet
(
root
,
switches
,
hosts
=
self
.
treeNet
(
controller
,
self
.
depth
,
self
.
fanout
,
self
.
kernel
)
self
.
depth
,
self
.
fanout
,
self
.
kernel
)
return
switches
,
hosts
return
switches
,
hosts
# Grid network
# Grid network
class
GridNet
(
Network
):
class
GridNet
(
Network
):
"
An
n
x
m
grid/mesh network of switches, with hosts at the edges.
"
"
An
N
x
M
grid/mesh network of switches, with hosts at the edges.
"
def
__init__
(
self
,
n
,
m
,
kernel
=
True
,
linear
=
False
):
def
__init__
(
self
,
n
,
m
,
kernel
=
True
,
linear
=
False
):
self
.
n
,
self
.
m
,
self
.
linear
=
n
,
m
,
linear
and
m
==
1
self
.
n
,
self
.
m
,
self
.
linear
=
n
,
m
,
linear
and
m
==
1
print
"
m=
"
,
m
print
"
m=
"
,
m
Network
.
__init__
(
self
,
kernel
)
Network
.
__init__
(
self
,
kernel
)
def
makeNet
(
self
):
def
makeNet
(
self
,
controller
):
snames
,
hnames
,
dpnames
=
defaultNames
()
snames
,
hnames
,
dpnames
=
defaultNames
()
n
,
m
=
self
.
n
,
self
.
m
n
,
m
=
self
.
n
,
self
.
m
hosts
=
[]
hosts
=
[]
...
@@ -587,7 +588,7 @@ def parsePing( pingOutput ):
...
@@ -587,7 +588,7 @@ def parsePing( pingOutput ):
sent
,
received
=
int
(
m
.
group
(
1
)
),
int
(
m
.
group
(
2
)
)
sent
,
received
=
int
(
m
.
group
(
1
)
),
int
(
m
.
group
(
2
)
)
return
sent
,
received
return
sent
,
received
def
pingTest
(
controllers
,
switches
,
hosts
,
verbose
=
False
):
def
pingTest
(
controllers
=
[]
,
switches
=
[]
,
hosts
=
[]
,
verbose
=
False
):
"
Test that each host can reach every other host.
"
"
Test that each host can reach every other host.
"
packets
=
0
;
lost
=
0
packets
=
0
;
lost
=
0
for
node
in
hosts
:
for
node
in
hosts
:
...
@@ -719,6 +720,7 @@ def fixLimits():
...
@@ -719,6 +720,7 @@ def fixLimits():
setrlimit
(
RLIMIT_NOFILE
,
(
16384
,
32768
)
)
setrlimit
(
RLIMIT_NOFILE
,
(
16384
,
32768
)
)
def
init
():
def
init
():
"
Initialize Mininet.
"
# Note: this script must be run as root
# Note: this script must be run as root
# Perhaps we should do so automatically!
# Perhaps we should do so automatically!
if
os
.
getuid
()
!=
0
:
if
os
.
getuid
()
!=
0
:
...
@@ -735,6 +737,6 @@ def init():
...
@@ -735,6 +737,6 @@ def init():
if
__name__
==
'
__main__
'
:
if
__name__
==
'
__main__
'
:
init
()
init
()
for
kernel
in
[
False
,
True
]:
for
kernel
in
[
False
,
True
]:
TreeNet
(
depth
=
2
,
fanout
=
2
).
run
(
pingTestVerbose
)
TreeNet
(
depth
=
2
,
fanout
=
2
,
kernel
=
kernel
).
run
(
pingTestVerbose
)
LinearNet
(
switchCount
=
10
).
run
(
iperfTest
)
LinearNet
(
switchCount
=
10
,
kernel
=
kernel
).
run
(
iperfTest
)
# GridNet( 2, 2 ).run( Cli )
# GridNet( 2, 2 ).run( Cli )
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment