I'm not actually sure how the controller works at all in your example. This section of the Mininet documentation discusses using external OpenFlow controllers: https://github.com/mininet/mininet/wiki/Introduction-to-Mininet#external-openflow-controllers
Basically you can give it an external IP and port, and it'll set the switches up to try to connect to a controller there. The default (127.0.0.1:6633) is fine if you want to run the controller on the same machine as Mininet. Then just run POX from the commandline as described in the POX manual. If you want, turn up the logging level to DEBUG using the log.level module as described in the POX manual. -- Murphy On Dec 14, 2014, at 10:54 PM, chaitanya tanwar <chaitanya.tan...@gmail.com> wrote: > Can you suggest some points. > Where should i run my POX controller? > Where you generally run your POX controller when using mininet? > > On Mon, Dec 15, 2014 at 12:14 PM, Murphy McCauley <murphy.mccau...@gmail.com> > wrote: > Yup. I'm sure there's something wrong with it. > > But trying to program POX without being able to read the log is like trying > to do a puzzle in the dark. > > Figure out how to read the log. > > -- Murphy > > On Dec 14, 2014, at 10:36 PM, chaitanya tanwar <chaitanya.tan...@gmail.com> > wrote: > >> But there is some problem due to my 2nd code becuase when I ran the pox >> without my 2nd code. All host were able to ping each other. >> Its when i installed a rule to the switch they stop pinging. >> >> On Mon, Dec 15, 2014 at 12:00 PM, Murphy McCauley >> <murphy.mccau...@gmail.com> wrote: >> I don't know that. Seems like a Mininet question. >> >> I always set up Mininet to use a remote controller and then just run POX >> myself. By default, POX displays its log on standard output. >> >> -- Murphy >> >> On Dec 14, 2014, at 10:27 PM, chaitanya tanwar <chaitanya.tan...@gmail.com> >> wrote: >> >>> I am new to SDN. How can i check to POX logs? >>> In mininet its just showing that POX is up and POX controller is connected >>> to all the switches. >>> >>> Thanks. >>> >>> On Mon, Dec 15, 2014 at 11:53 AM, Murphy McCauley >>> <murphy.mccau...@gmail.com> wrote: >>> Does your POX log have any warnings or errors in it? Those can be really >>> informative. >>> >>> -- Murphy >>> >>> On Dec 14, 2014, at 9:56 PM, chaitanya tanwar <chaitanya.tan...@gmail.com> >>> wrote: >>> >>>> I have created a network using the following code, and pox as remote >>>> controller with l2.learning module. >>>> >>>> >>>> #!/usr/bin/python >>>> from mininet.net import Mininet >>>> from mininet.node import Controller, RemoteController, OVSController >>>> from mininet.node import CPULimitedHost, Host, Node >>>> from mininet.node import OVSKernelSwitch, UserSwitch >>>> from mininet.node import IVSSwitch >>>> from mininet.cli import CLI >>>> from mininet.log import setLogLevel, info >>>> from mininet.link import TCLink, Intf >>>> >>>> def myNetwork(): >>>> >>>> net = Mininet( topo=None, >>>> build=False, >>>> ipBase='10.0.0.0/8') >>>> >>>> #info( '*** Adding controller\n' ) >>>> #c0=net.addController(name='c0', >>>> # controller=None) >>>> info( '*** Add switches\n') >>>> s1 = net.addSwitch('s1', cls=OVSKernelSwitch) >>>> s2 = net.addSwitch('s2', cls=OVSKernelSwitch) >>>> s3 = net.addSwitch('s3', cls=OVSKernelSwitch) >>>> info( '*** Add hosts\n') >>>> >>>> h1 = net.addHost('h1', cls=Host, mac='00:00:00:00:00:01', >>>> ip='10.0.0.2/24', defaultRoute='h1-eth0') >>>> h2 = net.addHost('h2', cls=Host, mac='00:00:00:00:00:02', >>>> ip='10.0.0.3/24', defaultRoute='h2-eth0') >>>> h4 = net.addHost('h4', cls=Host, mac='00:00:00:00:00:04', >>>> ip='20.0.0.3/24', defaultRoute='h4-eth0') >>>> h3 = net.addHost('h3', cls=Host, mac='00:00:00:00:00:03', >>>> ip='30.0.0.2/24', defaultRoute='h3-eth0') >>>> h5 = net.addHost('h5', cls=Host, mac='00:00:00:00:00:05', >>>> ip='20.0.0.3/24', defaultRoute='h5-eth0') >>>> >>>> info( '*** Add links\n') >>>> linkBW = {'bw':100} >>>> net.addLink(h1, s1, cls=TCLink , **linkBW) >>>> net.addLink(h2, s1, cls=TCLink , **linkBW) >>>> net.addLink(h3, s2, cls=TCLink , **linkBW) >>>> net.addLink(h4, s3, cls=TCLink , **linkBW) >>>> net.addLink(h5, s3, cls=TCLink , **linkBW) >>>> net.addLink(s1, s2, cls=TCLink , **linkBW) >>>> net.addLink(s3, s2, cls=TCLink , **linkBW) >>>> info( '*** Starting network\n') >>>> net.build() >>>> #info( '*** Starting controllers\n') >>>> #for controller in net.controllers: >>>> # controller.start() >>>> info( '*** Starting switches\n') >>>> net.get('s1')#.start([c0]) >>>> net.get('s2')#.start([c0]) >>>> net.get('s3')#.start([c0]) >>>> info( '*** Configuring switches\n') >>>> >>>> CLI(net) >>>> net.stop() >>>> >>>> if __name__ == '__main__': >>>> setLogLevel( 'info' ) >>>> myNetwork() >>>> >>>> >>>> I am able to ping to each other. >>>> But now I want add an entry to all switch. If h2 sends packet to h3 then >>>> divert it to h5 on the basis of IP addresses by the following code. >>>> >>>> >>>> from pox.core import core >>>> import pox.openflow.libopenflow_01 as of >>>> from pox.lib.revent import * >>>> from pox.lib.util import dpidToStr >>>> from pox.lib.addresses import EthAddr >>>> from collections import namedtuple >>>> import os >>>> >>>> log = core.getLogger() >>>> >>>> class Diversion(EventMixin): >>>> def __init__ (self) : >>>> self.listenTo(core.openflow) >>>> log.debug("Enabling Diversion Module") >>>> >>>> def _handle_ConnectionUp (self, event): >>>> msg = of.ofp_flow_mod() >>>> msg.match = of.ofp_match(nw_src = IPAddr("10.0.0.3"),nw_dst = >>>> IPAddr("10.0.0.3")) >>>> >>>> msg.actions.append(ofp_action_nw_addr.set_dst(IPAddr("192.168.1.14"))) >>>> self.connection.send(msg) >>>> log.debug(" rules installed on %s", dpidToStr(event.dpid)) >>>> >>>> def launch(): >>>> core.registerNew(Diversion) >>>> >>>> >>>> But now i am not able to ping any of the host.. >>>> >>>> Please direct me to the error. >>>> >>>> >>>> Thanks and Regards. >>> >> >