Sorry, did not mean to highjack this thread, I will start a new one. > On Mar 15, 2018, at 12:48 PM, Stephen Hemminger <step...@networkplumber.org> > wrote: > > On Thu, 15 Mar 2018 17:29:44 +0000 > "Wiles, Keith" <keith.wi...@intel.com> wrote: > >>> On Mar 15, 2018, at 11:19 AM, Stephen Hemminger >>> <step...@networkplumber.org> wrote: >>> >>> On Thu, 15 Mar 2018 16:15:21 +0000 >>> "Melik-Adamyan, Areg" <areg.melik-adam...@intel.com> wrote: >>> >>>> Hello. >>>> >>>> Within Intel, we developed and open-sourced a DPDK based high-level >>>> library and runtime named Network Function Framework for Go (NFF-Go: >>>> https://github.com/intel-go/nff-go) which is intended to simplify packet >>>> processing applications, especially for cloud-native deployment. Based on >>>> DPDK NFF-Go provides higher-level packet processing functions in native Go >>>> alongside with simple, powerful runtime. >>>> NFF-Go library itself is not a set of wrappers over 'C' calls to DPDK as >>>> that would result in poor performance due to the 300-1500 cycles that can >>>> be spent by a context switch. Instead, NFF-Go uses pointers from the DPDK >>>> initialization of the device mbuf structures. It permits copying of packet >>>> data between Go's safe and DPDK/C unsafe memory. NFF-Go works everywhere >>>> where DPDK works. >>>> *Capabilities:* Library provides functions to create packet processing >>>> graph from user-defined or predefined functions. The graph can be >>>> arbitrary but will need to have a single entry point. The user can freely >>>> use both synchronous and asynchronous programming capabilities provided by >>>> Go language. Also, auto-scaling is automatically provided by the built-in >>>> scheduler using cores as needed, and freeing them after use. NFF-Go >>>> provides an alternative development environment for creating network >>>> functions using a smaller number of lines of code compared to DPDK/C >>>> without sacrificing performance. These capabilities make it possible to >>>> implement run-till-completion packet processing model. The library >>>> includes a component called boundary node, which allows consuming packet >>>> data from all types of sources: Ethernet, file, memory buffer, remote >>>> procedure call and then applying the packets to the processing graph which >>>> will be transparently deployed through any cloud orchestration engine. >>>> *Benefit* NFF-Go is based on the DPDK and lowers the entry barrier for >>>> bringing packet processing to less experienced developers and push towards >>>> cloud-native usages. We strongly believe that NFF-Go is complementary to >>>> DPDK. Having a closer link between them should help both projects - it >>>> will ease pickup from one source/repo the needed set of features to be >>>> used, rather than us just providing a disjointed collection of software >>>> projects which are hosted in different places. >>>> >>>> We expect the initial commit to include the following: >>>> >>>> - Low, Asm - low-level C and ASM code for gluing DPDK >>>> >>>> - Packet - a library that provides an abstraction for packet and >>>> tools to manipulate >>>> >>>> - Flow - library to provide an abstraction for packet flows >>>> >>>> - Scheduler - runtime and a scheduler for auto-scaling and >>>> integration with RSS >>>> >>>> - Examples: >>>> >>>> o Forwarding - simple L3 forwarding >>>> >>>> o Firewall - an example of simple ACL based firewall >>>> >>>> o Tutorial - step based tutorial how to use NFF-Go >>>> >>>> o NAT - an example of production grade Network Address Translation >>>> >>>> o AntiDDOS - simple example of AntiDDOS on L3 >>>> >>>> - Automation scripts - helping to build, deploy and test >>>> applications on a single host >>>> >>>> Thanks, >>>> Areg Melik-Adamyan >>>> Engineering Manager >>>> Developer Products Divison >>>> Intel Corporation >>> >>> I am ok with it being on DPDK, but might it make more sense on github or >>> under FD.io? >>> Or is there some legal and/or political reason not to? >> >> There is no legal or political reason is my guess and only because it is >> closely connected to DPDK is the reason. >> >> I know that DPDK TAC and others are not wanting to have a lot of repos in >> DPDK.org for maintains reason and I agree. >> >> I would like to see us use a single GitHub account to house these different >> projects as then we would have a much cleaner one stop shopping for DPDK >> related projects. We have the mirror for DPDK on GitHub >> https://github.com/DPDK and we could easily add all of these projects in >> this organization account as Thomas seems to be the only person attached to >> the account. We could then allow people to move projects to this account >> with the correct permission or restrictions as we see fit and allow other >> (TAC member?) to help manage the account. >> >> It may cost some money at some point, but I have not looked into it more >> then a year. >> >> >> >> Regards, >> Keith >> > > I was thinking more that projects on DPDK should use similar software process. > If you go to another location, you would use their Pull Request and review > model. > If the project is under Intel, they would have the github account; I known > Microsoft has one github for all their projects.
Regards, Keith