Thank you for providing the requested information. I found that "subfacet->slow_path_reason == 0" indicates packets is processed by fast path, so in this case the packet is directly forwarded by the kernel. If it is in slow-path such as "slow_controller", the packets will all be forwarded to userspace without buffering in kernel. Do I understand correctly? Another question. I learned that flow miss to the controller will be buffered in the userspace. If I send the entire packet to the controller (not just the 128 bytes of pakcet header), is it still buffered in userspace? Could I avoid for that?
-- At 2013-05-30 07:49:36,"Jesse Gross" <je...@nicira.com> wrote: >On Tue, May 28, 2013 at 11:38 AM, zuo <zu...@163.com> wrote: >> Hi, >> Recently I read the code of OpenvSwitch (version 1.9) to learn how packet is >> processed in datapath and userspace. However, there are some issues that I >> didn’t understand clearly. Can anybody help me? >> (1) When the first packet of a flow comes to the datapath, the datapath >> transmit it to the userspace using netlink. Does the datapath buffer the >> packet? Or it is just buffered in userspace? > >There's no buffering in the kernel. > >> (2) As the comment of facet introduces, facet is exact-match flow in >> userspace and subfacet is also exact-match flow in datapath, Can anybody >> take an example for that one facet has more than one subfacet? > >If the kernel's definition of a flow is more precise than userspace's. > >> (3) When the packet comes to the userspace, it is transmited to the >> controller. However, as my comprehension, before the flow_mod message comes >> from the controller, it will create a facet in userspace and corresponding >> subfacet action in SF_fast_path of datapath, so what is the action of the >> SF_fast_path flow entry? Is it to the userspace or directly to the >> controller? > >Userspace makes all connections to the controller, the kernel never >sends packets directly. > >> (4) It seems that datapath flow entry is 5 seconds time-out, then how >> soon is the facet time_out? Where can I find the code of time_out? > >Facets timeout when all subfacets have been removed. > >> (5) I found that every time it could handle 50(max_batch) upcalls every >> time? When the traffic in production network is huge, isn’t it small? > >This just allows other things a chance to run.
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss