WO2015035961A1 - 流表的多级化方法、多级流表处理方法及装置 - Google Patents

流表的多级化方法、多级流表处理方法及装置 Download PDF

Info

Publication number
WO2015035961A1
WO2015035961A1 PCT/CN2014/087575 CN2014087575W WO2015035961A1 WO 2015035961 A1 WO2015035961 A1 WO 2015035961A1 CN 2014087575 W CN2014087575 W CN 2014087575W WO 2015035961 A1 WO2015035961 A1 WO 2015035961A1
Authority
WO
WIPO (PCT)
Prior art keywords
flow table
flow
jump
forwarding
rule
Prior art date
Application number
PCT/CN2014/087575
Other languages
English (en)
French (fr)
Inventor
刘彬
李勇
牛小兵
金德鹏
刘中金
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=52665105&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2015035961(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to EP14843350.1A priority Critical patent/EP3035612B1/en
Priority to US15/022,079 priority patent/US10075375B2/en
Publication of WO2015035961A1 publication Critical patent/WO2015035961A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Definitions

  • the present invention relates to the field of networks, and provides a multi-level method for a flow table, a multi-level flow table processing method and apparatus.
  • a transponder can also control multiple Openflow switches, thus achieving a unified forwarding control end and more effectively controlling the network.
  • the flow table on a typical Openflow switch is implemented by configuring the flow table to TCAM (Tri-State Content Addressable Memory) hardware.
  • TCAM Tri-State Content Addressable Memory
  • the TCAM is mainly used to quickly find ACLs, routes, and other entries.
  • the Openflow switch has only one TCAM flow table. It is assumed that the Openflow switch needs to define M kinds of IP forwarding rules according to the destination IP field of the data packet, and at the same time, according to the TCP field of the data packet, N kinds of port filtering rules are performed, then the TCAM flow table is used. It is necessary to have M ⁇ N entries, so it takes up too much storage space of the TCAM.
  • the embodiment of the invention provides a scheme for implementing multi-level flow table and a processing scheme for multi-level flow table, which can effectively save the storage space of the TCAM, thereby saving the manufacturing cost of the Openflow switch.
  • a multi-level method for flow tables including:
  • the first flow table holds a plurality of logic rules and all forwarding actions respectively corresponding to the plurality of logic rules
  • the new flow table is continuously generated in the same manner as the second flow table is generated until the number of flow tables reaches a preset upper limit value.
  • the logic rules in the first flow table and the second flow table include one or more matching domains, and each matching domain corresponds to one or more forwarding actions;
  • the step of separating the target logical rule in the first flow table and the forwarding action corresponding to the target logical rule into the second flow table includes:
  • the third flow table orthogonally constitutes a TCAM flow table; wherein the same matching domain of the target logical rule is not repeatedly stored in the third flow table.
  • the first flow table is configured with a first jump flow entry for storing a jump address of each forwarding action in the first flow table
  • the second flow table is configured with a second jump flow entry bar. Used to store the second stream a jump address of each forwarding action in the table; wherein, the jump address of the first jump flow entry is a second flow table or a forwarder, and the jump address of the second jump flow entry is a forwarder;
  • the method further includes:
  • the step of configuring a jump address for each forwarding action in the third flow table includes:
  • the steps of updating the first jump stream entry and the jump address in the second jump stream entry include:
  • a method for processing a multi-level flow table comprising:
  • the multi-level flow table is sorted by valid bits and orthogonally formed into a tri-state content-addressable memory TCAM flow table; the first flow table at the first level stores at least one logic rule and the at least one logic All forwarding actions corresponding to the rule, and each of the remaining flow tables stores only one logical rule and all forwarding actions of the one logical rule.
  • each flow table in the multi-level flow table includes one or more matching domains, and each matching domain corresponds to one or more forwarding actions; each flow table in the multi-level flow table is also separately provided.
  • One The jump stream entry is used to store the jump address of each forwarding action in the corresponding flow table, so that after the forwarding action set of the first flow table is obtained, the jump corresponding to each forwarding action in the forwarding action set is obtained. The address is forwarded to the lower-level flow table.
  • the method further includes:
  • the method further includes:
  • a multi-stage device for a flow table comprising: a generating module, configured to: generate a second flow table;
  • a separating module configured to separate a target logical rule in the first flow table and a forwarding action corresponding to the target logical rule into the second flow table, so that the first flow table and the second flow table are orthogonal to each other
  • the TCAM flow table the first flow table stores a plurality of logic rules and all forwarding actions respectively corresponding to the plurality of logic rules
  • the generating module is further configured to continue to generate a new flow table by using the separation module in the same manner as the generating the second flow table until the number of flow tables reaches a preset upper limit.
  • the logic rules in the first flow table and the second flow table include one or more matching domains, and each matching domain corresponds to one or more forwarding actions;
  • the separation module includes:
  • a calculation submodule configured to: calculate a mapping benefit of all logic rules in the first flow table, and determine a logical rule that maximizes the mapping benefit as a target logic rule;
  • a splitting module configured to: separate the target logical rule in the first flow table and the forwarding action corresponding to the target logical rule to the second flow table; wherein, the same matching domain of the target logical rule is not repeatedly saved In the second flow table.
  • the calculating sub-module is further configured to: calculate a mapping benefit of all remaining logical rules in the first flow table, and map a logically largest profit in the remaining logical rules in the first flow table The rules are determined as new target logic rules;
  • the separating sub-module is further configured to: separate the new target logical rule in the first flow table and all forwarding actions corresponding to the new target logical rule into the third flow table, so that the first flow The table, the second flow table, and the third flow table orthogonally form a TCAM flow table; wherein the same matching domain of the target logical rule is not repeatedly stored in the third flow table.
  • the first flow table is configured with a first jump flow entry for storing a jump address of each forwarding action in the first flow table
  • the second flow table is configured with a second jump flow entry bar.
  • a jump address for storing each forwarding action in the second flow table; wherein the jump address of the first jump flow entry is a second flow table or a repeater, and the jump of the second jump flow entry
  • the forwarding address is a forwarder
  • the device also includes:
  • a first configuration module configured to be the third stream after the separation module separates the target logic rule in the first flow table and all forwarding actions corresponding to the target logic rule into the third flow table
  • the table configures a third jump flow entry
  • a second configuration module configured to configure a jump address for each forwarding action in the third flow table
  • a saving module configured to save a jump address of each forwarding action in the third flow table to the third jump flow entry
  • An update module is arranged to update the first jump stream entry and the jump address in the second jump stream entry.
  • the second configuration module is configured to: configure a jump address of each forwarding action in the third flow table as a forwarder;
  • the update module is configured to: update the jump address in the first jump flow entry and the second jump flow entry, and make the jump address of the first jump flow entry be the second flow table or the first The third flow table or the repeater, and the jump address of the second jump flow entry is a third flow table or a repeater.
  • a processing device for a multi-stage flow meter comprising:
  • Determining a module which is set to determine a logical rule of the target message
  • a matching module configured to match the logical rule saved by each flow table with the logical rule of the target packet according to the order of the valid bits, to obtain a forwarding action set corresponding to the matching of each flow table;
  • a processing module configured to take an intersection set of forwarding action sets of all flow tables to obtain each forwarding a common forwarding action of the action set
  • a forwarding module configured to forward the target packet according to a common forwarding action of each forwarding action set
  • the multi-level flow table is sorted by valid bits and orthogonally formed into a three-state content addressable memory TCAM flow table; wherein the first flow table located at the first level stores at least one logic rule and at least one All forwarding actions corresponding to the logical rules, each of the remaining flow tables only stores one logical rule and all forwarding actions of the one logical rule.
  • each flow table in the multi-level flow table is also separately set There is a jump flow entry for storing a jump address of each forwarding action in the corresponding flow table, so that the matching module can obtain each of the forwarding action sets after obtaining the forwarding action set of the first flow table.
  • the jump address corresponding to the forwarding action is jumped to the lower-level flow table.
  • the device further includes:
  • a flow table switching module configured to: when the ordering of the multi-level flow table needs to be changed, exchange the flow table that needs to be changed and all forwarding actions corresponding to the flow table, and update the jump flow of all the flow tables entry.
  • the device comprises:
  • a flow table replacement module configured to: when a target flow table in the multi-level flow table needs to be replaced, generate a replacement flow table, save a logical rule to be replaced in the replacement flow table, and save the target The flow table is replaced with the replacement flow table, and then the forwarding action of the logical rule in the replacement flow table is configured, and the jump flow entries of all flow tables are updated.
  • Embodiments of the present invention also provide a computer program including program instructions that, when executed by a flow table multi-level device, cause the device to perform the above method.
  • the embodiment of the invention further provides a computer program, comprising program instructions, when the program instruction is executed by the multi-stage flow table processing device, so that the device can execute the above method.
  • Embodiments of the present invention also provide a carrier carrying the above computer program.
  • multiple logic rules in the TCAM flow table maintained by the Openflow switch are separated one by one, so that each newly generated flow table stores a separate logic rule, thereby orthogonalizing the logic rules in the TCAM flow table.
  • Decomposition therefore, can effectively save the storage space of the TCAM, thereby saving the manufacturing cost of the Openflow switch.
  • FIG. 1 is a schematic diagram of steps of a multi-stage method for a flow table according to an embodiment of the present invention
  • FIG. 2 is a specific schematic diagram of a related art TCAM flow table
  • FIG. 5 are schematic diagrams showing specific implementations of a multi-stage method for a flow table according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of steps of a method for processing a multi-level flow table according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a multi-stage device of a flow table according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a processing apparatus of a multi-stage flow table according to an embodiment of the present invention.
  • a multi-level method for flow tables including:
  • Step 1 generating a second flow table
  • Step 2 The target logical rule in the first flow table and the forwarding action corresponding to the target logical rule are separated into the second flow table, so that the first flow table and the second flow table are orthogonal to form the TCAM.
  • the flow table continues to generate a new flow table until the number of flow tables reaches a preset upper limit.
  • the first flow table stores multiple logical rules and all forwarding actions corresponding to the multiple logical rules.
  • the method separates multiple logic rules in the TCAM flow table maintained by the Openflow switch one by one, so that each newly generated flow table stores a separate logic rule, thereby orthogonally decomposing the logic rules in the TCAM flow table. Therefore, the storage space of the TCAM can be effectively saved, thereby saving the manufacturing cost of the Openflow switch.
  • step 2 the target logical rule in the first flow table and the target logical rule are corresponding to The forwarding action is separated into the second flow table, including:
  • Step 21 Calculate the mapping income of all the logic rules in the first flow table, and determine the logical rule with the largest mapping benefit as the target logic rule;
  • mapping in order to maintain the logical relationship before and after the flow table, it is necessary to store additional RE(F' i ) j variables to indicate the affiliation of the current logic rule, and use it for the subsequent level search, assuming the storage width of each variable.
  • Step 22 The new target logic rule in the first flow table and the forwarding action corresponding to the target logic rule are separated into the second flow table; wherein the same matching domain of the target logic rule is not repeatedly stored in the In the second flow table.
  • the embodiment of the present invention further provides a method for specifically dividing a TCAM flow into a multi-flow table, where the logic rules in the first flow table and the second flow table specifically include There are one or more matching domains, and each matching domain corresponds to one or more forwarding actions; in step 2, the third flow table can be continuously generated, including:
  • Step 31 Calculate the mapping income of all the remaining logic rules in the first flow table, and determine the logical rule with the largest mapping benefit as the new target logic rule;
  • Step 32 Separate the new target logical rule in the first flow table and the forwarding action corresponding to the target logical rule into the third flow table; wherein the same matching domain of the target logical rule is not repeatedly stored in the In the third flow table.
  • the search field is the logical rule described above, and a matching field (ie, a specific address) in a search field may correspond to multiple The forwarding action (such as the matching field 0 ⁇ 8100 in the Eth type field in Figure 2), so the TCAM flow table will create more entries for the repeated preservation of the matching domain (the same matching domain, which corresponds to several forwarding The action is repeated several times in the TCAM flow table.
  • the jump time between the flow tables will be longer, causing the message forwarding speed to decrease, so based on the above mentioned Only one of the repeated matching fields is saved.
  • the mapping income is separated from the TCAM flow table (in a search field, the repetition degree of the matching domain is the search field. Mapping revenues) Large logic rules that more rationally save resources on TCAM flow tables.
  • the first flow table is configured with a first jump flow entry for storing each forwarding action in the first flow table, in order to ensure a more flexible jump between the flow tables.
  • the second flow table is configured with a second jump flow bar for storing a jump address of each forwarding action in the second flow table; wherein, the jump of the first jump flow entry
  • the address is a second flow table or a forwarder, and the jump address of the second jump flow entry is a forwarder; after the third flow table is generated, the multi-level method of the flow table further includes:
  • Step 3 Configure a third jump flow entry for the third flow table.
  • Step 4 Configure a jump address for each forwarding action in the third flow table.
  • Step 5 Save a jump address of each forwarding action in the third flow table to the third jump flow entry.
  • Step 6 Update the jump address in the first jump stream entry and the second jump stream entry.
  • a jump flow entry of a jump address is introduced for each flow table, so that the jump address is directly performed according to the jump flow entry, and all the flow tables are not required to travel through a flow table to obtain a forwarding action, thereby reducing the report.
  • the time required for the text to be forwarded is introduced for each flow table, so that the jump address is directly performed according to the jump flow entry, and all the flow tables are not required to travel through a flow table to obtain a forwarding action, thereby reducing the report. The time required for the text to be forwarded.
  • step 3 includes:
  • Step 6 includes:
  • This embodiment will jump all forwarding actions in the last flow table (ie, the current third flow table).
  • the address is set to the forwarder. After passing the last-class table, the packet can be forwarded directly through the forwarder. Since each new flow table is added after the last flow table is changed, the previous flow table needs to be changed. The jump flow entry of the second flow table is updated.
  • the original TCAM flow table has a flow table of 10 entries, and each entry corresponds to three logical rules (ie, the search field Eth Dst ⁇ IP Src ⁇ IP Dst), and each of the TCAM flow tables
  • the entries correspond to the forwarding actions ACT1-ACT10 in their respective forwarding actions, namely the ACTION table (forwarders).
  • the first step is to sort the entries according to their priorities.
  • the priorities are in the order of R1 to R10 (that is, the entries with smaller labels have higher priority); wherein R1 to R10 correspond to forwarding actions respectively.
  • ACT1-ACT10 correspond to forwarding actions respectively.
  • the mapping gain of all logic rules is calculated.
  • the search field Eth Dst has the largest mapping gain (ie, the matching domain has the highest degree of repetition);
  • a second flow table is generated, and the Eth Dst (which carries the corresponding forwarding action, that is, the rules R1-R4 and R5-R10) in the first flow table (the original TCAM flow table) is separated into The second flow table (repeated matching field to save one), and maintain a J1 variable (ie the jump flow entry described above) to indicate the jump address of the first flow table, where the value of J1 is determined by Eth
  • the matching field of Dst is used to determine that R5-R10 of Eth Dst is any match "*" ("*" matches all the values), so in the packet forwarding process, if R5-R10 is determined by flow table 1, Corresponding forwarding action, then there is no need to search in the second flow table, and can directly jump to the action table, and the specific matching domain such as 00: FF corresponds to 2 in J1 (the second flow table with the number of 2) ).
  • a J2 variable ie, a jump flow entry of the second flow table
  • the jump address of the matching domain corresponding to J2 can be pointed to 3 (3 corresponds to the ACTION table).
  • the logic rule IP Dst has the second highest gain value, similar to step 3, generating a third flow table, separating the IP Dst in the first flow table to the third flow table, and thereafter the third flow
  • table For example, R5 in Eth Dst corresponds to any matching "*”, and R5 of IP Dst corresponds to 10*. Therefore, 10* cannot be applied to any value.
  • the jump address of R5 corresponding to J1 should skip the second flow table and reach the third flow table. Since the number of bits corresponding to the third flow table is 3, R5 is J1 is still 3, but the meaning of the original 3 is different (the original 3 means jump to the ACTION table); and R6, R8, R10 in Eth Dst, and IP Dst are any match "*", Therefore, in J1, the corresponding value is 4 (that is, jump directly to the ACTION table); R2 is an arbitrary match "*" in IP Dst with respect to the matching field of J2, so the J2 corresponding to R2 is changed to 4 (ie, skipping the first After the three-stream table, come to the ACTION table).
  • the search field is defined as a logical rule, which is only one preferred mode.
  • each vertical entry and each horizontal entry can be regarded as a kind of The logic rule is separated, and the separation principle is the same as the method proposed in this embodiment, and will not be described here.
  • the time required for the message forwarding can be weighed to set the corresponding number of logical rules to be separated.
  • an embodiment of the present invention further provides a multi-level flow table processing method, the multi-level flow table is sorted by valid bits and can be orthogonally configured to form a T-state content-addressable memory TCAM flow table;
  • the first flow table of the first level stores at least one logical rule and all forwarding actions corresponding to the at least one logical rule, and each of the remaining flow tables stores only one logical rule and all forwarding actions of the one logical rule;
  • the method includes:
  • Step 61 Determine a logical rule of the target packet.
  • Step 62 Match the logical rule saved by each flow table with the logical rule of the target packet according to the order of the valid bits, and obtain a forwarding action set corresponding to the matching of each flow table;
  • Step 63 Take an intersection of the forwarding action sets of all the flow tables, and obtain a common forwarding action of each forwarding action set;
  • Step 64 Forward the target packet according to a common forwarding action of each forwarding action set.
  • the foregoing embodiment provides a processing method for a multi-level flow table, and acquires a corresponding forwarding action set with one or more forwarding actions according to a logic rule in each flow table, and obtains the obtained in each flow table.
  • the forwarding action set takes the intersection, so that the forwarding action corresponding to the logic rule saved by all the flow tables is obtained, thereby completing the forwarding of the message.
  • each flow table specifically includes one or more matching domains, and each matching domain corresponds to one or more forwarding actions; the multi-level flow
  • Each flow table in the table is further provided with a jump flow entry for storing the jump address of each forwarding action in the corresponding flow table, so that after obtaining the forwarding action set of the first flow table, according to The jump address corresponding to each forwarding action in the forwarding action set is jumped to the lower flow table.
  • the corresponding jump address is saved for the forwarding action of each flow table, so that the jump to the downstream flow table is performed according to the jump address, and it is not necessary to travel through a flow table in one flow table to obtain the forwarding action. This reduces the time required for message forwarding.
  • the method further includes:
  • Step 65 When the ordering of the multi-level flow table needs to be changed, the flow table that needs to be changed and all forwarding actions corresponding to the flow table are exchanged, and the jump flow entries of all flow tables are updated.
  • the method further includes:
  • Step 66 When it is required to replace the target flow table in the multi-level flow table, generate a replacement flow table, save the logical rule to be replaced in the replacement flow table, and replace the target flow table with the The replacement flow table is configured, and then the forwarding action of the logical rule in the replacement flow table is configured, and the jump flow entries of all the flow tables are updated.
  • the multi-level flow table assumes that the target message is received from the input port, and its three data fields (ie, the logical rules of the target message) are "00:1F", "0010*” and " 1110*”.
  • the three data fields are respectively extracted and sent to three flow tables for searching.
  • the matching entry corresponding to the matching domain is R1, R2, R3, R4, and R9 (for example, 001* in R1).
  • * can correspond to any value.
  • R1 in the first flow table is 0010*, which matches the data field of the target message, and then J1 corresponding to R1, R2, R3, R4, and R9.
  • the flow table change process is divided into two cases: In the first case, only the order of the multi-level flow table changes, and it is assumed that there are three flow tables, and from 1 to 4, three flow tables and one action table are respectively represented.
  • the update process has three steps: the first step is to restore the jump flow bar in all flow tables to the default value, that is, there is no jump address; the second step is to swap the flow table. In the third step, the jump address in the jump stream bar corresponding to each flow table is updated, and the update method is the same as the method described above, and is not described herein.
  • the second case is that the logic rule in the flow table changes.
  • the logic rule saved in the third flow table needs to be changed, and a new flow table can be generated as a replacement flow table, and the logical rule to be changed is saved to the replacement flow table.
  • the third flow table can be replaced by replacing the third flow table with the replacement flow table, and then updating the jump flow entries of all the flow tables.
  • an embodiment of the present invention further provides a multi-stage device for a flow table, including:
  • Generating a module which is set to: generate a second flow table
  • a separating module configured to separate a target logical rule in the first flow table and a forwarding action corresponding to the target logical rule into the second flow table, so that the first flow table and the second flow table are orthogonal to each other
  • the TCAM flow table the first flow table stores a plurality of logic rules and all forwarding actions respectively corresponding to the plurality of logic rules
  • the generating module is further configured to continue to generate a new flow table by using the separation module in the same manner as the generating the second flow table until the number of flow tables reaches a preset upper limit.
  • the device separates multiple logic rules in the TCAM flow table maintained by the Openflow switch one by one, so that each newly generated flow table stores a separate logic rule, thereby orthogonally decomposing the logic rules in the TCAM flow table. Therefore, the storage space of the TCAM can be effectively saved, thereby saving the manufacturing cost of the Openflow switch.
  • the logic rules in the first flow table and the second flow table include multiple matching domains, and each matching domain corresponds to one or more forwarding actions;
  • the separation module includes:
  • the calculation sub-module is configured to calculate a mapping benefit of all the logic rules in the first flow table, and determine a logical rule with the largest mapping benefit as the target logic rule;
  • a splitting module configured to separate a target logical rule in the first flow table and a forwarding action corresponding to the target logical rule to the second flow table; wherein, the same one of the target logical rules The domain is not repeatedly stored in the second flow table.
  • the calculation sub-module is further configured to: calculate a mapping benefit of all remaining logical rules in the first flow table, and determine a logical rule with the largest mapping benefit in the remaining logical rules in the first flow table as a new target logical rule ;
  • the separating sub-module is further configured to: separate the new target logical rule in the first flow table and all forwarding actions corresponding to the new target logical rule into the third flow table, so that the first flow The table, the second flow table, and the third flow table orthogonally form a TCAM flow table; wherein the same matching domain of the target logical rule is not repeatedly stored in the third flow table.
  • the first flow table is configured with a first jump flow entry for storing a jump address of each forwarding action in the first flow table
  • the second flow table is provided with a first flow table.
  • a second jump flow header configured to store a jump address of each forwarding action in the second flow table, where the jump address of the first jump flow entry is a second flow table or a repeater, where The jump address of the second jump flow entry is a forwarder;
  • the device also includes:
  • a first configuration module configured to: after the separation module separates the target logic rule in the first flow table and all forwarding actions corresponding to the target logic rule into the third flow table, the third flow table is Configuring a third jump flow entry;
  • a second configuration module configured to configure a jump address for each forwarding action in the third flow table
  • a saving module configured to save a jump address of each forwarding action in the third flow table to the third jump flow entry
  • an update module configured to update the first jump stream entry and the jump address in the second jump stream entry.
  • the second configuration module is configured to: configure a jump address of each forwarding action in the third flow table as a forwarder
  • the update module is configured to: update the jump address in the first jump flow entry and the second jump flow entry, and make the jump address of the first jump flow entry be the second flow table or the first The third flow table or the repeater, and the jump address of the second jump flow entry is a third flow table or a repeater.
  • the apparatus of this embodiment corresponds to a multi-stage method of a flow table in the embodiment of the present invention
  • the technical effect of the multi-stage method of the flow table can also be achieved by the apparatus of the embodiment.
  • an embodiment of the present invention is a multi-stage flow table processing apparatus, the multi-stage flow table is sorted by valid bits and can be orthogonally configured to form a three-state content addressable memory TCAM flow table; wherein, the first stage is located at the first level
  • the first flow table stores at least one logical rule and all forwarding actions corresponding to the at least one logical rule, and each of the remaining flow tables stores only one logical rule and all forwarding actions of the one logical rule;
  • the apparatus includes:
  • the matching module is configured to match the logical rule saved by each flow table with the logical rule of the target packet according to the order of the valid bits, to obtain a forwarding action set corresponding to the matching of each flow table;
  • the processing module is configured to take an intersection of the forwarding action sets of all the flow tables, and obtain a common forwarding action of each forwarding action set;
  • the forwarding module is configured to forward the target packet according to a common forwarding action of each forwarding action set.
  • the foregoing embodiment provides a processing apparatus for a multi-level flow table, which acquires a corresponding forwarding action set having one or more forwarding actions according to a logic rule in each flow table, and obtains the obtained in each flow table.
  • the forwarding action set takes the intersection, so that the forwarding action corresponding to the logic rule saved by all the flow tables is obtained, thereby completing the forwarding of the message.
  • each flow table in the multi-level flow table includes multiple matching domains, and each matching domain corresponds to one forwarding action; each flow table in the multi-level flow table is also separately set. There is a jump flow entry for storing a jump address of each forwarding action in the corresponding flow table, so that the matching module can obtain each of the forwarding action sets after obtaining the forwarding action set of the first flow table. The jump address corresponding to the forwarding action is jumped to the lower-level flow table.
  • the device further includes:
  • the flow table switching module is configured to: when the ordering of the multi-level flow table needs to be changed, exchange the flow table that needs to be changed and all forwarding actions corresponding to the flow table, and update the jump flow entries of all the flow tables. .
  • the device further includes:
  • a flow table replacement module configured to: when a target flow table in the multi-level flow table needs to be replaced, generate a replacement flow table, save a logical rule to be replaced in the replacement flow table, and save the target flow The table is replaced with the replacement flow table, and then the forwarding action of the logical rule in the replacement flow table is configured, and the jump flow entries of all flow tables are updated.
  • the apparatus of this embodiment corresponds to the processing method of the multi-stage flow table in the embodiment of the present invention, and the technical effect that the processing method of the multi-stage flow table can achieve can also be achieved by the apparatus of the embodiment.
  • the storage space of the TCAM can be effectively saved by the embodiment of the invention, thereby saving the manufacturing cost of the Openflow switch.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开一种流表的多级化方法、多级流表处理方法及装置;多级化方法包括:生成第二流表,将第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及所述第二流表正交组成三态内容寻址存储器TCAM流表;所述第一流表保存有多种逻辑规则以及与所述多种逻辑规则分别对应的所有转发动作;按照与生成所述第二流表相同的方式继续生成新的流表,直至流表数量达到预设上限值。

Description

流表的多级化方法、多级流表处理方法及装置 技术领域
本发明涉及网络领域,提供一种流表的多级化方法、多级流表处理方法及装置。
背景技术
目前互联网发展迅速,其应用规模的庞大及其地位的重要性,远远超出了设计者们的想象,而现在的互联网主要有以下弊端:特定的范围内没有统一的管理、网络转发机制与策略单一、运营商难以最大限度优化自身网络、以及传统交换机用于转发的功能和协议多且杂,很难配置,系统容易出错等问题。为应对上述弊端,人们提出了Openflow交换机,其将传统交换机上的报文转发和转发策略分离开来,采用专门的一台转发器通过网线和交换机连接。这样原来同在一台交换机设备上的报文转发功能(硬件芯片实现)和报文转发策略(各种软件协议)就被分开到了不同的硬件设备上。而一台转发器还可以控制多台Openflow交换机,从而实现了统一的转发控制端,更有效地控制了网络。
通常的Openflow交换机上的流表是通过把流表配置到TCAM(三态内容寻址存储器)硬件上来实现的。其中,TCAM主要用于快速查找ACL、路由等表项。
相关技术中,Openflow交换机只有一个TCAM流表,假设Openflow交换机需要根据数据包的目的IP字段定义M种IP转发规则,同时要根据数据包的TCP字段进行N种端口过滤规则,那么该TCAM流表就需要有M×N条表项,因此过多占用了TCAM的存储空间。
发明内容
本发明实施例提供一种实现流表多级化的方案以及针对多级流表的处理方案,能够有效地节省TCAM的存储空间,进而节约Openflow交换机的制造成本。
一种流表的多级化方法,包括:
生成第二流表,将第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及所述第二流表正交组成三态内容寻址存储器TCAM流表;所述第一流表保存有多种逻辑规则以及与所述多种逻辑规则分别对应的所有转发动作;;
按照与生成所述第二流表相同的方式继续生成新的流表,直至流表数量达到预设上限值。
可选地,所述第一流表以及第二流表中的逻辑规则包括一个或多个匹配域,每个匹配域对应有一个或多个转发动作;
将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表的步骤包括:
计算所述第一流表中所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为目标逻辑规则;
将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的所有转发动作分离至所述第二流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第二流表中。
可选地,按照与生成所述第二流表相同的方式继续生成新的流表,包括:
计算所述第一流表中剩余所有逻辑规则的映射收益,将所述第一流表中剩余所述逻辑规则中映射收益最大的逻辑规则确定为新的目标逻辑规则;
将所述第一流表中的所述新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表,使得所述第一流表、第二流表以及所述第三流表正交组成TCAM流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第三流表中。
可选地,所述第一流表配有第一跳转流条目,用于存储第一流表中每个转发动作的跳转地址,所述第二流表配有第二跳转流目条,用于存储第二流 表中每个转发动作的跳转地址;其中,所述第一跳转流条目的跳转地址为第二流表或转发器,所述第二跳转流条目的跳转地址为转发器;
在将所述第一流表中的新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表后,所述方法还包括:
为所述第三流表配置第三跳转流条目;
为所述第三流表中每个转发动作配置跳转地址;
将所述第三流表中每个转发动作的跳转地址保存至所述第三跳转流条目;
更新所述第一跳转流条目以及第二跳转流条目中的跳转地址。
可选地,为所述第三流表中每个转发动作配置跳转地址的步骤包括:
将所述第三流表中每个转发动作的跳转地址配置为转发器;
更新所述第一跳转流条目以及第二跳转流条目中的跳转地址的步骤包括:
更新所述第一跳转流条目以及第二跳转流条目中的跳转地址,使所述第一跳转流条目的跳转地址为第二流表或第三流表或转发器,并使所述第二跳转流条目的跳转地址为第三流表或转发器。
一种多级流表的处理方法,包括:
确定目标报文的逻辑规则;
按所述有效位的顺序分别将每个流表所保存逻辑规则与目标报文的逻辑规则进行匹配,得到每个流表与该匹配相符的转发动作集合;
对所有流表的转发动作集合取交集,得到每个转发动作集合共同的转发动作;
根据每个转发动作集合共同的转发动作转发所述目标报文;
其中,所述多级流表按有效位进行排序且正交组成一个三态内容寻址存储器TCAM流表;位于第一级的第一流表保存有至少一种逻辑规则以及与该至少一种逻辑规则对应的所有转发动作,其余每个流表均只保存有一种逻辑规则以及该一种逻辑规则的所有转发动作。
可选地,每个流表所保存的逻辑规则包括一个或多个匹配域,每个匹配域对应有一个或多个转发动作;所述多级流表中的每个流表还分别设有一个 跳转流条目,用于存储其所对应的流表中每个转发动作的跳转地址,从而在得到第一流表的转发动作集合后,根据该转发动作集合中每个转发动作所对应的跳转地址向下级流表进行跳转。
可选地,所述方法还包括:
当需要对所述多级流表的排序进行变化时,将需要改变的流表以及该流表对应的所有转发动作进行调换,并更新所有流表的跳转流条目。
可选地,所述方法还包括:
当需要替换掉所述多级流表中的目标流表时,生成一替换流表,在所述替换流表中保存需要替换的逻辑规则,并将所述目标流表替换成所述替换流表,之后配置该替换流表中逻辑规则的转发动作,并更新所有流表的跳转流条目。
一种流表的多级化装置,包括:生成模块,其设置为:生成第二流表;以及
分离模块,其设置为将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及第二流表正交后组成所述TCAM流表,所述第一流表保存有多种逻辑规则以及与所述多种逻辑规则分别对应的所有转发动作;
所述生成模块还设置为:按照与生成所述第二流表相同的方式继续利用所述分离模块生成新的流表,直至流表数量达到预设上限值。
可选地,所述第一流表以及第二流表中的逻辑规则包括有一个或多个匹配域,每个匹配域对应有一个或多个转发动作;
所述分离模块包括:
计算子模块,其设置为:计算第一流表中所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为目标逻辑规则;以及
分离子模块,其设置为:将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第二流表中。
可选地,所述计算子模块还设置为:计算所述第一流表中剩余所有逻辑规则的映射收益,将所述第一流表中剩余所述逻辑规则中映射收益最大的逻 辑规则确定为新的目标逻辑规则;
所述分离子模块还设置为:将所述第一流表中的所述新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表,使得所述第一流表、第二流表以及所述第三流表正交组成TCAM流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第三流表中。
可选地,所述第一流表配有第一跳转流条目,用于存储第一流表中每个转发动作的跳转地址,所述第二流表配有第二跳转流目条,用于存储第二流表中每个转发动作的跳转地址;其中,所述第一跳转流条目的跳转地址为第二流表或转发器,所述第二跳转流条目的跳转地址为转发器;
所述装置还包括:
第一配置模块,其设置为在所述分离模块将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的所有转发动作分离至所述第三流表后,为所述第三流表配置第三跳转流条目;
第二配置模块,其设置为为所述第三流表中每个转发动作配置跳转地址;
保存模块,其设置为将所述第三流表中每个转发动作的跳转地址保存至所述第三跳转流条目;以及
更新模块,其设置为更新所述第一跳转流条目以及第二跳转流条目中的跳转地址。
可选地,所述第二配置模块是设置为:将所述第三流表中每个转发动作的跳转地址配置为转发器;
所述更新模块是设置为:更新所述第一跳转流条目以及第二跳转流条目中的跳转地址,使所述第一跳转流条目的跳转地址为第二流表或第三流表或转发器,并使所述第二跳转流条目的跳转地址为第三流表或转发器。
一种多级流表的处理装置,所述装置包括:
确定模块,其设置为确定目标报文的逻辑规则;
匹配模块,其设置为按所述有效位的顺序分别将每个流表所保存逻辑规则与目标报文的逻辑规则进行匹配,得到每个流表与该匹配相符的转发动作集合;
处理模块,其设置为对所有流表的转发动作集合取交集,得到每个转发 动作集合共同的转发动作;以及
转发模块,其设置为根据每个转发动作集合共同的转发动作转发所述目标报文;
其中,所述多级流表按有效位进行排序且正交组成一个三态内容寻址存储器TCAM流表;其中,位于第一级的第一流表保存有至少一种逻辑规则以及与该至少一种逻辑规则对应的所有转发动作,其余每个流表均只保存有一种逻辑规则以及该一种逻辑规则的所有转发动作。
可选地,每个流表所保存的逻辑规则具体包括有一个或多个匹配域,每个匹配域对应一个或多个转发动作;所述多级流表中的每个流表还分别设有一个跳转流条目,用于存储其所对应的流表中每个转发动作的跳转地址,从而能够使匹配模块在得到第一流表的转发动作集合后,根据该转发动作集合中每个转发动作所对应的跳转地址向下级流表进行跳转。
可选地,所述装置还包括:
流表调换模块,其设置为当需要对所述多级流表的排序进行变化时,将需要改变的流表以及该流表对应的所有转发动作进行调换,并更新所有流表的跳转流条目。
可选地,所述装置包括:
流表替换模块,其设置为当需要替换掉所述多级流表中的目标流表时,生成一替换流表,在所述替换流表中保存需要替换的逻辑规则,并将所述目标流表替换成所述替换流表,之后配置该替换流表中逻辑规则的转发动作,并更新所有流表的跳转流条目。
本发明实施例还提供一种计算机程序,包括程序指令,当该程序指令被流表多级化装置执行时,使得该装置可执行上述方法。
本发明实施例还提供一种计算机程序,包括程序指令,当该程序指令被多级流表处理装置执行时,使得该装置可执行上述方法。
本发明实施例还提供一种载有上述计算机程序的载体。
本发明实施例将Openflow交换机维护的TCAM流表中的多种逻辑规则逐一分离出来,使得新生成的每个流表保存一种分离的逻辑规则,从而对TCAM流表中的逻辑规则进行正交分解,因此能够有效地节省TCAM的存储空间,进而节约Openflow交换机的制造成本。
附图概述
图1为本发明实施例中流表的多级化方法的步骤示意图;
图2为相关技术TCAM流表的具体示意图;
图3-图5为本发明实施例中流表的多级化方法的具体实施示意图;
图6为本发明实施例中多级流表的处理方法的步骤示意图;
图7为本发明实施例中流表的多级化装置的结构示意图;
图8为本发明实施例中多级流表的处理装置的结构示意图。
本发明的较佳实施方式
下面将结合附图对本发明的具体实施例进行详细描述。在不冲突的情况下,本发明实施例及实施例中的特征可以相互任意组合。本实施例的方法可在交换机中执行。
一种流表的多级化方法,包括:
步骤1,生成第二流表;
步骤2,将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及第二流表正交后组成所述TCAM流表,之后继续生成新的流表,直至流表数量达到预设上限;其中第一流表保存有多种逻辑规则以及与该多种逻辑规则分别对应的所有转发动作。
本方法将Openflow交换机维护的TCAM流表中的多种逻辑规则逐一分离出来,使得新生成的每个流表保存一种分离的逻辑规则,从而对TCAM流表中的逻辑规则进行正交分解,因此能够有效地节省TCAM的存储空间,进而节约Openflow交换机的制造成本。
步骤2中,将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应 的转发动作分离至所述第二流表,包括:
步骤21,计算第一流表中所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为目标逻辑规则;
假设原第一流表包含N条宽度为W的逻辑规则,每个逻辑规则包含M个匹配域{Fi,i=1,......,m},考虑每个匹配域Fi中重复的逻辑规则可以分为d(Fi)类,重复逻辑规则集合为F′i{(F′i)j,j=1,......,d(Fi)},每个重复逻辑规则的重复次数为{RE(F′i)j,j=1,......,d(Fi)},对应的逻辑规则为利用多级流表的特性,重复的逻辑规则可以被单独存储到一级流表的较小的TCAM空间中,我们称之为映射。在这个过程中,为了保持流表前后的逻辑关系,需要存储额外的RE(F′i)j个变量来指示当前逻辑规则的从属关系,并用于后级的查找,假设每个变量的存储宽度为C,那么每映射一个重复逻辑规则的增益定义为节省的存储资源:P(Fi)j=(RE(F′i)j-1)W-(RE(F′i)j)C。那么所有逻辑规则的映射收益的计算方式为:
Figure PCTCN2014087575-appb-000001
步骤22,将所述第一流表中的新的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第二流表中。
此外,在上述实施例的基础之上,本发明实施例还提供了一种具体实现TCAM流划分成多流表的方法,其中,所述第一流表以及第二流表中的逻辑规则具体包括有一个或多个匹配域,每个匹配域对应一个或多个转发动作;步骤2中可以继续生成第三流表,包括:
步骤31,计算第一流表中剩余所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为新的目标逻辑规则;
步骤32,将所述第一流表中的新的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第三流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第三流表中。
如图2所示,对于目前的TCAM流表来说,其查找字段即为上文所述的逻辑规则,而一个查找字段中的某一匹配域(即一具体的地址)可能对应多 种转发动作(如图2中查找字段Eth type中的匹配域0×8100),因此TCAM流表就会建立更多的表项用于重复保存匹配域(同一种匹配域,其对应几种转发动作,就在TCAM流表重复保存了几遍);此外,如果生成流表过多,其流表间的跳转时间就会越长,致使报文转发的速度下降,因此基于上文中提到的重复的匹配域只保存一个,本实施例在流表数量有限的情况下,从TCAM流表中分离出映射收益(在一种查找字段中,其匹配域的重复程度即为该查找字段的映射收益)大的逻辑规则,从而更加合理地节约了TCAM流表的资源。
此外,为了保证流表之间更加灵活的进行跳转,在本发明的上述实施例中,所述第一流表配有第一跳转流条目,用于存储第一流表中每个转发动作的跳转地址,所述第二流表配有第二跳转流目条,用于存储第二流表中每个转发动作的跳转地址;其中,所述第一跳转流条目的跳转地址为第二流表或转发器,所述第二跳转流条目的跳转地址为转发器;在生成第三流表后,所述流表的多级化方法还包括:
步骤3,为所述第三流表配置第三跳转流条目;
步骤4,为所述第三流表中每个转发动作配置跳转地址;
步骤5,将所述第三流表中每个转发动作的跳转地址保存至所述第三跳转流条目;
步骤6,更新所述第一跳转流条目以及第二跳转流条目中的跳转地址。
本实施例为每个流表引入了跳转地址的跳转流条目,从而直接根据跳转流条目进行跳转地址,无需一个流表一个流表地全部进行游历以获取转发动作,从而减少了报文转发所需要的时间。
具体地,在本发明的上述实施例中,步骤3包括:
将所述第三流表中每个转发动作的跳转地址配置为转发器;
步骤6包括:
更新所述第一跳转流条目以及第二跳转流条目中的跳转地址,使所述第一跳转流条目的跳转地址为第二流表或第三流表或转发器,并使所述第二跳转流条目的跳转地址为第三流表或转发器。
本实施例将最后一个流表(即当前的第三流表)中所有转发动作的跳转 地址设置为转发器,在经过最后一流表后可直接通过转发器来转发报文,由于之后每添加一个新的流表都会使的最后一个流表发生变化,因此需要对之前的第一流表以及第二流表的跳转流条目进行更新。
下面对上述流表的多级化方法的具体实施进行详细描述:
如图3所示,假设原始的TCAM流表具有10个表项的流表,每个表项对应3种逻辑规则(即查找字段Eth Dst\IP Src\IP Dst),TCAM流表中每个表项对应有其各自的转发动作即ACTION表(转发器)中的转发动作ACT1-ACT10。
第一步,按照其优先级进行表项排序,这里按照优先级的大小顺序先后标记为R1到R10(即标号较小的表项具有较高的优先级);其中R1到R10分别对应转发动作ACT1-ACT10。
第二步,计算所有逻辑规则的映射增益,根据图中实例来看,查找字段Eth Dst具有最大的映射增益(即匹配域重复的程度最高);
第三步,如图4所示,生成第二流表,将第一流表(原TCAM流表)中的Eth Dst(携带有其对应的转发动作即规则R1-R4和R5-R10)分离至第二流表(重复的匹配域至保存一个),并维护一个J1变量(即上文所述的跳转流条目)来指示第一流表的跳转地址,其中,J1的取值,由Eth Dst的匹配域来决定,由于Eth Dst的R5-R10均为任意匹配“*”(“*”即符合所有的数值),所以在报文转发过程中,如果通过流表1确定出R5-R10对应的转发动作,那么就无需在第二流表中进行查找,可以直接跳转到action表,而具体的匹配域如00:FF则在J1对应为2(位数为2的第二流表)。
之后将为第二流表建立一个J2变量(即第二流表的跳转流条目),由于此时的第二流表为最后一个流表,J2对应的匹配域的跳转地址都可指向3(3对应于ACTION表)。
第四步,根据映射增益,逻辑规则IP Dst具有次高的增益值,与步骤三类似,生成第三流表,将第一流表中的IP Dst分离至第三流表,此后为第三流表配置跳转流条目J3,由于此时第三流表为最后一个流表,将IP Dst的匹配域对应J3设置为4,并更新J1以及J2,最终得到如图5所示的多级流表。例如:Eth Dst中的R5对应为任意匹配“*”,而IP Dst的R5对应为10*, 因此10*并不能适用于任意的数值,此时J1对应的R5的跳转地址应该略过第二流表,到达第三流表,由于第三流表对应的位数为3,因此R5在J1中依然为3,但与原先的3代表的意义有所不同(原先的3表示跳转至ACTION表);而R6、R8、R10在Eth Dst、以及IP Dst均为任意匹配“*”,因此在J1中对应为4(即直接跳转到ACTION表);相对于J2的匹配域,在IP Dst中R2为任意匹配“*”,因此将R2对应的J2改为4(即跳过第三流表后,来到ACTION表)。
需要指出的是,本实施例将查找字段定义为逻辑规则,只是其中的一种优选方式,对于原TCAM流表,其每个纵向的表项以及每个横向的表项都可以视作为一种逻辑规则,进行分离,其分离原理与本实施例所提出的方法一样,在此不做赘述。此外,对于原TCAM流表保存了多种逻辑规则的情况,可权衡报文转发所需的时间,来设定相应的需要分离逻辑规则的数量。
此外,本发明的实施例还提供一种多级流表的处理方法,所述多级流表按有效位进行排序且能够正交组成一个三态内容寻址存储器TCAM流表;其中,位于第一级的第一流表保存有至少一种逻辑规则以及与该至少一种逻辑规则对应的所有转发动作,其余每个流表均只保存有一种逻辑规则以及该一种逻辑规则的所有转发动作;所述方法包括:
步骤61,确定目标报文的逻辑规则;
步骤62,按所述有效位的顺序分别将每个流表所保存逻辑规则与目标报文的逻辑规则进行匹配,得到每个流表与该匹配相符的转发动作集合;
步骤63,对所有流表的转发动作集合取交集,得到每个转发动作集合共同的转发动作;
步骤64,根据每个转发动作集合共同的转发动作转发所述目标报文。
上述实施例提供了一种多级流表的处理方法,根据每个流表中的逻辑规则获取对应的具有一个或多个转发动作的转发动作集合,并对每个流表中这些获取到的转发动作集合取交集,从而得到符合所有流表保存的逻辑规则对应的转发动作,从而完成报文的转发。
此外,在本发明的上述实施例中,每个流表所保存的逻辑规则具体包括有一个或多个匹配域,每个匹配域对应有一个或多个转发动作;所述多级流 表中的每个流表还分别设有一个跳转流条目,用于存储其所对应的流表中每个转发动作的跳转地址,从而能够在得到第一流表的转发动作集合后,根据该转发动作集合中每个转发动作所对应的跳转地址向下级流表进行跳转。
本实施例为每个流表的转发动作保存了相应的跳转地址,从而直接根据跳转地址进行向下游流表进行跳转,无需在一个流表一个流表地全部进行游历以获取转发动作,从而减少了报文转发所需要的时间。
此外,在本发明的上述实施例中,所述方法还包括:
步骤65,当需要对所述多级流表的排序进行变化时,将需要改变的流表以及该流表对应的所有转发动作进行调换,并更新所有流表的跳转流条目。
此外,为了对流表进行更改,在本发明的上述实施例中,所述方法还包括:
步骤66,当需要替换掉所述多级流表中的目标流表时,生成一替换流表,在所述替换流表中保存需要替换的逻辑规则,并将所述目标流表替换成所述替换流表,之后配置该替换流表中逻辑规则的转发动作,并更新所有流表的跳转流条目。
下面对上述多级流表的处理方法的具体实施过程进行详细描述:
<报文转发过程>
同样如图5所示的多级流表,假设目标报文从输入端口接收,其三个数据域(即该目标报文的逻辑规则)分别为“00:1F”,“0010*”和“1110*”。三个数据域分别被提取并发送到三个流表进行查找,在第一流表中得到匹配域对应的表项为R1,R2,R3,R4,R9的转发动作集合(如R1中的001*,其*可对应任意数值,当*为0*时,此时第一流表中R1即为0010*,符合目标报文的数据域,),之后R1,R2,R3,R4,R9对应的J1进行跳转,最终从第二个流表中找出符合的转发动作集合:R3以及“*”对应的R5-R10,从第三个流表中找出符合的转发动作集合:R3,R4,R7,R9和“*”对应的R2,R6,R8,R10。之后对每个流表获取的转发动作集合取交集,最终确定出R3和R4符合所有流表中的逻辑规则,由于图5所示的多级流表中每个表项进行了优先级排序,所以这里可以确定出R3对应的转发动作优先级最高,最终执行R3对应的转发动作执行报文转发操作。
<流表改变过程>
流表改变过程分为两种情况:第一种情况下,只是多级流表的排序发生改变,假设有3个流表,从1到4分别表示3个流表和一个action表。更新流程有三步:第一步,将所有流表中的跳转流目条都恢复为默认值,即没有跳转地址;第二步,将流表互换。第三步,更新每个流表对应的跳转流目条中的跳转地址,其更新方法与上文所述的方法一致,在此不做赘述。
第二种情况是流表中的逻辑规则发生了变化,比如第三流表保存的逻辑规则需要改变,可生成一个新的流表作为替换流表,保存需要改变的逻辑规则至替换流表,将第三流表替换成所述替换流表,之后更新所有流表的跳转流条目即可实现第三流表的替换工作。
此外,如图7所示,本发明实施例还提供一种流表的多级化装置,包括:
生成模块,其设置为:生成第二流表;以及
分离模块,其设置为将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及第二流表正交后组成所述TCAM流表,所述第一流表保存有多种逻辑规则以及与所述多种逻辑规则分别对应的所有转发动作;
所述生成模块还设置为:按照与生成所述第二流表相同的方式继续利用所述分离模块生成新的流表,直至流表数量达到预设上限值。
本装置将Openflow交换机维护的TCAM流表中的多种逻辑规则逐一分离出来,使得新生成的每个流表保存一种分离的逻辑规则,从而对TCAM流表中的逻辑规则进行正交分解,因此能够有效抵节省TCAM的存储空间,进而节约Openflow交换机的制造成本。
其中,在本发明的上述实施例中,所述第一流表以及第二流表中的逻辑规则包括多个匹配域,每个匹配域对应有一个或多个转发动作;所述分离模块包括:
计算子模块,设置为计算第一流表中所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为目标逻辑规则;
分离子模块,设置为将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表;其中,目标逻辑规则的同一个匹 配域不重复保存在所述第二流表中。
所述计算子模块还设置为:计算所述第一流表中剩余所有逻辑规则的映射收益,将所述第一流表中剩余所述逻辑规则中映射收益最大的逻辑规则确定为新的目标逻辑规则;
所述分离子模块还设置为:将所述第一流表中的所述新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表,使得所述第一流表、第二流表以及所述第三流表正交组成TCAM流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第三流表中。
其中,在本发明的上述实施例中,所述第一流表配有第一跳转流条目,用于存储第一流表中每个转发动作的跳转地址,所述第二流表配有第二跳转流目条,用于存储第二流表中每个转发动作的跳转地址;其中,所述第一跳转流条目的跳转地址为第二流表或转发器,所述第二跳转流条目的跳转地址为转发器;
所述装置还包括:
第一配置模块,设置为在所述分离模块将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的所有转发动作分离至所述第三流表后,为所述第三流表配置第三跳转流条目;
第二配置模块,设置为为所述第三流表中每个转发动作配置跳转地址;
保存模块,设置为将所述第三流表中每个转发动作的跳转地址保存至所述第三跳转流条目;
更新模块,设置为更新所述第一跳转流条目以及第二跳转流条目中的跳转地址。
其中,在本发明的上述实施例中,
所述第二配置模块是设置为:将所述第三流表中每个转发动作的跳转地址配置为转发器;
所述更新模块是设置为:更新所述第一跳转流条目以及第二跳转流条目中的跳转地址,使所述第一跳转流条目的跳转地址为第二流表或第三流表或转发器,并使所述第二跳转流条目的跳转地址为第三流表或转发器。
显然,本实施例的装置与本发明实施例中一种流表的多级化方法相对应, 该流表的多级化方法所能达到的技术效果,本实施例的装置也同样能够达到。
此外,本发明的实施例一种多级流表的处理装置,所述多级流表按有效位进行排序且能够正交组成一个三态内容寻址存储器TCAM流表;其中,位于第一级的第一流表保存有至少一种逻辑规则以及与该至少一种逻辑规则对应的所有转发动作,其余每个流表均只保存有一种逻辑规则以及该一种逻辑规则的所有转发动作;如图8所示,所述装置包括:
确定模块,设置为确定目标报文的逻辑规则;
匹配模块,设置为按所述有效位的顺序分别将每个流表所保存逻辑规则与目标报文的逻辑规则进行匹配,得到每个流表与该匹配相符的转发动作集合;
处理模块,设置为对所有流表的转发动作集合取交集,得到每个转发动作集合共同的转发动作;
转发模块,设置为根据每个转发动作集合共同的转发动作转发所述目标报文。
上述实施例提供了一种多级流表的处理装置,根据每个流表中的逻辑规则获取对应的具有一个或多个转发动作的转发动作集合,并对每个流表中这些获取到的转发动作集合取交集,从而得到符合所有流表保存的逻辑规则对应的转发动作,从而完成报文的转发。
其中,在本发明的上述实施例中,每个流表所保存的逻辑规则包括多个匹配域,每个匹配域对应一个转发动作;所述多级流表中的每个流表还分别设有一个跳转流条目,用于存储其所对应的流表中每个转发动作的跳转地址,从而能够使匹配模块在得到第一流表的转发动作集合后,根据该转发动作集合中每个转发动作所对应的跳转地址向下级流表进行跳转。
其中,在本发明的上述实施例中,所述装置还包括:
流表调换模块,设置为当需要对所述多级流表的排序进行变化时,将需要改变的流表以及该流表对应的所有转发动作进行调换,并更新所有流表的跳转流条目。
其中,在本发明的上述实施例中,所述装置还包括:
流表替换模块,设置为当需要替换掉所述多级流表中的目标流表时,生成一替换流表,在所述替换流表中保存需要替换的逻辑规则,并将所述目标流表替换成所述替换流表,之后配置该替换流表中逻辑规则的转发动作,并更新所有流表的跳转流条目。
显然,本实施例的装置与本发明实施例中一种多级流表的处理方法相对应,该多级流表的处理方法所能达到的技术效果,本实施例的装置也同样能够达到。
应当理解的是,本领域普通技术人员可以理解上述方法中的全部或部分步骤和上述各功能模块可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
工业实用性
通过本发明实施例能够有效地节省TCAM的存储空间,进而节约Openflow交换机的制造成本。

Claims (22)

  1. 一种流表的多级化方法,包括:
    生成第二流表,将第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及所述第二流表正交组成三态内容寻址存储器TCAM流表;所述第一流表保存有多种逻辑规则以及与所述多种逻辑规则分别对应的所有转发动作;
    按照与生成所述第二流表相同的方式继续生成新的流表,直至流表数量达到预设上限值。
  2. 根据权利要求1所述的方法,其中,所述第一流表以及第二流表中的逻辑规则包括一个或多个匹配域,每个匹配域对应有一个或多个转发动作;
    将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表的步骤包括:
    计算所述第一流表中所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为目标逻辑规则;
    将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的所有转发动作分离至所述第二流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第二流表中。
  3. 根据权利要求2所述的方法,其中,按照与生成所述第二流表相同的方式继续生成新的流表,包括:
    计算所述第一流表中剩余所有逻辑规则的映射收益,将所述第一流表中剩余所述逻辑规则中映射收益最大的逻辑规则确定为新的目标逻辑规则;
    将所述第一流表中的所述新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表,使得所述第一流表、第二流表以及所述第三流表正交组成TCAM流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第三流表中。
  4. 根据权利要求3所述的方法,其中,所述第一流表配有第一跳转流条目,用于存储第一流表中每个转发动作的跳转地址,所述第二流表配有第二跳转流目条,用于存储第二流表中每个转发动作的跳转地址;其中,所述第 一跳转流条目的跳转地址为第二流表或转发器,所述第二跳转流条目的跳转地址为转发器;
    在将所述第一流表中的新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表后,所述方法还包括:
    为所述第三流表配置第三跳转流条目;
    为所述第三流表中每个转发动作配置跳转地址;
    将所述第三流表中每个转发动作的跳转地址保存至所述第三跳转流条目;
    更新所述第一跳转流条目以及第二跳转流条目中的跳转地址。
  5. 根据权利要求4所述的方法,其中,
    为所述第三流表中每个转发动作配置跳转地址的步骤包括:
    将所述第三流表中每个转发动作的跳转地址配置为转发器;
    更新所述第一跳转流条目以及第二跳转流条目中的跳转地址的步骤包括:
    更新所述第一跳转流条目以及第二跳转流条目中的跳转地址,使所述第一跳转流条目的跳转地址为第二流表或第三流表或转发器,并使所述第二跳转流条目的跳转地址为第三流表或转发器。
  6. 一种多级流表的处理方法,包括:
    确定目标报文的逻辑规则;
    按所述有效位的顺序分别将每个流表所保存逻辑规则与目标报文的逻辑规则进行匹配,得到每个流表与该匹配相符的转发动作集合;
    对所有流表的转发动作集合取交集,得到每个转发动作集合共同的转发动作;
    根据每个转发动作集合共同的转发动作转发所述目标报文;
    其中,所述多级流表按有效位进行排序且正交组成一个三态内容寻址存储器TCAM流表;位于第一级的第一流表保存有至少一种逻辑规则以及与该至少一种逻辑规则对应的所有转发动作,其余每个流表均只保存有一种逻辑规则以及该一种逻辑规则的所有转发动作。
  7. 根据权利要求6所述的方法,其中,每个流表所保存的逻辑规则包括 一个或多个匹配域,每个匹配域对应有一个或多个转发动作;所述多级流表中的每个流表还分别设有一个跳转流条目,用于存储其所对应的流表中每个转发动作的跳转地址,从而在得到第一流表的转发动作集合后,根据该转发动作集合中每个转发动作所对应的跳转地址向下级流表进行跳转。
  8. 根据权利要求7所述的方法,所述方法还包括:
    当需要对所述多级流表的排序进行变化时,将需要改变的流表以及该流表对应的所有转发动作进行调换,并更新所有流表的跳转流条目。
  9. 根据权利要求7所述的方法,所述方法还包括:
    当需要替换掉所述多级流表中的目标流表时,生成一替换流表,在所述替换流表中保存需要替换的逻辑规则,并将所述目标流表替换成所述替换流表,之后配置该替换流表中逻辑规则的转发动作,并更新所有流表的跳转流条目。
  10. 一种流表的多级化装置,包括:生成模块,其设置为:生成第二流表;以及
    分离模块,其设置为将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表,使得所述第一流表以及第二流表正交后组成所述TCAM流表,所述第一流表保存有多种逻辑规则以及与所述多种逻辑规则分别对应的所有转发动作;
    所述生成模块还设置为:按照与生成所述第二流表相同的方式继续利用所述分离模块生成新的流表,直至流表数量达到预设上限值。
  11. 根据权利要求10所述的装置,其中,所述第一流表以及第二流表中的逻辑规则包括有一个或多个匹配域,每个匹配域对应有一个或多个转发动作;
    所述分离模块包括:
    计算子模块,其设置为:计算第一流表中所有逻辑规则的映射收益,将映射收益最大的逻辑规则确定为目标逻辑规则;以及
    分离子模块,其设置为:将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的转发动作分离至所述第二流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第二流表中。
  12. 根据权利要求11所述的装置,其中,
    所述计算子模块还设置为:计算所述第一流表中剩余所有逻辑规则的映射收益,将所述第一流表中剩余所述逻辑规则中映射收益最大的逻辑规则确定为新的目标逻辑规则;
    所述分离子模块还设置为:将所述第一流表中的所述新的目标逻辑规则以及该新的目标逻辑规则对应的所有转发动作分离至所述第三流表,使得所述第一流表、第二流表以及所述第三流表正交组成TCAM流表;其中,目标逻辑规则的同一个匹配域不重复保存在所述第三流表中。
  13. 根据权利要求12所述的装置,其中,所述第一流表配有第一跳转流条目,用于存储第一流表中每个转发动作的跳转地址,所述第二流表配有第二跳转流目条,用于存储第二流表中每个转发动作的跳转地址;其中,所述第一跳转流条目的跳转地址为第二流表或转发器,所述第二跳转流条目的跳转地址为转发器;
    所述装置还包括:
    第一配置模块,其设置为在所述分离模块将所述第一流表中的目标逻辑规则以及该目标逻辑规则对应的所有转发动作分离至所述第三流表后,为所述第三流表配置第三跳转流条目;
    第二配置模块,其设置为为所述第三流表中每个转发动作配置跳转地址;
    保存模块,其设置为将所述第三流表中每个转发动作的跳转地址保存至所述第三跳转流条目;以及
    更新模块,其设置为更新所述第一跳转流条目以及第二跳转流条目中的跳转地址。
  14. 根据权利要求13所述的装置,其中,
    所述第二配置模块是设置为:将所述第三流表中每个转发动作的跳转地址配置为转发器;
    所述更新模块是设置为:更新所述第一跳转流条目以及第二跳转流条目中的跳转地址,使所述第一跳转流条目的跳转地址为第二流表或第三流表或转发器,并使所述第二跳转流条目的跳转地址为第三流表或转发器。
  15. 一种多级流表的处理装置,所述装置包括:
    确定模块,其设置为确定目标报文的逻辑规则;
    匹配模块,其设置为按所述有效位的顺序分别将每个流表所保存逻辑规则与目标报文的逻辑规则进行匹配,得到每个流表与该匹配相符的转发动作集合;
    处理模块,其设置为对所有流表的转发动作集合取交集,得到每个转发动作集合共同的转发动作;以及
    转发模块,其设置为根据每个转发动作集合共同的转发动作转发所述目标报文;
    其中,所述多级流表按有效位进行排序且正交组成一个三态内容寻址存储器TCAM流表;其中,位于第一级的第一流表保存有至少一种逻辑规则以及与该至少一种逻辑规则对应的所有转发动作,其余每个流表均只保存有一种逻辑规则以及该一种逻辑规则的所有转发动作。
  16. 根据权利要求15所述的装置,其中,每个流表所保存的逻辑规则具体包括有一个或多个匹配域,每个匹配域对应一个或多个转发动作;所述多级流表中的每个流表还分别设有一个跳转流条目,用于存储其所对应的流表中每个转发动作的跳转地址,从而能够使匹配模块在得到第一流表的转发动作集合后,根据该转发动作集合中每个转发动作所对应的跳转地址向下级流表进行跳转。
  17. 根据权利要求16所述的装置,所述装置还包括:
    流表调换模块,其设置为当需要对所述多级流表的排序进行变化时,将需要改变的流表以及该流表对应的所有转发动作进行调换,并更新所有流表的跳转流条目。
  18. 根据权利要求16所述的装置,所述装置包括:
    流表替换模块,其设置为当需要替换掉所述多级流表中的目标流表时,生成一替换流表,在所述替换流表中保存需要替换的逻辑规则,并将所述目标流表替换成所述替换流表,之后配置该替换流表中逻辑规则的转发动作,并更新所有流表的跳转流条目。
  19. 一种计算机程序,包括程序指令,当该程序指令被流表多级化装置 执行时,使得该装置可执行权利要求1-5任一项所述的方法。
  20. 一种载有权利要求19所述计算机程序的载体。
  21. 一种计算机程序,包括程序指令,当该程序指令被多级流表处理装置执行时,使得该装置可执行权利要求6-9任一项所述的方法。
  22. 一种载有权利要求21所述计算机程序的载体。
PCT/CN2014/087575 2013-09-16 2014-09-26 流表的多级化方法、多级流表处理方法及装置 WO2015035961A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14843350.1A EP3035612B1 (en) 2013-09-16 2014-09-26 Method for making flow table multiple levels, and multi-level flow table processing method and device
US15/022,079 US10075375B2 (en) 2013-09-16 2014-09-26 Method for making flow table multiple levels, and multi-level flow table processing method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310422936.9A CN104468357B (zh) 2013-09-16 2013-09-16 流表的多级化方法、多级流表处理方法及装置
CN201310422936.9 2013-09-16

Publications (1)

Publication Number Publication Date
WO2015035961A1 true WO2015035961A1 (zh) 2015-03-19

Family

ID=52665105

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/087575 WO2015035961A1 (zh) 2013-09-16 2014-09-26 流表的多级化方法、多级流表处理方法及装置

Country Status (4)

Country Link
US (1) US10075375B2 (zh)
EP (1) EP3035612B1 (zh)
CN (1) CN104468357B (zh)
WO (1) WO2015035961A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921994A (zh) * 2017-12-12 2019-06-21 上海叠念信息科技有限公司 基于OpenFlow两级流表的网络数据包转发方法
CN114221849A (zh) * 2020-09-18 2022-03-22 芯启源(南京)半导体科技有限公司 一种fpga结合tcam实现智能网卡的方法
CN114710434A (zh) * 2022-03-11 2022-07-05 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753885B (zh) * 2013-12-30 2018-06-26 杭州华为数字技术有限公司 一种流表匹配的方法、装置和OpenFlow交换系统
CN104954261B (zh) * 2015-05-26 2018-01-16 上海斐讯数据通信技术有限公司 利用流表转发数据的方法及系统
CN106559339B (zh) * 2015-09-30 2019-02-19 华为技术有限公司 一种报文处理方法及装置
CN105591909A (zh) * 2015-10-21 2016-05-18 杭州华三通信技术有限公司 提高报文转发性能的方法以及装置
CN108011823B (zh) * 2016-11-01 2021-11-19 中兴通讯股份有限公司 多域流表的多级化方法及装置、多级流表查找方法及装置
TWI632791B (zh) * 2017-06-29 2018-08-11 中華電信股份有限公司 Multi-level Flow table control method based on action service category
CA3066826C (en) * 2017-06-30 2023-06-27 Huawei Technologies Co., Ltd. Network data processing method, network interface card, and server
CN108259353B (zh) * 2018-01-10 2021-02-26 浙江工商大学 一种基于匹配字段具体值重复率的多级流表设计方法
WO2020124400A1 (zh) * 2018-12-19 2020-06-25 华为技术有限公司 一种多分支跳转处理装置和方法、处理器
CN112491710B (zh) * 2020-11-09 2023-06-23 锐捷网络股份有限公司 一种基于Openflow的报文转发方法及设备
CN113645137B (zh) * 2021-08-02 2022-05-31 清华大学 一种软件定义网络多级流表压缩方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统
CN102957603A (zh) * 2012-11-09 2013-03-06 盛科网络(苏州)有限公司 基于多级流表的Openflow报文转发方法及系统
CN103259718A (zh) * 2013-04-18 2013-08-21 华为技术有限公司 一种流表转换方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189769A1 (en) * 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
CN102349268B (zh) * 2009-03-09 2015-11-25 日本电气株式会社 OpenFlow通信系统和OpenFlow通信方法
US8966035B2 (en) * 2009-04-01 2015-02-24 Nicira, Inc. Method and apparatus for implementing and managing distributed virtual switches in several hosts and physical forwarding elements
US8462786B2 (en) * 2009-08-17 2013-06-11 Board Of Trustees Of Michigan State University Efficient TCAM-based packet classification using multiple lookups and classifier semantics
KR101422381B1 (ko) * 2010-04-19 2014-07-22 닛본 덴끼 가부시끼가이샤 스위치 및 플로우 테이블 제어 방법
US8681794B2 (en) * 2011-11-30 2014-03-25 Broadcom Corporation System and method for efficient matching of regular expression patterns across multiple packets
CN102594664B (zh) * 2012-02-02 2015-06-17 杭州华三通信技术有限公司 流量转发方法和装置
US9438505B1 (en) * 2012-03-29 2016-09-06 Google Inc. System and method for increasing capacity in router forwarding tables
US10097452B2 (en) * 2012-04-16 2018-10-09 Telefonaktiebolaget Lm Ericsson (Publ) Chaining of inline services using software defined networking
US9098601B2 (en) * 2012-06-27 2015-08-04 Futurewei Technologies, Inc. Ternary content-addressable memory assisted packet classification
CN103905311B (zh) * 2012-12-28 2017-02-22 华为技术有限公司 流表匹配方法和装置以及交换机
CN104079492B (zh) * 2013-03-28 2017-10-10 华为技术有限公司 一种OpenFlow网络中流表配置的方法、装置和系统
KR20150053620A (ko) * 2013-11-08 2015-05-18 한국전자통신연구원 패킷 전송 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统
CN102957603A (zh) * 2012-11-09 2013-03-06 盛科网络(苏州)有限公司 基于多级流表的Openflow报文转发方法及系统
CN103259718A (zh) * 2013-04-18 2013-08-21 华为技术有限公司 一种流表转换方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921994A (zh) * 2017-12-12 2019-06-21 上海叠念信息科技有限公司 基于OpenFlow两级流表的网络数据包转发方法
CN114221849A (zh) * 2020-09-18 2022-03-22 芯启源(南京)半导体科技有限公司 一种fpga结合tcam实现智能网卡的方法
CN114221849B (zh) * 2020-09-18 2024-03-19 芯启源(南京)半导体科技有限公司 一种fpga结合tcam实现智能网卡的方法
CN114710434A (zh) * 2022-03-11 2022-07-05 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法
CN114710434B (zh) * 2022-03-11 2023-08-25 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法

Also Published As

Publication number Publication date
US20160226768A1 (en) 2016-08-04
EP3035612A4 (en) 2018-07-18
CN104468357B (zh) 2019-07-12
EP3035612A1 (en) 2016-06-22
EP3035612B1 (en) 2019-10-30
CN104468357A (zh) 2015-03-25
US10075375B2 (en) 2018-09-11

Similar Documents

Publication Publication Date Title
WO2015035961A1 (zh) 流表的多级化方法、多级流表处理方法及装置
US10404621B2 (en) Scalable InfiniBand packet-routing technique
US9569561B2 (en) Label masked addressable memory
US10778583B2 (en) Chained longest prefix matching in programmable switch
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
CN104618240B (zh) 用于软件定义数据中心网络中动态多径转发的方法和设备
Martinello et al. Keyflow: a prototype for evolving sdn toward core network fabrics
US20150242429A1 (en) Data matching based on hash table representations of hash tables
US10439926B2 (en) Network analysis
US20160277297A1 (en) Sdn packet forwarding
US10313240B2 (en) Technologies for efficient network flow classification with vector bloom filters
US20190222504A1 (en) Node representations of packet forwarding path elements
WO2016184029A1 (zh) 支持哈希查找和路由查找的存储、查找方法和装置、存储介质
US20190222514A1 (en) Individual network device forwarding plane reset
US10659362B1 (en) Traffic forwarding in large-scale networks
Wang et al. Memory-based architecture for multicharacter Aho–Corasick string matching
CN106487769B (zh) 一种访问控制列表acl的实现方法及装置
US9093151B2 (en) Programmable regular expression and context free grammar matcher
Qiu et al. Fast lookup is not enough: Towards efficient and scalable flow entry updates for TCAM-based OpenFlow switches
US20140056176A1 (en) Redistributing routes in backbone edge bridge multi-chassis link aggregation group topologies between two routing protocols
CN110099006A (zh) 用于有状态的分组处理的系统和方法
US9667533B2 (en) Creating and utilizing customized network applications
US20130163595A1 (en) Packet classification apparatus and method for classifying packet thereof
US9590897B1 (en) Methods and systems for network devices and associated network transmissions
US7523251B2 (en) Quaternary content-addressable memory

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14843350

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15022079

Country of ref document: US

Ref document number: 2014843350

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE