Hi,
  Actually my aim is to reduce the recovery time during failures. Hence i
don't want the controller to put the entry after the link fails. BUt i want
the controller to install the backup path in the switch itself,along with
the pimary path(ie, when it installs a primary path, it shold install
backup path entries too, but with lower priority).How to achieve this?
  Further i didn't inderstand the term "packet replay'.. Could u please
explain.

Thanks and Regards,
Padma V

On Thu, Sep 11, 2014 at 6:47 PM, Marcus Sandri <mww...@gmail.com> wrote:

> Hello,
>
>        Why don't you use l2_multi? It uses spanning tree, and if you want
> a backup path when a link is down it works very well. However, if you are
> looking for a packet replay, remember that you need see if there's host
> support (in case of UDP, you can search a paper called "n-cast" or in case
> of TCP you can look at MPTCP)
> Em 11/09/2014 07:53, "Padma Jayasankar" <padmaj...@gmail.com> escreveu:
>
> Hi,
>> Is it not necessary to use exact matches.Regarding the flow entries this
>> is my understanding -
>> 1) when a packet comes and it doesn't have any match it will be forwarded
>> to the controller(openflow 1.0)
>> 2) For that packet, the controller will find the route using source and
>> destination fields.
>> 3) According to the fields in the 'packet', match fields will be assigned
>> values.
>> 4) For these match field value an entry will be added in respective
>> switches with in,out port values
>> In this case match will be an exact match right?
>> and foor backup path, i have to install two entries (with different out
>> port). Hence i have to give two different priorities.
>> Is my understanding wrong? If so please explain the functionality.
>>
>> Thanks and Regards,
>> Padma V
>>
>>
>> On Mon, Sep 8, 2014 at 2:39 AM, Murphy McCauley <
>> murphy.mccau...@gmail.com> wrote:
>>
>>> Why use exact matches?
>>>
>>> P.S., please consider not dropping the list.
>>>
>>> On Sep 7, 2014, at 3:23 AM, Padma Jayasankar <padmaj...@gmail.com>
>>> wrote:
>>>
>>> Hi,
>>>  Thanks for the clarification. Mine is exact match only.
>>>  But to enable backup path installation i have to enter two flow entries
>>> for the same match with different priorities.
>>>  Is this possible? Hope i have to change the switch part for it.Or is it
>>> not possible ?
>>>
>>> Thanks and Regards,
>>> Padma V
>>>
>>>
>>>
>>> On Sun, Sep 7, 2014 at 12:06 PM, Murphy McCauley <
>>> murphy.mccau...@gmail.com> wrote:
>>>
>>>> On Sep 6, 2014, at 11:19 PM, Padma Jayasankar <padmaj...@gmail.com>
>>>> wrote:
>>>>
>>>> Hi,
>>>>   I am trying to modify forwarding.l2_multi for backup path
>>>> computation. For this as a first step , i wanted to put some flow entries
>>>> with the priority 0x0001. But though i am setting the msg.priority to this
>>>> value , the flows which are installed in the switch have the priority
>>>> 65535.
>>>>   Ia m setting the msg.priority of ofp_flow_mod message before
>>>> switch.connection.send(msg) statment
>>>>
>>>>   def _binstall (self, switch, in_port, out_port, match, buf = None):
>>>>     out_port_temp =3
>>>>     msg = of.ofp_flow_mod()
>>>>     msg.match = match
>>>>     msg.match.in_port = in_port
>>>>     msg.idle_timeout = FLOW_IDLE_TIMEOUT
>>>>     msg.hard_timeout = FLOW_HARD_TIMEOUT
>>>>     msg.priority = BACKUP_PRIORITY
>>>>     log.debug("Installing backup path with priority %s",msg.priority)
>>>>     msg.actions.append(of.ofp_action_output(port = out_port))
>>>>     msg.buffer_id = buf
>>>>     switch.connection.send(msg)
>>>>
>>>> 1)The log.debug statement shows the priority as 1. But the flow entries
>>>> are with the priority 65535.
>>>> What is the reason for it?
>>>>
>>>>
>>>> From Section 3.4 of the OpenFlow 1.0 specification:
>>>> Packets are matched against flow entries based on prioritization. An
>>>> entry that
>>>> specifies an exact match (i.e., it has no wildcards) is always the
>>>> highest priority.
>>>> All wildcard entries have a priority associated with them. Higher
>>>> priority entries
>>>> must match before lower priority ones.
>>>>
>>>> So... is your match an exact match?
>>>>
>>>> 2) What will be the effect of switch.connection.send(msg).
>>>>   (ie) After the execution of this statement where will the control
>>>> go.I guess the control goes to the switch. If so which module of
>>>> openvswitch will handle this?
>>>>
>>>>
>>>> The effect is that it takes msg, serializes it into an OpenFlow
>>>> command, and tells the OS to send it out the TCP connection to the switch.
>>>>  Then control returns to the statement immediately following the call to
>>>> send().
>>>>
>>>> Elsewhere, the command goes through the OS's TCP stack, is sent over a
>>>> link, is received by the switch, and the switch processes it.  I wouldn't
>>>> call any of that a transfer of control, though.  It's all asynchronous.
>>>>  And it's all outside the scope of POX.  If you want to understand how OVS
>>>> works, you might try reading the OVS code or searching the OVS mailing
>>>> lists.
>>>>
>>>>
>>>> Good luck!
>>>>
>>>> -- Murphy
>>>>
>>>> On Sat, Sep 6, 2014 at 8:07 AM, Padma Jayasankar <padmaj...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>   I waited for complete discovery cycle..even though it is not working
>>>>> for the single,2 topology. But it is working for the custom topology which
>>>>> i created with loop.
>>>>>
>>>>> Regarding openvswitch, i followed the below instructions to install it.
>>>>>
>>>>> root@mininet-vm# cd /root
>>>>> root@mininet-vm# wget 
>>>>> http://openvswitch.org/releases/openvswitch-1.10.0.tar.gz
>>>>> root@mininet-vm# tar zxvf openvswitch-1.10.0.tar.gz
>>>>>
>>>>> Build debian packages and install
>>>>> ---------------------------------
>>>>> root@mininet-vm# cd openvswitch-1.10.0/
>>>>> root@mininet-vm# apt-get install build-essential fakeroot
>>>>> root@mininet-vm# apt-get install debhelper autoconf automake libssl-dev 
>>>>> pkg-config bzip2 openssl python-all procps python-qt4 
>>>>> python-zopeinterface python-twisted-conch
>>>>> root@mininet-vm# fakeroot debian/rules binary
>>>>> root@mininet-vm# cd ..
>>>>> root@mininet-vm# dpkg -i openvswitch-common*.deb 
>>>>> openvswitch-datapath-dkms*.deb openvswitch-controller*.deb 
>>>>> openvswitch-pki*.deb openvswitch-switch*.deb
>>>>>
>>>>> But before following debian package install mehods, i tried to install
>>>>> with -
>>>>>
>>>>> *Binary build and Install*
>>>>> ------------------------------------
>>>>>
>>>>> root@mininet-vm# cd openvswitch-1.10.0/
>>>>> root@mininet-vm# ./configure --prefix=/usr 
>>>>> --with-linux=/lib/modules/`uname -r`/build
>>>>> root@mininet-vm# make
>>>>> root@mininet-vm# make install
>>>>> root@mininet-vm# make modules_install
>>>>> root@mininet-vm# rmmod openvswitch
>>>>> root@mininet-vm# depmod -a
>>>>>
>>>>> But i got some error while executing make..
>>>>>
>>>>> *My doubt is*
>>>>> 1. with debian packages install method, will i be able to change the 
>>>>> source code
>>>>> and build again.
>>>>>
>>>>> 2. As per this installation guidelines openvswitch1.10.0 folder is 
>>>>> created under root folder
>>>>>  and i am not able to see this folder contents(permission denied).. So 
>>>>> how to change the
>>>>> source code of openvswitch
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Sep 6, 2014 at 2:33 AM, Murphy McCauley <
>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> On Sep 5, 2014, at 11:08 AM, Padma Jayasankar <padmaj...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>  1)I have removed ovs that come along with Mininet and installed
>>>>>> openvswitch 1.10.0. After this i tested mininet, with the following 
>>>>>> command
>>>>>>   sudo mn --topo single,2 --switch ovsk --controller
>>>>>> remote,ip=192.168.56.1,port=6633
>>>>>> its working and pingall runs successfully.
>>>>>>
>>>>>> Does this sufficient to check whether the installed openvswitch works
>>>>>> fine? Please clarify.
>>>>>> Here i checked with POX controller with following 3 commands.
>>>>>>
>>>>>>
>>>>>> Probably, though I am not an authoritative source on the subject.
>>>>>>
>>>>>> ./pox.py log.level  forwarding.l2_learning
>>>>>> ./pox.py log.level  openflow.discovery   forwarding.l2_multi
>>>>>> ./pox.py log.level  openflow.discovery openflow.spanning_tree
>>>>>> forwarding.l2_multi
>>>>>>
>>>>>> For all these pingall test was successful
>>>>>>
>>>>>> 2) But when i run the pox controller with the below options
>>>>>>  ./pox.py log.level  openflow.discovery openflow.spanning_tree
>>>>>> --no-flood --hold-down  forwarding.l2_multi
>>>>>> the ping test fails for the sudo mn command given above.
>>>>>>
>>>>>> But for another topology with loop, pingall test was successful
>>>>>> sudo mn --custom ~/mininet/custom/topo-3sw-2host.py --topo mytopo
>>>>>> --controller remote,ip=192.168.56.1,port=6633
>>>>>>
>>>>>> i have attached the custom topology file.
>>>>>>
>>>>>> Why this happens?
>>>>>>
>>>>>>
>>>>>> Did you wait a while before running the ping test?  With no-flood and
>>>>>> hold-down, you have to wait for a complete discovery cycle before you can
>>>>>> expect things to work.
>>>>>>
>>>>>> Thanks,
>>>>>> Padma V
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Sep 4, 2014 at 10:54 AM, Murphy McCauley <
>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>
>>>>>>> Many features of OVS are available via specific OVS extensions to
>>>>>>> OpenFlow 1.0.  They may also be available as features in higher OpenFlow
>>>>>>> versions.
>>>>>>>
>>>>>>> POX currently only supports OpenFlow 1.0, but it does support a
>>>>>>> number of OVS extensions (and others can be added).
>>>>>>>
>>>>>>> As far as I know, there are no plans to have OVS stop supporting any
>>>>>>> lower versions of OpenFlow.  Certainly, the latest versions still 
>>>>>>> support
>>>>>>> 1.0.
>>>>>>>
>>>>>>> -- Murphy
>>>>>>>
>>>>>>> On Sep 3, 2014, at 10:17 PM, Padma Jayasankar <padmaj...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>> HI,
>>>>>>>  Regarding OVS extensions to support back up path, do u mean the
>>>>>>> fast fail over group type..
>>>>>>>   If that is the case then openflow controller(i am using POX), have
>>>>>>> to support atleast OpenFlow 1.1 know..But it supports only OpenFlow 1.0
>>>>>>> right.
>>>>>>>   Further, can i use the new OVS versions to support OpenFlow 1.0.
>>>>>>> Or will they support only OpenFlow 1.3.
>>>>>>>
>>>>>>> Thanks ,
>>>>>>> Padma V
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Sep 4, 2014 at 10:27 AM, Murphy McCauley <
>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Right, you'd have to build your own version.  I think you have the
>>>>>>>> right idea of asking on the mininet list for more guidance here.
>>>>>>>>
>>>>>>>> Though again... OVS has lots of extensions already for doing
>>>>>>>> failover/backup-paths (even without controller involvement), which are
>>>>>>>> already used extensively.  I would not be surprised if it already had 
>>>>>>>> all
>>>>>>>> the capabilities you need.
>>>>>>>>
>>>>>>>> Good luck.
>>>>>>>>
>>>>>>>> -- Murphy
>>>>>>>>
>>>>>>>> On Sep 3, 2014, at 6:56 AM, Padma Jayasankar <padmaj...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>   If i have to modify the openvswitch,then do i have to remove the
>>>>>>>> one which is installed by mininet and download and install openvswitch.
>>>>>>>>
>>>>>>>> Thanks & Regards,
>>>>>>>> Padma V
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Aug 29, 2014 at 9:51 AM, Murphy McCauley <
>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> On Aug 28, 2014, at 1:12 AM, Padma Jayasankar <padmaj...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Thanks a lot.
>>>>>>>>>   I am able to see the flow tables of other switches by changing
>>>>>>>>> the port like 6635,6637..
>>>>>>>>> One more doubt.
>>>>>>>>> *  If i have to add a new type of openflow message then where
>>>>>>>>> should i do it.*
>>>>>>>>>   In the server where i have installed minnet, Openflow folder is
>>>>>>>>> also there.
>>>>>>>>>   I am able to find Openflow.h file in openflow/include/openflow
>>>>>>>>> folder. This file has the declaration and structure definition of all
>>>>>>>>> openflow messages like port_status,Packet_in etc. So here i have to 
>>>>>>>>> add the
>>>>>>>>> new message name and format i guess..
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Probably not.  By default, Mininet uses Open vSwitch.  So you'll
>>>>>>>>> want to modify Open vSwitch.  Of course, Open vSwitch already contains
>>>>>>>>> features for backup paths...
>>>>>>>>>
>>>>>>>>>  But the controller also will be using openflow protocol to listen
>>>>>>>>> to switch..So in the server in which i ghave installed the controller,
>>>>>>>>> where will it be..i believe, i have to make changes in that part 
>>>>>>>>> too.. is
>>>>>>>>> it correct?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Sure.  In POX, this is mostly in libopenflow_01.py.  You can look
>>>>>>>>> at nicira.py also to see how some extensions have been added.  (It's 
>>>>>>>>> not
>>>>>>>>> currently as clean/modular as would be desirable... cleaning it up 
>>>>>>>>> will
>>>>>>>>> hopefully happen in a later POX version.)
>>>>>>>>>
>>>>>>>>> On Tue, Aug 26, 2014 at 11:57 PM, Murphy McCauley <
>>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Aug 26, 2014, at 9:40 AM, Padma Jayasankar <
>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> HI,
>>>>>>>>>>
>>>>>>>>>> 1. You might use l2_multi as a starting point, but you might want
>>>>>>>>>> to use something like NetworkX to base your path computation upon.
>>>>>>>>>> *what is this NetworkX..please explain*
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> It's a graph library for Python which you can learn a lot about
>>>>>>>>>> by doing a web search for "NetworkX".
>>>>>>>>>>
>>>>>>>>>> In the below command 'switch ' is specified as tcp:127.0.0.1:6634.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *dpctl add-flow tcp:127.0.0.1:6634 <http://127.0.0.1:6634/>
>>>>>>>>>> in_port=1,actions=output:2*
>>>>>>>>>>
>>>>>>>>>> How is this mapped to a particular switch. In my topology if i
>>>>>>>>>> have 3 switches s3,s4,s5 then how to specify one of these switches 
>>>>>>>>>> in the
>>>>>>>>>> command. Please clarify.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> This is a Mininet question not a POX one.  Furthermore, as I
>>>>>>>>>> already mentioned, you are probably better off using the OVS tools
>>>>>>>>>> (ovs-dpctl, ovs-vsctl, ovs-ofctl, etc.).  Among other things, you can
>>>>>>>>>> usually specify a datapath by name when using the OVS tools (e.g.,
>>>>>>>>>> ovs-vsctl s3 ...).  That all said, I believe each switch in Mininet 
>>>>>>>>>> listens
>>>>>>>>>> on a different port.  So maybe port 6634 is s3, and 6635 is s4, etc.
>>>>>>>>>>
>>>>>>>>>> Good luck.
>>>>>>>>>>
>>>>>>>>>> -- Murphy
>>>>>>>>>>
>>>>>>>>>> On Tue, Aug 26, 2014 at 5:27 AM, Murphy McCauley <
>>>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> On Aug 25, 2014, at 7:25 AM, Padma Jayasankar <
>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> HI,
>>>>>>>>>>>  I feel, it will be better if i explain my requirement clearly.
>>>>>>>>>>> My aim is to reduce the failure recovery time. For  this, i am 
>>>>>>>>>>> trying to
>>>>>>>>>>> avoid controller intervention at the time of failure. For that,in 
>>>>>>>>>>> response
>>>>>>>>>>> to traffic the controller should find primary and backup path and 
>>>>>>>>>>> install
>>>>>>>>>>> it in the switches.Back up path will be installed with a 
>>>>>>>>>>> different(lower)
>>>>>>>>>>> priority.
>>>>>>>>>>>  When a failure occurs, the switches connected to the failed
>>>>>>>>>>> link should do the following.
>>>>>>>>>>>     1) Delete the flow entries that use the failed link(in/out
>>>>>>>>>>> port)
>>>>>>>>>>>  By doing this, now the traffic will be redirected through the
>>>>>>>>>>> backup path automatically as the switch has the backup path entries 
>>>>>>>>>>> (which
>>>>>>>>>>> is installed at the beginning) itself.
>>>>>>>>>>>     2) Renew this backup path entries:
>>>>>>>>>>>   When there is no failure, as the switches use the working path
>>>>>>>>>>> only, the back up paths will be removed automatically. But this 
>>>>>>>>>>> should not
>>>>>>>>>>> happen. Hence the switches have to send some packets through this 
>>>>>>>>>>> path
>>>>>>>>>>> periodically to avoid expiration. These packets should be different 
>>>>>>>>>>> from
>>>>>>>>>>> normal data packets. I am referring these packets as renewal 
>>>>>>>>>>> packets. These
>>>>>>>>>>> packets has to be identified uniquely, so that egress switches 
>>>>>>>>>>> doesn't
>>>>>>>>>>> deliver them to hosts.
>>>>>>>>>>>
>>>>>>>>>>>    3) Restoration of working path:
>>>>>>>>>>>  Once a link fails, the switches starts using the back up path.
>>>>>>>>>>> But these backup paths are less efficient than primary path. Hence 
>>>>>>>>>>> once the
>>>>>>>>>>> failure is rectified and the link is up, again we should reroute the
>>>>>>>>>>> traffic through the primary path.
>>>>>>>>>>>   But as the switches has backup entries, it won't direct the
>>>>>>>>>>> packets to the controller. They will route the traffic through 
>>>>>>>>>>> backup path
>>>>>>>>>>> only.hence when a link is up, the corresponding switch has to send
>>>>>>>>>>> restoration packets(a special type of packet) to the 
>>>>>>>>>>> controller.Then the
>>>>>>>>>>> controller will recompute the path for that flow and install the 
>>>>>>>>>>> primary
>>>>>>>>>>> and backup entries.
>>>>>>>>>>>
>>>>>>>>>>> Now in implementation perspective, please clarify the below
>>>>>>>>>>> points.
>>>>>>>>>>> 1. For the (1) requirement can i use, l2_multi with changes to
>>>>>>>>>>> compute backup path.
>>>>>>>>>>> 2. How to make the switches to generate renewal packets..where
>>>>>>>>>>> should i place the code for this??
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 1. You might use l2_multi as a starting point, but you might
>>>>>>>>>>> want to use something like NetworkX to base your path computation 
>>>>>>>>>>> upon.
>>>>>>>>>>>
>>>>>>>>>>> 2. Assuming you want to do it from the controller, maybe you
>>>>>>>>>>> want to use callDelayed() or a Timer (see the POX manual) to 
>>>>>>>>>>> generate a
>>>>>>>>>>> packet-out message to send to a switch.
>>>>>>>>>>>
>>>>>>>>>>> Beyond that, I'm not sure if I'll be much help to you.  Good
>>>>>>>>>>> luck!
>>>>>>>>>>>
>>>>>>>>>>> -- Murphy
>>>>>>>>>>>
>>>>>>>>>>>  On Mon, Aug 25, 2014 at 10:12 AM, Murphy McCauley <
>>>>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Aug 24, 2014, at 9:08 PM, Padma Jayasankar <
>>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>  In my previous mails, i asked two things
>>>>>>>>>>>> 1) I want to install back up paths proactively. According to my
>>>>>>>>>>>> understanding l2_multi does this reactively(once failure occurs,it 
>>>>>>>>>>>> finds
>>>>>>>>>>>> the new path). Did u mean the same abt l2_multi.
>>>>>>>>>>>> *2)ofp_flow_mod_flags* of *ofp_flow_mod* has to be set to
>>>>>>>>>>>> * OFPFF_SEND_FLOW_REM* to invoke flow removal notification
>>>>>>>>>>>> messages.
>>>>>>>>>>>>  Is it correct? please confirm
>>>>>>>>>>>>
>>>>>>>>>>>> *Does your 'Yes' holds for both*.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> My yes was just for the second one.
>>>>>>>>>>>>
>>>>>>>>>>>> For the first one... l2_multi is reactive.  It doesn't create
>>>>>>>>>>>> any switch state except in response to traffic.  In general, this 
>>>>>>>>>>>> is a bad
>>>>>>>>>>>> design.  topo_proactive is a somewhat more reasonable variation.  
>>>>>>>>>>>> But you
>>>>>>>>>>>> seem to be talking about creating both primary and backup paths in 
>>>>>>>>>>>> response
>>>>>>>>>>>> to traffic.  I'd say this is still reactive.  I mean... I guess 
>>>>>>>>>>>> you could
>>>>>>>>>>>> install just the primary and then install the backup in response to
>>>>>>>>>>>> failure, but in that case I wouldn't call it a backup -- it's just 
>>>>>>>>>>>> a new
>>>>>>>>>>>> path.
>>>>>>>>>>>>
>>>>>>>>>>>> Further regarding back up path renewal,
>>>>>>>>>>>> - For fast recovery, i have to enable the switches to delete
>>>>>>>>>>>> the working path entries , when the corresponding link 
>>>>>>>>>>>> fails(though timeout
>>>>>>>>>>>> constraint not met). Hence i can not make the switches to delete 
>>>>>>>>>>>> the backup
>>>>>>>>>>>> paths on flow removal notification.
>>>>>>>>>>>>    Hence i have to use renewal packets.In which part this has
>>>>>>>>>>>> to be done? It will be helpful, if i get a starting point.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I'm not sure I know what you mean by renewal packets.  I was
>>>>>>>>>>>> assuming you just meant packets that kept the flows from expiring.
>>>>>>>>>>>>
>>>>>>>>>>>> Regardless, I believe the way I mentioned still works.  Yes,
>>>>>>>>>>>> you delete them manually when you get a flow removal message.  
>>>>>>>>>>>> This is in
>>>>>>>>>>>> order to "clean them up".  This has nothing to do with how you 
>>>>>>>>>>>> react on
>>>>>>>>>>>> failure; this has to do with removing useless entries.
>>>>>>>>>>>>
>>>>>>>>>>>> I don't actually know what mechanism you plan to use to detect
>>>>>>>>>>>> a failure and switch to an alternate path, but I think it probably 
>>>>>>>>>>>> diverges
>>>>>>>>>>>> heavily from how I'd do it, so I'm not sure how helpful I can be.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks and Regards,
>>>>>>>>>>>> Padma V
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Aug 25, 2014 at 2:27 AM, Murphy McCauley <
>>>>>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Yes.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Aug 24, 2014, at 7:15 AM, Padma Jayasankar <
>>>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>   2)When i checked the openflow specification , came to know
>>>>>>>>>>>>> that
>>>>>>>>>>>>>  *ofp_flow_mod_flags* of *ofp_flow_mod* has to be set to
>>>>>>>>>>>>> * OFPFF_SEND_FLOW_REM* to invoke flow removal notification
>>>>>>>>>>>>> messages.
>>>>>>>>>>>>>  Is it correct? please confirm
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Aug 24, 2014 at 7:42 PM, Padma Jayasankar <
>>>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>   2)When i checked the openflow specification , came to know
>>>>>>>>>>>>>> that
>>>>>>>>>>>>>> ofp_flow_mod_flags
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Sun, Aug 24, 2014 at 6:25 PM, Padma Jayasankar <
>>>>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> HI,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks for quick reply.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 1) I want to install back up paths pro actively. According
>>>>>>>>>>>>>>> to my understanding l2_multi does this reactively(once failure 
>>>>>>>>>>>>>>> occurs,it
>>>>>>>>>>>>>>> finds the new path). Did u mean the same abt l2_multi.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2) I will implement back up path entries as per ur guidence.
>>>>>>>>>>>>>>> But to install flow entries with flow removal notification, 
>>>>>>>>>>>>>>> what should be
>>>>>>>>>>>>>>> done? please provide a starting point.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Tahnks and Regards,
>>>>>>>>>>>>>>> Padma V
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Sun, Aug 24, 2014 at 3:40 PM, Murphy McCauley <
>>>>>>>>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Aug 24, 2014, at 2:54 AM, Padma Jayasankar <
>>>>>>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>   Thanks for the clarifications..
>>>>>>>>>>>>>>>> 1) For the first query, as u have said the iCMP type
>>>>>>>>>>>>>>>> differs in the entries.
>>>>>>>>>>>>>>>> 2) Regarding the back up path, i can not install them
>>>>>>>>>>>>>>>> without a timeout..Let me explain my requirement.
>>>>>>>>>>>>>>>>    My aim is to improve the recovery time.
>>>>>>>>>>>>>>>>    Hence i have to install backup paths along with working
>>>>>>>>>>>>>>>> paths(both have to be computed and installed).
>>>>>>>>>>>>>>>>    when a link fails, the corresponding switch has to
>>>>>>>>>>>>>>>> remove the corresponding entry, involving that link.
>>>>>>>>>>>>>>>>    As back up flow is already installed, the switch will
>>>>>>>>>>>>>>>> use that entry immediately.
>>>>>>>>>>>>>>>>    But though we install backup path entries in the switch,
>>>>>>>>>>>>>>>> when there is no failure , it won't be used Hence because of 
>>>>>>>>>>>>>>>> idle time out,
>>>>>>>>>>>>>>>> they will get expired.If we install it as permenant entries , 
>>>>>>>>>>>>>>>> then this
>>>>>>>>>>>>>>>> will result in large no of flow entries in the flow tables(in 
>>>>>>>>>>>>>>>> largel
>>>>>>>>>>>>>>>> networks).
>>>>>>>>>>>>>>>>    Hence ,the switches has to generate some renew
>>>>>>>>>>>>>>>> packets(of small size), and send it through the back up path
>>>>>>>>>>>>>>>> periodically(to avoid expiration). How to accomplish this.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Are you writing this reactively and using fine-grained
>>>>>>>>>>>>>>>> table entries?  Despite the fact that this is how l2_multi, 
>>>>>>>>>>>>>>>> for example,
>>>>>>>>>>>>>>>> works... I strongly caution against this. This introduces 
>>>>>>>>>>>>>>>> scaling problems
>>>>>>>>>>>>>>>> which are generally avoidable.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> More to the point, though... I can think of several ways of
>>>>>>>>>>>>>>>> keeping the backup paths for active flows.  One way (which 
>>>>>>>>>>>>>>>> doesn't involve
>>>>>>>>>>>>>>>> any "renew packets" is... Install the primary table entries 
>>>>>>>>>>>>>>>> with timeouts
>>>>>>>>>>>>>>>> and with flow-removal notification.  Install the backup 
>>>>>>>>>>>>>>>> entries with no
>>>>>>>>>>>>>>>> timeouts.  If you get an expiration notification from the 
>>>>>>>>>>>>>>>> primary path,
>>>>>>>>>>>>>>>> remove the backup path (unless you've failed over and are 
>>>>>>>>>>>>>>>> using the backup
>>>>>>>>>>>>>>>> path; in this case, reinstall the backup path with 
>>>>>>>>>>>>>>>> expirations).
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 3) To start with, i created a  custom topology, with 3
>>>>>>>>>>>>>>>> switches and 2 hosts in mininet. i wrote a python script to 
>>>>>>>>>>>>>>>> start the
>>>>>>>>>>>>>>>> network and test pingall. I have attached the python script.
>>>>>>>>>>>>>>>>    I tried to connect that with remote POX controller
>>>>>>>>>>>>>>>> ./pox.py log.level  openflow.discovery
>>>>>>>>>>>>>>>> openflow.spanning_tree --no-flood --hold-down  
>>>>>>>>>>>>>>>> forwarding.l2_multi
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> ping was successful.
>>>>>>>>>>>>>>>> But i want to down a link and test the behaviour of ping
>>>>>>>>>>>>>>>> after the link down. How to include it in the python script.
>>>>>>>>>>>>>>>> i know the mininet command
>>>>>>>>>>>>>>>> h1 ping -c10 h2
>>>>>>>>>>>>>>>> link s3 s4 down
>>>>>>>>>>>>>>>> h1 ping -c10 h2
>>>>>>>>>>>>>>>> link s3 s4 down
>>>>>>>>>>>>>>>> h1 ping -c10 h2
>>>>>>>>>>>>>>>> But how to invoke this in the script. Is there any way?
>>>>>>>>>>>>>>>> Then only i can identify that how much time the controller 
>>>>>>>>>>>>>>>> takes to recover
>>>>>>>>>>>>>>>> from failure.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> This is a Mininet concern, and you should look into the
>>>>>>>>>>>>>>>> Mininet resources (the FAQ, mailing list archive, etc.).
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Sorry, if it is a very silly doubt..I am new to SDN,
>>>>>>>>>>>>>>>> Python,mininet and POX and i have a very little time to finish 
>>>>>>>>>>>>>>>> my project.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Sun, Aug 24, 2014 at 4:05 AM, Murphy McCauley <
>>>>>>>>>>>>>>>> murphy.mccau...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Aug 23, 2014, at 5:42 AM, Padma Jayasankar <
>>>>>>>>>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>  I am new to POX and Openflow. In my project.I have to
>>>>>>>>>>>>>>>>> compute working path and backup path and install them in 
>>>>>>>>>>>>>>>>> switches.I am
>>>>>>>>>>>>>>>>> going to use Mininet and POX..Please guide me where to start 
>>>>>>>>>>>>>>>>> with..
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> In POX, i tried with
>>>>>>>>>>>>>>>>>    python ./pox.py openflow.discovery forwarding.l2_multi
>>>>>>>>>>>>>>>>> and in Mininet,
>>>>>>>>>>>>>>>>>   sudo mn --topo single,2 --controller
>>>>>>>>>>>>>>>>> remote,ip=192.168.1.4,6633
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The topology was built successfully.
>>>>>>>>>>>>>>>>> 1)I wanted to check the flow entries in the flow table of
>>>>>>>>>>>>>>>>> switch s1.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> i executed
>>>>>>>>>>>>>>>>> sudo dpctl dump-flows tcp:127.0.0.1:6634
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Initially it showed a single entry which directed the
>>>>>>>>>>>>>>>>> flows to the controller.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> This is probably an entry to direct the discovery packets
>>>>>>>>>>>>>>>>> to the controller.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Then i executed h1 ping -c10 h2
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> mean while checked the flow entries using dpctl command
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Now it listed some 5 entries including the previous one.
>>>>>>>>>>>>>>>>> For the same input and poutput pairs there were 2 
>>>>>>>>>>>>>>>>> entries..why is it so?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> l2_multi installs exact-match flows.  There's probably a
>>>>>>>>>>>>>>>>> pair for both directions of ARP and another pair for both 
>>>>>>>>>>>>>>>>> directions of
>>>>>>>>>>>>>>>>> ICMP.  Check the Ethertype and IP protocol numbers for each 
>>>>>>>>>>>>>>>>> table entry.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Also, you should probably use the OVS tools (ovs-dpctl,
>>>>>>>>>>>>>>>>> ovs-ofctl, etc.) rather than the reference distribution's 
>>>>>>>>>>>>>>>>> dpctl.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 2) According to my requirements, some of the switches have
>>>>>>>>>>>>>>>>> to generate renewal packets peroiodically, to keep the back 
>>>>>>>>>>>>>>>>> up paths alive.
>>>>>>>>>>>>>>>>> Which part has to be modified for this?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> You haven't really explained your strategy for backup
>>>>>>>>>>>>>>>>> paths, so I don't have any idea what you're talking about 
>>>>>>>>>>>>>>>>> here.  Offhand,
>>>>>>>>>>>>>>>>> it seems like you could just install the entries for your 
>>>>>>>>>>>>>>>>> backup paths
>>>>>>>>>>>>>>>>> without a timeout.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Please clarify the doubts..
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Thanks & Regards,
>>>>>>>>>>>>>>>>> Padma V
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> <mytestping.py>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> <topo-3sw-2host.py>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>

Reply via email to