James is right, you should check with tcpdump. By looking at the send_openflow code, you can see,
if buffer_id != None: self.send_openflow_buffer(dp_id, buffer_id, actions, inport) Switch the buffer_id for None and it should work, the comment is incorrect. On Dec 10, 2010, at 8:22 PM, James Murphy McCauley wrote: > Have you installed a rule to send the entire packet (the type that you > want to duplicate) to the controller? If not, it may well be truncated. > So you may only be sending the truncated version out on the second dpid. > Depending on how you're checking to see if this is working, this may > just look like it's failing (e.g., because if it's a TCP packet, the > receiver will just throw it away because its checksum will be wrong > among other things). > > -- Murphy > > On Fri, 2010-12-10 at 14:08 -0500, Aaron Rosen wrote: >> Hi Ali, >> >> Looking at the comments for send_openflow, if buffer_id is -1 then, it >> should send the packet. Though, maybe I'm still doing this >> incorrectly? >> >> actions = [[openflow.OFPAT_OUTPUT, [0, 11]]] >> self.send_openflow(self.dpid_of_duplication, -1, >> buf, actions, inport) >> >> also >> actions = [[openflow.OFPAT_PACKET_OUTPUT, [0, >> 11]]] >> self.send_openflow(self.dpid_of_duplication, -1, >> buf or packet, actions, inport) >> >> doesn't seem to work. Could you point out where I'm going wrong? >> >> >> Thanks, >> >> Aaron >> >> >> On Fri, Dec 10, 2010 at 1:41 PM, Ali Al-Shabibi >> <ali.al-shab...@cern.ch> wrote: >> Hi Aaron, >> >> self.dpid_of_duplication is not the dpid the packet arrived >> on, therefore therefore bufid is meaningless to >> self.dpid_of_duplication. You should send >> self.dpid_of_duplication the actual packet you want to >> packet_out. >> >> Hope this helps, >> >> -- >> Ali Al-Shabibi >> >> >> On 10 déc. 2010, at 18:57, Aaron Rosen <aro...@clemson.edu> >> wrote: >> >>> Hello, >>> >>> When I get a specific kind of packet I want to send that >> packet to a specific dpid and port and also send it to the >> dpid and port that the packet was intended for. >>> >>> If I do: >>> >>> # send packet to end host >>> # note self.PortMaping[dpid, mac_to_str(packet.dst)] returns >> the port number the packet.dst is on >>> >>> actions = [[openflow.OFPAT_OUTPUT, [0, self.PortMaping[dpid, >> mac_to_str(packet.dst)]]]] >>> self.send_openflow(dpid, bufid, buf, actions, inport) >>> >>> # send packet to specific dpid and port 11 >>> >>> actions = [[openflow.OFPAT_OUTPUT, [0, 11]]] >>> self.send_openflow(self.dpid_of_duplication, bufid, buf, >> actions, inport) >>> >>> The packet never gets to the self.dpid_of_duplication port >> 11. >>> >>> Anyone see where I'm going wrong here? >>> >>> Thanks, >>> >>> Aaron >>> >>> -- >>> Aaron O. Rosen >>> Masters Student - Network Communication >>> 306B Fluor Daniel >>> 843.425.9777 >>> >> >>> _______________________________________________ >>> nox-dev mailing list >>> nox-dev@noxrepo.org >>> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org >> >> >> >> -- >> Aaron O. Rosen >> Masters Student - Network Communication >> 306B Fluor Daniel >> 843.425.9777 >> >> _______________________________________________ >> nox-dev mailing list >> nox-dev@noxrepo.org >> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org > > -- Ali Al-Shabibi Doctoral Student PH-ATD CERN - European Organization for Nuclear Research Office: 513 R-018 ali.al-shab...@cern.ch Tel : +41 22 767 86 46 _______________________________________________ nox-dev mailing list nox-dev@noxrepo.org http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org