frenetic-lang / frenetic

The Frenetic Programming Language and Runtime System
http://www.frenetic-lang.org/
Other
222 stars 52 forks source link

implement routing Application #638

Open IamBushra opened 5 years ago

IamBushra commented 5 years ago

hello, I tried to implement routing1 application /manual-master/programmers_guide/code/routing but i have this error.

$ python routing1.py
Starting the tornado event loop (does not return).
2019-04-25 05:36:01,024 [INFO] Connected to Frenetic - Switches: {282574488338432: [2, 1], 282574488338433: [3, 2, 1], 282574488338434: [3, 2, 1]}
2019-04-25 05:36:01,458 [INFO] Learning: None/c6:35:d3:b2:f4:bb attached to ( 282574488338433 , 3 )
2019-04-25 05:36:01,459 [INFO] Installing new policy
2019-04-25 05:36:01,713 [INFO] Learning: None/00:00:02:00:00:03 attached to ( 282574488338434 , 2 )
2019-04-25 05:36:01,714 [INFO] Installing new policy
2019-04-25 05:36:01,970 [INFO] Learning: None/00:00:01:00:00:03 attached to ( 282574488338433 , 2 )
2019-04-25 05:36:01,971 [INFO] Installing new policy
2019-04-25 05:36:01,975 [INFO] Learning: None/00:00:01:00:00:02 attached to ( 282574488338433 , 1 )
2019-04-25 05:36:01,976 [INFO] Installing new policy
2019-04-25 05:36:02,737 [INFO] Learning: None/00:00:02:00:00:02 attached to ( 282574488338434 , 1 )
2019-04-25 05:36:02,739 [INFO] Installing new policy
2019-04-25 05:36:03,510 [INFO] Learning: None/ca:92:26:2e:cd:d6 attached to ( 282574488338434 , 3 )
2019-04-25 05:36:03,511 [INFO] Installing new policy
2019-04-25 05:36:04,850 [ERROR] Exception in callback <functools.partial object at 0x7fe0c70351b0>
Traceback (most recent call last):
  File "/home/bushra/.local/lib/python2.7/site-packages/tornado/ioloop.py", line 758, in _run_callback
    ret = callback()
  File "/home/bushra/.local/lib/python2.7/site-packages/tornado/stack_context.py", line 300, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/bushra/.local/lib/python2.7/site-packages/frenetic/__init__.py", line 187, in __handle_event
    self.packet_in(pk.switch_id, pk.port_id, pk.payload)
  File "routing1.py", line 42, in packet_in
    pkt = Packet.from_payload(dpid, port, payload)
  File "/home/bushra/.local/lib/python2.7/site-packages/frenetic/packet.py", line 51, in from_payload
    if p.protocol_name == 'ethernet':
AttributeError: 'array.array' object has no attribute 'protocol_name'
IamBushra commented 5 years ago

I found same error in other APPs such as discovery and multiswitch, I downgraded tornado version to 4.3.5 and IPkernel to 4.10.0 , but I have the same error. I hope someone helps me to found the solution.

2019-05-07 07:00:45,606 [ERROR] Exception in callback <functools.partial object at 0x7f6ee5e8b8e8>
Traceback (most recent call last):
  File "/home/bushra/.local/lib/python2.7/site-packages/tornado/ioloop.py", line 605, in _run_callback
    ret = callback()
  File "/home/bushra/.local/lib/python2.7/site-packages/tornado/stack_context.py", line 277, in null_wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/frenetic/__init__.py", line 187, in __handle_event
    self.packet_in(pk.switch_id, pk.port_id, pk.payload)
  File "multiswitch2.py", line 90, in packet_in
    pkt = Packet.from_payload(dpid, port_id, payload)
  File "/usr/local/lib/python2.7/dist-packages/frenetic/packet.py", line 51, in from_payload
    if p.protocol_name == 'ethernet':
AttributeError: 'array.array' object has no attribute 'protocol_name'
jnfoster commented 5 years ago

This used to a field from a packet object from the Ryu packet library, but it appears they may have changed the way the library works.

I won't have time to debug this in the short term... but we'll keep the issue open.