I think sendToDPID() just doesn't do what you think it does.  It is for sending 
OpenFlow commands to a switch -- the same as connection.send(), except it looks 
up the connection for you based on DPID.  I believe you're trying to use it to 
send a packet out of some port on a switch.  There's an obvious piece of 
information missing here -- sendToDPID takes a DPID, but how would it know 
which port you want to send the packet out of?

What you need to do is create an ofp_packet_out() which has an output action to 
the appropriate port and the data you want to send as the 'data' attribute. 
This is similar to the flood() function in l2_learning which is in your source. 
 There are even closer examples in other modules (e.g., misc.dhcpd).  Then send 
*that* using sendToDPID(), or in your case -- just use connection.send().

-- Murphy 

On Jul 5, 2013, at 12:52 PM, Kavit Shah wrote:

> Command line with log, my code and screen shot of the wireshrak are attached 
> in the text and png files.
> 
> I am using HP Pro curve switch, i think it supports OF 1.0 spec.
> 
>  
> #####################################
> #####################################
> 
> Important part of my code in the attached file
> 
> #####################################
> #####################################
> 
> Questions:
> 
> 1) sendToDPID function is not working the way I expect it to work. According 
> to me if that function works I should see packet out in wireshark.
> 
> 2) Am I extracting dpid of the switch correctly ?
> 
> 3) What is the reason for getting an error while switch connects to the POX 
> controller ?
> 
> ERROR:openflow.of_01:[00-16-b9-ce-2f-40|800 1] OpenFlow Error:
> [00-16-b9-ce-2f-40|800 1] Error: header:
> [00-16-b9-ce-2f-40|800 1] Error:   version: 1
> [00-16-b9-ce-2f-40|800 1] Error:   type:    1 (OFPT_ERROR)
> [00-16-b9-ce-2f-40|800 1] Error:   length:  20
> [00-16-b9-ce-2f-40|800 1] Error:   xid:     7
> [00-16-b9-ce-2f-40|800 1] Error: type: OFPET_BAD_REQUEST (1)
> [00-16-b9-ce-2f-40|800 1] Error: code: OFPBRC_BAD_TYPE (1)
> [00-16-b9-ce-2f-40|800 1] Error: datalen: 8
> [00-16-b9-ce-2f-40|800 1] Error: 0000: 01 12 00 08 00 00 00 07                
>             ........
> 
> 
> <sendToDPID_question.txt><sendToDPID_wireshark.png>_______________________________________________
> mininet-discuss mailing list
> mininet-disc...@lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/mininet-discuss

Reply via email to