[pox-dev] ARP request

Murphy McCauley murphy.mccauley at gmail.com
Thu Nov 14 15:30:02 PST 2013


This is very likely because you're trying to send the same buffer more than once.  Do you have multiple things listening to PacketIn events (in your own code, or perhaps you are running your code and another component like l2_learning)?  If so, read the "Events With Multiple Listeners" section of the manual.

A more generic piece of advice is to look at the messages you send.  You can see the XID of this error is 117.  If you had captured the traffic to the switch or logged the right things, you could find the command (packet out or flow mod) which had 117 which might help illuminate what's going on.

Also, I'd suggest you read the FAQ entry about requesting help from the mailing list.

Hope that helps.

-- Murphy

On Nov 13, 2013, at 12:13 PM, Muhammad Furqan Gagan <furqan.gagan at gmail.com> wrote:

> After implementing my this ARP code in my controller I am recieving this error:
> 
> ERROR:openflow.of_01:[00-00-00-00-00-03 4] OpenFlow Error:
> [00-00-00-00-00-03 4] Error: header:
> [00-00-00-00-00-03 4] Error:   version: 1
> [00-00-00-00-00-03 4] Error:   type:    1 (OFPT_ERROR)
> [00-00-00-00-00-03 4] Error:   length:  76
> [00-00-00-00-00-03 4] Error:   xid:     117
> [00-00-00-00-00-03 4] Error: type: OFPET_BAD_REQUEST (1)
> [00-00-00-00-00-03 4] Error: code: OFPBRC_BUFFER_EMPTY (7)
> [00-00-00-00-00-03 4] Error: datalen: 64
> [00-00-00-00-00-03 4] Error: 0000: 01 0e 00 58 00 00 00 75  00 00 00 00 00 03 00 00   ...X...u........
> [00-00-00-00-00-03 4] Error: 0010: 00 00 00 02 00 00 00 00  00 01 ff ff 00 00 08 06   ................
> [00-00-00-00-00-03 4] Error: 0020: 00 01 00 00 0a 00 00 02  0a 00 00 01 00 00 00 00   ................
> [00-00-00-00-00-03 4] Error: 0030: 00 00 00 00 00 00 00 00  00 00 00 0a 00 1e 80 00   …………….
> 
> Any ideas how to overcome?
> 
> Thanks
> 
> Muhammad
> 
> On Nov 13, 2013, at 1:03 PM, Muhammad Furqan Gagan <furqan.gagan at gmail.com> wrote:
> 
>> I have implemented this code to handle ARP.. is it ok ? I am not sure about that.. need your comments please
>> 
>>         a= packet.find('arp')
>>         if a:
>>             if a.prototype == arp.PROTO_TYPE_IP:
>>                 if a.hwtype == arp.HW_TYPE_ETHERNET:
>>                     if a.protosrc != 0:
>>                         if a.protosrc in arp_tale:
>>                             if a.hwsrc == True:
>>                                 Mac = EthAddr(a.hwsrc)
>>                                 arp_table[a.protosrc] = Mac:
>> 
>>               
>>             if a.opcode == arp.REQUEST:
>>             # Maybe we can answer
>> 
>>             if a.protodst in arp_table:
>>                 r = arp()
>>                 r.hwtype = a.hwtype
>>                 r.prototype = a.prototype
>>                 r.hwlen = a.hwlen
>>                 r.protolen = a.protolen
>>                 r.opcode = arp.REPLY
>>                 r.hwdst = a.hwsrc
>>                 r.protodst = a.protosrc
>>                 r.protosrc = a.protodst
>>                 Mac = arp_table[a.protodst]
>>                 
>>                 Mac = _dpid_to_mac(dpid)
>>                 r.hwsrc = Mac
>>                 e = ethernet(type=packet.type, src=_dpid_to_mac(dpid),
>>                 dst=a.hwsrc)
>>                 e.payload = r
>>                 log.info("%s answering ARP for %s" % (dpid_to_str(dpid),
>>                 str(r.protosrc)))
>>                 msg = of.ofp_packet_out()
>>                 msg.data = e.pack()
>>                 msg.actions.append(of.ofp_action_output(port =
>>                                                           of.OFPP_IN_PORT))
>>                 msg.in_port = inport
>>                 event.connection.send(msg)
>>                      
>>             else:
>>                 msg = of.ofp_packet_out()
>>                 msg.actions.append(of.ofp_action_output(port = of.OFPP_FLOOD))
>>                 msg.data = event.ofp
>>                 event.connection.send(msg.pack())
>> 
>> Thanks
>> 
>> Muhammad
>> 
>> On Nov 13, 2013, at 12:56 PM, Murphy McCauley <murphy.mccauley at gmail.com> wrote:
>> 
>>> Durga is spot on, but I'll throw in another couple things you might look at:
>>> forwarding.l3_learning handles ARP
>>> proto.arp_helper attempts to make it easier to work with ARP
>>> 
>>> (Oh, and misc.arp_responder has moved to proto.arp_responder in newer versions.)
>>> 
>>> -- Murphy
>>> 
>>> On Nov 13, 2013, at 2:06 AM, durga <c.vijaya.durga at gmail.com> wrote:
>>> 
>>>> 
>>>> hello,
>>>> Seems pox supports packet type as arp, can be found here (pox / pox / lib / packet / arp.py ), as well as may be you can get some help by refering to the below example.
>>>>  pox / pox / misc / arp_responder.py 
>>>> 
>>>> Cheers!
>>>> Durga
>>>> 
>>>> 
>>>> 
>>>> On Wed, Nov 13, 2013 at 8:35 PM, Muhammad Furqan Gagan <furqan.gagan at gmail.com> wrote:
>>>> Hello,
>>>> 
>>>> Any one know how to handle ARP request in controller?
>>>> 
>>>> Thanks
>>>> 
>>>> Muhammad
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.noxrepo.org/pipermail/pox-dev-noxrepo.org/attachments/20131114/8f1ee1e7/attachment-0002.htm>


More information about the pox-dev mailing list