Hi Zarifis Thanks.
The flows that we pre-install when we receive datapath_join_event should have exact match values in the Eth addresses. In our work, when the host sends a packet, the switch modifies set of fields and sends it back to the host and based on the reply from host we either forward or drop the packet. So to first send the packet back to the host we want to specify an exact value in the Eth address fields. Hence I need to determine them from the switches. So I am thinking, to send an ARP request from controller to all switches and the switch will flood in all ports to get the replies. But I am having trouble generating the ARP request. Since the rest of my implementation is in C++, I want to handle the ARP request too in C++. After generating the ARP header, I tried using the send_openflow_packet(datapath_id,packet, out_port, in_port, block) (where packet has my ARP request) to send it to the switch. But I receive segmentation fault with the below error lt-nox_core: ../../../src/lib/openflow.cc:431: int vigil::Openflow_connection::send_packet(const vigil::Buffer&, const ofp_action_header*, size_t, uint16_t, bool): Assertion `opo_size <= (65535)' failed. Is using the above function right or how do I send an ARP request to the switches? Thanks Sriram On Tue, Mar 1, 2011 at 3:17 PM, Kyriakos Zarifis <[email protected]>wrote: > Hi Sriram, > > I don't think there is any mapping to switch port MACs on the controller by > default. You'd probably have to do something like what you described. > > But why do you need the MAC addresses of the switch ports in order to setup > flows? > > (Or did I misunderstand you and you referring to the MAC addresses of H1 > and H2?) > > On Tue, Mar 1, 2011 at 11:35 AM, Sriram <[email protected]>wrote: > >> Hello All, >> >> I have the following topology setup >> H1-S1-S2...-Sn-H2 (n varies from 1 to 20 in my testbed). >> >> I need to pre-install set of flows in each switch (when I receive a >> Datapath Join Event). To achieve this i need to know the MAC address of the >> connected interfaces in the switches. >> >> I was thinking to send an ARP request from the controller to all switches >> when I receive the datapath_join_event and the switch can FLOOD the request >> to all connected ports. With the ARP reply I can determine the MAC >> addresses. >> >> However I would like to know if there is a better way to get this >> information (dynamically determine the MAC addresses of all connected switch >> links). Is there an API which gives this information already? >> >> Thanks for your help >> Sriram >> >> >> >> _______________________________________________ >> nox-dev mailing list >> [email protected] >> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org >> >> >
_______________________________________________ nox-dev mailing list [email protected] http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
