Multimodal network SONiC network element control channel construction method and container
By building SONiC network element control channels in a multimodal network and using gRPC control channels and container technology, the problem of SONiC operating system supporting multiple heterogeneous identification systems and network architectures in a multimodal network environment is solved, and multiple implementations are achieved. The adaptation and control of modal networks improves the flexibility and stability of the system.
Patent Information
- Application Number
- CN202411564478.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-05
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2044-11-05
AI Technical Summary
The existing SONiC operating systems are difficult to support and integrate multiple heterogeneous identification systems and network architecture models in multimodal network environments, especially to fail to adapt to non-traditional network modes such as industrial identification networks and mobile-first networks.
By building the SONiC network element control channel in a multimodal network, using gRPC control channel and container, the communication connection between multimodal network element equipment and controller is realized, and the packet forwarding thread and flow table queue update algorithm are used to discover the data packet forwarding thread and flow table queue update algorithm Dynamically obtain network topology and device connectivity, and implement network element proxy functions in the container to solve the problem of forwarding control information flow tables under hardware differences.
It realizes modal adaptation and control in multimodal networks, meets the control requirements of multimodal network element equipment, adapts to the container architecture of SONiC operating system, and has stable container performance.
Smart Images

Figure CN119094443B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of programmable networks, and in particular to a method and a container for constructing a control channel of a multimodal network SONiC network element. Background Art
[0002] Polymorphic Network (PINet), through the new development paradigm of separating the application network technology system from the supporting environment, can support a variety of network types and their services, providing a possible solution for the development of new networks. Multimodal networks support the simultaneous processing of data packets of different protocols, and realize the reception and forwarding of multi-modal data. Due to the customization of traditional switches by switch manufacturers, the entire switch equipment is highly coupled, and the functions that can be realized are limited. White box switches break through the integrated design form of software and hardware bundling of traditional switch equipment, decouple the underlying hardware and upper-layer software operating system, and support software programmability of control plane protocols and hardware programmability of forwarding chips on the data plane. Therefore, in order to promote the development of multimodal networks through white box switches, it is currently necessary to achieve multi-modal coexistence and network control through the programmability of white box switches.
[0003] As an open source white box switch operating system, SONiC uses a microservice architecture to decompose network functions such as forwarding, routing, and access control lists (ACLs) into independent services, each of which can be independently deployed and updated in a Docker container. This design improves the flexibility and maintainability of the system. In a multimodal network, the data plane is responsible for actual data transmission and processing, and is a key part of building an efficient and scalable network infrastructure. The combination of white box switches and the SONiC operating system can provide strong support for building the data plane of a multimodal network.
[0004] Although the SONiC operating system is open source and has a certain degree of programmability, when applied to a multimodal network environment, there are still problems in how to effectively support and integrate multiple heterogeneous identification systems and network architecture models. The native SONiC operating system only supports forwarding control of traditional IPv4 and IPv6 networks, and does not support table configuration of other network modes (such as industrial identification networks, mobile priority networks, etc.), thus failing to adapt to multimodal networks. For this reason, there is an urgent need for a method for multimodal coexistence and control of white box switches equipped with the SONiC operating system for multimodal networks. Summary of the invention
[0005] In view of the deficiencies in the prior art, the object of the present invention is to provide a method and container for constructing a control channel of a multimodal network SONiC network element.
[0006] The object of the present invention is to achieve the following technical solution: a method for constructing a multimodal network SONiC network element control channel, comprising:
[0007] Build a gRPC control channel between multimodal network element devices and controllers to achieve communication connections between multiple multimodal network element devices and controllers;
[0008] Creating a link discovery data packet forwarding thread inside the container and applying a network port queue update algorithm to dynamically obtain the overall network topology and connectivity of the multi-modal network element device;
[0009] Parsing flow table control information from the controller through a control channel, and transferring the flow table control information to a local configuration file through a flow table queue update algorithm;
[0010] The network element proxy function is implemented inside the container, and the proxy configuration is used to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device.
[0011] Furthermore, the construction of a gRPC control channel between the multimodal network element device and the controller includes:
[0012] The server is established through the predefined gRPC service methods in the protocol buffer (ProtoBuf) file p4runtime.proto provided by P4Runtime;
[0013] Implement the communication logic by rewriting the gRPC service method provided in the protocol buffer file p4runtime.proto;
[0014] Configure the corresponding service IP and port before enabling, and keep them consistent with the port enabled by the gRPC service in the SDN controller;
[0015] The service is used to build a channel with the controller to achieve communication connection between multiple programmable network element devices and the controller.
[0016] Furthermore, the gRPC service methods provided in the protocol buffer file p4runtime.proto include Write, Read, SetForwardingPipelineConfig, GetForwardingPipelineConfig, StreamChannel, etc.
[0017] Furthermore, creating a link discovery data packet forwarding thread inside the container and applying a network port queue update algorithm includes:
[0018] Create a packet capture and forwarding thread program inside the container to capture and forward LLDP data packets from the controller to achieve the flow of link discovery data packets;
[0019] Monitor the network element device ports in the container, obtain the change status of the network element device ports, and update the network element device ports in real time;
[0020] By utilizing the capture and forwarding function of the container, the controller can obtain switch device information, the overall network topology, and device connectivity.
[0021] Further, the slave control channel parses the flow table control information from the controller, and transfers the flow table control information to a local configuration file through a flow table queue update algorithm, including:
[0022] Extracting the flow table control information sent by the controller from the container channel, parsing the flow table control information, and obtaining specific table fields and matching information of the table entry;
[0023] Using a queue to store the parsed table entry specific table fields and matching information, and updating the table entry queue through a queue update algorithm, and finally transferring the configuration file;
[0024] The container dump configuration file is formatted according to the flow table name and modality information definition.
[0025] Furthermore, the implementation of the network element proxy function inside the container is specifically as follows:
[0026] Defining a proxy configuration file for the container to obtain proxy network element information;
[0027] Filter the entry control information through the proxy configuration to obtain the target forwarding entry information;
[0028] A proxy service channel is added to the container in the form of a stub, and the table entry control information from the controller is forwarded to the destination device through the proxy service channel.
[0029] The present invention also provides a multimodal network SONiC network element control channel container, including:
[0030] gRPC server module, used to realize the communication connection between multiple programmable network element devices and the controller;
[0031] The neighboring network element discovery module is used to create a link discovery packet forwarding thread inside the container, combined with the network port queue update algorithm, to dynamically obtain the overall network topology and device connectivity;
[0032] The flow table receiving and transferring module is used to parse the flow table control information from the controller and transfer it to the local configuration file through the flow table queue update algorithm;
[0033] The network element proxy function module is used to implement the network element proxy function inside the container, and use the proxy configuration to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device.
[0034] The present invention also provides a switch device, which is installed with a SONiC operating system. A target container is deployed in the SONiC operating system of the device. When the SONiC switch device executes the container, a method for constructing a multimodal network SONiC network element control channel is implemented.
[0035] The present invention also provides an electronic device, comprising a memory and a processor, wherein the memory is coupled to the processor; wherein the memory is used to store program data, and the processor is used to execute the program data to implement a method for constructing a multimodal network SONiC network element control channel.
[0036] The present invention also provides a computer-readable storage medium having a computer program stored thereon, and when the program is executed by a processor, a method for constructing a control channel of a multimodal network SONiC network element is implemented.
[0037] The beneficial effects of the present invention are as follows: the present invention designs a control channel container for programmable switching devices in multimodal networks, solving the problems of modal adaptation and modal control in multimodal networks. The flow table control information from the controller is parsed from the control channel, transferred to the local configuration file through the flow table queue update algorithm, and the network element proxy function is implemented inside the container. The proxy configuration is used to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device. It meets the control requirements of multimodal network element devices, adapts to the SONiC operating system container architecture, and has stable container performance. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described 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.
[0039] Figure 1 An application environment diagram showing a method for constructing a SONiC network element control channel in one embodiment of the present application;
[0040] Figure 2 A schematic diagram of the gRPC server construction process in one embodiment of the present application is shown;
[0041] Figure 3 A schematic diagram of a neighboring network element discovery process in one embodiment of the present application is shown;
[0042] Figure 4 A schematic diagram of a flow table receiving and transferring process in one embodiment of the present application is shown;
[0043] Figure 5 Showing a schematic diagram of the network element proxy function flow in a preferred embodiment of the present application;
[0044] Figure 6 Showing a block diagram of the SONiC network element control channel container structure in one embodiment of the present application;
[0045] Figure 7 Shows the internal structure of a switch device in one embodiment of the present application;
[0046] Figure 8 A schematic diagram of the control channel container function flow in one embodiment of the present application is shown. DETAILED DESCRIPTION
[0047] The specific implementation modes of the present invention are described in detail below with reference to the accompanying drawings.
[0048] like Figure 8 As shown, a method for constructing a multimodal network SONiC network element control channel provided in an embodiment of the present application includes the following steps:
[0049] Build a gRPC control channel between multimodal network element devices and controllers to achieve communication connections between multiple multimodal network element devices and controllers.
[0050] A link discovery data packet forwarding thread is created inside the container, and a network port queue update algorithm is applied to dynamically obtain the overall network topology and the connectivity status of the multimodal network element device.
[0051] The flow table control information from the controller is parsed from the control channel, and the flow table control information is transferred to a local configuration file through a flow table queue update algorithm.
[0052] The network element proxy function is implemented inside the container, and the proxy configuration is used to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device.
[0053] The method provided in this application can be applied to Figure 1 The application environment shown is called a Polymorphic Network (PINet). The network architecture is divided into three key parts: service layer, control layer and data layer.
[0054] The service layer converts various types of services into corresponding network services, and schedules and carries resources and services through the global network view of the control layer.
[0055] The control layer is the decision-making center responsible for managing the routing, policies and behaviors of the network. It supports the coexistence and co-management of multimodal heterogeneous identities such as IP, content, identity and geospatial location. It controls the behavior of the data layer by communicating with multimodal network switching devices. The SDN controller located in the control layer can collect status information from switching devices in the network, obtain network topology and device status, and make decisions to issue control instructions.
[0056] The data layer is the part of the network that actually transmits data. It is composed of multimodal network switching devices. In this example, it represents a white box switch equipped with a SONiC system, which is responsible for the actual data packet transmission and forwarding. The data layer decides how to handle network traffic based on instructions from the control layer. The data layer executes the policies issued by the control layer and forwards data packets in the network according to these policies. Among them, multimodal network element devices use technical means such as full-dimensional definability of the network and standardized network interfaces, combined with multi-core CPUs, programmable ASICs, FPGAs and other dedicated software and hardware platforms, and through flexible deployment, can achieve full-dimensional definability, reconfigurability and programmability of the network, providing equipment support for the multimodal network technology system.
[0057] Under this layered architecture, multimodal networks break through the limitations of the singleness of traditional networks, integrate multiple modal identifiers, improve the programmability and flexibility of the network, and promote the development of new networks.
[0058] In one embodiment, Figure 2 As shown, the construction of the gRPC control channel between the multimodal network element device and the controller includes the following steps:
[0059] The basic communication between the control plane controller and the network element device is implemented through the gRPC server module. The gRPC service is implemented through the P4Runtime protocol. The server implements the communication logic through gRPC service methods such as Write, Read, SetForwardingPipelineConfig, GetForwardingPipelineConfig, and StreamChannel provided in p4runtime.proto.
[0060] In step S210, the container server program configures the corresponding service IP and port before the service is started. The port needs to be consistent with the port opened by the gRPC service in the SDN controller.
[0061] In step S220, the container program reads the table entry and action information of the p4info file, where the p4info file is obtained by the P4 file of the multimodal data packet and table entry action definition compiled by P4 in the controller.
[0062] Step S230, after reading, the container starts the gRPC service through the instance, including various methods defined and implemented by P4Runtime.
[0063] Step S241, after starting the service and establishing a connection with the client controller, read and configure the forwarding pipeline information by executing the method of obtaining / setting the forwarding pipeline configuration.
[0064] Step S242, after completing initialization from S210 to S241, the gRPC service is always in the listening service state.
[0065] In one embodiment, Figure 3 As shown, the link discovery data packet forwarding thread is created inside the container, and the network port queue update algorithm is applied, including:
[0066] A packet capture and forwarding thread program is created inside the container to capture and forward the LLDP data packet from the controller to realize the circulation of the link discovery data packet. The forwarding process is as follows: for SONiC-1 and SONiC-2 devices, when the network element device is correctly connected to the SDN controller, the controller will store the port 0 information opened by SONiC-1 in the LLDP data packet and send it to SONiC-1 through the gRPC service. When the service in the device receives a request containing an LLDP data packet from the controller, it will extract the port information in the request, and forward the LLDP data packet through the port through the corresponding socket according to the extracted port information. At this time, since port 1 of the SONiC-2 device is connected to port 0 of the SONiC-1 device, the pcap thread corresponding to port 1 captures the LLDP data packet sent by port 0 of the SONiC-1 device. In the pcap thread, the program will create a gRPC response message based on the captured data packet, and store the port number corresponding to the current pcap, which is port 1 of the SONiC-2 device in this scenario, in the response message. Finally, the response is sent to the controller through the write method provided by the server. After receiving the LLDP data packet with the SONiC-2 port information, the controller can confirm that the link from port 0 of the SONiC-1 device to port 1 of the SONiC-2 device is connected. Similarly, for the SONiC-2 device, according to the above process, the controller sends an LLDP data packet to its port 1, and eventually receives an LLDP data packet containing port 0 information returned by SONiC-1, thus confirming that the link from port 1 of the SONiC-2 device to port 0 of the SONiC-1 device is connected.
[0067] The network element device ports in the container are monitored, the change status of the network element ports is obtained, and the network element device ports are updated in real time. This process monitors the network element device status through the network port queue update algorithm monitoring thread and applies the network element device network port update queue to dynamically monitor the network element device status; the specific logical process is as follows: at the beginning, the program will read all the network port information of the current network element device, and create a pcap thread of the corresponding network port and cache it in the network port device queue. After initializing the original network port information, the port monitoring thread starts running. When the thread is executed, the program will monitor the port status of the network element device. When the network port of the device changes, the cache queue data is updated.
[0068] The network port queue update algorithm is specifically as follows:
[0069] Algorithm: Network port queue update algorithm
[0070] enter: -Switch port queue
[0071] -pcap thread queue corresponding to the network port
[0072] -Network port open status list
[0073] Output: Updated , ,
[0074] Initialize temporary devices and sort
[0075] Initialization flags Global flags is false
[0076] foreach device in do
[0077] If the device is not Then
[0078] Set Flag Queue Corresponding item false
[0079] Global Set true
[0080] end if
[0081] end for
[0082] if The device remains unchanged then
[0083] return , ,
[0084] end if
[0085] foreach port in the queue do
[0086] Note that the current port and the changed port are , , the new and old states are , , the new thread is
[0087] Update current port
[0088] Update current status
[0089]
[0090] end if
[0091] end
[0092] return , ,
[0093] In one embodiment, Figure 4 As shown, the slave control channel parses the flow table control information from the controller, and transfers the flow table control information to the local configuration file through the flow table queue update algorithm, including the following steps:
[0094] Step S410, obtain the request information sent by the controller from the container channel, parse the request information, and obtain the update information of the flow table in the request. Specifically, the request with control information is filtered according to whether the updates field in the gRPC request points to a table entry.
[0095] Step S420: For a request with table items, the program determines the target multimodal control table that needs to be updated by comparing the update table items with the local cache table items. Then, the control rules are extracted into attribute fields such as tables, fields, actions and paras by parsing table items, matching domains, actions and action parameters, and the cache table item fields of the server are updated at the same time.
[0096] Step S430: Use the flow table cache queue update algorithm to update the parsed flow table into the cache queue to obtain a new control flow table rule.
[0097] Specifically, by initializing and extracting the table name (table), type (type), matching content (match) and other information in the output (output field), after the new flow table request is parsed to the output, the differences between the flow table in the current queue and the output are compared and operated separately. If the flow table configuration rule in the output exists in the queue, no queue operation is performed. If the parsed flow table configuration rule does not exist in the queue, the table name, type, matching content and other field information are compared in turn. If the table does not exist, it indicates a new table, and it is directly queued; if the table exists, the type type is compared. If the type type is different, it indicates the addition and deletion operation of the same table, the corresponding instruction item in the queue is deleted, and the current output is not queued. By adding a flow table cache queue, unified management of the parsed flow table can be achieved, and the parsing and deployment speed of the flow table can be improved while avoiding resource waste.
[0098] The flow table cache queue update algorithm is specifically as follows:
[0099] Algorithm: Flow table cache queue update algorithm
[0100] enter: - Parse output flow table rules
[0101] -Flow table cache queue
[0102] Output: Updated
[0103] Initialize temporary parameters
[0104] Extract parameter information
[0105] foreach table entry in do
[0106] if in then
[0107] continue
[0108] else
[0109] if Same as table entry then
[0110] if Unlike table items, Same then
[0111] Delete an entry from
[0112] else if Different from the table entry then
[0113] Add to to
[0114] else
[0115] Add to to
[0116] end
[0117] end
[0118] end
[0119] return
[0120] Step S440, finally, by defining the flow table transfer format, the changed table entry operation is transferred to the flow table configuration file of the specified path.
[0121] In one embodiment, Figure 5 As shown, the implementation of the network element proxy function inside the container includes:
[0122] The proxy gRPC channel is constructed through the gRPC communication stub provided in P4Runtime. Figure 2 In the process of starting the gRPC server shown in the figure, a new proxy service startup process is added through the added proxy configuration file and the proxy service class. Among them, in the configuration file, by defining the target_flow configuration field, the specified flow table control rules can be filtered to improve the operability of the network element agent. At the same time, the program parses and extracts the proxy information by scanning the proxy configuration file under the specified path, so as to create a gRPC proxy client and establish communication with the gRPC server of the network element device of the target IP. After the network element agent channel is turned on, the network element device with proxy function can be regarded as a proxy client. After the flow table request from the controller reaches the network element agent, it will be forwarded to the specified network element device according to the IP address and port number in the configuration file. The specific steps are as follows:
[0123] In step S510, the controller sends the flow table, and the gRPC client at the controller sends the request to the specified device via POST in the JSON flow table format.
[0124] In step S520, the gRPC service of the program obtains a request from the SDN controller.
[0125] In step S530, the program will perform different execution processes depending on whether the proxy is configured. If the proxy is not configured, the request will be parsed and transferred normally on the current device through S541. If the proxy is configured, the program will filter the required flow table name according to target_flow, and the program will forward the received request to the destination IP address network element device in the configuration file through the proxy channel, reaching step S550.
[0126] Step S541: The flow table control request from the controller will be parsed normally through the flow table transfer program.
[0127] Step S542, after the parsing is completed, the cache queue output configuration file is updated through the flow table, and the flow table rules are deployed through the service component.
[0128] In step S550, the gRPC server in the destination network element device will receive the forwarded request. Since the destination network element device is not configured with a proxy file, the device container only contains one gRPC service. The program will normally process the flow request according to the gRPC request processing method to parse and transfer the flow table in the request.
[0129] In one embodiment, Figure 6As shown, the present application provides a multimodal network SONiC network element control channel container, including: a gRPC server module 610, a neighboring network element discovery module 620, a flow table receiving and transferring module 630, and a network element proxy function module 640, wherein:
[0130] The gRPC server module 610 is used to realize the communication connection between multiple programmable network element devices and the controller.
[0131] The neighboring network element discovery module 620 is used to create a link discovery data packet forwarding thread inside the container, combined with the network port queue update algorithm, so as to dynamically obtain the overall network topology and device connectivity.
[0132] The flow table receiving and transferring module 630 is used to parse the flow table control information from the controller and transfer it to the local configuration file through the flow table queue update algorithm.
[0133] The network element proxy function module 640 is used to implement the network element proxy function inside the container, and uses the proxy configuration to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device.
[0134] The present application also provides a switch device, which is installed with a SONiC operating system. A target container is deployed in the SONiC operating system of the device. When the SONiC switch device executes the container, a method for constructing a multimodal network SONiC network element control channel described in any embodiment is implemented. Its internal structure diagram can be as follows: Figure 7 As shown. The switch device includes a processor, a memory and a network interface connected through a system bus. Among them, the processor of the switch device is used to provide computing and control capabilities. The memory of the switch device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores a SONiC operating system, and the operating system deploys the container proposed by the present invention. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The network interface of the switch device is used to communicate with an external terminal through a network connection. When the program deployed in the switch operating system container is executed by the processor, a control channel of a multimodal network element that communicates with a controller is realized.
[0135] Those skilled in the art will understand that Figure 7 The structure shown in the figure is only a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific switch device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0136] An embodiment of the present application also provides an electronic device, including a memory and a processor, wherein the memory is coupled to the processor; wherein the memory is used to store program data, and the processor is used to execute the program data to implement a method for constructing a multimodal network SONiC network element control channel as described in any embodiment.
[0137] An embodiment of the present application also provides a computer-readable storage medium having a computer program stored thereon, and when the program is executed by a processor, a method for constructing a multimodal network SONiC network element control channel as described in any embodiment is implemented.
[0138] The computer-readable storage medium may be an internal storage unit of any device with data processing capability described in any of the aforementioned embodiments, such as a hard disk or a memory. The computer-readable storage medium may also be any device with data processing capability, such as a plug-in hard disk, a smart media card (SMC), an SD card, a flash card, etc. equipped on the device. Furthermore, the computer-readable storage medium may also include both an internal storage unit of any device with data processing capability and an external storage device. The computer-readable storage medium is used to store the computer program and other programs and data required by any device with data processing capability, and may also be used to temporarily store data that has been output or is to be output.
[0139] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties.
[0140] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The processor involved in each embodiment provided in this application can be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, etc., but is not limited thereto.
[0141] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0142] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A method for constructing a multimodal network SONiC network element control channel, characterized in that: include: Build a gRPC control channel between multimodal network element devices and controllers to achieve communication connections between multiple multimodal network element devices and controllers; Creating a link discovery data packet forwarding thread inside the container and applying a network port queue update algorithm to dynamically obtain the overall network topology and connectivity of the multi-modal network element device; The network port queue update algorithm is specifically as follows: Parsing flow table control information from the controller through a control channel, and transferring the flow table control information to a local configuration file through a flow table queue update algorithm; The flow table queue update algorithm is specifically as follows: end end end return flowsCasheQueue Implement the network element proxy function inside the container, and use the proxy configuration to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device; The implementation of the network element proxy function inside the container is specifically as follows: Defining a proxy configuration file for the container to obtain proxy network element information; Filter the entry control information through the proxy configuration to obtain the target forwarding entry information; A proxy service channel is added to the container in the form of a stub, and the table entry control information from the controller is forwarded to the destination device through the proxy service channel.
2. A method for constructing a multimodal network SONiC network element control channel according to claim 1, characterized in that: The construction of the gRPC control channel between the multimodal network element device and the controller includes: The server is established through the predefined gRPC service method in the protocol buffer file p4runtime.proto provided by P4Runtime; Implement the communication logic by rewriting the gRPC service method provided in the protocol buffer file p4runtime.proto; Configure the corresponding service IP and port before enabling, and keep them consistent with the port enabled by the gRPC service in the SDN controller; The service is used to build a channel with the controller to achieve communication connection between multiple programmable network element devices and the controller.
3. A method for constructing a multimodal network SONiC network element control channel according to claim 2, characterized in that: The gRPC service methods provided in the protocol buffer file p4runtime.proto include writing, reading, setting forwarding pipeline configuration, getting forwarding pipeline configuration, and streaming channel.
4. A method for constructing a multimodal network SONiC network element control channel according to claim 1, characterized in that: The step of creating a link discovery data packet forwarding thread inside the container and applying a network port queue update algorithm includes: Create a packet capture and forwarding thread program inside the container to capture and forward LLDP data packets from the controller to achieve the flow of link discovery data packets; Monitor the network element device ports in the container, obtain the change status of the network element device ports, and update the network element device ports in real time; By utilizing the capture and forwarding function of the container, the controller can obtain switch device information, the overall network topology, and device connectivity.
5. A method for constructing a multimodal network SONiC network element control channel according to claim 1, characterized in that: The slave control channel parses the flow table control information from the controller, and transfers the flow table control information to a local configuration file through a flow table queue update algorithm, including: Extracting the flow table control information sent by the controller from the container channel, parsing the flow table control information, and obtaining specific table fields and matching information of the table entry; Using a queue to store the parsed table entry specific table fields and matching information, and updating the table entry queue through a queue update algorithm, and finally transferring the configuration file; The container dump configuration file is formatted according to the flow table name and modality information definition.
6. A multimodal network SONiC network element control channel container, characterized in that: include: gRPC server module, used to realize the communication connection between multiple programmable network element devices and the controller; The neighboring network element discovery module is used to create a link discovery packet forwarding thread inside the container, combined with the network port queue update algorithm, to dynamically obtain the overall network topology and device connectivity; The network port queue update algorithm is specifically as follows: Algorithm: Network port queue update algorithm Input: DevVector-switch port queue ThreadVector-pcap thread queue corresponding to the network port DevDifferFlags-Network port opening status list Output: Updated DevVector, ThreadVector, DevDifferFlags Initialize temporary devices and sort tmpDevs Initialize the global flag Devchange to false foreach devices in tmpDevs do If the device is not in DevVector then Set the flag queue DevDifferFlags corresponding item to false Set global Devchange to true end if end for If Devchange and the device has not changed then return DevVector,ThreadVector,DevDifferFlags end if The flow table receiving and transferring module is used to parse the flow table control information from the controller and transfer it to the local configuration file through the flow table queue update algorithm; The flow table queue update algorithm is specifically as follows: Add output to flowCasheQueue else Add output to flowCasheQueue end end end return flowsCasheQueue The network element proxy function module is used to implement the network element proxy function inside the container, and use the proxy configuration to solve the control information flow table forwarding problem in the hardware difference scenario in the network element device; The network element proxy function implemented inside the container is specifically as follows: Defining a proxy configuration file for the container to obtain proxy network element information; Filter the entry control information through the proxy configuration to obtain the target forwarding entry information; A proxy service channel is added to the container in the form of a stub, and the table entry control information from the controller is forwarded to the destination device through the proxy service channel.
7. A switch device, installed with a SONiC operating system, wherein a target container is deployed in the SONiC operating system of the device, characterized in that: When the SONiC switch device executes the container, a method for constructing a multimodal network SONiC network element control channel as described in any one of claims 1 to 5 is implemented.
8. An electronic device, comprising a memory and a processor, characterized in that: The memory is coupled to the processor; wherein the memory is used to store program data, and the processor is used to execute the program data to implement a multimodal network SONiC network element control channel construction method as described in any one of claims 1-5.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, a method for constructing a multimodal network SONiC network element control channel as described in any one of claims 1 to 5 is implemented.
Citation Information
Patent Citations
Multi-modal interaction method and device, storage medium and electronic equipment
CN115904083A
Quick and accurate congestion feedback method for lossless data center network
CN117395206A