Thank you.

I wrote a simple script to send packet out on receiving packet_in but i am
unable to figure out why  i am getting this error.

Here is the function for handling packet_in and sending packet_out:

    @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
    def _packet_in_handler(self, ev):
        msg = ev.msg
        datapath = msg.datapath
        ofproto = datapath.ofproto
        self.logger.debug('Received packet-in message')

        dst, src, _eth_type = struct.unpack_from('!6s6sH',
buffer(msg.data), 0)

        dpid = datapath.id
         in_port = ofproto.OFPP_LOCAL
        out_port = ofproto.OFPP_FLOOD

        buffer_id = 0xffffffff
        data = 'Message'

        ofparser = datapath.ofproto_parser
        actions = ofparser.OFPActionOutput(out_port, 0)
        m = ofparser.OFPPacketOut(datapath, buffer_id, in_port,
                                           actions, data)
        datapath.send_msg(m)


On receiving a packet_in i get the following error:

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/gevent/greenlet.py", line 405, in run
    result = self._run(*self.args, **self.kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/ryu-1.8-py2.7.egg/ryu/base/app_manager.py",
line 106, in _event_loop
    handler(ev)
  File "/home/openflow/ryu/ryu-master/role_msg_pin.py", line 92, in
_packet_in_handler
    datapath.send_msg(m)
  File
"/usr/local/lib/python2.7/dist-packages/ryu-1.8-py2.7.egg/ryu/controller/controller.py",
line 216, in send_msg
    msg.serialize()
  File
"/usr/local/lib/python2.7/dist-packages/ryu-1.8-py2.7.egg/ryu/ofproto/ofproto_parser.py",
line 119, in serialize
    self._serialize_body()
  File
"/usr/local/lib/python2.7/dist-packages/ryu-1.8-py2.7.egg/ryu/ofproto/ofproto_v1_3_parser.py",
line 1432, in _serialize_body
    for a in self.actions:
TypeError: 'OFPActionOutput' object is not iterable
<Greenlet at 0x98480ac: <bound method SndRcvRoleMsg._event_loop of
<role_msg_pin.SndRcvRoleMsg object at 0x984a38c>>> failed with TypeError


My python knowledge is very basic. Can you please help me in correcting
this problem?

Regards,
Nitish




On Tue, May 14, 2013 at 3:20 PM, Isaku Yamahata <[email protected]>wrote:

> OFPPacketIn of OF1.3 is different from OF1.0's. A method written
> for OF1.0 needs to be modified for OF1.3.
> Match fields need to be searched for OXM_OF_IN_PORT.
>
> For example, please refer to
> ryu/tests/integrated/test_request_reply_v12.py
> _verify_packet_in()
>
> thanks,
>
> On Tue, May 14, 2013 at 02:09:58PM +0530, nitish nagesh wrote:
> > Hi All,
> >
> >     I am trying to write a simple Ryu controller app which on receiving a
> > packet_in would reply back with a packet out with action=FLOOD. I found
> the
> > function provided in the simple_switch.py already does this. I have used
> the
> > same function as-is in my app (which handles other events as well, hence
> i
> > could not directly take simple_switch.py script). I am using 1.3 OF
> version. I
> > see the following error on controller console when a packet in message
> arrives:
> >
> > EVENT ofp_event->SndRcvRoleMsg EventOFPPacketIn
> > Traceback (most recent call last):
> >   File "/usr/lib/pymodules/python2.7/gevent/greenlet.py", line 405, in
> run
> >     result = self._run(*self.args, **self.kwargs)
> >   File
> "/usr/local/lib/python2.7/dist-packages/ryu-1.8-py2.7.egg/ryu/base/
> > app_manager.py", line 106, in _event_loop
> >     handler(ev)
> >   File "/home/openflow/ryu/ryu-master/role_msg_pin.py", line 71, in
> > _packet_in_handler
> >     msg.in_port)
> > AttributeError: 'OFPPacketIn' object has no attribute 'in_port'
> > <Greenlet at 0xa62a0ec: <bound method SndRcvRoleMsg._event_loop of
> > <role_msg_pin.SndRcvRoleMsg object at 0xa62c36c>>> failed with
> AttributeError
> >
> > After browsing the code a bit, i could see that OFPPacketIn class really
> does
> > not have 'in_port' as attribute. Not sure what is wrong. Can someone
> please
> > help?
> >
> > Thanks,
> > Nitish
> >
> >
>
> >
> ------------------------------------------------------------------------------
> > AlienVault Unified Security Management (USM) platform delivers complete
> > security visibility with the essential security capabilities. Easily and
> > efficiently configure, manage, and operate all of your security controls
> > from a single console and one unified framework. Download a free trial.
> > http://p.sf.net/sfu/alienvault_d2d
> > _______________________________________________
> > Ryu-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
>
> --
> yamahata
>
------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to