On 03/16/2016 12:26 PM, Ferruh Yigit wrote: > On 3/16/2016 8:22 AM, Panu Matilainen wrote: >> On 03/16/2016 10:19 AM, Ferruh Yigit wrote: >>> On 3/16/2016 7:26 AM, Panu Matilainen wrote: >>>> On 03/14/2016 05:32 PM, Ferruh Yigit wrote: >>>>> On 3/9/2016 11:17 AM, Ferruh Yigit wrote: >>>>>> This patch sent to keep record of latest status of the work. >>>>>> >>>>>> >>>>>> This is slow data path communication implementation based on existing >>>>>> KNI. >>>>>> >>>>>> Difference is: librte_kni converted into a PMD, kdp kernel module is >>>>>> almost >>>>>> same except all control path functionality removed and some >>>>>> simplification done. >>>>>> >>>>>> Motivation is to simplify slow path data communication. >>>>>> Now any application can use this new PMD to send/get data to Linux >>>>>> kernel. >>>>>> >>>>>> PMD supports two communication methods: >>>>>> >>>>>> 1) KDP kernel module >>>>>> PMD initialization functions handles creating virtual interfaces (with >>>>>> help of >>>>>> kdp kernel module) and created FIFO. FIFO is used to share data between >>>>>> userspace and kernelspace. This is default method. >>>>>> >>>>>> 2) tun/tap module >>>>>> When KDP module is not inserted, PMD creates tap interface and transfers >>>>>> packets using tap interface. >>>>>> >>>>>> In long term this patch intends to replace the KNI and KNI will be >>>>>> depreciated. >>>>>> >>>>> >>>>> Self-NACK: Will work on another option that does not introduce new >>>>> kernel module. >>>>> >>>> >>>> Hmm, care to elaborate a bit? The second mode of this PMD already was >>>> free of external kernel modules. Do you mean you'll be just removing >>>> mode 1) from the PMD or looking at something completely different? >>>> >>>> Just thinking that tun/tap PMD sounds like a useful thing to have, I >>>> hope you're not abandoning that. >>>> >>> >>> It will be KNI PMD. >>> Plan is to have something like KDP, but with existing KNI kernel module. >>> There will be tun/tap support as fallback. >> >> Hum, now I'm confused. I was under the impression everybody hated KNI >> and wanted to get rid of it, and certainly not build future solutions on >> top of it? >> > > We can't remove it. > We can't replace/improve it -you were one of the major opposition to this.
No no no. There's a misunderstanding somewhere in there. I understand the functionality provided by KNI is important. I'd LOVE to see the it replaced. With something that does not require out-of-tree kernel modules. As long as out-of-tree kernel modules are in the picture, the feature might as well not exist at all for the audience I'm dealing with. To that audience, replacing KNI with out-of-tree KCP/KDP or whatever is just irrelevant, there's no progress being made. I also understand there are lot of users to whom out-of-tree kernel modules are not a problem at all, and I'm in no position to tell them that's somehow wrong. If KCP/KDP is better than KNI for that audience then more power to them. But I dont see why such modules would *have* to be within the dpdk source - as suggested several times around this thread/topic such work could live in a separate repository or such. What I really would like to see is a clear policy regarding kernel modules in DPDK. I certainly am in no position to dictate one, and that's why I've been asking questions and throwing around crazy (or not) ideas around the topic. - Panu -