<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">After implementing my this ARP code in my controller I am recieving this error:<div><br></div><div><span style="background-color: rgb(255, 255, 255);"><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap;">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   …………….</span></font></span></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);"><br></span></font></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);">Any ideas how to overcome?</span></font></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);"><br></span></font></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);">Thanks</span></font></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);"><br></span></font></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);">Muhammad</span></font></div><div><font color="#333333" face="lucida grande, tahoma, verdana, arial, sans-serif" size="2"><span style="line-height: 17px; white-space: pre-wrap; background-color: rgb(255, 255, 255);"><br></span></font><div><div>On Nov 13, 2013, at 1:03 PM, Muhammad Furqan Gagan <<a href="mailto:furqan.gagan@gmail.com">furqan.gagan@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I have implemented this code to handle ARP.. is it ok ? I am not sure about that.. need your comments please<div><br></div><div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">        a= packet.find('arp')</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">        if a:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">            if a.prototype == arp.PROTO_TYPE_IP:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                if a.hwtype == arp.HW_TYPE_ETHERNET:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                    if a.protosrc != 0:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                        if a.protosrc in arp_tale:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                            if a.hwsrc == True:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                                Mac = EthAddr(a.hwsrc)</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                                arp_table[a.protosrc] = Mac:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><br></div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">              </div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">            if a.opcode == arp.REQUEST:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">            # Maybe we can answer</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><br></div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">            if a.protodst in arp_table:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r = arp()</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.hwtype = a.hwtype</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.prototype = a.prototype</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.hwlen = a.hwlen</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.protolen = a.protolen</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.opcode = arp.REPLY</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.hwdst = a.hwsrc</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.protodst = a.protosrc</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.protosrc = a.protodst</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                Mac = arp_table[a.protodst]</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                </div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                Mac = _dpid_to_mac(dpid)</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                r.hwsrc = Mac</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                e = ethernet(type=packet.type, src=_dpid_to_mac(dpid),</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                dst=a.hwsrc)</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                e.payload = r</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                log.info("%s answering ARP for %s" % (dpid_to_str(dpid),</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                str(r.protosrc)))</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg = of.ofp_packet_out()</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg.data = e.pack()</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg.actions.append(of.ofp_action_output(port =</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                                                          of.OFPP_IN_PORT))</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg.in_port = inport</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                event.connection.send(msg)</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                     </div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">            else:</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg = of.ofp_packet_out()</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg.actions.append(of.ofp_action_output(port = of.OFPP_FLOOD))</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                msg.data = event.ofp</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"></div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">                event.connection.send(msg.pack())</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><br></div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">Thanks</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><br></div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">Muhammad</div><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><br></div><div><div><div>On Nov 13, 2013, at 12:56 PM, Murphy McCauley <<a href="mailto:murphy.mccauley@gmail.com">murphy.mccauley@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Durga is spot on, but I'll throw in another couple things you might look at:<div>forwarding.l3_learning handles ARP</div><div>proto.arp_helper attempts to make it easier to work with ARP</div><div><br></div><div>(Oh, and misc.arp_responder has moved to proto.arp_responder in newer versions.)</div><div><br></div><div>-- Murphy</div><div><br><div><div>On Nov 13, 2013, at 2:06 AM, durga <<a href="mailto:c.vijaya.durga@gmail.com">c.vijaya.durga@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small;color:rgb(153,51,0)"><br></div><div class="gmail_default"><font face="courier new, monospace" color="#990000">hello,</font></div>

<div class="gmail_default"><font face="courier new, monospace" color="#990000">Seems pox supports packet type as arp, can be found here (<span class="" style="font-weight:bold;line-height:25px"><span><a href="https://github.com/brownbytes/pox" style="text-decoration:none"><span>pox</span></a></span></span><span class="" style="line-height:25px"> / </span><span style="line-height:25px"><a href="https://github.com/brownbytes/pox/tree/betta/pox" style="text-decoration:none"><span>pox</span></a></span><span class="" style="line-height:25px"> / </span><span style="line-height:25px"><a href="https://github.com/brownbytes/pox/tree/betta/pox/lib" style="text-decoration:none"><span>lib</span></a></span><span class="" style="line-height:25px"> / </span><span style="line-height:25px"><a href="https://github.com/brownbytes/pox/tree/betta/pox/lib/packet" style="text-decoration:none"><span>packet</span></a></span><span class="" style="line-height:25px"> / </span><strong class="" style="line-height:25px">arp.py</strong><span style="line-height:25px"> ), as well as may be you can get some help by refering to the below example.</span></font></div>

<div class="gmail_default"><font face="courier new, monospace" color="#990000"><span style="line-height:18px"> </span><span style="line-height:18px"></span><div class="" style="margin:0px;display:inline-block"><span class="" style="font-weight:bold"><span><a href="https://github.com/brownbytes/pox" style="text-decoration:none">pox</a></span></span><span class=""> / </span><span><a href="https://github.com/brownbytes/pox/tree/betta/pox" style="text-decoration:none">pox</a></span><span class=""> / </span><span><a href="https://github.com/brownbytes/pox/tree/betta/pox/misc" style="text-decoration:none">misc</a></span><span class=""> / </span><strong class="">arp_responder.py</strong></div>

</font><br></div></div><div class="gmail_extra"><br clear="all"><div>Cheers!<br>Durga<br><br></div>
<br><br><div class="gmail_quote">On Wed, Nov 13, 2013 at 8:35 PM, Muhammad Furqan Gagan <span dir="ltr"><<a href="mailto:furqan.gagan@gmail.com" target="_blank">furqan.gagan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hello,<br>
<br>
Any one know how to handle ARP request in controller?<br>
<br>
Thanks<br>
<span class="HOEnZb"><font color="#888888"><br>
Muhammad<br>
</font></span></blockquote></div><br></div>
</blockquote></div><br></div></div></blockquote></div><br></div></div></div></blockquote></div><br></div></body></html>