This capture is somewhat difficult to follow since all captures appear to be coming from the same port even though they aren't.
I think the situation you're referring to it like the repeated packet in 19469 and 19487. These packets appear to be coming from different switches. I think the mystery is why the second switch is sending the packet-in, as 19472 appears to be a flow-mod which on quick inspection appears that it should match the ping. One possibility is that the flow-mod hasn't taken effect yet. You're not actually guaranteed when it will. If you send a barrier request and wait for the reply, you'll know it has. If you look at l2_multi, you'll notice it sends flow-mods, waits for barrier replies, and THEN actually forwards the packet. You could probably test if this was the problem by simply waiting for like... half a second or so before sending the packet-out. Another possibility is that there's something subtly wrong with the match which didn't immediately pop out at me. You might try using ofp_match.from_packet() temporarily to create the match. -- Murphy On May 27, 2014, at 12:26 AM, farshad tajedin <farshad.taje...@gmail.com> wrote: > P.S > sorry i forgot to say that please filter this pcap to ip.addr==10.0.0.1 > > > On Tue, May 27, 2014 at 11:48 AM, farshad tajedin <farshad.taje...@gmail.com> > wrote: > its pcap link: > https://www.dropbox.com/s/9964xavdbqrv27n/pingSenario > > > On Tue, May 27, 2014 at 9:50 AM, Murphy McCauley <murphy.mccau...@gmail.com> > wrote: > > On May 26, 2014, at 10:18 PM, farshad tajedin <farshad.taje...@gmail.com> > wrote: > >> >> >> ---------- Forwarded message ---------- >> From: farshad tajedin <farshad.taje...@gmail.com> >> Date: Mon, May 26, 2014 at 9:28 AM >> Subject: Re: [pox-dev] packet in message >> To: Murphy McCauley <murphy.mccau...@gmail.com> >> Cc: pox-dev <pox-dev@lists.noxrepo.org> >> >> >> ok , this code called when a packet received to edge switch for example >> e_s1(in my scenario, h1 ping h2 and h1 connected to e_s1 ) and path >> calculated between two hosts, this code first sends add flow setup msg to >> switches on this path(line1,2,3,4,5) including e_s1 then sends packet out >> msg to e_s1 (line 6) >> >> 1-core.openflow.sendToDPID(int('0002'+self.ToDPIDformat(SelectOne[1]),16),self.add_FlowEntri((SelectOne[2]%(NumOfPod/2))+(NumOfPod/2)+1,str(dstIP),0x800)) >> >> 2-core.openflow.sendToDPID(int('0001'+self.ToDPIDformat(SelectOne[2]),16),self.add_FlowEntri((SelectOne[3]/(NumOfPod/2))+1,str(dstIP),0x800)) >> >> 3-core.openflow.sendToDPID(int('0002'+self.ToDPIDformat(SelectOne[3]),16),self.add_FlowEntri((SelectOne[4]%(NumOfPod/2))+1,str(dstIP),0x800)) >> >> 4-core.openflow.sendToDPID(int('0003'+self.ToDPIDformat(SelectOne[4]),16),self.add_FlowEntri(((int(dstNo)-1)%(NumOfPod/2))+1,str(dstIP),0x800)) >> >> >> 5-self.connection.send(self.add_FlowEntri((SelectOne[1]%(NumOfPod/2))+(NumOfPod/2)+1,str(dstIP),0x800)) >> >> 6-self.connection.send(self.packetOutMsg((SelectOne[1]%(NumOfPod/2))+(NumOfPod/2)+1,of.buffer_id,of.data)) >> >> ---------------------------------------------------------------------------------------------------------------------------------------------- >> can i attach pcap file for this senario? > > Sure. Or upload it somewhere and post the link. (There's a file size limit, > though it's at least a few hundred K.) > > Ideally you'd have captures for all the interfaces on the switch and its > control connection. With synchronized timestamps or as a single capture (but > done in such a way that interfaces can be differentiated). > > -- Murphy > >> On Mon, May 26, 2014 at 1:55 AM, Murphy McCauley <murphy.mccau...@gmail.com> >> wrote: >> Well, I'm not able to learn anything from that code snippet. I repeat my >> advice of using Wireshark to watch the traffic on the switch which sends the >> two packet-ins and try to confirm whether it actually receives the packet >> twice. >> >> -- Murphy >> >> On May 25, 2014, at 10:51 AM, farshad tajedin <farshad.taje...@gmail.com> >> wrote: >> >>> P.S >>> when i remove last line every thing is ok >>> >>> >>> On Sun, May 25, 2014 at 10:17 PM, farshad tajedin >>> <farshad.taje...@gmail.com> wrote: >>> sorry this hase better view >>> -core.openflow.sendToDPID(int('0002'+self.ToDPIDformat(SelectOne[1]),16),self.add_FlowEntri((SelectOne[2]%(NumOfPod/2))+(NumOfPod/2)+1,str(dstIP),0x800)) >>> >>> -core.openflow.sendToDPID(int('0001'+self.ToDPIDformat(SelectOne[2]),16),self.add_FlowEntri((SelectOne[3]/(NumOfPod/2))+1,str(dstIP),0x800)) >>> >>> -core.openflow.sendToDPID(int('0002'+self.ToDPIDformat(SelectOne[3]),16),self.add_FlowEntri((SelectOne[4]%(NumOfPod/2))+1,str(dstIP),0x800)) >>> >>> -core.openflow.sendToDPID(int('0003'+self.ToDPIDformat(SelectOne[4]),16),self.add_FlowEntri(((int(dstNo)-1)%(NumOfPod/2))+1,str(dstIP),0x800)) >>> >>> >>> -self.connection.send(self.add_FlowEntri((SelectOne[1]%(NumOfPod/2))+(NumOfPod/2)+1,str(dstIP),0x800)) >>> >>> -self.connection.send(self.packetOutMsg((SelectOne[1]%(NumOfPod/2))+(NumOfPod/2)+1,of.buffer_id,of.data)) >>> >>> >>> >>> On Sun, May 25, 2014 at 10:16 PM, farshad tajedin >>> <farshad.taje...@gmail.com> wrote: >>> this my code section which make this problem: >>> >>> core.openflow.sendToDPID(int('0002'+self.ToDPIDformat(SelectOne[1]),16),self.add_FlowEntri((SelectOne[2]%(NumOfPod/2))+(NumOfPod/2)+1,str(dstIP),0x800)) >>> >>> core.openflow.sendToDPID(int('0001'+self.ToDPIDformat(SelectOne[2]),16),self.add_FlowEntri((SelectOne[3]/(NumOfPod/2))+1,str(dstIP),0x800)) >>> >>> core.openflow.sendToDPID(int('0002'+self.ToDPIDformat(SelectOne[3]),16),self.add_FlowEntri((SelectOne[4]%(NumOfPod/2))+1,str(dstIP),0x800)) >>> >>> core.openflow.sendToDPID(int('0003'+self.ToDPIDformat(SelectOne[4]),16),self.add_FlowEntri(((int(dstNo)-1)%(NumOfPod/2))+1,str(dstIP),0x800)) >>> >>> >>> self.connection.send(self.add_FlowEntri((SelectOne[1]%(NumOfPod/2))+(NumOfPod/2)+1,str(dstIP),0x800)) >>> >>> self.connection.send(self.packetOutMsg((SelectOne[1]%(NumOfPod/2))+(NumOfPod/2)+1,of.buffer_id,of.data)) >>> >>> >>> >>> On Sun, May 25, 2014 at 11:44 AM, farshad tajedin >>> <farshad.taje...@gmail.com> wrote: >>> yes of curse but not now because i am at my job now and haven't access to >>> source code, i will do this a few hours later. >>> >>> >>> On Sun, May 25, 2014 at 10:07 AM, Murphy McCauley >>> <murphy.mccau...@gmail.com> wrote: >>> Generally speaking, there's only ever one active connection to a switch at >>> a time. >>> >>> Can you share a minimal version of your code which demonstrates the issue? >>> >>> -- Murphy >>> >>> On May 24, 2014, at 10:20 PM, farshad tajedin <farshad.taje...@gmail.com> >>> wrote: >>> >>>> as i said before in my controller code i used two connection to e_s1 >>>> sequentially one for installing flow entry and next connection for sending >>>> packet out message. if connecting to switches done by thread programming >>>> so these message sending parallel, is these parallel message to one switch >>>> make problem? >>>> >>>> >>>> On Sun, May 25, 2014 at 8:15 AM, Murphy McCauley >>>> <murphy.mccau...@gmail.com> wrote: >>>> It's implemented by a recoco Task as described in the POX manual. Beneath >>>> that, there's a thread, but then... isn't there always? >>>> >>>> -- Murphy >>>> >>>> On May 24, 2014, at 4:04 AM, farshad tajedin <farshad.taje...@gmail.com> >>>> wrote: >>>> >>>>> is connection to switch implemented by thread? >>>>> >>>>> >>>>> On Sat, May 24, 2014 at 9:26 AM, Murphy McCauley >>>>> <murphy.mccau...@gmail.com> wrote: >>>>> How about disabling enough links in your topology so that it doesn't have >>>>> loops and then trying? (I'm wondering if the second one has looped back >>>>> to where it started somehow.) >>>>> >>>>> Another thought would be to wireshark all the ports of the switch where >>>>> you're seeing two of these packets. Do you actually see the packet >>>>> arrive twice? Leave twice? Etc. >>>>> >>>>> -- Murphy >>>>> >>>>> On May 23, 2014, at 9:51 PM, farshad tajedin <farshad.taje...@gmail.com> >>>>> wrote: >>>>> >>>>>> yes both of them are same except buffer id , i do this in mininet >>>>>> >>>>>> >>>>>> On Fri, May 23, 2014 at 2:53 PM, farshad tajedin >>>>>> <farshad.taje...@gmail.com> wrote: >>>>>> yes both of them are same except buffer id , i do this in mininet >>>>>> >>>>>> >>>>>> On Fri, May 23, 2014 at 1:23 PM, Murphy McCauley >>>>>> <murphy.mccau...@gmail.com> wrote: >>>>>> Are the packet-in messages and their payloads 100% identical? >>>>>> >>>>>> Are you doing this on real hardware, or in Mininet, or... ? >>>>>> >>>>>> -- Murphy >>>>>> >>>>>> On May 22, 2014, at 11:13 PM, farshad tajedin >>>>>> <farshad.taje...@gmail.com> wrote: >>>>>> >>>>>>> hi murphy >>>>>>> i have a path between two hosts(h1 and h2) in a data center,when i ping >>>>>>> h2 from h1 since switches on this path have no flow entry for route >>>>>>> icmp packet to h2 , the edge switch that h1 connected to it(e_s1) ,send >>>>>>> icmp packet to controller. in controller i handle it and i add flow >>>>>>> entry to each switch on this path in my controller code and at last >>>>>>> send packet out msg to e_s1 to forward this packet. during this action >>>>>>> (ping h2 from h1) i capture traffic of my network by wireshark and i >>>>>>> see packet in msg from e_s1 two times sends to controller that i expect >>>>>>> packet in msg must send once. >>>>>>> >>>>>>> >>>>>>> On Fri, May 23, 2014 at 4:30 AM, Murphy McCauley >>>>>>> <murphy.mccau...@gmail.com> wrote: >>>>>>> I think you'll need to provide a lot more detail. >>>>>>> >>>>>>> Are you saying that you're trying to proactively insert all the rules >>>>>>> into the switch when it connects, but you're getting packet-ins (from >>>>>>> table misses) anyway and you're not expecting them? >>>>>>> >>>>>>> How do packet-outs factor in here? >>>>>>> >>>>>>> -- Murphy >>>>>>> >>>>>>> On May 22, 2014, at 5:45 AM, farshad tajedin >>>>>>> <farshad.taje...@gmail.com> wrote: >>>>>>> >>>>>>>> i must say that i use 1.add flow message and 2.packet out message >>>>>>>> sequensialy >>>>>>>> >>>>>>>> >>>>>>>> On Thu, May 22, 2014 at 3:17 PM, farshad tajedin >>>>>>>> <farshad.taje...@gmail.com> wrote: >>>>>>>> hi all >>>>>>>> >>>>>>>> i have a fat-tree topology, when i ping a host from another host i >>>>>>>> found that first host 2 times send packet in message to controller and >>>>>>>> i dont know why. can anybody help me ? >>>>>>>> >>>>>>>> P.S i use core.openflow.addListenerByName("ConnectionUp", >>>>>>>> start_switch) for event handling. >>>>>>>> >>>>>>>> -- >>>>>>>> Best Regards >>>>>>>> >>>>>>>> Farshad Tajedin >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Best Regards >>>>>>>> >>>>>>>> Farshad Tajedin >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Best Regards >>>>>>> >>>>>>> Farshad Tajedin >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best Regards >>>>>> >>>>>> Farshad Tajedin >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best Regards >>>>>> >>>>>> Farshad Tajedin >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Best Regards >>>>> >>>>> Farshad Tajedin >>>> >>>> >>>> >>>> >>>> -- >>>> Best Regards >>>> >>>> Farshad Tajedin >>> >>> >>> >>> >>> -- >>> Best Regards >>> >>> Farshad Tajedin >>> >>> >>> >>> -- >>> Best Regards >>> >>> Farshad Tajedin >>> >>> >>> >>> -- >>> Best Regards >>> >>> Farshad Tajedin >>> >>> >>> >>> -- >>> Best Regards >>> >>> Farshad Tajedin >> >> >> >> >> -- >> Best Regards >> >> Farshad Tajedin >> >> >> >> -- >> Best Regards >> >> Farshad Tajedin > > > > > -- > Best Regards > > Farshad Tajedin > > > > -- > Best Regards > > Farshad Tajedin