HI, l2_multi uses of.ofp_match.from_packet(packet), to get the match for the folw table entry. This will be an exact match right. Now i have to add one more flow entry(for backup path) for the same kind of packets. Hence i used the same match and different priority. But as u have already mentioned, this priority is defaulted to highest priority as it is an exact match and i am getting an error as this entry is duplicate of working path entry. What is the solution for this? can i make the backup entry with wildcards? If so which fields? and how to set wildcards in match? Or can v change the behavior of openflow protocol and make it to alow the exact match entry with different priorities. In that case where should i make the change? when i go thru libopenflow_01 , i couldn't find anything which overwrites priority? Please provide some input.
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> >>>> >>>> >>>> >>> >> >> > >