mininet@mininet-vm:~$ cd pox mininet@mininet-vm:~/pox$ pox.py log.level --DEBUG forwarding.l2_learning diversion & [1] 4321 mininet@mininet-vm:~/pox$ POX 0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al. DEBUG:diversion:Enabling Diversion Module DEBUG:core:POX 0.1.0 (betta) going up... DEBUG:core:Running on CPython (2.7.4/Apr 19 2013 18:28:01) DEBUG:core:Platform is Linux-3.8.0-19-generic-x86_64-with-Ubuntu-13.04-raring INFO:core:POX 0.1.0 (betta) is up. DEBUG:openflow.of_01:Listening on 0.0.0.0:6633 INFO:openflow.of_01:[00-00-00-00-00-02 1] connected DEBUG:forwarding.l2_learning:Connection [00-00-00-00-00-02 1] DEBUG:diversion: rules installed on 00-00-00-00-00-02 INFO:openflow.of_01:[00-00-00-00-00-03 3] connected DEBUG:forwarding.l2_learning:Connection [00-00-00-00-00-03 3] DEBUG:diversion: rules installed on 00-00-00-00-00-03 INFO:openflow.of_01:[00-00-00-00-00-01 2] connected DEBUG:forwarding.l2_learning:Connection [00-00-00-00-00-01 2]
This the log i am getting. Can you identify something from them? "diversion" is my 2nd code which we are talking about. about attaching it. Thanks. On Mon, Dec 15, 2014 at 12:31 PM, Murphy McCauley <murphy.mccau...@gmail.com > wrote: > > 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. >>>> >>>> >>>> >>> >> >