[ovs-discuss] Switch architecture of OVS userspace switch

Jingfei Hu jingfei.hu at gmail.com
Sun Mar 18 00:44:21 UTC 2012


Thanks, Ben, Your confirmation is what I want. :)

2012/3/14 Ben Pfaff <blp at nicira.com>

> Yes, that's correct.  In a switch, packets can come in and go out on
> the same set of ports, so there is only one list.  Why do you expect
> differently?
>
> On Tue, Mar 13, 2012 at 06:20:21PM +0800, Jingfei Hu wrote:
> > Ben, Sorry for the delay.
> > In the struct dp_netdev, there are two members, struct dp_netdev_port
> > *ports[MAX_PORTS] and struct list port_list, which mean the ports of this
> > datapath, also a switch. And in the snippet code of function
> > dpif_netdev_run():
> > --------------------------------------------------------------------
> > LIST_FOR_EACH (port, node, &dp->port_list)
> > --------------------------------------------------------------------
> >
> > so dp->port_list represents the input ports of the datapath. Then
> following
> > the call stack, here is the code of function dp_netdev_output_port():
> > -------------------------------------------------------------------
> >     struct dp_netdev_port *p = dp->ports[out_port];
> >     if (p) {
> >         netdev_send(p->netdev, packet);
> >     }
> > ------------------------------------------------------------------
> >
> > So this dp->ports represent the output ports of the datapath. Is that
> > correct?
> >
> > Cheers,
> >
> > Jfhu
> > 2012/3/9 Ben Pfaff <blp at nicira.com>
> >
> > > What is "the output ports list" and "the input ports list"?  I don't
> > > know what list (lists?) you mean.
> > >
> > > On Thu, Mar 08, 2012 at 08:35:38PM +0800, HuJingfei wrote:
> > > >
> > > > Thanks, Ben,Exactly speaking, it's the loop of function
> > > > dpif_netdev_run() that does the packets scheduling. Now, I know that
> > > > the next procedure of normal process is: dpif_netdev_run() ->
> > > > dp_netdev_port_input() -> dp_netdev_execute_actions() ->
> > > > dp_netdev_output_port()But what confuses me is that why the output
> > > > ports list is the same with input ports list? Is that scan?
> > > > Cheers,
> > > > Jfhu
> > > > > Date: Wed, 7 Mar 2012 08:00:06 -0800
> > > > > From: blp at nicira.com
> > > > > To: hujingfei914 at msn.com
> > > > > CC: discuss at openvswitch.org
> > > > > Subject: Re: [ovs-discuss] Switch architecture of OVS userspace
> switch
> > > > >
> > > > > Since you are specifically interested in the userspace OVS switch,
> you
> > > > > can just follow the process of the loop in dpif_run().  Each
> iteration
> > > > > of the loop fully processes one packet.
> > > > >
> > > > > On Wed, Mar 07, 2012 at 03:56:03PM +0800, HuJingfei wrote:
> > > > > >
> > > > > > Thanks, Ben, I appreciate your help very much.Is there any
> > > > > > documentation or schematic diagram that describes the process
> that a
> > > > > > packet entering the switch's input ports, scheduling, and
> departing
> > > > > > from the switch's output ports? Or there is no such stuff in OVS?
> > > > > > Cheers,
> > > > > > Jfhu> Date: Tue, 6 Mar 2012 21:37:32 -0800
> > > > > > > From: blp at nicira.com
> > > > > > > To: hujingfei914 at msn.com
> > > > > > > CC: discuss at openvswitch.org
> > > > > > > Subject: Re: [ovs-discuss] Switch architecture of OVS userspace
> > > switch
> > > > > > >
> > > > > > > On Wed, Mar 07, 2012 at 11:35:57AM +0800, HuJingfei wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > > Thanks, Ben, All right. However, at least there is a mapping
> > > from the
> > > > > > > > software implementation of a switch to its real component. Is
> > > that
> > > > > > > > right? For example,The struct, dp_netdev, may be mapped to a
> > > switch,
> > > > > > > > because of following mappings:1. member struct
> dp_netdev_queue
> > > > > > > > queues[N_QUEUES] corresponds to actual buffer of a switch,
> every
> > > > > > > > packet from input ports will enter this buffer first, then
> will
> > > be
> > > > > > > > scheduled to go to its destined output port.
> > > > > > >
> > > > > > > No, that's wrong, that's not at all how these queues are used.
> > >  These
> > > > > > > queues are used to respond to dpif_recv().  Please read the
> > > > > > > documentation for that function to obtain more insight.
> > > > > > >
> > > > > > > > 2. member struct dp_netdev_port *ports[MAX_PORTS]
> corresponds to
> > > > > > > > actual ports of a switch.
> > > > > > >
> > > > > > > Yes, that is correct.
> > > > > > >
> > > > > > > > Please correct me if I am wrong.  Cheers,Jfhu
> > > > > > > > > Date: Tue, 6 Mar 2012 14:17:57 -0800
> > > > > > > > > From: blp at nicira.com
> > > > > > > > > To: hujingfei914 at msn.com
> > > > > > > > > CC: discuss at openvswitch.org
> > > > > > > > > Subject: Re: [ovs-discuss] Switch architecture of OVS
> > > userspace switch
> > > > > > > > >
> > > > > > > > > On Tue, Mar 06, 2012 at 11:35:42AM +0800, HuJingfei wrote:
> > > > > > > > > >
> > > > > > > > > > Hi, all,I'm newbie to OVS. I know there are quite a lot
> of
> > > switch
> > > > > > > > > > architectures such as Shared Memory, Shared Medium,
> > > Crossbar, Banyan
> > > > > > > > > > and so on. Could anyone tell me the userspace OVS
> switch's
> > > > > > > > > > architecture please?  Forgive me for my stupid question.
> > >  Cheers, Jfhu
> > > > > > > > >
> > > > > > > > > It's a piece of software, not a piece of hardware, so it's
> not
> > > > > > > > > meaningful to try to classify it in terms of hardware
> designs.
> > > > > > > >
> > > > > >
> > > >
> > > _______________________________________________
> > > discuss mailing list
> > > discuss at openvswitch.org
> > > http://openvswitch.org/mailman/listinfo/discuss
> > >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20120318/cfdf21cf/attachment.html>


More information about the discuss mailing list