<p>这个问题是不久前提出的,但我希望我的建议能有所帮助。
<code>self.addSwitch()</code>函数返回字符串,因此<code>s1</code>是字符串,而<code>Intf</code>函数需要<code>Node</code>类型</p>
<p>如果要使用命令行运行,一个简单的解决方案是创建网络,然后使用添加接口的测试函数,如下例所示:</p>
<pre class="lang-py prettyprint-override"><code>from mininet.net import Mininet
from mininet.node import Controller
from mininet.cli import CLI
from mininet.link import Intf
from mininet.log import setLogLevel, info
from mininet.topo import Topo
class MyTopo( Topo ):
"Simple topology example."
def build( self ):
"Create custom topo."
# Add hosts and switches
'*** Add switches\n'
s1 = self.addSwitch('s1')
info("**type s1 > ", type(s1), "\n")
s2 = self.addSwitch('s2')
'*** Add hosts\n'
h2 = self.addHost('h2')
# Add links
'*** Add links\n'
self.addLink(h2, s2)
def addIface(mn):
s1_node = mn.getNodeByName("s1")
Intf("ens38", node=s1_node)
CLI(mn)
tests = { 'addIf': addIface }
topos = { 'mytopo': ( lambda: MyTopo() ) }
</code></pre>
<p>要在命令行中运行它,假设您已将文件命名为test.py:</p>
<pre class="lang-sh prettyprint-override"><code>mn custom=test.py topo=mytopo test=addIf
</code></pre>