title: TypeError:__init__() got an unexpected keyword argument 'delay'
body: <p>I am getting a TypeError in the following python program where the constructor is being called. If I remove the delay argument, I get the same error with "bw". I cannot figure out the mistake. Please help.</p>
  
  <p>I am trying to create a network topology using python.</p>
  
  <pre><code>#!/usr/bin/python
  
  from mininet.topo import Topo
  from mininet.net import Mininet
  from mininet.util import irange,dumpNodeConnections
  from mininet.log import setLogLevel
  
  class CustomTopo(Topo):
  
      def __init__(self, linkopts1, linkopts2, linkopts3, fanout=2, **opts):
          # Initialize topology and default options
          Topo.__init__(self, **opts)
  
          # Add your logic here ...
          switch=self.addSwitch('c1')
  
          self.linkopts1=linkopts1
          self.linkopts2=linkopts2
          self.linkopts3=linkopts3
  
          self.fanout=fanout
          n=0
  
          for i in irange(1,fanout):
                  s=self.addSwitch('a%s' % i)
                  self.addLink(switch,s,**linkopts1)
  
                  if i==1:
                          n=0
                  else:
                          n=1
                  for j in irange(1,fanout):
                          if n==0:
                                  sw=self.addSwitch('e%s' % j)              #To generate labels e1, e2, e3 and e4:
                          else:                                             #if n=0, edge switches e1 and e2 are added to a1
                                  sw=self.addSwitch('e%s' % (j+2))            #if n=1, edge switched e3 and e4 are added to a2
                          self.addLink(s,sw,**linkopts2)
  
                          for k in irange(1,fanout):
                                  if ((j==1)&amp;(n==0)):
                                          host=self.addHost('h%s' % k)      #For edge switch e1, j=1,n=0. End-hosts are h1 and h2.
                                  elif ((j==2)&amp;(n==0)):
                                          host=self.addHost('h%s' % (k+2))  #For edge switch e2, j=2,n=0. End-hosts are h3 and h4.
                                  elif ((j==1)&amp;(n==1)):
                                          host=self.addHost('h%s' % (k+4))  #For edge switch e3, j=1,n=1. End-hosts are h5 and h6.
                                  elif ((j==2)&amp;(n==1)):
                                          host=self.addHost('h%s' % (k+6))  #For edge switch e4, j=2,n=1. End-hosts are h7 and h8.
                                  self.addLink(sw,host,**linkopts3)
  
  
  def treeTest():
          linkopts1=dict(bw=10, delay='5ms')
          linkopts2=dict(bw=10, delay='5ms')
          linkopts3=dict(bw=10, delay='5ms')
          topo=CustomTopo(linkopts1,linkopts2,linkopts3,fanout=2)
          net=Mininet(topo)
          net.start()
          print "Dumping node connections"
          dumpNodeConnections(net.hosts)
          print "Testing network connectivity"
          net.pingAll()
          net.stop()
  
  if __name__=='__main__':
          setLogLevel('info')
          treeTest()
  
  
  
  topos = { 'custom': ( lambda: CustomTopo() ) }
  </code></pre>
  
  <p>The error trace I am getting is:</p>
  
  <pre><code>Traceback (most recent call last):
    File "CustomTopo.py", line 70, in &lt;module&gt;
      treeTest()
    File "CustomTopo.py", line 60, in treeTest
      net=Mininet(topo)
    File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 164, in __init__
      self.build()
    File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 357, in build
      self.buildFromTopo( self.topo )
    File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 344, in buildFromTopo
      self.addLink( src, dst, srcPort, dstPort, **params )
    File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.0-py2.7.egg/mininet/net.py", line 287, in addLink
      return cls( node1, node2, **defaults )
  TypeError: __init__() got an unexpected keyword argument 'delay'
  </code></pre>