I'd suggest you look at the packets.  There's a packet dump app in POX, or you 
could use wireshark on the control channel (and/or on one of the host 
interfaces).

Though you should still see at least two (the ping and the pong).

-- Murphy

On May 2, 2013, at 10:23 PM, Karthik Sharma wrote:

> sorry I had added a -c1 at the end of the command.
> 
>> mininet> h1 ping h3
> 
> 
> 
> On 3 May 2013 17:16, Murphy McCauley <[email protected]> wrote:
> 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.
> 
> 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.
> 
> -- Murphy
> 
> On May 2, 2013, at 9:48 PM, Karthik Sharma wrote:
> 
>> I have mininet configured with a remote POX controller running.The 
>> configuration of mininet network is as shown below
>> 
>> 
>> 
>>         h1 (eth0) ----------- s2(eth1)       s2(eth2) ---------- h3(eth0)
>> 
>> where 
>>         h1: eth0 is  ca:bc:2e:0c:5a:52
>>         h2: eth0 is  0a:79:40:89:44:cf
>> 
>> 
>> 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 
>> 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.
>> 
>> def act_like_switch (self, packet, packet_in):
>>     """
>>     Implement switch-like behavior.
>>     """
>>     # Learn the port for the source MAC
>>     print "RECIEVED FROM PORT ",packet_in.in_port , "SOURCE ",packet.src 
>> ,"DEST" , packet.dst
>>     self.mac_to_port[packet.src]=packet_in.in_port
>>     q_res = 
>> session.query(SourcetoPort).filter_by(src_address=str(packet.dst)).first()
>>     if q_res is not None:
>>            self.send_packet(packet_in.buffer_id, 
>> packet_in.data,q_res.port_no, packet_in.in_port)
>>            #create a flow modification message
>>            msg = of.ofp_flow_mod()
>>            #set the fields to match from the incoming packet
>>            msg.match = of.ofp_match.from_packet(packet)
>>            #send the rule to the switch so that it does not query the 
>> controller again.
>>            msg.actions.append(of.ofp_action_output(port=q_res.port_no))
>>            #push the rule
>>            self.connection.send(msg)
>>     else:
>>            #flood this packet out as we don't know about this node.
>>            self.send_packet(packet_in.buffer_id, 
>> packet_in.data,of.OFPP_FLOOD, packet_in.in_port)
>>            q_res = 
>> session.query(SourcetoPort).filter_by(src_address=str(packet.src)).first()
>>            if q_res is None:
>>                 entry = SourcetoPort(src_address=str(packet.src) , 
>> port_no=packet_in.in_port)
>>                 #add the record to the session object
>>                 session.add(entry)
>>                 #add the record to the session object
>>                 session.commit()
>> 
>> 
>> As mentioned above this function is running on a remote POX controller 
>> connected to the described mininet network.Now I do 
>> 
>> mininet> h1 ping h3 
>> 
>> The output that I get is as follows.I have put print statements in the 
>> beginning of act_like_switch() function.
>> 
>> RECIEVED FROM PORT  1 SOURCE  ca:bc:2e:0c:5a:52 DEST 0a:79:40:89:44:cf
>> RECIEVED FROM PORT  2 SOURCE  0a:79:40:89:44:cf DEST ca:bc:2e:0c:5a:52
>> RECIEVED FROM PORT  1 SOURCE  ca:bc:2e:0c:5a:52 DEST 0a:79:40:89:44:cf
>> RECIEVED FROM PORT  2 SOURCE  0a:79:40:89:44:cf DEST ca:bc:2e:0c:5a:52
>> 
>> It seems that there are two ICMP messages from h1 to h2 and two ICMP 
>> messages from h2 to h1.
>> I would expect only 1 ICMP message from host h1 to h2.Why are there so many 
>> messages.I did think of 
>> broadcast but why is the destination address not ff:ff:ff:ff:ff:ff ? The 
>> source and destination addresses seems to be swapped?
>> 
>> Can anyone explain why this is happening? I am fairly new to POX and mininet
>> 
>> Regards,
>> Karthik
> 
> 

Reply via email to