SDN Vendor Extensions for Custom Packet Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current SDN standard-based implementations face challenges in efficiently meeting changing customer needs without deviating from existing standards, particularly in customizing packet processing models, which requires significant modifications and delays due to dependency on switch operator/vendor timelines.
Innovation Solution
The implementation of vendor extensions in SDN systems using a software development kit (SDK) allows independent application vendors to dynamically load proprietary extensions on switches, enabling real-time updates without impacting traffic and decoupling from switch operator/vendor release timelines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If standard-based SDN implementation is used, then compatibility with existing SDN standards is maintained, but ability to meet changing customer needs efficiently is reduced
Solution Approach 1:
The patent segments the SDN system into standard components and vendor-specific extension components. The vendor extension mechanism allows custom packet processing logic to be separated from the standard SDN protocol stack, enabling independent development and deployment of customized functions without modifying the core standard implementation.
Solution Approach 2:
The vendor extension acts as an intermediary layer between the standard SDN protocol and custom customer requirements. It provides a mediation mechanism that translates standard SDN operations into vendor-specific customizations, allowing the system to maintain standard compatibility while fulfilling specialized customer needs.
2Productivity
If custom packet processing models are implemented through vendor extensions, then deployment speed and efficiency are improved, but dependency on switch operator/vendor timelines is reduced
Solution Approach 1:
The vendor extension mechanism allows application vendors to prepare and load custom packet processing logic in advance, independent of switch vendor release cycles. The extensions can be developed, tested, and deployed separately, eliminating the need to wait for integrated vendor releases and significantly reducing deployment time.
Solution Approach 2:
The system enables dynamic loading and updating of vendor extensions at runtime, allowing custom packet processing models to be deployed and modified without requiring switch operator/vendor synchronization. This dynamic capability transforms the previously static, timeline-dependent deployment process into a flexible, on-demand update mechanism.
3Adaptability or versatility
If vendor extensions are loaded dynamically, then real-time updates without traffic impact are achieved, but system flexibility is improved
Solution Approach 1:
The system implements a cushioning mechanism by maintaining the standard packet processing path as a fallback while vendor extensions are being loaded or executed. This ensures that if extension loading fails or causes issues, traffic continuity is preserved through the standard path, preventing service disruption while still enabling flexible updates.
Data Source
Figure 1
Figure 2A~2B
Figure 3A~3C
AI summary
Methods for packet forwarding using vendor extension in a software-defined networking (SDN) system are disclosed. In one embodiment, a method is implemented in an electronic device in a SDN system, where the electronic device serves as a network element. The method includes receiving (502) a packet for forwarding, and determining (504) that the packet matches a flow table entry of a flow table in the network element. The method continues with performing (506) operations on the packet based one or more instructions of the flow table entry, where the one or more instructions contains an experimenter that matches a vendor extension identifier of a vendor extension table of the network element. Additionally, each vendor extension identifier of the vendor extension table identifies a set of function pointers for a set of functions, and the operations include execution of one or more of the set of functions.