brandonheller / riplpox

RipL-POX (Ripcord-Lite for POX): A simple network controller for OpenFlow-based data centers
GNU General Public License v2.0
25 stars 28 forks source link

Help: How to solve this bug in riplpox #6

Open xuyangwu opened 8 years ago

xuyangwu commented 8 years ago

I'm a beginner for mininet and want to use riplpox as the controller, after the installation, I type ~/pox/pox.py riplpox.riplpox --topo=ft,4 --routing=rand--mode=reactive and then type ~/riplpox$ sudo mn --custom ~/ripl/ripl/mn.py --topo ft,4 --controller=remote --mac in a second window, but there is a bug like this

ERROR:core:Exception while handling OpenFlowNexus!PacketIn... Traceback (most recent call last): File "/home/mininet/pox/pox/lib/revent/revent.py", line 231, in raiseEventNrors return self.raiseEvent(event, _args, _kw) File "/home/mininet/pox/pox/lib/revent/revent.py", line 278, in raiseEvent rv = event._invoke(handler, _args, _kw) File "/home/mininet/pox/pox/lib/revent/revent.py", line 156, in _invoke return handler(self, _args, *_kw) File "/home/mininet/riplpox/riplpox/riplpox.py", line 344, in _handle_Packe self._handle_packet_reactive(event) File "/home/mininet/riplpox/riplpox/riplpox.py", line 246, in _handle_packeeactive self._flood(event) File "/home/mininet/riplpox/riplpox/riplpox.py", line 206, in _flood for sw in self._raw_dpids(t.layer_nodes(t.LAYER_EDGE)): File "/home/mininet/ripl/ripl/dctopo.py", line 135, in layer_nodes nodes = [n for n in self.g.nodes() if is_layer(n)] File "/home/mininet/ripl/ripl/dctopo.py", line 133, in is_layer return self.layer(n) == layer File "/home/mininet/ripl/ripl/dctopo.py", line 115, in layer return self.node_info[name]['layer'] AttributeError: 'FatTreeTopo' object has no attribute 'node_info'

thanks for giving guidance

harpresing commented 8 years ago

Hi, I'm facing the same problem, were you able to resolve it?

HelloChristie commented 7 years ago

I face this problem,too Did you find some solutions?

hmyan90 commented 6 years ago

Hi, did you guys solve this problem? Is it related to the version?

chvillal commented 6 years ago

Hi, I have same problem. Is there a workaround?

hmyan90 commented 6 years ago

I worked around it by modify the function: def layer(self, name): '''Return layer of a node

    @param name name of switch
    @return layer layer of switch
    '''
    return self.g.node[name]['layer']
    # return self.node_info[name]['layer']