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.
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to