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

Reply via email to