diff options
Diffstat (limited to 'docs/gettingstarted/developers/softwarearchitecture.md')
-rw-r--r-- | docs/gettingstarted/developers/softwarearchitecture.md | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/docs/gettingstarted/developers/softwarearchitecture.md b/docs/gettingstarted/developers/softwarearchitecture.md deleted file mode 100644 index a663134cd46..00000000000 --- a/docs/gettingstarted/developers/softwarearchitecture.md +++ /dev/null @@ -1,44 +0,0 @@ -Software Architecture -===================== - -The fd.io vpp implementation is a third-generation vector packet -processing implementation specifically related to US Patent 7,961,636, -as well as earlier work. Note that the Apache-2 license specifically -grants non-exclusive patent licenses; we mention this patent as a point -of historical interest. - -For performance, the vpp dataplane consists of a directed graph of -forwarding nodes which process multiple packets per invocation. This -schema enables a variety of micro-processor optimizations: pipelining -and prefetching to cover dependent read latency, inherent I-cache phase -behavior, vector instructions. Aside from hardware input and hardware -output nodes, the entire forwarding graph is portable code. - -Depending on the scenario at hand, we often spin up multiple worker -threads which process ingress-hashes packets from multiple queues using -identical forwarding graph replicas. - -VPP Layers - Implementation Taxonomy ------------------------------------- - -![image](/_images/VPP_Layering.png) - -- VPP Infra - the VPP infrastructure layer, which contains the core - library source code. This layer performs memory functions, works - with vectors and rings, performs key lookups in hash tables, and - works with timers for dispatching graph nodes. -- VLIB - the vector processing library. The vlib layer also handles - various application management functions: buffer, memory and graph - node management, maintaining and exporting counters, thread - management, packet tracing. Vlib implements the debug CLI (command - line interface). -- VNET - works with VPP\'s networking interface (layers 2, 3, and 4) - performs session and traffic management, and works with devices and - the data control plane. -- Plugins - Contains an increasingly rich set of data-plane plugins, - as noted in the above diagram. -- VPP - the container application linked against all of the above. - -It's important to understand each of these layers in a certain amount of -detail. Much of the implementation is best dealt with at the API level -and otherwise left alone. |