Hello, You can use: 1. Broadcast something as following If match.dl_type = packet.ARP : match.src=Packet.src match.dst=packet.dst action = FLOOD
2. Set the ARP in each for each hosts using new version of mininet check this post in mininet archive https://mailman.stanford.edu/pipermail/mininet-discuss/2013-October/003258.html 3. Read MAC addresses from a file http://pieknywidok.blogspot.com/2012/08/arp-and-ping-in-pox-building-pox-based.html?m=1 4. Learn ARP/MAC address this how to learn MAC and can be used to respond to ARP if coupled with previous code http://lists.noxrepo.org/pipermail/pox-dev-noxrepo.org/2013-November/001190.html I hope this is helpful Thanks regards, Amer Sent from my iPhone On ١٣/١١/٢٠١٣, at ١١:١٣ م, Muhammad Furqan Gagan <furqan.ga...@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.ga...@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.mccau...@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.du...@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.ga...@gmail.com> wrote: >>>>> Hello, >>>>> >>>>> Any one know how to handle ARP request in controller? >>>>> >>>>> Thanks >>>>> >>>>> Muhammad >