UDPI
UDPI Facts |
Project Lead: Hongjun Ni, @ Intel
Repository: git clone https://gerrit.fd.io/r/UDPI |
Contents
Intro
The UDPI (Universal Deep Packet Inspection) project is a reference framework to build a high performance solution for Deep Packet Inspection, integrated with the general purpose FD.io VPP stack. It leverages industry regex matching library to provide a rich set of features, which can be used in IPS/IDS, Web Firewall and similar applications.
The initial code contributions are from Intel and Travelping.
Overview
Overview of the UDPI reference framework: https://wiki.fd.io/view/File:Reference.png
Project Contact
- Hongjun Ni, @ Intel,
- Jian Gu, @ ZTE,
- Jianghua Shan, @ China Telecom,
- Xingfu Li, @ HuachenTel,
- Shuai Wu, @ Inspur,
- Yuying Xia, @ Yxlink,
- Chenggang Fan, @ Sunyainfo,
- Feng Gao, @ Tencent,
- Zhong Liu, @ China Unicom,
- Yong Zhao, @ Huawei,
- Haiquan Chen, @ QingCloud,
- Jim Thompson, @ Netgate,
- Pengjie Li, @ Alibaba,
Scope
UDPI's main responsibility is to enable communication between northbound interfaces and VPP's management APIs, performing all necessary translations in the background. It is important to note that many features and utilities will be reused from open source projects and tools (e.g. netopeer2, Sysrepo) and will not be a direct part of UDPI. This section is splitted into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of UDPI project and what will be just reused from other projects (or where UDPI relies on other projects).
UDPI project scope:
- Northbound interfaces exposed:
- Netconf from CESNET/Netopeer2
- gNMI northbound interface from sysrepo-gnxi
- Restconf (does not exist yet)
- Translation layer between VPP management and Yang based data structures
- Must support all features of VPP exposed in its APIs in an extensible manner
- Write YANG models for VPP specific features
- Expose APIs to integrate with other open source projects
- Base implementation of all generic southbound interfaces leverage VPP-VAPI
- expose APIs to integrate with SD-WAN control plane, such as SDN Controller.
- expose APIs to integrate with Routing Daemon, such as FRR.
- expose APIs to integrate with IKE protocol, such as strongswan.
- expose APIs to integrate with DPI control plane, such as nDPI.
- expose APIs to integrate with BRAS control plane, such as OpenBRAS.
Out of scope:
- VPP API (VAPI or VOM)
- VAPI: C APIs for VPP, allowing C-based applications to interact with VPP is out of scope of UDPI project and is part of the base VPP project.
- VOM: C++ based API offering storage of networking objects
- Writing yang models for VPP management
- IETF and Openconfig YANG models are used as much as possible
- For missing features, we rely on Honeycomb YANG models
- Compliancy with YANG models, storage of YANG tree
- Provided by sysrepo project and libraries it uses
- Server implementation of northbound interfaces
- Netconf from CESNET/Netopeer2
- gNMI northbound interface from sysrepo-gnxi
- Integration/performance testing
- Complex integration or performance tests are out of scope of UDPI project and are part of CSIT project
- Any other application based on top of UDPI is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io
Releases
UDPI releases are based on VPP version numbers.
20.01 - Current master
Contributing
Contributions must go through code-review before being merged:
git clone https://gerrit.fd.io/r/udpi
Feel free to subscribe to the following mailing lists:
- udpi-dev@lists.fd.io : to be notified about UDPI talks
FAQ
Meeting
UDPI backlog
Backlog can be found in: UDPI's JIRA.
Code quality
There is no current sonar analysis on: https://sonar.fd.io