Implementation system for configurable flow table in programmable switching equipment
By establishing a shared flow table storage resource pool and crossbar module in a programmable switching device, and dynamically configuring and managing logical table unit modules, the problem of solidifying the flow table design of hardware switches is solved, and a high flexibility and configurable flow table design is achieved.
Patent Information
- Application Number
- CN202311257514.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-27
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2043-09-27
AI Technical Summary
In the prior art, the design of the flow table in the hardware switch is hard to meet the diverse network needs, resulting in low flexibility and configurability of the data plane.
A shared flow table storage resource pool is established in a programmable switching device, and the flow table configuration information and table entries are sent under the control plane, and the logical table unit modules are dynamically configured and managed to realize the dynamic configurability of the flow table.
It realizes dynamic and rapid reconfiguration of flow tables, improves the flexibility and configurability of the data plane, reduces waste of storage resources, and reduces resource overhead.
Smart Images

Figure CN119718444A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the use of data communication technology, in particular to programmable switching devices such as FPGA-based programmable switches or ASIC-based programmable switching chips, to the design and management of shared storage units on programmable switching devices, to the design and management of configurable flow tables, and specifically to an implementation system for configurable flow tables in programmable switching devices. Background Art
[0002] In the SDN data plane, the processing of data packets is based on flow tables or match-action tables (MAT). In different stages of the pipeline or in the data planes of different network functions, the type, bit width and depth of the flow table are different. The flow table design in the current hardware switch is fixed, and the flow table specifications need to be configured before the hardware code is compiled and the board is wired, and the related modules can only be parameterized. The single match table (SMT) or multiple fixed match tables (MMT) structure in the traditional data plane is difficult to meet the diverse network requirements, because the size requirements of the match action table may be different in different scenarios. Obviously, the fixed match table design greatly reduces the flexibility and configurability of the data plane. If the action match table of the data plane is not configurable, it means that the flow table needs to be redesigned or the relevant hardware code needs to be modified every time the network function is configured. For FPGA, configuration currently means that every time a network function is modified, the relevant code needs to be modified and the wiring needs to be recompiled, and this process may take several hours; for ASIC, if the flow table cannot be configured, the network function will be limited unless a sufficiently large width or depth is reserved for each table, but this is obviously unreasonable. When the network function or the bit width or depth of the flow table needs to be modified, the corresponding hardware code needs to be modified and recompiled and wired, which greatly reduces the flexibility and configurability of the pipeline. Summary of the invention
[0003] The purpose of the present invention is to propose a system for implementing configurable flow tables in programmable switching devices in response to the demand for dynamic configuration of flow tables in programmable switching devices, which is suitable for switching devices such as FPGA-based programmable switches or ASIC-based programmable switching chips. By establishing and managing a shared flow table storage resource pool on the chip, physical table resource allocation is mapped to different logical tables, so that the flow table in the programmable switching device can be dynamically configured to meet different design requirements and have higher flexibility.
[0004] To achieve the above object, the present invention is implemented through the following technical solutions.
[0005] The present invention proposes a system for implementing a configurable flow table in a programmable switching device, the system comprising: a control plane subsystem and a data plane subsystem; wherein:
[0006] The control plane subsystem is used to send flow table configuration information and flow table entries;
[0007] The data plane subsystem is used to establish a physical table unit module resource pool on a programmable switching device. The physical table unit modules in the resource pool are cascaded to achieve different sizes of logical table unit modules; it is used to configure and update the logical table unit modules according to the issued flow table configuration information and flow table items; it is also used to achieve mapping conversion between logical table unit modules and physical table unit modules by cross-connection.
[0008] As one of the improvements of the above technical solution, the control plane subsystem includes: a flow table configuration module and a flow table entry update module;
[0009] The flow table configuration module is used to send flow table configuration information;
[0010] The flow table entry update module is used to issue the flow table entry after the configuration of the logic table configuration module is completed;
[0011] As one of the improvements of the above technical solution, when the flow table configuration module maps the flow table to different logic table unit modules, multiple logic table units belonging to the same flow table are configured as the width of the flow table, and the depth of the flow table is realized through depth cascading.
[0012] As one of the improvements of the above technical solution, the data plane subsystem includes: a logic table configuration module, a logic table key extraction module, a logic table unit module, a cross bar module, a physical table resource pool module and a resource pool management module; the logic table key extraction module and the logic table unit module are multiple and one-to-one corresponding; wherein,
[0013] The logic table configuration module is used to convert the flow table configuration information into the configuration information of each logic table unit module, and configure the depth and width of each logic table unit module;
[0014] The logic table entry update module is used to map the flow table entry to the logic table unit module;
[0015] The logic table key extraction module is used to generate a search key based on the data packet information in the pipeline;
[0016] The logic table unit module is used to transmit the table entry update signal and the search key to the cross bar module; and is also used to perform relevant operations on the data packets in the pipeline according to the search results returned by the cross bar module;
[0017] The cross bar module is used to select a corresponding connection path according to the configuration information of the logic table unit module to realize the mapping connection between the input and output signals of the logic table unit and the input and output signals of the physical table unit;
[0018] The physical table resource pool module includes a shared flow table storage resource pool composed of multiple physical table unit modules;
[0019] The resource pool management module is used to allocate each logical table unit module to a physical table unit module in the resource pool according to the configuration information of the logical table unit module.
[0020] As one of the improvements of the above technical solution, the processing process of the logic table configuration module includes:
[0021] Check whether the configured flow table size exceeds the configuration capacity of the flow table on the programmable switch:
[0022] When the specifications of a single flow table or the total flow table exceed the limit, a configuration failure signal is returned; otherwise, configuration is performed;
[0023] According to the bit width and depth configuration information of each flow table, and the maximum gear that each logic table unit module can configure, the number of logic table unit modules required to implement each flow table is calculated, and the flow table is mapped to the logic table unit module; and the status of each logic table unit module is marked. The status information includes whether it is used, the flow table it belongs to, and the relative position in all the logic table unit modules of the flow table to which it belongs;
[0024] Configure the width and depth of each logic table unit module; if the maximum resource of a logic table unit module is not enough to implement a flow table, configure the bit widths of multiple adjacent logic table unit modules to the bit width of the flow table, and deeply cascade these logic table unit modules to implement the flow table.
[0025] As one of the improvements of the above technical solution, the width and depth of a single logic table unit module can be dynamically configured; only depth expansion can be performed between different logic table unit modules; and multiple logic table unit modules can be combined to generate a flow table with greater depth.
[0026] As one of the improvements of the above technical solution, each physical table unit module includes an SRAM unit and a TCAM unit; the size of the physical table unit module is pre-set; each physical table unit module is a logic table exclusive physical unit module or a logic table shared physical unit module.
[0027] As one of the improvements of the above technical solution, two adjacent logical table unit modules share a certain number of logical table shared physical unit modules, and the number is pre-configured; when configuring the flow table, the resource pool management module allocates the shared physical table unit module to one of the two logical table unit modules for use as needed; after the configuration is completed, each physical table unit module can only belong to a certain logical table unit module.
[0028] As one of the improvements of the above technical solution, the cross bar module includes an input multiplexer and an output multiplexer;
[0029] Each input signal of each physical table corresponds to an input multiplexer, which realizes the selection and mapping of multiple logic table input signals to physical table input signals; each output signal of each logic table corresponds to an output multiplexer, which realizes the selection and mapping of multiple physical table output signals to logic table output signals;
[0030] The input multiplexer is divided into two types: data selection multiplexer and address selection multiplexer, and the output multiplexer is divided into two types: data OR multiplexer and data AND multiplexer; the data selection multiplexer is used to select and convert the input data signal of the logic table into the input data signal of the corresponding physical table; the address selection multiplexer is used to select and convert the input address signal of the logic table into the input address signal of the corresponding physical table; the data OR multiplexer is used to select or merge the output data signal of the physical table into the output signal of the logic table; the data AND multiplexer is used to perform AND operation on the output data signal of the physical table or merge it into the output signal of the logic table.
[0031] As one of the improvements of the above technical solution, the processing process of the resource pool management module includes: allocating a corresponding physical table unit module to each logical table unit module according to the configuration information of the logical table unit module, outputting the information allocated to each logical table unit module, including: the number of physical table unit modules, the first physical table code, the last physical table unit module code and the gear selected by the logical table, and combining the physical table unit information into the bit width and depth required by the logical table unit information.
[0032] Compared with the prior art, the present invention has the following advantages:
[0033] 1. The present invention realizes a dynamically configurable flow table, realizes the dynamic and rapid reconfiguration of the flow table in the programmable switch, can quickly meet the flow table requirements of different designs, and has higher flexibility;
[0034] 2. By establishing a shared physical table resource pool, the on-chip flow table storage resources can be shared by different flow tables, reducing the waste of storage resources;
[0035] 3. Designing the cross-bar module by partially cross-connecting it reduces resource overhead while achieving storage sharing within the resource pool;
[0036] 4. The storage resource pool is unaware of the logical table or flow table and does not affect the performance of the flow table or pipeline. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] Figure 1 It is the overall framework diagram of the system;
[0038] Figure 2 It is a structural diagram (5 logical table unit modules, 32 physical table unit modules);
[0039] Figure 3 Schematic diagram of the connection relationship between the logical table unit module and the physical table unit module before configuration;
[0040] Figure 4 This is a schematic diagram of the cross bar connection relationship before configuration;
[0041] Figure 5 It is a schematic diagram of the mapping relationship between the flow table and the logic table unit module;
[0042] Figure 6 It is a schematic diagram of the mapping relationship between the configured flow table, logical table unit module and physical table unit module;
[0043] Figure 7 It is a schematic diagram of the connection relationship between the configured logical table unit module and the physical table unit module;
[0044] Figure 8 It is a schematic diagram of the cross bar connection relationship after configuration;
[0045] Fig. 9 It is a schematic diagram of the multiplexer in the crossbar module (2 logical table units, 8 physical table units);
[0046] Figure 10(a) and Figure 10(b) are schematic diagrams of two input multiplexers;
[0047] FIG. 11( a ) and FIG. 11( b ) are schematic diagrams of two output multiplexers. DETAILED DESCRIPTION
[0048] In order to solve the problems existing in the prior art, a configurable flow table design can be implemented in a programmable switching device.
[0049] Specifically, in order to solve the problem of flow table solidification based on programmable switching devices, the present invention proposes and implements a configurable flow table design method in a programmable switching device, which is applicable to switching devices such as FPGA-based programmable switches or ASIC-based programmable switching chips. By establishing a shared flow table storage resource pool with multiple small physical table units on the chip, the physical table units in the resource pool allocate logical tables according to the logical table configuration information, and configure the bit width and depth required for cascading into the logical table, the control plane can change the configuration of the flow table of the data plane at any time or send and update the flow table items, and the data plane can query the logical table and obtain the corresponding data packet processing action.
[0050] The configurable flow table designed in the present invention can dynamically configure the bit width and depth of the action matching table of the data plane to meet the flow table requirements in different network functions; the shared resource pool and cross bar designed and implemented can ensure resource sharing in the resource pool while minimizing the occupancy of on-chip logical resources; the cross bar module designed in the present invention has no impact on the performance of the flow table itself, and the table entry update and search performance of the flow table are related to the physical table used in the resource pool.
[0051] The configurable flow table implemented by the present invention includes a data plane part and a server control plane part, and data is transmitted between the two parts through a PCIe interface. The data plane of the switching device configures the flow table in the switch accordingly according to the configuration information sent by the flow table configuration module in the server control plane; the logic table configuration module maps the flow table to different logic table units according to the size of the flow table, and then configures each logic table unit module accordingly, and instructs the resource pool management module to allocate a corresponding number of physical table unit modules to each logic table module. The cross bar module selects the corresponding connection path according to the configuration information of the logic table unit module and the allocation of the physical table unit module, and logically combines the physical table unit modules into the size and depth required by the logic table unit module. After the configuration is completed, the controller or application of the control plane can issue entries for each flow table, and the data packet in the data plane can query the flow table according to the network design in the pipeline, and perform corresponding operations on the data packet after the match is successful. When updating the table entries of each flow table, the logical table entry update module will map the table entry update signal of the flow table to the logical table unit for writing and updating; when searching for table entries, the logical table key extraction module will generate the required search key according to the data packet information in the pipeline. The cross bar module maps the update or search signal of the logical table to its corresponding physical table unit module to realize the conversion of the input signal; and merges and maps the output signal of each physical table unit module, converts it into the output signal of the logical table unit module and returns it to the pipeline.
[0052] The implementation steps of the flow table configuration module are as follows: when configuring the data plane flow table, the bit width, depth and other parameters of each flow table configured by the upper layer application are sent to the logic table configuration module of the data plane.
[0053] The implementation steps of the flow table entry update module are: during the operation of the data plane, the update entries of the flow table and the corresponding information are sent to the logic table entry update module.
[0054] The implementation steps of the logic table configuration module are as follows: first, check whether the flow table size configured by the controller is reasonable and whether it exceeds the configuration capacity of the flow table on the switch device. When the specifications of a single flow table or the total flow table exceed the limit, a configuration failure signal is returned; otherwise, configuration is performed. According to the bit width and depth configuration information of each flow table, and the maximum gear that each logic table unit module can be configured, the number of logic table unit modules required to implement each flow table is calculated, and the flow table is mapped to the logic table unit module; and the status of each logic table unit module is marked. The status information includes whether it is used, the flow table to which it belongs, and the relative position in all the logic table unit modules of the flow table to which it belongs. Then configure the width and depth of each logic table unit module. If the maximum resources of a logic table unit module are not enough to implement a flow table, the bit widths of multiple adjacent logic table unit modules are configured as the bit width of the flow table, and these logic table unit modules are deeply cascaded to implement the flow table.
[0055] The implementation steps of the logic table entry update module are: according to the flow table entry sent by the control plane and the configuration of each logic table unit module by the logic table configuration module, the table entry is sent to each logic table unit module for updating.
[0056] The implementation steps of the resource pool management module are: allocate a corresponding physical table unit module to each logical table unit module according to the configuration information of the logical table unit module, output the number of physical table unit modules allocated to each logical table unit module, the first physical table code, the last physical table unit module code, the gear selected by the logical table and other information, and combine the physical table unit modules into the bit width and depth required by the logical table unit module.
[0057] The implementation steps of the logic table key extraction module are: extract the relevant information of the data packet to be processed in the pipeline to generate a flow table search key, and pass it to the corresponding logic table unit module for search and matching.
[0058] The implementation steps of the logic table unit module are as follows: manage the logic table unit module accordingly according to the configuration information of the logic table configuration module, transmit the table entry update signal and the table entry search signal to the cross bar module, and perform relevant operations on the data packets in the pipeline according to the search results returned by the cross bar. If a flow table is implemented by cascading multiple logic table unit modules, if the logic table unit module in the front matches successfully, it will execute the corresponding action and pass the matching success signal backward; the logic table unit module in the back does not need to continue to search and match. If the logic table unit module in the front fails to match, the logic table unit module in the back will continue to search and match, and if the match is successful, it will execute the corresponding action.
[0059] The implementation steps of the cross bar module are: select the corresponding connection path according to the configuration information of the logic table unit module, and realize the mapping connection between the input and output signals of the logic table unit module and the input and output signals of the physical table unit module. The cross bar module contains multiple types of multiplexers, which are divided into input multiplexers and output multiplexers. Each input signal of each physical table corresponds to an input multiplexer, which realizes the selection and mapping of multiple logic table unit module input signals to physical table unit module input signals; each output signal of each logic table unit module corresponds to an output multiplexer, which realizes the selection and mapping of multiple physical table unit module output signals to logic table unit module output signals. Input multiplexers are divided into data selection multiplexers and address selection multiplexers, and output multiplexers are divided into data or parallel multiplexers and data and parallel multiplexers. The data selection multiplexer is used to select and convert the input data signal of the logic table unit module into the input data signal of the corresponding physical table unit module; the address selection multiplexer is used to select and convert the input address signal of the logic table unit module into the input address signal of the corresponding physical table unit module; the data OR multiplexer is used to select or merge the output data signal of the physical table unit module into the output signal of the logic table unit module; the data AND multiplexer is used to perform AND operation on the output data signal of the physical table unit module or merge it into the output signal of the logic table unit module.
[0060] The implementation steps of the physical table resource pool module are as follows: it is composed of several small physical table unit modules, each physical table unit module is assigned to the corresponding logical table unit module according to the configuration of the resource management module, and each physical table unit module is subjected to corresponding write operations according to the input signal converted by the cross-bar module, and the output signal of each physical table unit module is output to the cross-bar module for processing.
[0061] The implementation steps of the physical table unit module are as follows: the physical table unit module is a storage resource or a small flow table unit, which realizes the physical storage of data or table items; it mainly includes a small TCAM unit and a small SRAM unit.
[0062] The technical solution of the present invention is described in detail below with reference to the accompanying drawings and embodiments.
[0063] Example 1
[0064] Figure 1 The overall framework design diagram of the system. First, the controller in the control plane on the server sends the flow table configuration information to the switching device data plane through PCIe, and the switching device data plane performs the corresponding flow table configuration and initializes the data in the storage. On the data plane, after receiving the configuration information sent by the controller, the logic table configuration module converts the flow table configuration information into the configuration information of each logic table unit to realize the mapping of the flow table to the logic table. The resource pool management module allocates the corresponding physical table unit module to each logic table unit module according to the configuration of the logic table unit, and generates the corresponding configuration signal to configure the logic table entry update module, the logic table unit module, and the cross bar module and the shared storage resource pool. After the configuration is completed, the control plane can send the table entry to the flow table in the data plane, and the flow table entry is converted by the logic table entry update module and sent to each logic table unit module, and then the input signals of multiple logic table unit modules are selected by the multiplexer in the cross bar module and written into the physical table unit module in the resource pool. When the data plane processes a data packet, in the processing stage corresponding to each flow table, the logical table key extraction module generates a corresponding search key based on the information in the data packet and searches the flow table. The search signal is selected by the input multiplexer in the cross bar module and input into the physical table unit module in the resource pool. Then, the output signal of the physical table unit module is selected by the output multiplexer in the cross bar module and output to the logical table unit module. Other action unit modules in the pipeline can implement corresponding data packet processing actions based on the returned results.
[0065] In the specific implementation manner, an FPGA-based programmable switch is used as an example, and a TCAM and SRAM are used as examples for the flow table unit. These examples are used to illustrate the present invention but are not used to limit the protection scope of the present invention.
[0066] by Figure 2The structure diagram shown is used to describe the example. In the example, the data plane on the FPGA includes five logic table units, supporting up to 5 flow table configurations. There are 32 SRAM physical table units and 32 TCAM physical table units in the resource pool. The bit width of the physical table unit module is 40 bits and the depth is 1K. Each logic table unit module is allocated at least 6 and at most 8 physical table unit modules. Each logic table unit module can be configured into four gears, with the maximum being 40b×8K, 80b×4K, 120b×2K and 160b×2K. The available physical table unit module ranges corresponding to each logic table unit module are [0,8), [6,14), [12,20), [18,26), [24,32). The connection relationship between the logic table unit module and the physical table unit module before configuration is shown in the figure. Figure 3 As shown, the cross bar connection relationship is as follows Figure 4 shown.
[0067] The following is a description of the specific flow table configuration. To simplify the example scenario, the structure of the flow table in the example is TCAM+SRAM. The TCAM first finds the table address, and then takes the corresponding value from the corresponding address of the SRAM. The whole of a TCAM physical table unit plus an SRAM physical table unit is called a physical table unit module. Figure 5As shown in the figure, the upper-layer application configures four flow tables through the control plane, and the specifications of each flow table are 120b×4K, 40b×6K, 160b×1K, and 80b×4K. The control plane sends the configuration information to the logic table configuration module of the FPGA data plane. The logic table configuration module maps the four flow tables to five logic table unit modules. Since the first flow table specification exceeds the storage limit of a logic table unit, the first flow table is mapped to two logic table unit modules. The logic table configuration module configures each logic table unit module, and the configuration signal format is {flow_table_start, flow_table_end, logic_table_width, logic_table_depth}. The configuration signals of the corresponding five logic table units in the example are {1,0,120b,2K}, {0,1,120b,2K}, {1,1,40b,6K}, {1,1,160b,1K}, {1,1,80b,4K}, that is, logic table unit module 0 and logic table unit module 1 implement flow table 0 through deep cascading, logic table unit module 2 is configured to implement flow table 1, logic table unit module 3 is configured to implement flow table 2, and logic table unit module 4 is configured to implement flow table 3. The resource pool management module allocates resources in the resource pool according to the configuration information of the logical table configuration module. The physical table unit module number assigned to the logical table unit module 0 is [0,6), the physical table unit module number assigned to the logical table unit module 1 is [6,12), the physical table unit module number assigned to the logical table unit module 2 is [12,18), the physical table unit module number assigned to the logical table unit module 3 is [18,22), and the physical table unit module number assigned to the logical table unit module 4 is [24,32). Physical table unit modules 22 and 23 are idle and have not been allocated. Figure 6 As shown, the physical table unit modules allocated to each logical table unit module in the resource pool are organized to implement the corresponding configuration of the logical table unit module and are mapped to the corresponding flow table. Figure 7 The schematic diagram of the connection relationship between the logical table unit module and the physical table unit module after configuration is as follows: Figure 8 shown.
[0068] like Fig. 9As shown in Figure 1, the crossbar is composed of multiple multiplexers, including two types of input multiplexers and two types of output multiplexers. As shown in Figure 10(a) and Figure 10(b), they are schematic diagrams of two types of input multiplexers; as shown in Figure 11(a) and Figure 11(b), they are schematic diagrams of two types of output multiplexers. After completing the flow table configuration, the upper-layer application can issue entries to each flow table. For the entries issued to flow table 0, if the address range is 0~2K, it will be sent to the logic table unit module 0 after being processed by the logic table entry update module; if the address range of the issued entry is 2K~4K, it will be sent to the logic table unit module 1 after being processed by the logic table entry update module. Taking an entry with an address of 1023 as an example, the bit width of flow table 0 is 120 bits, which is implemented by the cascade of the bit widths of three physical table unit modules in the resource pool. First, the address signal and the write enable signal are combined and then passed through the address selection multiplexer module to select the physical table unit modules 0, 1 and 2 for update operation, while the three physical table unit modules 3, 4 and 5 are not updated; the table entry data input signal passes through three data selection multiplexers respectively, and each multiplexer takes out the corresponding 40-bit wide table entry data input signal for the corresponding physical table unit module.
[0069] During the data packet processing, the logic table key extraction module generates the corresponding search key according to the information in the data packet and searches the flow table. Taking the search and matching process of flow table 0 as an example, the search key key of the logic table unit module 0 searches the six physical table unit modules in parallel after passing through the data selection multiplexers of the six physical table unit modules; after each physical table unit module outputs its own matching information, the output signals of the six physical unit modules are operated through the data and parallel multiplexer (TCAM) module or the data or parallel multiplexer (SRAM) to obtain the matching result A, which is returned to the logic table unit module 0. The action processing unit of the pipeline stage where the logic table unit module 0 is located performs the action indicated by the search and matching result on the data packet. If the logic table unit module 0 matches successfully, the signal of Hit=1 is transmitted to the logic table unit module 1, and the matching search and action processing of the data packet are no longer performed in the logic table unit module 1; if the logic table unit module 0 matches unsuccessfully, the signal of Hit=0 is transmitted to the logic table unit module 1, and the matching search and action processing of the data packet continue in the logic table unit module 1.
[0070] Each flow table and each logic table unit module can work simultaneously, and the entire data plane adopts pipeline mode to process data packets.
[0071] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit the present invention. Although the present invention is described in detail with reference to the embodiments, it should be understood by those skilled in the art that any modification or equivalent replacement of the technical solutions of the present invention does not depart from the spirit and scope of the technical solutions of the present invention and should be included in the scope of the claims of the present invention.
Claims
1. A system for implementing a configurable flow table in a programmable switching device, characterized in that: The system comprises: a control plane subsystem and a data plane subsystem; wherein, The control plane subsystem is used to send flow table configuration information and flow table entries; The data plane subsystem is used to establish a physical table unit module resource pool on a programmable switching device. The physical table unit modules in the resource pool are cascaded to achieve different sizes of logical table unit modules; it is used to configure and update the logical table unit modules according to the issued flow table configuration information and flow table items; it is also used to achieve mapping conversion between logical table unit modules and physical table unit modules by cross-connection.
2. The system for implementing a configurable flow table in a programmable switching device according to claim 1, characterized in that: The control plane subsystem includes: a flow table configuration module and a flow table entry update module; The flow table configuration module is used to send flow table configuration information; The flow table entry updating module is used to issue the flow table entry after the configuration of the logic table configuration module is completed.
3. The system for implementing a configurable flow table in a programmable switching device according to claim 2, characterized in that: When the flow table configuration module maps the flow table to different logic table unit modules, multiple logic table units belonging to the same flow table are configured as the width of the flow table, and the depth of the flow table is realized through depth cascading.
4. The system for implementing a configurable flow table in a programmable switching device according to claim 1, characterized in that: The data plane subsystem includes: a logic table configuration module, a logic table key extraction module, a logic table unit module, a cross bar module, a physical table resource pool module and a resource pool management module; the logic table key extraction module and the logic table unit module are multiple and correspond one to one; wherein, The logic table configuration module is used to convert the flow table configuration information into the configuration information of each logic table unit module, and configure the depth and width of each logic table unit module; The logic table entry update module is used to map the flow table entry to the logic table unit module; The logic table key extraction module is used to generate a search key based on the data packet information in the pipeline; The logic table unit module is used to transmit the table entry update signal and the search key to the cross bar module; and is also used to perform relevant operations on the data packets in the pipeline according to the search results returned by the cross bar module; The cross bar module is used to select a corresponding connection path according to the configuration information of the logic table unit module to realize the mapping connection between the input and output signals of the logic table unit and the input and output signals of the physical table unit; The physical table resource pool module includes a shared flow table storage resource pool composed of multiple physical table unit modules; The resource pool management module is used to allocate each logical table unit module to a physical table unit module in the resource pool according to the configuration information of the logical table unit module.
5. The system for implementing a configurable flow table in a programmable switching device according to claim 4, characterized in that: The processing of the logic table configuration module includes: Check whether the configured flow table size exceeds the configuration capacity of the flow table on the programmable switch: When the specifications of a single flow table or the total flow table exceed the limit, a configuration failure signal is returned; otherwise, configuration is performed; According to the bit width and depth configuration information of each flow table, and the maximum gear that each logic table unit module can configure, the number of logic table unit modules required to implement each flow table is calculated, and the flow table is mapped to the logic table unit module; and the status of each logic table unit module is marked. The status information includes whether it is used, the flow table it belongs to, and the relative position in all the logic table unit modules of the flow table to which it belongs; Configure the width and depth of each logic table unit module; if the maximum resource of a logic table unit module is not enough to implement a flow table, configure the bit widths of multiple adjacent logic table unit modules to the bit width of the flow table, and deeply cascade these logic table unit modules to implement the flow table.
6. The system for implementing a configurable flow table in a programmable switching device according to claim 4, characterized in that: The width and depth of a single logic table unit module can be dynamically configured; different logic table unit modules can only be expanded in depth; multiple logic table unit modules are combined to generate a flow table with greater depth.
7. The system for implementing a configurable flow table in a programmable switching device according to claim 4, characterized in that: Each physical table unit module includes an SRAM unit and a TCAM unit; the size of the physical table unit module is preset; each physical table unit module is a physical unit module exclusive to the logic table or a physical unit module shared by the logic table.
8. The system for implementing a configurable flow table in a programmable switching device according to claim 7, characterized in that: A certain number of logical table shared physical unit modules are shared by two adjacent logical table unit modules, and the number is pre-configured; when configuring the flow table, the resource pool management module allocates the shared physical table unit module to one of the two logical table unit modules for use as needed; after the configuration is completed, each physical table unit module can only belong to a certain logical table unit module.
9. The system for implementing a configurable flow table in a programmable switching device according to claim 4, characterized in that: The crossbar module includes an input multiplexer and an output multiplexer; Each input signal of each physical table corresponds to an input multiplexer, which realizes the selection and mapping of multiple logic table input signals to physical table input signals; each output signal of each logic table corresponds to an output multiplexer, which realizes the selection and mapping of multiple physical table output signals to logic table output signals; The input multiplexer is divided into two types: data selection multiplexer and address selection multiplexer, and the output multiplexer is divided into two types: data OR multiplexer and data AND multiplexer; the data selection multiplexer is used to select and convert the input data signal of the logic table into the input data signal of the corresponding physical table; the address selection multiplexer is used to select and convert the input address signal of the logic table into the input address signal of the corresponding physical table; the data OR multiplexer is used to select or merge the output data signal of the physical table into the output signal of the logic table; the data AND multiplexer is used to perform AND operation on the output data signal of the physical table or merge it into the output signal of the logic table.
10. The system for implementing a configurable flow table in a programmable switching device according to claim 4, characterized in that: The processing process of the resource pool management module includes: allocating a corresponding physical table unit module to each logical table unit module according to the configuration information of the logical table unit module, outputting the information allocated to each logical table unit module, including: the number of physical table unit modules, the first physical table code, the last physical table unit module code and the gear selected by the logical table, and combining the physical table unit information into the bit width and depth required by the logical table unit information.
Citation Information
Patent Citations
Flow table behavior configuration method and device, electronic equipment and storage medium
CN115865842A
Implementing FIFOs in shared memory using linked lists and interleaved linked lists
US20060031643A1
Video processing hardware
WO1994010624A1