Message transmission method, device and equipment for decoupling control plane and data plane
Through the user-state control plane protocol, the remote routing table is dynamically generated and sent to the data forwarding module through the synchronizer component, the problem of difficulty in issuing remote routing tables in the existing technology is solved, the control plane and data plane are decoupled, and data transmission efficiency and system flexibility are improved.
Patent Information
- Application Number
- CN202411765192.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-03
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2044-12-03
AI Technical Summary
It is difficult for the prior art to send the remote routing table of the data plane to the user-state VPP/OVS/hardware chip to guide data forwarding without large-scale modification of the control plane protocol and the user-plane protocol.
Interact with the kernel's Socket interface through the user-state control plane protocol, dynamically generate remote routing tables, and send them to the data forwarding module through synchronizer components. The data forwarding module forwards service messages based on the remote routing table and synchronizes the learned local routing table entries back to the kernel and control plane protocol.
The control plane and data plane are decoupled, allowing remote routing tables to be issued and data forwarding are guided without changing the control plane protocol and data plane protocol, improving data transmission efficiency and system flexibility.
Smart Images

Figure CN119697087A_ABST
Abstract
Description
Background Art
[0002] For network and security devices, there are usually two ways to implement data plane transmission: hardware chip-based data plane and general server CPU core forwarding.
[0003] Traditional CPU kernel forwarding affects the performance of CPU kernel forwarding due to many factors such as memory copying and process switching. Therefore, pure software acceleration solutions such as DPDK+VPP and DPDK+OVS, as well as data plane acceleration technologies combining software and hardware such as RDMA (Remote Direct Memory Access) have been developed on this basis.
[0004] Traditional user-mode control plane protocols such as FRRouting, Quagga, StrongSwan and other suites all run on the kernel. The user-mode control plane protocol sends and receives protocol messages through the kernel's socket, generates a remote routing table based on the reception and transmission of protocol messages, and sends it to the kernel through the Netlink mechanism. The kernel sends and receives service messages based on the sent remote routing table, and reports the local routing table entries learned when sending and receiving service messages to the user-mode control plane protocol. The user-mode control plane protocol generates a local routing table based on the local routing table entries and publishes it to other remote nodes.
[0005] In the above solution, the forwarding table is sent to the kernel, and the kernel implements data forwarding. Since it involves conversion from the kernel to the network card memory, the data transmission efficiency is low. At present, there are related solutions to implement the data forwarding module outside the kernel. The data forwarding module can be a user-mode VPP / OVS / hardware chip. However, it is quite difficult to send the remote routing table of the data plane to the user-mode VPP / OVS / hardware chip to guide data forwarding. Summary of the invention
[0006] The purpose of this application is to provide a message transmission method with decoupled control plane and data plane, which is used to solve the problem of how to send the remote routing table of the data plane to the user-state VPP / OVS / hardware chip to guide data forwarding without modifying the control plane protocol and the user plane protocol in large quantities.
[0007] In a first aspect, an embodiment of the present application provides a method for transmitting a message with a control plane and a data plane decoupled, the method comprising:
[0008] Interacting with the kernel's Socket interface through a user-mode control plane protocol, transmitting protocol messages via the Socket interface to a data forwarding module outside the kernel, and dynamically generating a remote routing table based on the protocol messages;
[0009] The remote routing table is sent to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module through a synchronizer component outside the kernel;
[0010] The data forwarding module forwards the service message according to the remote routing table, synchronizes the learned local routing table entry to the kernel through the synchronizer component, and synchronizes to the control plane protocol via the kernel.
[0011] The remote routing table is sent to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module through a synchronizer component outside the kernel, including:
[0012] The remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects changes in the remote routing table, a routing change event is automatically generated, where the changes include addition, deletion or update;
[0013] When the routing change event is detected by the synchronizer component, the remote routing table is obtained from the kernel and the data forwarding module interface is called to send the obtained remote routing table to the data forwarding module.
[0014] In some possible embodiments, synchronizing the learned local routing table entry to the kernel through the synchronizer component by the data forwarding module includes:
[0015] When the data forwarding module detects a change in the local routing table entry, a routing table entry change event is automatically generated, where the change includes adding, deleting or updating;
[0016] When the synchronizer component detects a change event of the routing table entry, the local routing table entry is obtained from the data forwarding module and sent to the kernel;
[0017] When the kernel monitors changes in routing table entries, local routing table entries are acquired and sent to the control plane protocol.
[0018] In some possible embodiments, the data forwarding module includes a VPP / OVS user-mode data plane forwarding engine and a network card;
[0019] When the VPP / OVS user-mode data plane forwarding engine receives a protocol message sent by the Socket interface, it sends the protocol message through the network card, and when it receives a protocol message from the network card, it sends it to the Socket interface;
[0020] The VPP / OVS user-mode data plane forwarding engine receives the remote routing table sent by the synchronizer, forwards the service message through the network card according to the remote routing table, and sends the learned local routing table entry to the synchronizer component.
[0021] In some possible embodiments, the data forwarding module includes a driver module of a switching chip and a switching chip;
[0022] When the driver module of the switching chip receives the protocol message sent by the Socket interface, the driver module sends the protocol message through the switching chip, and when the driver module receives the protocol message from the switching chip, the driver module sends the protocol message to the Socket interface;
[0023] The driver module of the switching chip receives the remote routing table sent by the synchronizer, forwards the service message through the switching chip according to the remote routing table, and sends the learned local routing table items to the synchronizer component.
[0024] In some possible embodiments, the remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event is automatically generated, including:
[0025] The remote routing table is sent to the kernel through the first Netlink interface by the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event in the form of a Netlink message is automatically generated.
[0026] In some possible embodiments, when the synchronizer component monitors the routing table entry change event, obtaining the local routing table entry from the data forwarding module and sending it to the kernel includes:
[0027] When the synchronizer component detects a change event of the routing table entry, the synchronizer component obtains the local routing table entry from the data forwarding module and sends the local routing table entry to the kernel through the second Netlink interface.
[0028] When the kernel monitors the change of the routing table item, the local routing table item is obtained and sent to the control plane protocol through the first Netlink interface.
[0029] In a second aspect, an embodiment of the present application provides a message transmission device with decoupled control plane and data plane, including:
[0030] A remote routing table generation module, used for interacting with the kernel's Socket interface through a user-mode control plane protocol, transmitting protocol messages with a data forwarding module via the Socket interface, and dynamically generating a remote routing table according to the protocol messages;
[0031] A remote routing table synchronization module, used to send the remote routing table to the kernel through the control plane protocol, and synchronize the remote routing table to the data forwarding module outside the kernel through a synchronizer component outside the kernel;
[0032] The message forwarding and local routing table synchronization module is used to forward the service message according to the remote routing table through the data forwarding module, synchronize the learned local routing table items to the kernel through the synchronizer component, and synchronize to the control plane protocol via the kernel.
[0033] In some possible embodiments, the remote routing table synchronization unit sends the remote routing table to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module outside the kernel through a synchronizer component outside the kernel, including:
[0034] The remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects changes in the remote routing table, a routing change event is automatically generated, where the changes include addition, deletion or update;
[0035] When the routing change event is detected by the synchronizer component, the remote routing table is obtained from the kernel and the data forwarding module interface is called to send the obtained remote routing table to the data forwarding module.
[0036] In some possible embodiments, the message forwarding and local routing table synchronization unit synchronizes the learned local routing table entry to the kernel through the synchronizer component through the data forwarding module, including:
[0037] When the data forwarding module detects a change in the local routing table entry, a routing table entry change event is automatically generated, where the change includes adding, deleting or updating;
[0038] When the synchronizer component detects a change event of the routing table entry, the local routing table entry is obtained from the data forwarding module and sent to the kernel;
[0039] When the kernel monitors changes in routing table entries, local routing table entries are acquired and sent to the control plane protocol.
[0040] In some possible embodiments, the data forwarding module includes a VPP / OVS user-mode data plane forwarding engine and a network card;
[0041] When the VPP / OVS user-mode data plane forwarding engine receives a protocol message sent by the Socket interface, it sends the protocol message through the network card, and when it receives a protocol message from the network card, it sends it to the Socket interface;
[0042] The VPP / OVS user-mode data plane forwarding engine receives the remote routing table sent by the synchronizer, forwards the service message through the network card according to the remote routing table, and sends the learned local routing table entry to the synchronizer component.
[0043] In some possible embodiments, the data forwarding module includes a driver module of a switching chip and a switching chip;
[0044] When the driver module of the switching chip receives the protocol message sent by the Socket interface, the driver module sends the protocol message through the switching chip, and when the driver module receives the protocol message from the switching chip, the driver module sends the protocol message to the Socket interface;
[0045] The driver module of the switching chip receives the remote routing table sent by the synchronizer, forwards the service message through the switching chip according to the remote routing table, and sends the learned local routing table items to the synchronizer component.
[0046] In some possible embodiments, the remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event is automatically generated, including:
[0047] The remote routing table is sent to the kernel through the first Netlink interface by the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event in the form of a Netlink message is automatically generated.
[0048] In some possible embodiments, when the synchronizer component monitors the routing table entry change event, obtaining the local routing table entry from the data forwarding module and sending it to the kernel includes:
[0049] When the synchronizer component detects a change event of the routing table entry, the synchronizer component obtains the local routing table entry from the data forwarding module and sends the local routing table entry to the kernel through the second Netlink interface.
[0050] When the kernel monitors the change of the routing table item, the local routing table item is obtained and sent to the control plane protocol through the first Netlink interface.
[0051] In the third aspect, another embodiment of the present application also provides a message transmission device with decoupled control plane and data plane, comprising at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute any message transmission method with decoupled control plane and data plane provided in the embodiment of the present application.
[0052] In a fourth aspect, another embodiment of the present application further provides a computer storage medium, wherein the computer storage medium stores a computer program, and the computer program is used to enable a computer to execute any control plane and data plane decoupling message transmission method provided in an embodiment of the present application.
[0053] The embodiment of the present application can realize a loosely coupled product architecture through the synchronizer component. Without changing the control plane protocol component and the data plane component, it can retain the rich protocol characteristics of the control plane protocol suite and the excellent forwarding performance of the data plane component, which is very conducive to product development and iterative upgrades, and can be applied to various products such as switches, routers, cloud network gateways, firewalls, etc. This solves the existing difficulty of sending the remote routing table of the data plane to the user-mode VPP / OVS / hardware chip to guide data forwarding.
[0054] Other features and advantages of the present application will be described in the following description, and partly become apparent from the description, or be understood by practicing the present application. The purpose and other advantages of the present application can be realized and obtained by the structures specifically pointed out in the written description, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0055] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments of the present application will be briefly introduced below. Obviously, the drawings introduced below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0056] Figure 1 It is a schematic diagram of software architecture based on general server CPU core forwarding in related technology;
[0057] Figure 2 Schematic diagram of the solution using user-mode VPP / OVS / hardware chip for the data forwarding module implemented outside the kernel;
[0058] Figure 3 A schematic diagram of a solution for modifying the kernel driver to improve data transmission efficiency;
[0059] Figure 4 A schematic diagram of a method for transmitting a message with decoupling of a control plane and a data plane according to an embodiment of the present application;
[0060] Figure 5 A schematic diagram of a data forwarding module including a VPP / OVS user-mode data plane forwarding engine and a network card according to an embodiment of the present application;
[0061] Figure 6 A schematic diagram of a data forwarding module including a driver module of a switching chip and a switching chip according to an embodiment of the present application;
[0062] Figure 7A structural diagram of a message transmission device with decoupled control plane and data plane according to an embodiment of the present application;
[0063] Figure 8 The present invention is a structural diagram of a message transmission device with decoupled control plane and data plane according to an embodiment of the present application. DETAILED DESCRIPTION
[0064] To further illustrate the technical solution provided by the embodiment of the present application, this is described in detail below in conjunction with the accompanying drawings and specific implementation methods. Although the embodiment of the present application provides the method operation steps as shown in the following embodiments or drawings, more or fewer operation steps may be included in the method based on routine or no creative labor. In the steps where there is no necessary causal relationship logically, the execution order of these steps is not limited to the execution order provided by the embodiment of the present application. The method can be executed in the order of the method shown in the embodiment or drawings or in parallel during the actual processing process or when the control device is executed.
[0065] The relevant technical terms in the embodiments of this application are explained as follows:
[0066] 1) FRRouting (Free Range Routing open source routing suite)
[0067] FRRouting is an open source Internet routing protocol suite that is suitable for Linux and Unix platforms and supports multiple protocols such as IGP (Interior Gateway Protocol) / BGP (Border Gateway Protocol) / multicast / BFD (Bidirectional Forwarding Detection).
[0068] IGP refers to a routing protocol used within an autonomous system;
[0069] BGP is an autonomous system routing protocol running on TCP. BGP is the only protocol used to handle networks as large as the Internet, and is also the only protocol that can properly handle multiple connections between unrelated routing domains.
[0070] The BFD protocol is a network protocol used to detect failures between two forwarding points.
[0071] 2) VPP, open source data plane forwarding engine
[0072] The VPP platform is an extensible framework that provides out-of-the-box production-quality switch / router functionality and is a high-performance packet processing stack that can run on the CPU. The benefits of implementing VPP are its high performance, proven technology, its modularity and flexibility, and its rich feature set.
[0073] 3) OVS (Open v Switch, open source data plane forwarding engine)
[0074] Openvswitch is an excellent open source software switch that supports mainstream switch functions, such as Layer 2 switching, network isolation, QoS, traffic monitoring, etc.
[0075] 4) DPDK (Data Plane Development Kit, data packet acceleration technology)
[0076] DPDK is different from Linux system, which is designed for general purpose. Instead, it focuses on high-performance data packet processing in network applications. Specifically, DPDK applications run in user space and use the data plane library provided by itself to send and receive data packets, bypassing the packet processing process of the Linux kernel protocol stack. It is not a complete product that users can directly build applications on, and does not include tools that need to interact with the control layer (including the kernel and protocol stack).
[0077] 5) Switch, forwarding chip.
[0078] The working basis of the switch chip is the Ethernet packet structure. The Ethernet packet has a fixed format but a variable length. The packet header contains the destination MAC address, source MAC address, information length, etc. The most commonly used Ethernet switches are layer 2 switches, that is, they switch based on the Ethernet MAC address.
[0079] 6) Quagga, open source routing software, supports multiple routing protocols such as ip, ripng, ospfv2, ospfv3 and bgp. Quagga is an open source dynamic routing software based on Zebra that implements RIP, OSPF and BGP. The CLI commands it provides are similar to those of Cisco IOS. You can use quagga to turn a Linux machine into a fully functional router.
[0080] 7) strongSwan, as an open source VPN gateway software, is highly favored for its powerful functions and stable performance. strongSwan is an IPsec-based VPN gateway that supports IKEv1, IKEv2, and EAP protocols. It can be used to establish multiple types of VPN connections, such as site-to-site, host-to-host, and mobile users (Roadwarrior).
[0081] 8) Kernel operating system. The kernel operating system is the core part of most operating systems. It consists of those parts of the operating system that manage memory, files, peripherals, and system resources. The operating system kernel usually runs processes and provides communication between processes.
[0082] 9) OSPF (Open Shortest Path First) is an interior gateway protocol (IGP) used to make routing decisions within a single autonomous system (AS). It is an implementation of a link state routing protocol and is affiliated with the interior gateway protocol IGP, so it operates within the autonomous system. As a control platform technology for VXLAN, it implements functions such as automatic VTEP discovery and mutual notification of host information by exchanging BGP EVPN routes between VTEPs, thereby avoiding unnecessary data traffic flooding.
[0083] For network & security devices, data plane transmission is usually implemented in two ways:
[0084] 1) Data plane based on hardware chips: It has advantages such as high forwarding performance and low energy consumption, but has problems such as multiple compatible models, low driver versatility, and high price. Dedicated network equipment manufacturers usually use hard forwarding to ensure line-speed forwarding capabilities, such as using commercial Switch, P4 and other technologies.
[0085] 2) Forwarding based on general server CPU cores: It has advantages such as good versatility and low cost, but its performance is inferior to that of hardware forwarding. For traditional server manufacturers, maintaining versatility is more important than performance, and they usually tend to use CPU core forwarding.
[0086] like Figure 1 The figure shows a schematic diagram of the software architecture based on general server CPU kernel forwarding in the related technology. Traditional user-mode control plane protocols such as FRRouting and other suites run on the kernel. Traditional user-mode control plane protocols include BGP, VPN, BFD, etc.
[0087] The protocol message is sent and received in the following way: the user-mode control plane protocol sends and receives protocol messages through the kernel's Socket interface, thereby publishing local information and learning remote information;
[0088] The remote routing table is sent as follows: the user-mode control plane protocol learns the remote information, and after the protocol calculation is completed, the final remote routing forwarding table is sent to the kernel forwarding table through Netlink to guide the actual business forwarding;
[0089] The local routing table entry Mac / Arp / Route is reported by notifying the upper-layer user-mode control plane protocol through the Kernel Netlink mechanism. The user-mode control plane protocol generates a local routing table based on the local routing table entry and publishes it to the remote node.
[0090] In the above forwarding based on the general server CPU core, the forwarding table is placed in the core, and the core implements the sending and receiving of business messages. Since the core needs to convert the business message forwarding from the core to the network card memory, the data transmission efficiency is low.
[0091] In order to solve the above problems, it is proposed in the related art to implement a data forwarding module outside the kernel, and the data forwarding module can be a user-mode VPP / OVS / hardware chip.
[0092] like Figure 2 The data forwarding module implemented outside the kernel is shown as adopting the user-mode VPP / OVS / hardware chip solution. Because the user-mode control plane protocol previously only interacted with the kernel to generate a routing table, the original user-mode control plane protocol could not directly interact with the data forwarding module to generate a routing table.
[0093] Therefore, it is necessary to transform the user-state control plane logic, and change the remote routing forwarding table obtained by the control plane from being sent to the kernel to being sent to the data plane forwarding engine in the data forwarding module. The data plane forwarding engine sends and receives business messages based on the remote routing table, and feeds back the learned local routing table entries to the user-state control plane protocol through the notification mechanism. The user-state control plane protocol generates a local routing table based on the local routing table entries it notifies.
[0094] It can be seen that VPP / OVS / Switch and other devices need to be transformed into corresponding message sending and receiving APIs that replace Socket sockets. The user-mode control plane protocol transforms the original standard program based on Socket into a method based on VPP / OVS / Switch message sending and receiving API to send and receive protocol messages, so that the user-mode control plane protocol can send the protocol message to the VPP / OVS / Switch message sending and receiving API, and the VPP / OVS / Switch message sending and receiving API sends the protocol message to the remote end, and VPP / OVS / Switch sends the protocol message received from the remote end to the user-mode control plane protocol through the API. In this way, the forwarding of the protocol message is moved from the kernel mode to the user mode.
[0095] The data forwarding engine in the above VPP / OVS / Switch is used to receive the remote routing table sent by the user-mode control plane protocol, forward the service message according to the remote routing table, and report the learned local routing table entries to the user-mode control plane protocol, thereby moving the forwarding of the service message from the kernel mode to the user mode.
[0096] However, in order to realize the service message forwarding of the data forwarding engine, it involves the delivery of the remote routing table and the reporting of the local routing table. The specific implementation method is as follows:
[0097] The data forwarding engine of VPP / OVS / Switch determines the reporting API interface after the local routing table entry changes, and reports through the reporting API interface. The user-mode control plane protocol transforms the original kernel Netlink logic of perceiving local table entry changes into a reporting API method for perception.
[0098] VPP / OVS / Switch needs to provide APIs for sending / updating / deleting remote routing table entries. After the control plane protocol calculates the remote routing table, it updates the remote routing table entries through these APIs.
[0099] The operating system is divided into kernel state and user state. The kernel state runs the operating system components, and the user state runs the program components that can be written by the user. The above modification transfers the data forwarding function from the kernel state to the user state, which is equivalent to running an application on the operating system to achieve forwarding. However, since the logic of the routing table learning of the user state control plane protocol is to interact with the kernel, if the above forwarding method is to be implemented, only the remote routing table configuration method through commands is supported, and the generation and distribution of dynamic routing tables are not supported.
[0100] like Figure 3The figure shows a solution for modifying the kernel driver to improve data transmission efficiency. The solution is to use the forwarding logic of the switching chip as the driver of the kernel kernel. The user-state control plane protocol uses the kernel socket to send and receive protocol messages through the forwarding logic of the kernel switching chip. The user-state control plane protocol interacts with the forwarding logic of the kernel switching chip to send and receive service messages through the kernel kernel driver. The user-state control plane protocol sends the learned remote routing table to the kernel kernel driver, and the kernel kernel driver reports the learned local routing table items to the user-state control plane protocol.
[0101] The above solution of modifying the kernel driver to improve data transmission efficiency is not suitable for user-mode data plane forwarding engines such as VPP / OVS. A lot of modifications need to be made to the kernel driver to adapt to the logic of different commercial forwarding chips. At the same time, kernel development is also relatively limited in terms of development language, efficiency, and tools. The forwarding logic written to the chip is used as the driver of the Linux kernel, and FRR cannot perceive the change. The only thing required is to adapt the chip forwarding logic to the kernel driver layer. The above solution can only solve the actual physical switching chip method, but is not suitable for user-mode software forwarding such as VPP / OVS.
[0102] It can be seen that no matter which of the above transformation schemes is adopted, the control plane protocol, data forwarding plane protocol, and Kernel will be greatly transformed. The control plane protocol components and data plane protocol components are deeply coupled and cannot work independently, making subsequent upgrades and transformations difficult.
[0103] In view of the problem of how to send the remote routing table of the data plane to the user-mode VPP / OVS / hardware chip to guide data forwarding without modifying the control plane protocol and the user plane protocol in large quantities in the related technology. This application proposes a message transmission method, device and equipment with decoupled control plane and data plane. The key development is to combine the open source control plane protocol with the data forwarding module outside the kernel, so that the protocol message can be sent to FRR, allowing FRR to learn the dynamic routing table and write it to the data forwarding module.
[0104] Other features and advantages of the present application will be described in the following description, and partly become apparent from the description, or be understood by practicing the present application. The purpose and other advantages of the present application can be realized and obtained by the structures specifically pointed out in the written description, claims, and drawings.
[0105] The following is a detailed description of the message transmission method for decoupling the control plane and the data plane in an embodiment of the present application with reference to the accompanying drawings.
[0106] See also Figure 4, is a message transmission method for decoupling the control plane and the data plane according to an embodiment of the present application, the method comprising:
[0107] Step 401, interacting with the Socket interface of the kernel through the control plane protocol in the user state, transmitting protocol messages with a data forwarding module outside the kernel via the Socket interface, and dynamically generating a remote routing table according to the protocol messages;
[0108] The control plane protocol in user state can be but not limited to FRR, specifically BGP / VPN / BFD, etc. The control plane protocol in user state interacts with the Socket interface of the kernel, sends the protocol message to the Socket interface, and receives the protocol message from the Socket interface. The Socket interface of the kernel is connected to the data forwarding module outside the kernel, sends the protocol message to the data forwarding module through the Socket interface of the kernel, and receives the protocol message sent by the data forwarding module. The data forwarding module sends the protocol message to the remote node, and receives the protocol message sent by the remote node. Thus, the control plane protocol in user state interacts with the Socket interface of the kernel, and the protocol message is transmitted via the Socket interface and the data forwarding module outside the kernel. In the transmission process of the above-mentioned protocol message, the control plane protocol directly interacts with the kernel, so there is no need to modify the control plane protocol in large quantities, and because the control plane protocol interacts with the Socket, routing learning can be performed according to the protocol messages sent and received, and a remote routing table can be dynamically generated.
[0109] Step 402, sending the remote routing table to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module through a synchronizer component outside the kernel;
[0110] The embodiment of the present application adds a synchronizer component outside the kernel, and the synchronizer component is connected to the kernel and the data forwarding module, so as to synchronize the remote routing table sent by the control plane protocol to the kernel to the data forwarding module.
[0111] Step 403: forwarding service messages according to the remote routing table through the data forwarding module, synchronizing the learned local routing table entries to the kernel through the synchronizer component, and synchronizing to the control plane protocol via the kernel.
[0112] The embodiment of the present application forwards service messages according to the remote routing table through a data forwarding module outside the kernel, so that the data forwarding module can learn local routing table entries, and the synchronizer component can synchronize the local routing table entries to the kernel, and the kernel synchronizes to the control plane protocol.
[0113] The above data block module is mainly used to implement data forwarding on the data plane, which can be in the form of but not limited to DPDK, hardware switching chip, etc.
[0114] The embodiment of the present application adds a synchronizer component for coordinating the control plane and the data plane. The synchronizer component achieves decoupling of the control plane and the data plane, as well as flexible replacement of the data plane. During the development process, the control plane / data plane components can be independently developed, debugged and integrated.
[0115] In some possible embodiments, the remote routing table is sent to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module outside the kernel through a synchronizer component outside the kernel, including:
[0116] The remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects changes in the remote routing table, a routing change event is automatically generated, where the changes include addition, deletion or update;
[0117] When the routing change event is detected by the synchronizer component, the remote routing table is obtained from the kernel and the data forwarding module interface is called to send the obtained remote routing table to the data forwarding module.
[0118] The synchronizer component in the embodiment of the present application can monitor in real time whether the kernel generates a routing change event, and can also notify the synchronizer component when the kernel generates a routing change event, thereby synchronizing the kernel's remote routing table to the data forwarding module through monitoring.
[0119] In some possible embodiments, synchronizing the learned local routing table entry to the kernel through the synchronizer component by the data forwarding module includes:
[0120] When the data forwarding module detects a change in the local routing table entry, a routing table entry change event is automatically generated, where the change includes adding, deleting or updating;
[0121] When the synchronizer component detects a change event of the routing table entry, the local routing table entry is obtained from the data forwarding module and sent to the kernel;
[0122] When the kernel monitors changes in routing table entries, local routing table entries are acquired and sent to the control plane protocol.
[0123] In the embodiment of the present application, the synchronizer component can monitor in real time whether the data forwarding module generates a route change event, and can also notify the synchronizer component when the data forwarding module generates a route change event, thereby synchronizing the local route table entries of the data forwarding module to the kernel through monitoring.
[0124] In some possible embodiments, the data forwarding module includes a VPP / OVS user-mode data plane forwarding engine and a network card;
[0125] When the VPP / OVS user-mode data plane forwarding engine receives a protocol message sent by the Socket interface, it sends the protocol message through the network card, and when it receives a protocol message from the network card, it sends it to the Socket interface;
[0126] The VPP / OVS user-mode data plane forwarding engine receives the remote routing table sent by the synchronizer, forwards the service message through the network card according to the remote routing table, and sends the learned local routing table entry to the synchronizer component.
[0127] like Figure 5 The data forwarding module is shown as a schematic diagram including a VPP / OVS user-state data plane forwarding engine and a network card. The VPP / OVS user-state data plane forwarding engine is a user-state data plane forwarding engine such as DPDK-VPP and DPDK-OVS. The VPP / OVS user-state data plane forwarding engine forwards service messages through the network card. For the sending and receiving messages of the control protocol, the user-state control plane protocol still interacts with the kernel through the standard socket. The kernel sends the protocol message through the veth / taptun interface, and then sends it back to the VPP / OVS user-state data plane forwarding engine from the network card, or receives the protocol message from the network card and sends it back to the kernel through the veth / taptun interface. For the local routing table items (Arp / mac / routing, etc.) learned by the VPP / OVS user-state data plane forwarding engine, they are sent to the kernel through the synchronizer component through the Netlink mechanism, and the kernel then notifies the control plane protocol through Netlink. There is no modification effect on the control plane protocol in this process. For other forwarding information (Arp / mac / routing, etc.) learned by the control plane protocol, it is sent to the Kernel through Netlink. The synchronizer component senses the generated netlink message and sends the remote routing table to the VPP / OVS user-mode data plane forwarding engine.
[0128] In some possible embodiments, the data forwarding module includes a driver module of a switching chip and a switching chip;
[0129] When the driver module of the switching chip receives the protocol message sent by the Socket interface, the driver module sends the protocol message through the switching chip, and when the driver module receives the protocol message from the switching chip, the driver module sends the protocol message to the Socket interface;
[0130] The driver module of the switching chip receives the remote routing table sent by the synchronizer, forwards the service message through the switching chip according to the remote routing table, and sends the learned local routing table items to the synchronizer component.
[0131] like Figure 6The data forwarding module includes a switching chip driver module and a switching chip schematic diagram. The switching chip driver module forwards service messages through the switching chip. For the control protocol transmission and reception messages, the user-mode control plane protocol still interacts with the kernel through the standard socket. The kernel sends the protocol message through the interface, sends the protocol message back to the switching chip driver module, and then sends it out from the switching chip, or receives the protocol message from the switching chip driver module and sends it back to the kernel through the interface. For the local routing table items (Arp / mac / routing, etc.) learned by the switching chip driver module, the synchronizer component sends them to the kernel through the Netlink mechanism, and the kernel notifies the control plane protocol through Netlink. There is no modification effect on the control plane protocol in this process. For other forwarding information (Arp / mac / routing, etc.) learned by the control plane protocol, they are sent to the kernel through Netlink. The synchronizer component perceives the generated netlink message and sends the remote routing table to the switching chip driver module.
[0132] In some possible embodiments, the remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event is automatically generated, including:
[0133] The remote routing table is sent to the kernel through the first Netlink interface by the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event in the form of a Netlink message is automatically generated.
[0134] In the embodiment of the present application, the remote routing table (Arp / mac / routing, etc.) learned by the control plane protocol is sent to the kernel through the Netlink mechanism. When the kernel detects that the routing table items have changed, it automatically generates a routing change event in the form of a Netlink message. The synchronizer component senses the generated Netlink message, obtains the remote routing table items in the kernel, and sends the forwarding table to the data forwarding module.
[0135] In some possible embodiments, when the synchronizer component monitors the routing table entry change event, obtaining the local routing table entry from the data forwarding module and sending it to the kernel includes:
[0136] When the synchronizer component detects a change event of the routing table entry, the synchronizer component obtains the local routing table entry from the data forwarding module and sends the local routing table entry to the kernel through the second Netlink interface.
[0137] When the kernel monitors the change of the routing table item, the local routing table item is obtained and sent to the control plane protocol through the first Netlink interface.
[0138] In the embodiment of the present application, the local routing table items (Arp / mac / routing, etc.) learned by the data forwarding module are sent to the kernel through the Netlink mechanism via the synchronizer component, and the kernel then notifies the control plane protocol through the Netlink mechanism. The reporting process of the local routing table items has no modification effect on the control plane protocol.
[0139] The embodiments of the present application implement the synchronization of remote routing table items MAC / IP / ARP / MTU / Route / Vxlan, as well as the reporting and synchronization of local BGP EVPN Type2 / 3 / routing, and implement the synchronization of protocol message delivery of IPsec VPN of the Strong Swan protocol. More synchronization functions can be expanded in the future, and more types of forwarding modules can be supported.
[0140] The embodiment of the present application has both a rich network protocol control plane and high-performance data plane forwarding capabilities, and has good scalability, using various types of data plane engines. Through the "synchronizer component" mechanism, the coordination of protocol message receiving / sending directions is realized, and the uploading and downloading of control plane forwarding table items are realized, and the control plane / data plane is completely decoupled, which is conducive to development / maintenance and upgrading.
[0141] Based on the same inventive concept, the embodiment of the present application provides a message transmission device with decoupled control plane and data plane, such as Figure 7 As shown, including:
[0142] A remote routing table generating module 701 is used to interact with the Socket interface of the kernel through a user-mode control plane protocol, transmit protocol messages with a data forwarding module outside the kernel via the Socket interface, and dynamically generate a remote routing table according to the protocol messages;
[0143] A remote routing table synchronization module 702, configured to send the remote routing table to the kernel through the control plane protocol, and synchronize the remote routing table to the data forwarding module through a synchronizer component outside the kernel;
[0144] The message forwarding and local routing table synchronization module 703 is used to forward the service message according to the remote routing table through the data forwarding module, synchronize the learned local routing table items to the kernel through the synchronizer component, and synchronize to the control plane protocol via the kernel.
[0145] In some possible embodiments, the remote routing table synchronization unit sends the remote routing table to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module outside the kernel through a synchronizer component outside the kernel, including:
[0146] The remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects changes in the remote routing table, a routing change event is automatically generated, where the changes include addition, deletion or update;
[0147] When the routing change event is detected by the synchronizer component, the remote routing table is obtained from the kernel and the data forwarding module interface is called to send the obtained remote routing table to the data forwarding module.
[0148] In some possible embodiments, the message forwarding and local routing table synchronization unit synchronizes the learned local routing table entry to the kernel through the synchronizer component through the data forwarding module, including:
[0149] When the data forwarding module detects a change in the local routing table entry, a routing table entry change event is automatically generated, where the change includes adding, deleting or updating;
[0150] When the synchronizer component detects a change event of the routing table entry, the local routing table entry is obtained from the data forwarding module and sent to the kernel;
[0151] When the kernel monitors changes in routing table entries, local routing table entries are acquired and sent to the control plane protocol.
[0152] In some possible embodiments, the data forwarding module includes a VPP / OVS user-mode data plane forwarding engine and a network card;
[0153] When the VPP / OVS user-mode data plane forwarding engine receives a protocol message sent by the Socket interface, it sends the protocol message through the network card, and when it receives a protocol message from the network card, it sends it to the Socket interface;
[0154] The VPP / OVS user-mode data plane forwarding engine receives the remote routing table sent by the synchronizer, forwards the service message through the network card according to the remote routing table, and sends the learned local routing table entry to the synchronizer component.
[0155] In some possible embodiments, the data forwarding module includes a driver module of a switching chip and a switching chip;
[0156] When the driver module of the switching chip receives the protocol message sent by the Socket interface, the driver module sends the protocol message through the switching chip, and when the driver module receives the protocol message from the switching chip, the driver module sends the protocol message to the Socket interface;
[0157] The driver module of the switching chip receives the remote routing table sent by the synchronizer, forwards the service message through the switching chip according to the remote routing table, and sends the learned local routing table items to the synchronizer component.
[0158] In some possible embodiments, the remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event is automatically generated, including:
[0159] The remote routing table is sent to the kernel through the first Netlink interface by the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event in the form of a Netlink message is automatically generated.
[0160] In some possible embodiments, when the synchronizer component monitors the routing table entry change event, obtaining the local routing table entry from the data forwarding module and sending it to the kernel includes:
[0161] When the synchronizer component detects a change event of the routing table entry, the synchronizer component obtains the local routing table entry from the data forwarding module and sends the local routing table entry to the kernel through the second Netlink interface.
[0162] When the kernel monitors the change of the routing table item, the local routing table item is obtained and sent to the control plane protocol through the first Netlink interface.
[0163] After introducing the message transmission method and apparatus with decoupling of the control plane and data plane according to an exemplary embodiment of the present application, next, a message transmission device with decoupling of the control plane and data plane according to another exemplary embodiment of the present application is introduced.
[0164] Those skilled in the art will appreciate that various aspects of the present application may be implemented as a system, method or program product. Therefore, various aspects of the present application may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to as "circuit", "module" or "system" herein.
[0165] In some possible implementations, the message transmission device for decoupling the control plane and the data plane according to the present application may include at least one processor and at least one memory. The memory stores program code, and when the program code is executed by the processor, the processor executes the steps of the message transmission method for decoupling the control plane and the data plane according to various exemplary implementations of the present application described above in this specification.
[0166] Refer to the following Figure 8To describe the message transmission device 180 with decoupled control plane and data plane according to this embodiment of the present application. Figure 8 The message transmission device 180 with decoupled control plane and data plane shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0167] like Figure 8 As shown, the message transmission device 180 with decoupled control plane and data plane is presented in the form of a general electronic device. The components of the message transmission device 180 with decoupled control plane and data plane may include but are not limited to: the at least one processor 181, the at least one memory 182, and a bus 183 connecting different system components (including the memory 182 and the processor 181).
[0168] Bus 183 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a processor, or a local bus using any of a variety of bus architectures.
[0169] The memory 182 may include a readable medium in the form of a volatile memory, such as a random access memory (RAM) 1821 and / or a cache memory 1822 , and may further include a read-only memory (ROM) 1823 .
[0170] The memory 182 may also include a program / utility 1825 having a set (at least one) of program modules 1824, such program modules 1824 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0171] The message transmission device 180 with decoupled control plane and data plane can also communicate with one or more external devices 184 (e.g., keyboard, pointing device, etc.), and can also communicate with one or more devices that enable a user to interact with the message transmission device 180 with decoupled control plane and data plane, and / or communicate with any device (e.g., router, modem, etc.) that enables the message transmission device 180 with decoupled control plane and data plane to communicate with one or more other electronic devices. Such communication can be performed through an input / output (I / O) interface 185. In addition, the message transmission device 180 with decoupled control plane and data plane can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN) and / or public network, such as the Internet) through a network adapter 186. As shown in the figure, the network adapter 186 communicates with other modules of the message transmission device 180 for decoupling the control plane and data plane through a bus 183. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the message transmission device 180 that decouples the control plane and the data plane, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0172] In some possible implementations, various aspects of a method for transmitting a message with decoupled control plane and data plane provided in the present application may also be implemented in the form of a program product, which includes program code. When the program product runs on a computer device, the program code is used to enable the computer device to execute the steps of a method for transmitting a message with decoupled control plane and data plane according to various exemplary implementations of the present application described above in this specification.
[0173] The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0174] The program product for monitoring of the embodiment of the present application can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on an electronic device. However, the program product of the present application is not limited to this. In this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by an instruction execution system, an apparatus or a device or used in combination with it.
[0175] The readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, wherein the readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The readable signal medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0176] The program code embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0177] The program code for performing the operations of the present application can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and also conventional procedural programming languages such as "C" language or similar programming languages. The program code can be executed entirely on the user electronic device, partially on the user device, as an independent software package, partially on the user electronic device and partially on the remote electronic device, or entirely on the remote electronic device or server. In the case of a remote electronic device, the remote electronic device can be connected to the user electronic device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external electronic device (for example, using an Internet service provider to connect through the Internet).
[0178] It should be noted that, although several units or subunits of the device are mentioned in the above detailed description, this division is merely exemplary and not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more units described above can be embodied in one unit. Conversely, the features and functions of one unit described above can be further divided into multiple units to be embodied.
[0179] In addition, although the operations of the method of the present application are described in a specific order in the drawings, this does not require or imply that the operations must be performed in this specific order, or that all the operations shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps.
[0180] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0181] The present application is described with reference to the flowcharts and block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and block diagram, as well as the combination of the processes and boxes in the flowchart and block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and block diagram. Figure 1 Process or multiple processes and boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0182] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 Process or multiple processes and boxes Figure 1 A function specified in one or more boxes.
[0183] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 Process or multiple processes and boxes Figure 1 The steps for the functions specified in one or more boxes.
[0184] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
[0185] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A message transmission method for decoupling a control plane and a data plane, characterized in that: The method comprises: Interacting with the kernel's Socket interface through a user-mode control plane protocol, transmitting protocol messages via the Socket interface to a data forwarding module outside the kernel, and dynamically generating a remote routing table based on the protocol messages; The remote routing table is sent to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module through a synchronizer component outside the kernel; The data forwarding module forwards the service message according to the remote routing table, synchronizes the learned local routing table entry to the kernel through the synchronizer component, and synchronizes to the control plane protocol via the kernel.
2. The method according to claim 1, characterized in that The remote routing table is sent to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module through a synchronizer component outside the kernel, including: The remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects changes in the remote routing table, a routing change event is automatically generated, where the changes include addition, deletion or update; When the routing change event is detected by the synchronizer component, the remote routing table is obtained from the kernel and the data forwarding module interface is called to send the obtained remote routing table to the data forwarding module.
3. The method according to claim 1, characterized in that: The data forwarding module synchronizes the learned local routing table entry to the kernel through the synchronizer component, including: When the data forwarding module detects a change in the local routing table entry, a routing table entry change event is automatically generated, where the change includes adding, deleting or updating; When the synchronizer component detects a change event of the routing table entry, the local routing table entry is obtained from the data forwarding module and sent to the kernel; When the kernel monitors changes in routing table entries, local routing table entries are acquired and sent to the control plane protocol.
4. The method according to claim 1, characterized in that The data forwarding module includes a VPP / OVS user-mode data plane forwarding engine and a network card; When the VPP / OVS user-mode data plane forwarding engine receives a protocol message sent by the Socket interface, it sends the protocol message through the network card, and when it receives a protocol message from the network card, it sends it to the Socket interface; The VPP / OVS user-mode data plane forwarding engine receives the remote routing table sent by the synchronizer, forwards the service message through the network card according to the remote routing table, and sends the learned local routing table entry to the synchronizer component.
5. The method according to claim 1, characterized in that The data forwarding module includes a driver module of a switching chip and a switching chip; When the driver module of the switching chip receives the protocol message sent by the Socket interface, the driver module sends the protocol message through the switching chip, and when the driver module receives the protocol message from the switching chip, the driver module sends the protocol message to the Socket interface; The driver module of the switching chip receives the remote routing table sent by the synchronizer, forwards the service message through the switching chip according to the remote routing table, and sends the learned local routing table items to the synchronizer component.
6. The method according to claim 2, characterized in that The remote routing table is sent to the kernel through the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event is automatically generated, including: The remote routing table is sent to the kernel through the first Netlink interface by the control plane protocol, and when the kernel detects that the remote routing table has changed, a routing change event in the form of a Netlink message is automatically generated.
7. The method according to claim 3, characterized in that When the synchronizer component detects the routing table entry change event, the local routing table entry is obtained from the data forwarding module and sent to the kernel, including: When the synchronizer component detects a change event of the routing table entry, the synchronizer component obtains the local routing table entry from the data forwarding module and sends the local routing table entry to the kernel through the second Netlink interface. When the kernel monitors the change of the routing table item, the local routing table item is obtained and sent to the control plane protocol through the first Netlink interface.
8. A message transmission device with decoupled control plane and data plane, characterized in that: include: A remote routing table generating unit, used for interacting with the Socket interface of the kernel through a user-mode control plane protocol, transmitting protocol messages with a data forwarding module outside the kernel via the Socket interface, and dynamically generating a remote routing table according to the protocol messages; A remote routing table synchronization unit, used to send the remote routing table to the kernel through the control plane protocol, and the kernel synchronizes the remote routing table to the data forwarding module through a synchronizer component outside the kernel; The message forwarding and local routing table synchronization unit is used to forward the service message according to the remote routing table through the data forwarding module, synchronize the learned local routing table items to the kernel through the synchronizer component, and synchronize to the control plane protocol via the kernel.
9. A message transmission device with decoupled control plane and data plane, characterized in that: It comprises at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method as described in any one of claims 1-8.
10. A computer storage medium, characterized in that: The computer storage medium stores a computer program, and the computer program is used to enable a computer to execute the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Method and device for realizing rapid convergence of VPN (Virtual Private Network) route and electronic equipment
CN115333994A
ARP forwarding table synchronization method and system, storage medium and electronic device
CN117118991A
Switching network security capability learning fusion system and method
CN117834194A
Network traffic management method, system and device based on eBPF and medium
CN118921326A
Method and system for processing high speed internet of things message using dual plane structure
KR102144293B1
Cited By
Border gateway communication method and device and border gateway
CN122372482A