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