Vishal, My guess is that you did not update the of message length field. The best way to debug this is using wireshark and the wireshark plugin and manually inspect the packet as it is going across the wire, imho.
- Rob . On Mon, May 9, 2011 at 6:59 AM, Vishal <[email protected]> wrote: > Hi Yiannis, > > Here is the portion of log: For all good flow_mod actions= output:no. > > May 06 18:45:30|01904|poll_loop|DBG|[POLLIN] on fd 24: 0x805740c 0x8050c9b > 0x8053532 0x805356b 0x409ce7 > May 06 18:45:30|01905|vconn|DBG|unix:/tmp/vconn-unix.16632.0: sent > (Success): packet_in (xid=0x0): total_len=62 in_port=3 data_len=62 > buffer=0x000002c1 > tcp,in_port=3,dl_vlan=0xffff,dl_vlan_pcp=0x00,dl_src=00:30:48:54:f3:9e,dl_dst=00:09:44:46:64:bc,nw_src=10.1.1.2,nw_dst=10.1.1.3,nw_tos=0x00,tp_src=8080,tp_dst=2729, > > May 06 18:45:30|01906|poll_loop|DBG|[POLLIN] on fd 36: 0x805a770 0x8050cc6 > 0x8053532 0x805356b 0x409ce7 > May 06 18:45:30|01907|vconn|DBG|unix:/tmp/vconn-unix.16632.0: received: > flow_mod > (xid=0x0):tcp,in_port=3,dl_vlan=0xffff,dl_vlan_pcp=0x00,dl_src=00:30:48:54:f3:9e,dl_dst=00:09:44:46:64:bc,nw_src=10.1.1.2,nw_dst=10.1.1.3,tp_src=8080,tp_dst=2729, > ADD: cookie:0 idle:5 hard:0 pri:32768 buf:0x2c1 flg:0x1 > actions=CONTROLLER:128 > > ofdatapath: lib/ofpbuf.c:168: ofpbuf_prealloc_headroom: Assertion `size <= > ofpbuf_headroom(b)' failed. > May 06 18:45:30|01908|fault|EMER|Caught signal 6. > 0x0805666f > 0x001e6400 (__kernel_sigreturn+0x0) > 0x00420e42 (abort+0x182) > 0x004168e8 (__assert_fail+0xf8) > 0x08059729 > 0x0805974e (ofpbuf_push_uninit+0x1e) > 0x080507c7 (dp_output_control+0x57) > 0x080500c8 > 0x08052204 (dp_run+0x3b4) > 0x08053525 (udatapath_cmd+0x595) > 0x0805356b (main+0x1b) > 0x00409ce7 (__libc_start_main+0xe7) > > > regards, > Vishal > > On Sun, May 8, 2011 at 4:26 PM, Vishal <[email protected]> wrote: >> >> Hi Yiannis, >> >> Yes. I do install the flow after the packet in. >> >> However, i check for the reason (ofp_packet_in_reason) for packet in >> (ofp_packet_in). >> if the reason is OFPR_ACTION then I do not install the flow. if the reason >> is No match, then I install the rule with 2 actions. One to forward it to >> the destination and other to send it to the controller. >> >> I find that ofdatapath is crashing in lib/ofbuf.c. I can send the >> ofdatapath log as well as pcap capture file if required. >> >> Is multiple actions not supported in ofdatapath ? >> >> Thanks a lot for help. >> >> Regards, >> Vishal >> >> On Fri, May 6, 2011 at 7:31 PM, Yiannis Yiakoumis <[email protected]> >> wrote: >>> >>> (dropping nox-dev as this sounds cloer to an openflow related issue) >>> Hi Vishal, >>> Do you install the flow after a packet-in request? If so, make sure that >>> you install one only when a packet-in is due to no-match-found, otherwise >>> you'll end with a loop between the controller and the switch. >>> Regards, >>> Yiannis >>> >>> On Fri, May 6, 2011 at 3:23 PM, Vishal <[email protected]> wrote: >>>> >>>> Hello Murphy, >>>> >>>> I changed max_len to 128 for the action -> send to >>>> openflow.OFPP_CONTROLLER and tried again. >>>> >>>> what i observe is : The switch sends a Port Status Message >>>> (ofp_port_status) with OFPPR_MODIFY with reason field set as "Some >>>> attribute of the port has changed". >>>> >>>> The Physical Port Header field shows Port #: Local (local openflow >>>> "port") and Port Name : tap1. >>>> >>>> After this message is received the connection between controller and >>>> switch is down. >>>> >>>> I suspect this change in port status happens because the controller >>>> sends -> off_action with OFPAT_OUTPUT --> with output port to Controller. >>>> >>>> This is how i started the ofdatapths-> ofdatapath >>>> punix:/var/run/dp0.sock -i eth0,eth2 --local-port=tap:tap1 >>>> >>>> Is this a bug with openflow datapath or I am doing something wrong ? >>>> >>>> I would really appreciate any help in debugging this and making it work. >>>> >>>> Thanks a lot, >>>> >>>> Regards, >>>> Vishal >>>> >>>> On Thu, May 5, 2011 at 8:31 PM, Murphy McCauley <[email protected]> wrote: >>>>> >>>>> This looks fine to me on quick glance. Even if it wasn't, I'd say it >>>>> shouldn't >>>>> crash ofdatapath. You might want to bring it up on one of the OpenFlow >>>>> mailing lists like openflow-discuss (or maybe openflow-support now?). >>>>> >>>>> -- Murphy >>>>> >>>>> On Thursday, May 05, 2011 03:13:00 PM Vishal wrote: >>>>> > Hi, >>>>> > >>>>> > I want to duplicate a particular data flow to the controller. >>>>> > >>>>> > My set up includes nox based controller and userspace openflow >>>>> > switches >>>>> > (ofdatapath and ofprotocol) running on ubuntu. >>>>> > >>>>> > In pyswitch.py, I set up the following 'action': >>>>> > >>>>> > actions = [[openflow.OFPAT_OUTPUT, [0, prt[0]]], >>>>> > *[openflow.OFPAT_OUTPUT, >>>>> > [0, openflow.OFPP_CONTROLLER]]*] >>>>> > install_datapath_flow(dpid, flow, CACHE_TIMEOUT, >>>>> > openflow.OFP_FLOW_PERMANENT, >>>>> > actions, bufid, openflow.OFP_DEFAULT_PRIORITY, inport, buf) >>>>> > >>>>> > It seems this is not working and causes the ofdatapath process to >>>>> > crash. >>>>> > >>>>> > Is the above way correct way to apply multiple forwarding action for >>>>> > a >>>>> > matching flow? >>>>> > >>>>> > Does userspace openflow ofdatapath does not support multiple actions >>>>> > or >>>>> > action involving sending the flow to the controller. >>>>> > >>>>> > Thanks a lot for help, >>>>> > >>>>> > Regards, >>>>> > Vishal >>>> >>>> >>>> _______________________________________________ >>>> openflow-discuss mailing list >>>> [email protected] >>>> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss >>>> >>> >> > > > _______________________________________________ > openflow-discuss mailing list > [email protected] > https://mailman.stanford.edu/mailman/listinfo/openflow-discuss > > _______________________________________________ openflow-discuss mailing list [email protected] https://mailman.stanford.edu/mailman/listinfo/openflow-discuss
