Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-12-15 Thread Murphy McCauley
No.  The situation is as I described -- the routing module is really more like 
a network-wide L2 switch than anything else.

It's possible to implement some L3 routing functionality in NOX as Srini 
mentions in the referenced email.  However, there's at least one thing that IP 
routers do which can't be done reasonably within the OpenFlow 1.0 specification 
-- decrement the TTL.

-- Murphy

On Dec 12, 2011, at 11:59 PM, linbo wrote:

 Hi,Murphy!
 I remember there was an earlier thread:
 http://noxrepo.org/pipermail/nox-dev/2011-April/007494.html
  
 It said that nox couldn't support conventional IP routing before,so does the 
 routing module making nox as a IP router now?
 Thank you!
 linbo
___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-12-12 Thread linbo
Hi,Murphy!
I remember there was an earlier thread:
http://noxrepo.org/pipermail/nox-dev/2011-April/007494.html

It said that nox couldn't support conventional IP routing before,so does the 
routing module making nox as a IP router now?
Thank you!



linbo

From: Murphy McCauley
Date: 2011-11-04 00:44
To: Shan Hu
CC: nox-dev
Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
module?
pyswitch is intended to be a very simple demo and does something along the 
lines of making each switch in the network a standalone L2 learning switch.  
Each switch gets no insight about the topology from its neighbors.  routing 
actually uses a global view of the topology, and can just generate optimal 
paths between any two endpoints.

A major result of this is that when running pyswitch, each switch needs to 
learn which port to use for each destination.  Before it learns, each switch 
will need to flood packets for destinations it doesn't know yet -- a lot of 
packets will get sent the wrong way.  With routing, once ANY switch can 
determine where a destination is, the entire system knows.  Additionally, 
pyswitch's reliance on flooding is problematic for topologies with loops -- 
it's easy for packets to unknown destinations to loop indefinitely.

Hope that helps clear things up.

-- Murphy

On Nov 2, 2011, at 11:34 AM, Shan Hu wrote:

 I'm wondering what's the different between routing module and pyswitch module?
 
 I can find from wiki that routing is basically a forwarding module. but what 
 about pyswitch?
 
 Because after i connected 3 openvswitchs(like this:host1 -- ovs1 -- ovs2 -- 
 ovs3 --host2),i firstly ran pyswitch module,then host1 can ping host2, 
 however,i tried to run UDP traffic test,and found that the larger bandwidth i 
 use, the more packet loss there are.
 Then i stopped pyswitch module and ran routing module, then host1 still can 
 ping host2, and the UDP traffic test works well, almost all the packets are 
 transfered from host1 to host2.
 
 why this happened?
 
 Shan 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev

___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


__ Information from ESET Smart Security, version of virus signature 
database 6409 (20110825) __

The message was checked by ESET Smart Security.

http://www.eset.com___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-11-11 Thread Murphy McCauley
You're using ovs-ofctl to add a flow to a switch.  In general, this isn't how 
NOX is intended to be used.  The pyswitch and routing applications in NOX (and 
this is probably true for pretty much all NOX applications) assume that they 
are the only things installing flows.  If you are manually adding flows 
externally, there is no telling what the results might be.  In your case, I 
guess it seems to work for pyswitch and not for routing, but the opposite could 
easily have been true instead.

The expected way to do this is to modify the NOX applications so that they 
install the rules you want (e.g., using enqueue instead of a simple output 
action) -- NOT to try to override NOX's behavior by manually installing flows.

Hope that helps.
-- Murphy

On Nov 10, 2011, at 5:16 PM, Shan Hu wrote:

 I has this topology as follows:
 
host2
 |
   [eth2] 
ovs2
   /\
  /  \
 host1--ovs1 ovs3--host3
 
 i set queue tables on ovs2,created two queues,assigned queue0 with rate 
 400mbps~500mbps,and queue1 with rate 600mbps~700mbps.
 
 Then on controller i run command: ./nox_core -ptcp:6633 pyswitch
 
 At last on ovs2 i run command: ./ovs-ofctl add flow br0 in_port=1(note:ovs1) 
 ip nw_dst=xx.xx.xx.xx(note:host2 ip) idle_timeout=0 
 actions=enqueue:4:0(note:to make flows from port1 follow queue0 rule)
 
 Then i push data from host1 to host2, the rate is limited to 400mbps~500mbps.
 
 However,i do the same as above except that i changed command on controller 
 to: ./nox_core -ptcp:6633 routing, the rate is not limited at all.
 
 I thought it might be the routing module problem since the rate is limited 
 with pyswitch.
 
 Shan 
 
 - Original Message -
 From: Murphy McCauley jam...@nau.edu
 To: Shan Hu shan...@utdallas.edu
 Cc: nox-dev nox-dev@noxrepo.org
 Sent: Thursday, November 10, 2011 3:41:04 PM
 Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
 module?
 
 How did you implement rate limiting with pyswitch, and how are you trying to 
 do it with routing?
 
 I'm not sure exactly what you mean about the modules of NOX.  They're all in 
 the various coreapps/netapps/webapps directories in the NOX source 
 repository.  Not all of them are documented on the wiki (or anywhere, 
 necessarily, except maybe the doxygen).
 
 -- Murphy
 
 On Nov 10, 2011, at 1:35 PM, Shan Hu wrote:
 
 Thank you very much for the explanation, Murphy.
 
 Right now,I try to reserve bandwidth and limit rate with the queue table, it 
 works great with pyswitch component,but it doesnt work with routing 
 component.What reason could it be?
 
 And another question,where can i find all the modules of NOX?There are not 
 much in the noxwiki.Or, those in noxwiki already include all existing 
 modules?
 
 regards,
 Shan  
 
 - Original Message -
 From: Murphy McCauley jam...@nau.edu
 To: Shan Hu shan...@utdallas.edu
 Cc: nox-dev nox-dev@noxrepo.org
 Sent: Thursday, November 3, 2011 11:44:33 AM
 Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
 module?
 
 pyswitch is intended to be a very simple demo and does something along the 
 lines of making each switch in the network a standalone L2 learning switch.  
 Each switch gets no insight about the topology from its neighbors.  routing 
 actually uses a global view of the topology, and can just generate optimal 
 paths between any two endpoints.
 
 A major result of this is that when running pyswitch, each switch needs to 
 learn which port to use for each destination.  Before it learns, each switch 
 will need to flood packets for destinations it doesn't know yet -- a lot of 
 packets will get sent the wrong way.  With routing, once ANY switch can 
 determine where a destination is, the entire system knows.  Additionally, 
 pyswitch's reliance on flooding is problematic for topologies with loops -- 
 it's easy for packets to unknown destinations to loop indefinitely.
 
 Hope that helps clear things up.
 
 -- Murphy
 
 On Nov 2, 2011, at 11:34 AM, Shan Hu wrote:
 
 I'm wondering what's the different between routing module and pyswitch 
 module?
 
 I can find from wiki that routing is basically a forwarding module. but 
 what about pyswitch?
 
 Because after i connected 3 openvswitchs(like this:host1 -- ovs1 -- ovs2 -- 
 ovs3 --host2),i firstly ran pyswitch module,then host1 can ping host2, 
 however,i tried to run UDP traffic test,and found that the larger bandwidth 
 i use, the more packet loss there are.
 Then i stopped pyswitch module and ran routing module, then host1 still can 
 ping host2, and the UDP traffic test works well, almost all the packets are 
 transfered from host1 to host2.
 
 why this happened?
 
 Shan 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev
 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org

Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-11-11 Thread Shan Hu


- Forwarded Message -
From: Shan Hu shan...@utdallas.edu
To: Murphy McCauley jam...@nau.edu
Sent: Friday, November 11, 2011 2:28:19 PM
Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
module?

Thank you,Murphy.I get what you mean. The reason i use ovs-ofctl to add flow is 
to test the queue function, that is also what some cookbook says, hard-coding 
controller is only suitable for testing. So can i say the queue QoS works? 
since it does reserve bandwidth and limit rate,in one case though.

Shan

- Original Message -
From: Murphy McCauley jam...@nau.edu
To: Shan Hu shan...@utdallas.edu
Cc: nox-dev nox-dev@noxrepo.org
Sent: Friday, November 11, 2011 1:35:26 PM
Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
module?

You're using ovs-ofctl to add a flow to a switch.  In general, this isn't how 
NOX is intended to be used.  The pyswitch and routing applications in NOX (and 
this is probably true for pretty much all NOX applications) assume that they 
are the only things installing flows.  If you are manually adding flows 
externally, there is no telling what the results might be.  In your case, I 
guess it seems to work for pyswitch and not for routing, but the opposite could 
easily have been true instead.

The expected way to do this is to modify the NOX applications so that they 
install the rules you want (e.g., using enqueue instead of a simple output 
action) -- NOT to try to override NOX's behavior by manually installing flows.

Hope that helps.
-- Murphy

On Nov 10, 2011, at 5:16 PM, Shan Hu wrote:

 I has this topology as follows:
 
host2
 |
   [eth2] 
ovs2
   /\
  /  \
 host1--ovs1 ovs3--host3
 
 i set queue tables on ovs2,created two queues,assigned queue0 with rate 
 400mbps~500mbps,and queue1 with rate 600mbps~700mbps.
 
 Then on controller i run command: ./nox_core -ptcp:6633 pyswitch
 
 At last on ovs2 i run command: ./ovs-ofctl add flow br0 in_port=1(note:ovs1) 
 ip nw_dst=xx.xx.xx.xx(note:host2 ip) idle_timeout=0 
 actions=enqueue:4:0(note:to make flows from port1 follow queue0 rule)
 
 Then i push data from host1 to host2, the rate is limited to 400mbps~500mbps.
 
 However,i do the same as above except that i changed command on controller 
 to: ./nox_core -ptcp:6633 routing, the rate is not limited at all.
 
 I thought it might be the routing module problem since the rate is limited 
 with pyswitch.
 
 Shan 
 
 - Original Message -
 From: Murphy McCauley jam...@nau.edu
 To: Shan Hu shan...@utdallas.edu
 Cc: nox-dev nox-dev@noxrepo.org
 Sent: Thursday, November 10, 2011 3:41:04 PM
 Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
 module?
 
 How did you implement rate limiting with pyswitch, and how are you trying to 
 do it with routing?
 
 I'm not sure exactly what you mean about the modules of NOX.  They're all in 
 the various coreapps/netapps/webapps directories in the NOX source 
 repository.  Not all of them are documented on the wiki (or anywhere, 
 necessarily, except maybe the doxygen).
 
 -- Murphy
 
 On Nov 10, 2011, at 1:35 PM, Shan Hu wrote:
 
 Thank you very much for the explanation, Murphy.
 
 Right now,I try to reserve bandwidth and limit rate with the queue table, it 
 works great with pyswitch component,but it doesnt work with routing 
 component.What reason could it be?
 
 And another question,where can i find all the modules of NOX?There are not 
 much in the noxwiki.Or, those in noxwiki already include all existing 
 modules?
 
 regards,
 Shan  
 
 - Original Message -
 From: Murphy McCauley jam...@nau.edu
 To: Shan Hu shan...@utdallas.edu
 Cc: nox-dev nox-dev@noxrepo.org
 Sent: Thursday, November 3, 2011 11:44:33 AM
 Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
 module?
 
 pyswitch is intended to be a very simple demo and does something along the 
 lines of making each switch in the network a standalone L2 learning switch.  
 Each switch gets no insight about the topology from its neighbors.  routing 
 actually uses a global view of the topology, and can just generate optimal 
 paths between any two endpoints.
 
 A major result of this is that when running pyswitch, each switch needs to 
 learn which port to use for each destination.  Before it learns, each switch 
 will need to flood packets for destinations it doesn't know yet -- a lot of 
 packets will get sent the wrong way.  With routing, once ANY switch can 
 determine where a destination is, the entire system knows.  Additionally, 
 pyswitch's reliance on flooding is problematic for topologies with loops -- 
 it's easy for packets to unknown destinations to loop indefinitely.
 
 Hope that helps clear things up.
 
 -- Murphy
 
 On Nov 2, 2011, at 11:34 AM, Shan Hu wrote:
 
 I'm wondering what's the different between routing module and pyswitch 
 module?
 
 I can find from wiki that routing

Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-11-10 Thread Murphy McCauley
How did you implement rate limiting with pyswitch, and how are you trying to do 
it with routing?

I'm not sure exactly what you mean about the modules of NOX.  They're all in 
the various coreapps/netapps/webapps directories in the NOX source repository.  
Not all of them are documented on the wiki (or anywhere, necessarily, except 
maybe the doxygen).

-- Murphy

On Nov 10, 2011, at 1:35 PM, Shan Hu wrote:

 Thank you very much for the explanation, Murphy.
 
 Right now,I try to reserve bandwidth and limit rate with the queue table, it 
 works great with pyswitch component,but it doesnt work with routing 
 component.What reason could it be?
 
 And another question,where can i find all the modules of NOX?There are not 
 much in the noxwiki.Or, those in noxwiki already include all existing modules?
 
 regards,
 Shan  
 
 - Original Message -
 From: Murphy McCauley jam...@nau.edu
 To: Shan Hu shan...@utdallas.edu
 Cc: nox-dev nox-dev@noxrepo.org
 Sent: Thursday, November 3, 2011 11:44:33 AM
 Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
 module?
 
 pyswitch is intended to be a very simple demo and does something along the 
 lines of making each switch in the network a standalone L2 learning switch.  
 Each switch gets no insight about the topology from its neighbors.  routing 
 actually uses a global view of the topology, and can just generate optimal 
 paths between any two endpoints.
 
 A major result of this is that when running pyswitch, each switch needs to 
 learn which port to use for each destination.  Before it learns, each switch 
 will need to flood packets for destinations it doesn't know yet -- a lot of 
 packets will get sent the wrong way.  With routing, once ANY switch can 
 determine where a destination is, the entire system knows.  Additionally, 
 pyswitch's reliance on flooding is problematic for topologies with loops -- 
 it's easy for packets to unknown destinations to loop indefinitely.
 
 Hope that helps clear things up.
 
 -- Murphy
 
 On Nov 2, 2011, at 11:34 AM, Shan Hu wrote:
 
 I'm wondering what's the different between routing module and pyswitch 
 module?
 
 I can find from wiki that routing is basically a forwarding module. but what 
 about pyswitch?
 
 Because after i connected 3 openvswitchs(like this:host1 -- ovs1 -- ovs2 -- 
 ovs3 --host2),i firstly ran pyswitch module,then host1 can ping host2, 
 however,i tried to run UDP traffic test,and found that the larger bandwidth 
 i use, the more packet loss there are.
 Then i stopped pyswitch module and ran routing module, then host1 still can 
 ping host2, and the UDP traffic test works well, almost all the packets are 
 transfered from host1 to host2.
 
 why this happened?
 
 Shan 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev
 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev

___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-11-10 Thread Shan Hu
I has this topology as follows:

host2
 |
   [eth2] 
ovs2
   /\
  /  \
 host1--ovs1 ovs3--host3

i set queue tables on ovs2,created two queues,assigned queue0 with rate 
400mbps~500mbps,and queue1 with rate 600mbps~700mbps.

Then on controller i run command: ./nox_core -ptcp:6633 pyswitch

At last on ovs2 i run command: ./ovs-ofctl add flow br0 in_port=1(note:ovs1) 
ip nw_dst=xx.xx.xx.xx(note:host2 ip) idle_timeout=0 actions=enqueue:4:0(note:to 
make flows from port1 follow queue0 rule)

Then i push data from host1 to host2, the rate is limited to 400mbps~500mbps.

However,i do the same as above except that i changed command on controller to: 
./nox_core -ptcp:6633 routing, the rate is not limited at all.

I thought it might be the routing module problem since the rate is limited with 
pyswitch.

Shan 

- Original Message -
From: Murphy McCauley jam...@nau.edu
To: Shan Hu shan...@utdallas.edu
Cc: nox-dev nox-dev@noxrepo.org
Sent: Thursday, November 10, 2011 3:41:04 PM
Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
module?

How did you implement rate limiting with pyswitch, and how are you trying to do 
it with routing?

I'm not sure exactly what you mean about the modules of NOX.  They're all in 
the various coreapps/netapps/webapps directories in the NOX source repository.  
Not all of them are documented on the wiki (or anywhere, necessarily, except 
maybe the doxygen).

-- Murphy

On Nov 10, 2011, at 1:35 PM, Shan Hu wrote:

 Thank you very much for the explanation, Murphy.
 
 Right now,I try to reserve bandwidth and limit rate with the queue table, it 
 works great with pyswitch component,but it doesnt work with routing 
 component.What reason could it be?
 
 And another question,where can i find all the modules of NOX?There are not 
 much in the noxwiki.Or, those in noxwiki already include all existing modules?
 
 regards,
 Shan  
 
 - Original Message -
 From: Murphy McCauley jam...@nau.edu
 To: Shan Hu shan...@utdallas.edu
 Cc: nox-dev nox-dev@noxrepo.org
 Sent: Thursday, November 3, 2011 11:44:33 AM
 Subject: Re: [nox-dev] what is the difference between pyswitch and routing 
 module?
 
 pyswitch is intended to be a very simple demo and does something along the 
 lines of making each switch in the network a standalone L2 learning switch.  
 Each switch gets no insight about the topology from its neighbors.  routing 
 actually uses a global view of the topology, and can just generate optimal 
 paths between any two endpoints.
 
 A major result of this is that when running pyswitch, each switch needs to 
 learn which port to use for each destination.  Before it learns, each switch 
 will need to flood packets for destinations it doesn't know yet -- a lot of 
 packets will get sent the wrong way.  With routing, once ANY switch can 
 determine where a destination is, the entire system knows.  Additionally, 
 pyswitch's reliance on flooding is problematic for topologies with loops -- 
 it's easy for packets to unknown destinations to loop indefinitely.
 
 Hope that helps clear things up.
 
 -- Murphy
 
 On Nov 2, 2011, at 11:34 AM, Shan Hu wrote:
 
 I'm wondering what's the different between routing module and pyswitch 
 module?
 
 I can find from wiki that routing is basically a forwarding module. but what 
 about pyswitch?
 
 Because after i connected 3 openvswitchs(like this:host1 -- ovs1 -- ovs2 -- 
 ovs3 --host2),i firstly ran pyswitch module,then host1 can ping host2, 
 however,i tried to run UDP traffic test,and found that the larger bandwidth 
 i use, the more packet loss there are.
 Then i stopped pyswitch module and ran routing module, then host1 still can 
 ping host2, and the UDP traffic test works well, almost all the packets are 
 transfered from host1 to host2.
 
 why this happened?
 
 Shan 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev
 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev

___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] what is the difference between pyswitch and routing module?

2011-11-03 Thread Murphy McCauley
pyswitch is intended to be a very simple demo and does something along the 
lines of making each switch in the network a standalone L2 learning switch.  
Each switch gets no insight about the topology from its neighbors.  routing 
actually uses a global view of the topology, and can just generate optimal 
paths between any two endpoints.

A major result of this is that when running pyswitch, each switch needs to 
learn which port to use for each destination.  Before it learns, each switch 
will need to flood packets for destinations it doesn't know yet -- a lot of 
packets will get sent the wrong way.  With routing, once ANY switch can 
determine where a destination is, the entire system knows.  Additionally, 
pyswitch's reliance on flooding is problematic for topologies with loops -- 
it's easy for packets to unknown destinations to loop indefinitely.

Hope that helps clear things up.

-- Murphy

On Nov 2, 2011, at 11:34 AM, Shan Hu wrote:

 I'm wondering what's the different between routing module and pyswitch module?
 
 I can find from wiki that routing is basically a forwarding module. but what 
 about pyswitch?
 
 Because after i connected 3 openvswitchs(like this:host1 -- ovs1 -- ovs2 -- 
 ovs3 --host2),i firstly ran pyswitch module,then host1 can ping host2, 
 however,i tried to run UDP traffic test,and found that the larger bandwidth i 
 use, the more packet loss there are.
 Then i stopped pyswitch module and ran routing module, then host1 still can 
 ping host2, and the UDP traffic test works well, almost all the packets are 
 transfered from host1 to host2.
 
 why this happened?
 
 Shan 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev

___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


[nox-dev] what is the difference between pyswitch and routing module?

2011-11-02 Thread Shan Hu
I'm wondering what's the different between routing module and pyswitch module?

I can find from wiki that routing is basically a forwarding module. but what 
about pyswitch?

Because after i connected 3 openvswitchs(like this:host1 -- ovs1 -- ovs2 -- 
ovs3 --host2),i firstly ran pyswitch module,then host1 can ping host2, 
however,i tried to run UDP traffic test,and found that the larger bandwidth i 
use, the more packet loss there are.
Then i stopped pyswitch module and ran routing module, then host1 still can 
ping host2, and the UDP traffic test works well, almost all the packets are 
transfered from host1 to host2.

why this happened?

Shan 
___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev