1 .. SPDX-License-Identifier: CC-BY-4.0
3 =======================
4 Open Source VNF Catalog
5 =======================
8 Mentors: B.Souville, M.Richomme, J.Lausuch
18 +------------+----------+------------------+------------------------+
19 | **Date** | **Ver.** | **Author** | **Comment** |
21 +------------+----------+------------------+------------------------+
22 | 2016-12-12 | 0.0.1 | Morgan Richomme | Beginning of the |
23 | | | (Orange) | Internship |
24 +------------+----------+------------------+------------------------+
31 This project aims to create an Open Source catalog for reference and
32 classification of Virtual Network Functions (VNFs)s available on
33 Internet. The classification method proposed will be in sync with the
34 requirements of Telcos active in NFV landscape. The project aims to have
35 running web platform similar to [1] by the mid of internship (2nd week
36 of March). By the penultimate month of internship I aim to have fully
37 functional implementation of an Open Source VNF in functest.
43 OPNFV aims to be the reference platform for development,
44 standardization and integration of Open Source NFV components across
45 various Open Source Platforms. It mainly deals with the infrastructure
46 through the Network Function Virtualization Infrastructure (NFVI) and
47 Virtual Infrastructure manager (VIM). The MANO (Management and
48 orchestration) stacks have been introduced recently. VNFs are not
49 directly in OPNFV scope, however VNFs are needed to test and qualify the
50 infrastructure. In this regard having a common curated Open Source
51 Reference VNF catalog would be of immense importance to community.
53 Since major focus of OPNFV is Telcos, a curated platform targeted from
54 industry point of view would be very useful. We plan to divide the
55 entire project into three major phases(with some iterative improvements
61 This phase pertains to studying various Open Source VNFs available and
62 classification of them based on certain parameters. The parameters that
63 I currently have in mind are:
65 * Developer Metrics: These pertain to repo characteristics of VNF under
67 * Usage Statistics - Activity, Number of Commits, stars
68 * Maturity Statistics - For instance if an NFV community decides code
69 coverage is important for them, it shows the NFV community is serious
70 about taking the project forward
71 * Technical Tagging: These are the tags that pertain to technical
72 characteristics of a VNF
73 * Broad Use Cases - Whether the VNF fits strictly in IaaS, PaaS or
74 SaaS layer or is an hybrid of two/all.
75 * Generic Use Cases - This in my opinion is the broadest
76 classification category. For instance a VNF could be built with a
77 broad idea of powering IOT devices at home or from usage perspective
78 of Telco Operators (vFW, vEPC, vIMS, vCDN, vAAA, vCPE,...).`[2]`_
79 * Fields of Application
80 * Library Status - Whether APIs are standardized, support RESTful
82 * Dependency Forwarding Graph - This is pretty complex tagging
83 mechanism. It essentially tries to establish a graph relationship
84 between the VNFs (elementary VNFs are used in Service Function
85 Chaining chains such as Firewall, DPI, content enrichment,..). In my
86 opinion this is useful immensely. This will allow users to go to
87 platform and ask a question like - “I have this X tech stack to
88 support, Y and Z are my use cases, which NFVs should I use to support
90 * Visitor Score - Based on `[1]`_ I plan to evolve a visitor score for
91 the platform. This will allow users to score an NFV on certain
92 parameters, may be post comments.
94 **I plan to use the above three scores and evolve cumulative score which
95 will be displayed next to each of the NFV on the platform.**
97 * Platform building phase - This will involve erecting a Web Platform
98 which will be similar to this `[1]`_. I am decently familiar with
99 Django and hence I will write the platform in Django. There are two
100 action plans that I have in mind right now. Either I can start writing
101 the platform simultaneously which will help keep track of my progress
102 or I can write the platform after 1.5 - 2 months into the internship.
103 Either way I aim to have the Web Platform ready by March 12.
104 * Functest VNF implementation phase - This is the last phase that will
105 involve writing a fully functional implementation of an Open Source VNF
106 into Functest. I will undertake this after I am 3 months into the
107 internship. I have a decent familiarity with python and hence I think
108 it shouldn’t be too difficult. I need to decide how complex the VNFI
109 should undertake this exercise for (e.g. AAA such as free radius sounds
110 relatively easy, vCDN is much more challenging).
111 This will be decided in consent with my mentors.
115 I plan to take this project in 6 months time frame as I want to use it
116 as a chance to read more about NFVs in particular and SDN in general
119 +--------------------------+------------------------------------------+
120 | **Date** | **Comment** |
122 +--------------------------+------------------------------------------+
123 | December 12 - January 12 | Study the above mentioned metrics |
124 | | Decide which of them are important for |
125 | | community (and which are not). |
126 +--------------------------+------------------------------------------+
127 | January 12 - January 27 | Make a database for the above studied |
128 | | metrics and evolve it further based on |
129 | | Mentors’ input. + associated API |
130 +--------------------------+------------------------------------------+
131 | January 27 - February 5 | Compile the data collected above and make|
132 | | it public. Although I can keep everything|
133 | | public from the beginning too. My |
134 | | rationale of not making the entire data |
135 | | public in initial stage as the errors |
136 | | caused by me could be misleading for |
138 +--------------------------+------------------------------------------+
139 | February 5 - March 5 | Erect the Web Platform and release it |
140 | | for restricted group for alpha testing. |
141 +--------------------------+------------------------------------------+
142 | March 5 - March 12 | Make it public. Release it to public for |
143 | | beta testing. Fix Bugs. |
144 +--------------------------+------------------------------------------+
145 | March 12 - April 12 | Start working on implementation of an |
146 | | Open Source VNF in Functest. |
147 +--------------------------+------------------------------------------+
148 | April 12 - May 12 | I will decided what to do here based on |
149 | | discussion with mentors. |
150 +--------------------------+------------------------------------------+
156 .. _`[1]` : Openhub: https://www.openhub.net/explore/projects
158 .. _`[2]` : ETSI NFV White Paper: https://portal.etsi.org/Portals/0/TBpages/NFV/Docs/NFV_White_Paper3.pdf
160 .. _`[3]` : https://wiki.opnfv.org/display/DEV/Intern+Project%3A+Open+Source+VNF+catalog