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 <b...@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: b...@nicira.com > > > To: hujingfei...@msn.com > > > CC: discuss@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: b...@nicira.com > > > > > To: hujingfei...@msn.com > > > > > CC: discuss@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: b...@nicira.com > > > > > > > To: hujingfei...@msn.com > > > > > > > CC: discuss@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@openvswitch.org > http://openvswitch.org/mailman/listinfo/discuss >
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss