System for implementing configurable flow tables in a programmable switching device

CN119718444BActive Publication Date: 2025-11-25INST OF ACOUSTICS CHINESE ACAD OF SCI +3
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311257514.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-09-27
Publication Date
2025-11-25
Estimated Expiration
2043-09-27

Smart Images

  • Figure CN119718444B_ABST
    Figure CN119718444B_ABST
Patent Text Reader

Abstract

The application relates to a system for implementing a configurable flow table in a programmable switching device, comprising a flow table configuration module, a flow table entry updating module, a logical table configuration module, a logical table entry updating module, a logical table key extraction module, a logical table unit module, a resource pool management module, a crossbar module and a physical table resource pool module. The flow table configuration module maps the flow table to the logical table unit module, and the logical table configuration module maps the logical table unit module to the physical table unit module; the flow table configuration module dynamically configures the width and depth of the flow table, and the logical table configuration module dynamically configures the depth and width of each logical table unit module; the number of physical table unit modules in the resource pool that can be occupied by each logical table unit module has a maximum limit; each logical table unit module can be configured within a supported gear range; the crossbar module adopts partial cross connection; and the physical table unit modules of adjacent logical table unit modules in the resource pool can be partially shared.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application 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 memory units on programmable switching devices, to the design and management of configurable flow table design, and in particular to a system for implementing a configurable flow table in a programmable switching device. BACKGROUND

[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 different network function data planes, the types, bit widths and depths of the flow tables are different. The flow table design in current hardware switches is fixed, and the flow table specifications need to be configured before the hardware code is compiled and the board is wired. The related modules can only be parameterized. The single match table (SMT) or multiple fixed match table (MMT) structure in the traditional data plane cannot meet the diverse network requirements, because the size of the match-action table may not be the same 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 related hardware code needs to be modified every time the network function is configured. For FPGAs, configuration means that every time the network function is modified, the related code needs to be recompiled and wired, which may take several hours; for ASICs, if the flow table cannot be configured, the network function will be limited, unless a large enough width or depth is reserved for each table, which 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, which greatly reduces the flexibility and configurability of the pipeline. SUMMARY

[0003] The present application aims to meet the demand for dynamic configuration of flow tables in programmable switching devices, and proposes a system for implementing a configurable flow table in a programmable switching device, which is suitable for switching devices such as FPGA-based programmable switches or ASIC-based programmable switching chips. By establishing a shared flow table storage resource pool on the chip and managing it, the physical table resources are allocated and 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 be more flexible.

[0004] To achieve the above-mentioned purpose, the present application realizes the technical scheme as follows.

[0005] The application provides a system for implementing a configurable flow table in a programmable switching device, comprising a control plane subsystem and a data plane subsystem, wherein,

[0006] The control plane subsystem is configured to issue flow table configuration information and flow table entries.

[0007] The data plane subsystem is configured to establish a physical table unit module resource pool on the programmable switching device, the physical table unit modules in the resource pool are combined in cascade to realize different sizes of logical table unit modules, configured and updated according to the issued flow table configuration information and flow table entries, and further configured to realize mapping and conversion between the logical table unit modules and the physical table unit modules in a cross-connection manner.

[0008] As one of the improvements of the above technical solution, the control plane subsystem comprises a flow table configuration module and a flow table entry update module.

[0009] The flow table configuration module is configured to issue flow table configuration information.

[0010] The flow table entry update module is configured to issue flow table entries after the configuration of the logical 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 logical table unit modules, the multiple logical table unit modules belonging to the same flow table are configured as the width of the flow table, and the depth of the flow table is realized by deep cascade.

[0012] As one of the improvements of the above technical solution, the data plane subsystem comprises a logical table configuration module, a logical table key extraction module, a logical table unit module, a cross-bar module, a physical table resource pool module and a resource pool management module, the logical table key extraction module and the logical table unit module are multiple and one-to-one corresponding, wherein,

[0013] The logical table configuration module is configured to convert the flow table configuration information into the configuration information of each logical table unit module, and configure the depth and width of each logical table unit module.

[0014] The logical table entry update module is configured to map the flow table entries to the logical table unit modules.

[0015] The logical table key extraction module is configured to generate a lookup key according to the packet information in the pipeline.

[0016] The logical table unit module is configured to transmit the entry update signal and the lookup key to the cross-bar module, and further configured to perform relevant operations on the packets in the pipeline according to the lookup result returned by the cross-bar module.

[0017] The crossbar module is configured to select corresponding connection paths according to configuration information of the logical table unit module, and realize mapping connection of logical table unit input and output signals and physical table unit input and output signals.

[0018] The physical table resource pool module includes a shared flow table storage resource pool composed of a plurality of physical table unit modules.

[0019] The resource pool management module is configured to allocate each logical table unit module to a physical table unit module in the resource pool according to configuration information of the logical table unit module.

[0020] As one of the improvements of the above technical solutions, the processing procedure of the logical table configuration module includes:

[0021] Check whether the size of the configured flow table exceeds the configuration capability of the flow table on the programmable switch:

[0022] When the size of the single flow table or the total flow table exceeds the limit, a configuration failure signal is returned; otherwise, the configuration is performed.

[0023] According to the bit width, depth configuration information of each flow table, and the maximum gear that each logical table unit module can configure, the number of logical table unit modules required to realize each flow table is calculated, the flow table is mapped to the logical table unit module, and the state of each logical table unit module is marked. The state information includes whether it is used, the belonging flow table, and the relative position in the whole logical table unit module of the belonging flow table.

[0024] The width and depth of each logical table unit module are configured. If the maximum resource of a logical table unit module is insufficient to realize a flow table, the bit width of multiple adjacent logical table unit modules is configured as the bit width of the flow table, and the logical table unit modules are depth concatenated to realize the flow table.

[0025] As one of the improvements of the above technical solutions, the width and depth of a single logical table unit module can be dynamically configured. Depth expansion can only be performed between different logical table unit modules. Multiple logical table unit modules can be combined to generate a larger depth flow table.

[0026] As one of the improvements of the above technical solutions, 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 logical table dedicated physical unit module or a logical table shared physical unit module.

[0027] As one of the improvements of the above technical solutions, 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 the flow table is configured, the shared physical table unit modules are allocated to one of the two logical table unit modules for use by the resource pool management module according to the needs; 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 solutions, the crossbar 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 logical table input signals to physical table input signals; each output signal of each logical table corresponds to an output multiplexer, which realizes the selection and mapping of multiple physical table output signals to logical table output signals.

[0030] The input multiplexer is divided into a data selection multiplexer and an address selection multiplexer, and the output multiplexer is divided into a data or multiplexer and a data and multiplexer; the data selection multiplexer is used to select and convert the input data signal of the logical 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 logical table into the input address signal of the corresponding physical table; the data or multiplexer is used to select or combine the output data signal of the physical table into the output signal of the logical table; and the data and multiplexer is used to perform an AND operation or combine the output data signal of the physical table into the output signal of the logical table.

[0031] As one of the improvements of the above technical solutions, 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 application has the following advantages:

[0033] 1. The present application realizes a dynamically configurable flow table, realizes the dynamic and rapid reconfiguration of the flow table in a 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 flow table storage resources on the chip can be shared by different flow tables, reducing the waste of storage resources.

[0035] 3. The crossbar module is designed by partial cross connection, which reduces resource consumption while realizing storage sharing in resource pool;

[0036] 4. The storage resource pool is not aware of the logical table or flow table, and does not affect the performance of the flow table or flow pipeline. BRIEF DESCRIPTION OF DRAWINGS

[0037] Figure 1 is a system overall framework diagram;

[0038] Figure 2 is a structural schematic diagram (5 logical table unit modules, 32 physical table unit modules);

[0039] Figure 3 The connection relationship between the logical table unit module and the physical table unit module before configuration is shown in the schematic diagram.

[0040] Figure 4 is a crossbar connection relationship schematic diagram before configuration;

[0041] Figure 5 is a flow table and logical table unit module mapping relationship schematic diagram;

[0042] Figure 6 is a flow table, logical table unit module and physical table unit module mapping relationship schematic diagram after configuration;

[0043] Figure 7 is a logical table unit module and physical table unit module connection relationship schematic diagram after configuration;

[0044] Figure 8 is a crossbar connection relationship schematic diagram after configuration;

[0045] Figure 9 is a multiplexer schematic diagram in the crossbar module (2 logical table units, 8 physical table units);

[0046] Fig. 10(a) and Fig. 10(b) are two input multiplexer schematic diagrams;

[0047] Fig. 11(a) and Fig. 11(b) are two output multiplexer schematic diagrams. 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 device, the application proposes and implements a configurable flow table design method in programmable switching device, which is suitable for programmable switch based on FPGA or programmable switching chip based on ASIC and other switching devices. 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 are allocated to the logical table according to the logical table configuration information, and the bit width and depth required for cascading into the logical table are configured. The control plane can change the configuration of the flow table of the data plane or update the flow table entry at any time, and the data plane can query the logical table and obtain the corresponding data packet processing action.

[0050] The configurable flow table designed by the application can dynamically configure the bit width and depth of the action matching table of the data plane, meet the flow table requirements in different network functions, the shared resource pool and crossbar implemented by the application can guarantee resource sharing in the resource pool while minimizing the occupation of on-chip logical resources, and the crossbar module designed by the application does not bring any influence to the performance of the flow table itself, and the performance of the entry update and lookup of the flow table is related to the physical table in the resource pool.

[0051] The configurable flow table implemented by the application includes a data plane part and a server control plane part, and the two parts are connected through a PCIe interface for data transmission. The data plane of the switching device configures the flow table in the switch according to the configuration information issued by the flow table configuration module in the server control plane; the logical table configuration module maps the flow table to different logical table units according to the size of the flow table, then configures each logical table unit module, and instructs the resource pool management module to allocate a corresponding number of physical table unit modules to each logical table module. The crossbar module will select the corresponding connection path according to the logical table unit module configuration information and the physical table unit module allocation situation, logically combine the physical table unit modules into the size and depth required by the logical table unit module. After the configuration is completed, the controller or application of the control plane can issue the table entry of each flow table, and the data packet in the data plane can query the flow table in the pipeline according to the network design, and perform corresponding operation on the data packet after matching. When updating the table entry of each flow table, the logical table entry update module maps the table entry update signal of the flow table to the logical table unit for writing update; when looking up the table entry, the logical table key extraction module generates the required lookup key according to the data packet information in the pipeline. The crossbar module maps the update or lookup 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 signals of each physical table unit module to return the output signals of the logical table unit module to the pipeline.

[0052] The implementation steps of the flow table configuration module are: when configuring the flow table of the data plane, the parameters such as the bit width and depth of each flow table configured by the upper layer application are issued to the logical table configuration module of the data plane.

[0053] The implementation steps of the flow table entry updating module are: during the running of the data plane, the updated entries and corresponding information of the flow table are issued to the logical table entry updating module.

[0054] The implementation steps of the logical table configuration module are: firstly, it is checked whether the size of the flow table configured by the controller is reasonable and whether it exceeds the configuration capability of the flow table on the switch device. When the single flow table or the total flow table specification exceeds the limit, a configuration failure signal is returned; otherwise, the configuration is performed. According to the bit width, depth configuration information of each flow table, and the maximum gear of each logical table unit module that can be configured, the number of logical table unit modules required to realize each flow table is calculated, and the flow table is mapped to the logical table unit module; and the state of each logical table unit module is marked, and the state information includes whether it is used, the belonging flow table, and the relative position in the whole logical table unit module of the belonging flow table. Then, the width and depth of each logical table unit module are configured. If the maximum resource of a logical table unit module is insufficient to realize a flow table, the bit widths of multiple adjacent logical table unit modules are all configured as the bit width of the flow table, and the logical table unit modules are depth concatenated to realize the flow table.

[0055] The implementation steps of the logical table entry updating module are: according to the flow table entries issued by the control plane and the configuration of each logical table unit module by the logical table configuration module, the entries are issued to each logical table unit module for updating.

[0056] The implementation steps of the resource pool management module are: according to the configuration information of the logical table unit module, the corresponding physical table unit module is allocated to each logical table unit module, 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 are output, and the physical table unit modules are combined into the bit width and depth required by the logical table unit module.

[0057] The implementation steps of the logical table key extraction module are: the related information of the data packet to be processed in the pipeline is extracted to generate a flow table lookup key, which is delivered to the corresponding logical table unit module for lookup matching.

[0058] The implementation steps of the logical table unit module are as follows: according to the configuration information of the logical table configuration module, the corresponding management is performed on the logical table unit module, the table item update signal and the table item search signal are transmitted to the crossbar module, and the related operation is performed on the data packet in the pipeline according to the search result returned by the crossbar. If a flow table is implemented by cascading a plurality of logical table unit modules, if a logical table unit module located in front matches successfully, the corresponding action is performed, and the matching success signal is transmitted backward; a logical table unit module located in back does not need to continue searching and matching. If the logical table unit module located in front matches unsuccessfully, the logical table unit module located in back continues searching and matching, and if matching is successful, the corresponding action is performed.

[0059] The implementation steps of the crossbar module are as follows: according to the configuration information of the logical table unit module, the corresponding connection path is selected, and the mapping connection of the input and output signals of the logical table unit module and the input and output signals of the physical table unit module is implemented. The crossbar module contains a plurality of types of multiplexers, which are divided into input multiplexers and output multiplexers. Each input signal of each physical table corresponds to an input multiplexer, and the selection and mapping of the input signals of a plurality of logical table unit modules to the input signals of the physical table unit module are implemented; each output signal of each logical table unit module corresponds to an output multiplexer, and the selection and mapping of the output signals of a plurality of physical table unit modules to the output signals of the logical table unit module are implemented. The input multiplexers are divided into data selection multiplexers and address selection multiplexers, and the output multiplexers are divided into data or multiplexers and data and multiplexers. The data selection multiplexer is used for selecting and converting the input data signals of the logical table unit module into the input data signals of the corresponding physical table unit module; the address selection multiplexer is used for selecting and converting the input address signals of the logical table unit module into the input address signals of the corresponding physical table unit module; the data or multiplexer is used for selecting or merging the output data signals of the physical table unit module into the output signals of the logical table unit module; and the data and multiplexer is used for performing AND operation or merging the output data signals of the physical table unit module into the output signals of the logical table unit module.

[0060] The implementation steps of the physical table resource pool module are as follows: the physical table resource pool module is composed of a plurality of small physical table unit modules, each physical table unit module is allocated 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 the corresponding write operation according to the input signals obtained through the conversion of the crossbar module, and the output signals of each physical table unit module are output to the crossbar module for processing.

[0061] The implementation steps of the physical table unit module are as follows: the physical table unit module is a piece of storage resource or a small flow table unit, and implements the physical storage of data or table items; and mainly includes a small TCAM unit and a small SRAM unit.

[0062] The technical solutions of the present application will be described in detail below with reference to the accompanying drawings and embodiments.

[0063] Embodiment 1

[0064] Figure 1 The overall framework of the system is designed. First, the controller in the control plane of the server sends flow table configuration information to the data plane of the switching device through PCIe, and the data plane of the switching device performs 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 logical table configuration module converts the flow table configuration information into the configuration information of each logical table unit, realizing the mapping of the flow table to the logical table. The resource pool management module allocates the corresponding physical table unit module to each logical table unit module according to the configuration of the logical table unit, and generates the corresponding configuration signal to configure the logical table entry update module, the logical table unit module, the crossbar 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 logical table entry update module and sent to each logical table unit module, and then the input signals of multiple logical table unit modules are selected by the multiplexer in the crossbar module and written into the physical table unit module in the resource pool. When the data plane processes the data packet, in each processing stage corresponding to the flow table, the logical table key extraction module generates the corresponding search key according to the information in the data packet, and searches the flow table. The search signal is selected by the input multiplexer in the crossbar module and input into the physical table unit module in the resource pool, and then the output signal of the physical table unit module is selected by the output multiplexer in the crossbar module and output to the logical table unit module, and other action unit modules in the pipeline can implement corresponding data packet processing actions according to the returned results.

[0065] In the specific embodiment, a programmable switch based on FPGA is taken as an example, and a TCAM and an SRAM are taken as examples of the flow table unit. These examples are used to illustrate the present application and do not limit the protection scope of the present application.

[0066] In the specific embodiment, a programmable switch based on FPGA is taken as an example, and a TCAM and an SRAM are taken as examples of the flow table unit. These examples are used to illustrate the present application and do not limit the protection scope of the present application. Figure 2The structure diagram is shown for description. In the example, five logical table units are included in the data plane on the FPGA, up to 5 flow table configurations are supported, there are 32 SRAM physical table units and 32 TCAM physical table units in the resource pool in total, the bit width of the physical table unit module is 40 bits, and the depth is 1K. The physical table unit module allocated by each logical table unit module is at least 6 and at most 8. Each logical table unit module can be configured in four gears, and the maximum is 40b x 8K, 80b x 4K, 120b x 2K and 160b x 2K respectively. The range of the physical table unit module that can be used by each logical table unit module is [0, 8), [6, 14), [12, 20), [18, 26), [24, 32) respectively. The connection relationship of the logical table unit module and the physical table unit module before configuration is as shown in Figure 3 The crossbar connection relationship is as shown in Figure 4 .

[0067] The following is described by taking a specific flow table configuration as an example. In order to simplify the example scene, the structure of the flow table in the example is TCAM+SRAM, the TCAM is used to find the table item address first, and then the corresponding value is taken out from the corresponding address of the SRAM, and the whole of a TCAM physical table unit plus a SRAM physical table unit is called a physical table unit module. As shown in Figure 5As shown, the upper layer application configures four flow tables through the control plane, and the specifications of each flow table are 120b x 4K, 40b x 6K, 160b x 1K and 80b x 4K respectively. The control plane sends the configuration information to the logical table configuration module of the FPGA data plane, and the logical table configuration module maps the four flow tables into five logical table unit modules. Since the specification of the first flow table exceeds the upper limit of the storage of one logical table unit, the first flow table is mapped into two logical table unit modules. The logical table configuration module configures each logical table unit module, and the configuration signal is in the form of {flow_table_start, flow_table_end, logic_table_width, logic_table_depth}. The configuration signals of the five logical table units in the example are {1, 0, 120b, 2K}, {0, 1, 120b, 2K}, {1, 1, 40b, 6K}, {1, 1, 160b, 1K} and {1, 1, 80b, 4K} respectively, that is, the logical table unit module 0 and the logical table unit module 1 realize the flow table 0 through deep concatenation, the logical table unit module 2 is configured to realize the flow table 1, the logical table unit module 3 is configured to realize the flow table 2, and the logical table unit module 4 is configured to realize the 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 allocated to the logical table unit module 0 is [0, 6), the physical table unit module number allocated to the logical table unit module 1 is [6, 12), the physical table unit module number allocated to the logical table unit module 2 is [12, 18), the physical table unit module number allocated to the logical table unit module 3 is [18, 22), and the physical table unit module number allocated to the logical table unit module 4 is [24, 32). The physical table unit modules 22 and 23 are idle and not allocated. As shown in Figure 6 Each logical table unit module is organized in the physical table unit module allocated in the resource pool, realizes the corresponding configuration of the logical table unit module, and is mapped into the corresponding flow table. Figure 7 The connection relationship between the configured logical table unit module and the physical table unit module is shown in the schematic diagram Figure 8 .

[0068] As shown in Figure 9As shown, the crossbar is composed of multiple multiplexers, including two types of input multiplexers and two types of output multiplexers. As shown in FIG. 10(a) and FIG. 10(b), are schematic diagrams of the two types of input multiplexers; as shown in FIG. 11(a) and FIG. 11(b), are schematic diagrams of the two types of output multiplexers. After completing the flow table configuration, the upper layer application can issue table entries for each flow table. For issuing table entries for flow table 0, if the address range is 0-2K, after processing by the logical table entry update module, the table entries will be issued to logical table unit module 0; if the address range of the issued table entries is 2K-4K, after processing by the logical table entry update module, the table entries will be issued to logical table unit module 1. Taking a table entry with an address of 1023 as an example, the bit width of flow table 0 is 120 bits, which is realized by cascading the bit widths of three physical table unit modules in the resource pool. First, the address signal and the write enable signal are ANDed and then passed through the address selection multiplexer module to select the three physical table unit modules 0, 1 and 2 for update operation, while the three physical table unit modules 3, 4 and 5 do not perform update; the table entry data input signals pass through three data selection multiplexers respectively, and each multiplexer takes out the corresponding 40-bit table entry data input signal for the corresponding physical table unit module.

[0069] In the data packet processing process, the logical table key extraction module generates the corresponding lookup key according to the information in the data packet and performs lookup on the flow table. Taking the lookup matching process of flow table 0 as an example, the lookup key key of logical table unit module 0 is passed through the data selection multiplexers of the six physical table unit modules to perform parallel lookup on 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 processed by the data AND or multiplexer (TCAM) module or the data OR or multiplexer (SRAM) to obtain the matching result A, which is returned to the logical table unit module 0. The action processing unit of the pipeline stage where the logical table unit module 0 is located executes the action indicated by the lookup matching result for the data packet. If the logical table unit module 0 matches successfully, a signal with Hit=1 is transmitted to the logical table unit module 1, and the logical table unit module 1 no longer performs matching lookup and action processing for the data packet; if the logical table unit module 0 fails to match, a signal with Hit=0 is transmitted to the logical table unit module 1, and the logical table unit module 1 continues to perform matching lookup and action processing for the data packet.

[0070] Each flow table and each logical table unit module can work simultaneously, and the entire data plane adopts a pipeline mode for data packet processing.

[0071] Finally, it should be noted that the above examples are merely used to illustrate the technical solutions of the present application but not to limit. Although the present application is explained in detail with reference to the examples, those skilled in the art should understand that the technical solutions of the present application can be modified or replaced equivalently without departing from the spirit and scope of the present application, and all of them should be covered in the scope of the claims of the present application.

Claims

1. A system for implementing configurable flow tables 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 configured to issue flow table configuration information and flow table entries; the data plane subsystem is configured to establish a physical table unit module resource pool on a programmable switching device, the physical table unit modules in the resource pool are combined through cascading to realize different sizes of logical table unit modules; configured to configure and update the logical table unit modules according to the issued flow table configuration information and flow table entries; and further configured to realize mapping and conversion between the logical table unit modules and the physical table unit modules through cross-connection. The data plane subsystem comprises a logical table configuration module, a logical table entry update module, a logical table key extraction module, a logical table unit module, a crossbar module, a physical table resource pool module and a resource pool management module; the logical table key extraction module and the logical table unit module are both multiple and one-to-one corresponding; wherein, the logical table configuration module is configured to convert the flow table configuration information into configuration information of each logical table unit module, and configure the depth and width of each logical table unit module; the logical table entry update module is configured to map the flow table entries to the logical table unit modules; the logical table key extraction module is configured to generate a lookup key according to packet information in a pipeline; the logical table unit module is configured to transmit an entry update signal and the lookup key to the crossbar module, and further configured to perform relevant operations on the packets in the pipeline according to a lookup result returned by the crossbar module; the crossbar module is configured to select a corresponding connection path according to the configuration information of the logical table unit module, and realize mapping and connection of logical table unit input and output signals and physical table unit input and output signals; the physical table resource pool module comprises a shared flow table storage resource pool composed of multiple physical table unit modules; the resource pool management module is configured to allocate a physical table unit module in the resource pool to each logical table unit module according to the configuration information of the logical table unit module.

2. The system for implementing a configurable flow table in a programmable switching device according to claim 1, wherein, The control plane subsystem comprises a flow table configuration module and a flow table entry update module; the flow table configuration module is configured to issue flow table configuration information; the flow table entry update module is configured to issue flow table entries after the logical table configuration module completes the configuration.

3. The system for implementing a configurable flow table in a programmable switch device of claim 2, wherein, When the flow table configuration module maps the flow table to different logical table unit modules, multiple logical table units belonging to the same flow table are all 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 switch device of claim 1, wherein, The processing procedure of the logical table configuration module comprises: checking whether the configured flow table size exceeds the configuration capability of the flow table on the programmable switch: when the single flow table or the total flow table specification exceeds the limit, a configuration failure signal is returned; otherwise, the configuration is performed; according to the bit width, depth configuration information of each flow table, and the maximum gear that each logical table unit module can configure, the number of logical table unit modules required to realize each flow table is calculated, the flow table is mapped to the logical table unit modules, and the state of each logical table unit module is marked, the state information includes whether it is used, the flow table it belongs to, and the relative position in all logical table unit modules of the flow table. The width and depth of each logical table unit module are configured; if the maximum resource of one logical table unit module is insufficient to implement one flow table, the bit width of multiple adjacent logical table unit modules is configured as the bit width of the flow table, and the logical table unit modules are depth-cascaded to implement the flow table.

5. The system for implementing a configurable flow table in a programmable switch device of claim 1, wherein, The width and depth of a single logical table unit module are dynamically configurable; only depth extension is allowed between different logical table unit modules; multiple logical table unit modules are combined to generate a flow table with larger depth.

6. The system for implementing a configurable flow table in a programmable switch device of claim 1, wherein, Each physical table unit module includes an SRAM unit and a TCAM unit; the size of the physical table unit module is pre-configured; each physical table unit module is a logical table dedicated physical unit module or a logical table shared physical unit module.

7. The system for implementing a configurable flow table in a programmable switch device according to claim 6, wherein, 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 the flow table is configured, the shared physical table unit modules are allocated to one of the two logical table unit modules by the resource pool management module as needed; after the configuration is completed, each physical table unit module can only belong to one determined logical table unit module.

8. The system for implementing a configurable flow table in a programmable switch device of claim 1, wherein, 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 selection and mapping of multiple logical table input signals to physical table input signals; each output signal of each logical table corresponds to an output multiplexer, which realizes selection and mapping of multiple physical table output signals to logical table output signals; The input multiplexer is divided into data selection multiplexer and address selection multiplexer, and the output multiplexer is divided into data or multiplexer and data and multiplexer; the data selection multiplexer is used to select and convert the input data signal of the logical 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 logical table into the input address signal of the corresponding physical table; the data or multiplexer is used to select or combine the output data signal of the physical table into the output signal of the logical table; the data and multiplexer is used to perform AND operation or combine the output data signal of the physical table into the output signal of the logical table.

9. The system for implementing a configurable flow table in a programmable switch device of claim 1, wherein, The processing process of the resource pool management module includes: allocating corresponding physical table unit modules 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