Thanks Bob! Your reply in #1 pointed me to read up on the difference between 
ovs-ofctl vs. ovs-dpctl. I think I get the difference after reading more about 
both. One quick question, what is the difference between dpctl vs. ovs-dpctl / 
ovs-ofctl? I guess one was a historical tool and the other two were separated 
out as the cleaner way to separate what the switch installs vs. what OpenFlow 
sees? Is that a fair statement? 

If I play with the ova-ofctl more and feel I can accurately update the tutorial 
I will find some time to do it. :)

Eric


On Apr 28, 2013, at 2:37 PM, Bob Lantz <rla...@cs.stanford.edu> wrote:

> 1. For OVS, you can (should?) just use ovs-ofctl:
> 
>       # ovs-ofctl show s1
> 
> We should probably update the OpenFlow tutorial (anyone can, actually.)
> 
> 2. You should also be able to pass listenPort into the Mininet constructor
> 
>       net = Mininet( ... , listenPort=6634)
> 
> 3. You should also be able to pass parameters into the switch constructor:
> 
>       s1 = net.addSwitch( 's1', listenPort=6634 ... )
> 
> 4. You should also be able to use
> 
>       sudo mn --listenport=6634
> 
> 
> On Apr 28, 2013, at 11:13 AM, Eric Chou <eric.cho...@gmail.com> wrote:
> 
>> Hi Navina, you can probably add that in your controller code, but it is 
>> probably worth pointing out that OVS provides the feature to passively 
>> listens for dpctl messages while actively registers to OF controllers. By 
>> default this is turned off, you can see that from ~/mininet/mininet/node.py 
>> __init__ function with listenPort=None. So you simply need to enable it when 
>> you create your custom topology. For my project, I created a custom topology 
>> and added them as: 
>> 
>>     s1 = net.addSwitch('s1')
>>     s1.listenPort = 6634
>>     s2 = net.addSwitch('s2')
>>     s2.listenPort = 6635
>>     s3 = net.addSwitch('s3')
>>     s3.listenPort = 6636
>> 
>> Full code here: 
>> https://github.com/ericchou-python/PyTapDEMON/blob/master/MininetTopology/PyTapDEMON_topo.py
>> 
>> Then dpctl works: 
>> mininet@mininet-vm:~/pox$ dpctl dump-flows tcp:127.0.0.1:6634
>> stats_reply (xid=0x4cbd6894): flags=none type=1(flow)
>> mininet@mininet-vm:~/pox$ dpctl dump-flows tcp:127.0.0.1:6635
>> stats_reply (xid=0xbe6b6a1b): flags=none type=1(flow)
>> mininet@mininet-vm:~/pox$ dpctl dump-flows tcp:127.0.0.1:6636
>> stats_reply (xid=0x158a3b4a): flags=none type=1(flow)
>> mininet@mininet-vm:~/pox$
>> 
>> If I comment out, say s3 port 6636:
>> mininet@mininet-vm:~/pox$ dpctl dump-flows tcp:127.0.0.1:6636
>> dpctl: failed to send packet to switch: Connection refused
>> mininet@mininet-vm:~/pox$
>> 
>> Hope it helps. 
>> 
>> Eric
>> 
>> 
>> On Apr 27, 2013, at 1:34 PM, Navina Ramesh <rnav...@acis.ufl.edu> wrote:
>> 
>>> Hi,
>>> 
>>> I have just started writing controllers using Openflow. I am using Mininet 
>>> 2.0.0 to create a network with 2 OVS Switches. I wrote a controller that 
>>> behaves like a learning switch, similar to what is shown in l2_learning.py.
>>> I was trying to view the flows I installed by issuing the dpctl command to 
>>> the switch in my terminal as:
>>> 
>>> mininet@mininet-vm:~/pox$ dpctl show tcp:127.0.0.1:6633
>>> dpctl: talking to tcp:127.0.0.1:6633: unexpected end of file
>>> 
>>> I am running mininet and controller in the same virtual image and hence, 
>>> 127.0.0.1.
>>> 
>>> I am getting the following error on my controller(pox) terminal:
>>> 
>>> ERROR:openflow.of_01:[Con 5/None]: Exception while handling OpenFlow 
>>> message:
>>> [Con 5/None] ofp_features_request
>>> [Con 5/None]   header: 
>>> [Con 5/None]     version: 1
>>> [Con 5/None]     type:    5 (OFPT_FEATURES_REQUEST)
>>> [Con 5/None]     length:  8
>>> [Con 5/None]     xid:     862702809
>>> Traceback (most recent call last):
>>>  File "/home/mininet/pox/pox/openflow/of_01.py", line 622, in read
>>>    h(self, msg)
>>> TypeError: 'NoneType' object is not callable
>>> 
>>> I am not able to figure out why this error is caused. Should I be handling 
>>> anything in my controller code?
>>> 
>>> Any pointers will be helpful.
>>> 
>>> Thanks!
>>> Navina
>>> _______________________________________________
>>> openflow-discuss mailing list
>>> openflow-discuss@lists.stanford.edu
>>> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss
>> 
>> _______________________________________________
>> openflow-discuss mailing list
>> openflow-discuss@lists.stanford.edu
>> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss
> 

_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to