When you monitor the control traffic, you obviously see a packet-in from the switch carrying the ARP packet. But you never see a packet-out going back from the controller, right?
When you set the output port to some real port number, I assume you then see the packet coming out that port, but NOT the rest of the ports (like you do when you are sending to the OFPP_CONTROLLER port). What if you remove the output action altogether? Offhand, this sounds like a problem with the switch or configuration (especially since it seems to work correctly here). What switch are you using? Can you try a different/more recent version of it or its firmware? -- Murphy On May 28, 2013, at 3:14 PM, mehmet fatih Aktaş wrote: > I am not running other components. As you suggested I once again monitored > the control traffic by using wireshark to make sure there is no other > component causing the problem. > > I made a simple modification in the of_mod being sent once the sw is > connected. > Instead of > action_output(port=of.OFPP_CONTROLLER)) > I changed it to > action_output(port=3)) > to see if the rule for controller port is causing the problem and it turned > out that Yes it is. > > When the rule is set for port=of.OFPP_CONTROLLER the ARP packet is both > forwarded to controller and broadcasted in respective order (checked the > order by wireshark) > But when the rule is set for port=any_sw_data_port everything works as > expected and packet is not broadcasted. > > thanks. > > -- > Mehmet Fatih Aktas > > > On Tue, May 28, 2013 at 5:05 PM, Murphy McCauley <murphy.mccau...@gmail.com> > wrote: > Your code appears to work as you intended here (Mininet with OVS built from > the repo somewhere around 1.9.0). > > Are you running other components? For example, if you're running > l2_learning, it will see the packet-in event, assume it was due to a table > miss, and then instruct the switch to resend it. > > It may help to monitor the control traffic. You can easily dump it with the > openflow.debug component and then load it into Wireshark to view with the > OpenFlow dissector. > > -- Murphy > > On May 28, 2013, at 1:30 PM, mehmet fatih Aktaş wrote: > > > Hi, > > > > I programmed the OF controller to send a of_mod message: > > m = of.ofp_flow_mod() > > m.priority = 0x7000 # Pretty high > > m.match.dl_type = ethernet.ARP_TYPE > > m.match.dl_dst = EthAddr("FF:FF:FF:FF:FF:FF") > > m.idle_timeout = 100 > > m.hard_timeout = 0 > > m.actions.append(of.ofp_ > > action_output(port=of.OFPP_CONTROLLER)) > > event.connection.send(m) > > > > once it is connected to a switch. The goal of this is to enforce all the > > ARP requested incoming to a connected sw to be directly forwarded to the > > controller WITHOUT broadcasting the ARP in any case. > > And when I got the reply for flow_stats for a random sw, it is showing that > > of_mod is actually set correctly e.g. > > > > FlowStats rxed from sw_00-00-00-00-00-01 : [{'packet_count': 0, > > 'hard_timeout': 0, 'byte_count': 0, 'duration_sec': 0, 'actions': > > [{'max_len': 65535, 'type': 'OFPAT_OUTPUT', 'port': 'OFPP_CONTROLLER'}], > > 'duration_nsec': 44000000, 'priority': 28672, 'idle_timeout': 100, > > 'cookie': 0, 'table_id': 0, 'match': {'dl_type': 'ARP', 'dl_dst': > > 'ff:ff:ff:ff:ff:ff', 'get_nw_dst': 'None', 'get_nw_src': 'None'}}] > > > > However, sws continue broadcasting arp reqs even though they forward them > > also to the controller. What may be the possible problem causing that, any > > idea would be greatly appreciated. > > > > Thanks. > > > > Mehmet Fatih Aktas > > _______________________________________________ > > openflow-discuss mailing list > > openflow-discuss@lists.stanford.edu > > https://mailman.stanford.edu/mailman/listinfo/openflow-discuss > >
_______________________________________________ openflow-discuss mailing list openflow-discuss@lists.stanford.edu https://mailman.stanford.edu/mailman/listinfo/openflow-discuss