[ovs-discuss] Help in understanding the code

sujith p s sujithpandels at gmail.com
Wed Jul 10 11:20:27 UTC 2013


Hi everyone!
I'm a newcomer to OpenvSwitch. I installed it in mininet-VM using the
INSTALL guide provided.
I am curious to understand the flow of the code in case of ping.

Example topology:
$ sudo mn --switch=ovsk --topo linear

 h1 -- s1 -- s2 -- h2

command:
mininet> h1 ping -c5 h2

ofproto_run recognises a new flow ( 1st ping packet - icmp echo from h1 to
h2 ) and send it as PACKET_IN to the controller.
Controller sends back the respective FLOW_MOD back to switch s1.
handle_openflow() function takes care of these things.
Similarly above 2 steps happens for icmp echo reply from h2 to h1.

Now, I understand that since flow_mods are already installed in the flow
table, there's no need to contact the controller once again for the 2nd
icmp-echo packet from h1 to h2.

What I wanted to know is which module(s) manages the remaining icmp
packets, i.e. checking for a match and do the forwarding of these packets
through mentioned port of the switch.

It looks like ovs_dp_process_received_packet() in datapath.c So I tried
checking by inserting VLOG_INFO statements in the module and installed it
again. Looks like I was wrong about that.

I wanted to make sure that I am in the correct path.

Can anyone help me please!

Thanks in advance
Sujith
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20130710/2f183d73/attachment.html>


More information about the discuss mailing list