[ovs-discuss] Architecture Open vSwitch with DPDK
zoltan.kiss at linaro.org
Wed Nov 25 18:08:34 UTC 2015
On 25/11/15 10:18, Kury Nicolas wrote:
> Thank you, I understand!
> One question more and I hope it will be the last.
> In OVS, we talk about fast path and slow path. Is there a such thing in OVS-DPDK ? If my understanding is correct:
> With OVS(generic):
> - Fast path: the datapath (kernel module) know the rules and can process the paquet.
> - Slow path. If the datapath (kernel module) doesn't know the rules, the packet is transmitted to dpi and then ofproto-dpif. Then ofproto-dpif check is the rules exist in the flow table of OpenFlow. If yes, the rules are added in the datapath (kernel module) and the following packets will use the fast path. If not, the rules will be asked to the OpenFlow controller.
> With OVS-DPDK, are there also 2 flow tables ? The datapath flow table (dpif-netdev) and OpenFlow flow table (ofproto-dpif) ? When the datapath (dpif-netdev) doesn't know the rules, the packet is sent to ofproto-dpif that check the rules in the OpenFlow flow table etc. ?
There is a somewhat similar thing in dpif-netdev: dp_netdev_input()
calls emc_processing() first, which tries to match a per-thread
exact-match table based on the packet's RSS hash. If it's unsuccessful,
it calls fast_path_processing(), which first tries the classifier with
dpcls_lookup(), and if nothing helps it executes an upcall to ofproto
> Thank you!
> De : Justin Pettit <jpettit at ovn.org>
> Envoyé : mercredi 25 novembre 2015 09:41
> À : Kury Nicolas
> Cc : bugs at openvswitch.org
> Objet : Re: [ovs-discuss] Architecture Open vSwitch with DPDK
>> On Nov 25, 2015, at 12:30 AM, Kury Nicolas <nicolas.kury at master.hes-so.ch> wrote:
>> Thank your very much for the answer! I have also read and watched some presentation about OVS and now I understand better.
>> I have found a presentation about OVS-DPDK and there are some points I'm not sure to understand. Screenshot: http://s29.postimg.org/ig8us188n/ovs_dpdk.png
>> - The elements "ovs kernel module" and "kernel packet processing" and only used by dpif-linux, right ?
> dpif-netlink, but yes.
>> - The element "User Space Forwarding", is it dpif-netdev ?
>> In the PORTING.md section of OVS, I have some difficulties to understand the interation between a netdev provider and a dpif provider. Which one carries the packet, first ? The netdev provider or the dpif provider ?
>> - With OVS-DPDK, I guess netdev-dpdk is the first element to receive the packet and transmits it to the dpif-netdev (userspace), right ? Then dpif-netdev check the rules in the flow table and if they match, execute the action, and transmits it back to netdev-dpdk ?
> That all sounds correct.
>> - So... in OVS generic without DPDK, does the netdev-linux receive the packet first and transmit it to the dpif-netlink ? Then dpif-netlink transmits it to the datapath in kernel ? I think I'm wrong.
> In the kernel version, netdev is not involved in packet handling. It would be passed from the kernel module directly to dpif-netlink to dpif.
> discuss mailing list
> discuss at openvswitch.org
More information about the discuss