<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">sorry I had added a -c1 at the end of the command.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">

<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><blockquote type="cite" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><div dir="ltr">

<div class="gmail_default" style="font-size:small;font-family:arial,helvetica,sans-serif"><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px"><div style="font-size:small;font-family:arial,helvetica,sans-serif">

mininet> h1 ping h3</div></div></div></div></blockquote></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 3 May 2013 17:16, Murphy McCauley <span dir="ltr"><<a href="mailto:murphy.mccauley@gmail.com" target="_blank">murphy.mccauley@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Ping sends packets from A to B, and B sends them back to A.  Ping does this continually until you stop it unless you specify a limit on the commandline.</div>

<div><br></div><div>Since you're installing flows, you'd actually expect them to start hitting the flow table and stop hitting the switch, but the fewest you could probably expect to see at the controller in that case is still three.</div>

<span class="HOEnZb"><font color="#888888"><div><br></div><div>-- Murphy</div></font></span><div><div class="h5"><div><br><div><div>On May 2, 2013, at 9:48 PM, Karthik Sharma wrote:</div><br><blockquote type="cite"><div dir="ltr">

<div class="gmail_default" style="font-size:small;font-family:arial,helvetica,sans-serif"><div class="gmail_default" style="color:rgb(34,34,34)">I have mininet configured with a remote POX controller running.The configuration of mininet network is as shown below</div>



<div class="gmail_default" style="color:rgb(34,34,34)"><br></div><div class="gmail_default" style="color:rgb(34,34,34)"><br></div><div class="gmail_default" style="color:rgb(34,34,34)"><br></div><div class="gmail_default" style="color:rgb(34,34,34)">



        h1 (eth0) ----------- s2(eth1)       s2(eth2) ---------- h3(eth0)</div><div class="gmail_default" style="color:rgb(34,34,34)"><br></div><div class="gmail_default" style="color:rgb(34,34,34)">where <br></div><div class="gmail_default" style="color:rgb(34,34,34)">



        h1: eth0 is  ca:bc:2e:0c:5a:52</div><div class="gmail_default" style="color:rgb(34,34,34)">        h2: eth0 is  0a:79:40:89:44:cf</div><div class="gmail_default" style="color:rgb(34,34,34)"><br></div><div class="gmail_default" style="color:rgb(34,34,34)">



<br></div><div class="gmail_default" style="color:rgb(34,34,34)">The packet handling function in the POX network controller that gets called whenever a packet is forwarded to the controller is given below.The basic idea is that I use </div>



<div class="gmail_default" style="color:rgb(34,34,34)">a database backed controller.If the packet destination address is not present in the database,I flood the packet.else I forward the packet to the appropriate port.</div>



<div class="gmail_default" style="color:rgb(34,34,34)"><br></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px"><div class="gmail_default"><font color="#000000" face="courier new, monospace">def act_like_switch (self, packet, packet_in):</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">    """</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">    Implement switch-like behavior.</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">    """</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">    # Learn the port for the source MAC</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">    print "RECIEVED FROM PORT ",packet_in.in_port , "SOURCE ",packet.src ,"DEST" , packet.dst</font></div><div class="gmail_default">



<font color="#000000" face="courier new, monospace">    self.mac_to_port[packet.src]=packet_in.in_port</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">    q_res = session.query(SourcetoPort).filter_by(src_address=str(packet.dst)).first()</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">    if q_res is not None:</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           </font><span style="font-family:'courier new',monospace">self.send_packet(packet_in.buffer_id, packet_in.data,q_res.port_no, packet_in.in_port)</span></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">           #create a flow modification message</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           msg = of.ofp_flow_mod()</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">           #set the fields to match from the incoming packet</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           msg.match = of.ofp_match.from_packet(packet)</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">           #send the rule to the switch so that it does not query the controller again.</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           msg.actions.append(of.ofp_action_output(port=q_res.port_no))</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">           #push the rule</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           self.connection.send(msg)</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">    else:</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           #flood this packet out as we don't know about this node.</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">           self.send_packet(packet_in.buffer_id, packet_in.data,of.OFPP_FLOOD, packet_in.in_port)</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">           </font><span style="font-family:'courier new',monospace">q_res = session.query(SourcetoPort).filter_by(src_address=str(packet.src)).first()</span></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">           if q_res is None:</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">                entry = SourcetoPort(src_address=str(packet.src) , port_no=packet_in.in_port)</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">                </font><span style="font-family:'courier new',monospace">#add the record to the session object</span></div><div class="gmail_default">



<font color="#000000" face="courier new, monospace">                session.add(entry)</font></div><div class="gmail_default"><font color="#000000" face="courier new, monospace">                #add the record to the session object</font></div>



<div class="gmail_default"><font color="#000000" face="courier new, monospace">                session.commit()</font></div><div style="font-size:small;font-family:arial,helvetica,sans-serif"><br></div><div style="font-size:small;font-family:arial,helvetica,sans-serif">



<br></div><div style="font-size:small;font-family:arial,helvetica,sans-serif">As mentioned above this function is running on a remote POX controller connected to the described mininet network.Now I do </div><div style="font-size:small;font-family:arial,helvetica,sans-serif">



<br></div><div style="font-size:small;font-family:arial,helvetica,sans-serif">mininet> h1 ping h3 </div><div style="font-size:small;font-family:arial,helvetica,sans-serif"><br></div><div style="font-size:small;font-family:arial,helvetica,sans-serif">



The output that I get is as follows.I have put print statements in the beginning of act_like_switch() function.</div><div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">RECIEVED FROM PORT  1 SOURCE  ca:bc:2e:0c:5a:52 DEST 0a:79:40:89:44:cf</font></div>



<div><font color="#000000" face="arial, helvetica, sans-serif">RECIEVED FROM PORT  2 SOURCE  0a:79:40:89:44:cf DEST ca:bc:2e:0c:5a:52</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">RECIEVED FROM PORT  1 SOURCE  ca:bc:2e:0c:5a:52 DEST 0a:79:40:89:44:cf</font></div>



<div><font color="#000000" face="arial, helvetica, sans-serif">RECIEVED FROM PORT  2 SOURCE  0a:79:40:89:44:cf DEST ca:bc:2e:0c:5a:52</font></div></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div>



<div><font color="#000000" face="arial, helvetica, sans-serif">It seems that there are two ICMP messages from h1 to h2 and two ICMP messages from h2 to h1.</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">I would expect only 1 ICMP message from host h1 to h2.Why are there so many messages.I did think of </font></div>



<div><font color="#000000" face="arial, helvetica, sans-serif">broadcast but why is the destination address not ff:ff:ff:ff:ff:ff ? The source and destination addresses seems to be swapped?</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br>



</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Can anyone explain why this is happening? I am fairly new to POX and mininet</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br>



</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Regards,</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Karthik</font></div></div></div></div>
</blockquote></div><br></div></div></div></div></blockquote></div><br></div>