WO2015027401A1 - 报文处理方法、设备及系统 - Google Patents
报文处理方法、设备及系统 Download PDFInfo
- Publication number
- WO2015027401A1 WO2015027401A1 PCT/CN2013/082430 CN2013082430W WO2015027401A1 WO 2015027401 A1 WO2015027401 A1 WO 2015027401A1 CN 2013082430 W CN2013082430 W CN 2013082430W WO 2015027401 A1 WO2015027401 A1 WO 2015027401A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- prefix
- switching device
- matching
- entry
- flow entry
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 114
- 238000012545 processing Methods 0.000 claims abstract description 44
- 239000000284 extract Substances 0.000 abstract description 29
- 238000013507 mapping Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 69
- 230000009471 action Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 23
- 230000004048 modification Effects 0.000 description 17
- 238000012986 modification Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000000605 extraction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
Definitions
- the present invention relates to communications technologies, and in particular, to a packet processing method, device, and system. Background technique
- the OpenFlow network includes an OpenFlow switch and a Controller.
- the OpenFlow switch maintains the flow table locally. If the packet to be forwarded has a corresponding entry in the flow table, it will be forwarded directly according to the corresponding item. If there is no corresponding item in the flow table, the packet will be sent.
- the control server After the control server confirms the transmission path, the control server sends a flow table to the OpenFlow switch after confirming the transmission path, and the OpenFlow switch forwards the flow table according to the flow table sent by the control server.
- a flow table may include one or more flow entry items, and each flow entry is used to match a message, and includes a match field and an instruction set.
- the OpenFlow switch processes the action according to the action in the command set, for example, forwards the packet to the specified output port, drops the packet, modifies the packet header, or forwards the packet. Go to the group table, etc.
- the general stream processing implements atomic processing in which the forwarding plane is independent of the specific protocol format.
- the OpenFlow switch can compare any bit field in the received packet with a preset value. If they are equal, the matching succeeds.
- four parameters of offset (offset), length (size), bit mask (mask) and data (data) are used to describe a feature of the bit field used for matching.
- Offset indicates the offset, which is calculated from the start position of the packet frame received by the switch inbound interface; size specifies the length of consecutive bits after the offset, and offset and size together specify a contiguous bit field of a certain length in the packet data packet; Indicates the bit mask in the offset and size specified bit fields, and specifies which bits in the bit field participate in the matching operation.
- the mask length is size bytes long, and mask is optional. If mask is not included, the specified bit field is used as the matching bit field; data indicates the required value of the matching bit field.
- the process of implementing universal matching is as follows: A common matching flow entry is added to the flow table of the OpenFlow switch, including offset, size, mask, and data.
- the OpenFlow switch After the OpenFlow switch receives the packet data packet, if the value of the bit field specified by the offset, size, and mask is equal to the data value, the matching succeeds. The OpenFlow switch can then perform subsequent operations according to the action specified in the flow entry.
- the above offset and size can be called prefix items, and offset, size and mask can also be called prefix items, that is, the prefix items include offset and size, or include offset, size and mask.
- the embodiment of the present invention provides a packet processing method, device, and system, which are used to solve the problem of low efficiency of universal matching processing.
- the first aspect provides a packet processing method, including:
- the switching device receives the packet, where the switching device has a mapping relationship between the prefix entry and the universal flow entry, and the matching field of the universal flow entry corresponding to the prefix entry includes the prefix Item
- the switching device acquires, according to the prefix item, a bit field used for matching in the packet, where the switching device compares a value of the bit field with a data parameter of a matching field of a universal flow entry corresponding to the prefix item. Make a match.
- the switching device further includes an accurate flow entry corresponding to the universal flow entry
- the method further includes:
- the switching device matches the packet with the exact flow entry, so as to obtain a bit field in the packet for matching according to the prefix entry after the matching succeeds;
- the switching device After the matching, by the switching device, the data parameters of the matching domain of the common flow entry corresponding to the prefix entry are successfully matched, the switching device matches the precise flow entry.
- the method further includes:
- the switching device uses the prefix item as an index to establish a correspondence between the prefix item and a general flow entry on the switching device.
- the switching device is configured by using the prefix item as an index Before the mapping between the prefix and the common flow entry on the switching device, the method further includes:
- the switching device receives a prefix item configuration message sent by the control device, where the prefix item configuration is The information includes the prefix item.
- the method further includes:
- the switching device sends a feature reply message to the control device, where the feature reply message indicates that the switching device supports universal matching, so that the control device sends the prefix item configuration message according to the feature reply message.
- the second aspect provides a packet processing method, including:
- the switching device receives a prefix item configuration message, where the prefix item configuration message includes a prefix item; the switching device uses the prefix item as an index to establish a correspondence between the prefix item and a general flow entry on the switching device. And the matching field of the common flow entry corresponding to the prefix item includes the prefix item, so that after receiving the packet, the switching device extracts a bit field for matching according to the prefix item, and The value of the bit field matches the data parameter of the matching field of the universal flow entry corresponding to the prefix entry.
- the method further includes: after receiving the packet, the switching device extracts a bit field for matching according to the prefix item; The value of the bit field matches the data parameter of the matching field of the universal flow entry corresponding to the prefix entry.
- the method further includes: the switching device receiving a feature request message sent by the control device, and sending the message to the control device a feature reply message, where the feature reply message carries a matching type supported by the switching device, so that the control device sends the prefix item configuration when the switching device determines that the switching device supports universal matching according to the matching type supported by the switching device. Message.
- the switching device further includes an accurate flow entry, the precise flow entry and the prefix
- the method further includes: the switching device matching the packet with the precise flow entry, so as to extract a bit for matching according to the prefix entry after the matching succeeds
- the switching device performs the matching between the value of the bit field and the data parameter of the matching field of the universal flow entry corresponding to the prefix item, and then performing the packet and the precise flow entry. match.
- the third aspect provides a packet processing method, including:
- the control device generates a prefix item configuration message, where the prefix item configuration message includes a prefix item; the control device sends the prefix item configuration message to the switching device, so that the switching device uses the prefix item as an index to establish the a matching relationship between the prefix entry and the common flow entry on the switching device, where the matching domain of the universal flow entry corresponding to the prefix entry includes the prefix entry.
- the method further includes: sending, by the control device, the sent general flow table to the switching device The prefix item corresponding to the item is counted;
- the control device determines, according to the statistical result, a prefix item included in the prefix item configuration message.
- the sending, by the control device, the prefix item configuration message to the switching device includes:
- the control device sends a plurality of the prefix item configuration messages to the virtual layer device, so that the virtual layer device integrates the multiple prefix item configuration messages, and sends the integrated prefix item configuration message to the switching device. .
- the method further includes:
- control device sends a feature request message to the switching device, and receives a feature reply message sent by the switching device, where the feature reply message carries a matching type supported by the switching device;
- the control device determines that the switching device supports universal matching according to a matching type supported by the switching device.
- a switching device including:
- a storage unit configured to store a correspondence between the prefix item and a common flow entry that is established by using a prefix item, where a matching field of the universal flow entry corresponding to the prefix item includes the prefix item; Used to receive messages;
- An acquiring unit configured to acquire, according to the prefix item, a bit field used for matching in the packet; a first matching unit, configured to match a value of the bit field with a universal flow entry corresponding to the prefix item The data parameters of the domain are matched.
- the storage unit And the second matching unit is configured to store the packet with the accurate flow table.
- the matching unit is configured to: the first matching unit is specifically configured to: when the second matching unit is successfully matched, the matching field of the common flow entry corresponding to the value of the bit field and the prefix item The data parameters are matched.
- the storage unit is further configured to store an accurate flow corresponding to the universal flow entry
- the switching device further includes a third matching unit, where the third matching unit is configured to match the packet with the precise flow entry if the first matching unit is successfully matched.
- the method further includes an establishing unit, where The prefix item is an index, and the correspondence between the prefix item and the universal flow entry is established.
- the receiving unit is further configured to receive a prefix item sent by the control device And configuring a message, where the prefix item configuration message includes the prefix item.
- the receiving unit is further configured to receive The feature request message sent by the control device;
- the switching device further includes a sending unit, configured to send a feature reply message to the control device, where the feature reply message indicates that the switching device supports universal matching, so that the control The device sends the prefix item configuration message according to the feature reply message.
- a switching device including: a memory, a processor, and a communication unit, where the memory is configured to store a correspondence between the prefix item and a universal flow entry that are established by using a prefix item as an index, where The matching field of the common flow entry corresponding to the prefix item includes the prefix item; the communication unit is configured to receive a message;
- the processor is configured to obtain, according to the prefix item, a bit field used for matching in the packet, and perform a value of the bit field with a data parameter of a matching field of a universal flow entry corresponding to the prefix item. match.
- the memory is further used to save Preserving the exact flow entry corresponding to the universal flow entry;
- the processor is configured to match the value of the bit field with the data parameter of the matching domain of the universal flow entry corresponding to the prefix entry, including:
- the processor is configured to match the packet with the exact packet, and after the matching is successful, match the value of the bit field with the data parameter of the matching domain of the universal flow entry corresponding to the prefix item.
- the memory is further configured to store an accurate flow entry corresponding to the universal flow entry; the processor is further configured to be in the bit field If the value of the match is consistent with the data parameter of the matching field of the common flow entry corresponding to the prefix entry, the packet is matched with the precise flow entry.
- the processor is further configured to use the prefix item as an index to establish the The correspondence between the prefix entry and the universal flow entry.
- the communication unit is further configured to receive a prefix item sent by the control device And configuring a message, where the prefix item configuration message includes the prefix item.
- the communication unit is further configured to receive a feature request message sent by the control device, and send a feature reply message to the control The device, where the feature reply message indicates that the switching device supports universal matching, so that the control device sends the prefix item configuration message according to the feature reply message.
- a switching device including:
- a receiving unit configured to receive a prefix item configuration message, where the prefix item configuration message includes a prefix item
- a establishing unit configured to establish, by using the prefix item as an index, a correspondence between the prefix item and a universal flow entry on the switching device, where a matching field of the universal flow entry corresponding to the prefix item includes the a prefix field, after the switching device receives the packet, extracts a bit field for matching according to the prefix item, and matches a value of the bit field with a matching field of the universal flow entry corresponding to the prefix item The data parameters are matched.
- the receiving unit is further configured to receive a packet
- the switching device further includes:
- An extracting unit configured to extract, from the message according to the prefix item, a bit field used for matching;
- a matching unit configured to match a value of the bit field with a data parameter of a matching field of a universal flow entry corresponding to the prefix item.
- the receiving unit is further configured to receive a feature request message sent by the control device, where the switching device further includes a sending unit, configured to send a feature reply message to the control device, where the feature reply message carries a matching type supported by the switching device, so that the control device determines the switching device according to a matching type supported by the switching device When the universal matching is supported, the prefix item configuration message is sent.
- the switching device further includes an accurate flow entry, the precise flow entry and the prefix Corresponding to the common flow entry corresponding to the item, the matching unit is further configured to match the packet with the precise flow entry, so as to extract a bit field for matching according to the prefix entry after the matching succeeds; or The matching unit is further configured to match the value of the bit field with the data parameter of the matching field of the universal flow entry corresponding to the prefix item, and then match the packet with the precise flow entry. .
- a switching device including: a communication unit, a memory, and a processor; the communication unit is configured to receive a prefix item configuration message, where the prefix item configuration message includes a prefix item;
- the processor is configured to establish, by using the prefix item, an association between the prefix item and a common flow entry on the switching device, where the matching field of the universal flow entry corresponding to the prefix item includes And the prefix item, after the switching device receives the packet, extracts a bit field for matching according to the prefix item, and uses a value of the bit field with a common flow entry corresponding to the prefix item.
- the data parameters of the matching domain are matched;
- the memory is configured to store the prefix item, the universal flow entry, and a correspondence between the prefix entry and the universal flow entry.
- the communication unit is further configured to receive a packet, where the processor is further configured to extract, according to the prefix item, the matching information from the packet The bit field matches the value of the bit field with the data parameter of the matching field of the universal flow entry corresponding to the prefix item.
- the communication unit is further configured to receive feature request information sent by the control device, The control device sends a feature reply message, where the feature reply message carries a matching type supported by the switching device, so that the control device determines, according to the matching type supported by the switching device, that the switching device supports universal matching, The prefix item configuration message.
- the memory is further configured to store an accurate flow table, where the precise flow entry corresponds to the prefix entry
- the processor is further configured to match the packet with the precise flow entry, so as to extract a bit field for matching according to the prefix entry after the matching succeeds, or
- the processor is further configured to: after the data of the bit field is matched with the data parameter of the matching field of the universal flow entry corresponding to the prefix item, the packet is matched with the precise flow entry.
- a control device including:
- a generating unit configured to generate a prefix item configuration message, where the prefix item configuration message includes a prefix item
- a sending unit configured to send the prefix item configuration message to the switching device, so that the switching device uses the prefix item as an index to establish a correspondence between the prefix item and a universal flow entry on the switching device, where
- the matching field of the universal flow entry corresponding to the prefix entry includes the prefix entry.
- the method further includes: a statistic unit, configured to: when the general flow entry is delivered to the switching device, The prefix item corresponding to the entry is counted.
- a determining unit configured to determine, according to the statistical result, a prefix item included in the prefix item configuration message.
- the sending unit is configured to send, by using the foregoing, a plurality of the prefix item configuration messages to the virtual layer device. So that the virtual layer device integrates the multiple prefix item configuration messages, and sends the integrated prefix item configuration message to the switching device.
- the sending unit is further configured to send a feature request to the switching device
- the control device further includes a receiving unit and a capability determining unit, where the receiving unit is configured to receive a feature reply message sent by the switching device, where the feature reply message carries a matching type supported by the switching device;
- the capability determining unit is configured to determine that the switching device supports universal matching according to a matching type supported by the switching device.
- a ninth aspect a control device is provided, including: a communication unit and a processor;
- the processor is configured to generate a prefix item configuration message, where the prefix item configuration message includes a prefix item;
- the communication unit is configured to send the prefix item configuration message to the switching device, so that the switching device uses the prefix item as an index to establish a correspondence between the prefix item and a universal flow entry on the switching device.
- the matching field of the universal flow entry corresponding to the prefix item includes the prefix item.
- the processor is further configured to: when the general flow entry is delivered to the switching device, the sent general flow table The prefix item corresponding to the item is counted, and the prefix item included in the prefix item configuration message is determined according to the statistics.
- the communication unit is configured to send, by using the multiple, the prefix item configuration message to the virtual layer
- the device configured to: the virtual layer device integrates the multiple prefix item configuration messages, and send the integrated prefix item configuration message to the switching device.
- the communication unit is further configured to send a feature request to the switching device a message, the feature reply message sent by the switching device is received, where the feature reply message carries a matching type supported by the switching device, and the processor is further configured to determine the switching device according to a matching type supported by the switching device. Support for universal matching.
- a message processing system system comprising any of the above-mentioned switching devices and any one of the control devices.
- the embodiment of the present invention obtains a prefix item on the switching device. After receiving the packet, the switching device first extracts a bit field for matching according to the prefix item, and then uses the bit field for matching with the universal The common flow entry in the flow table is matched, so that the pre-processing of the packet is implemented, and the bit field used for matching of the packet is not extracted and matched according to each general flow entry in the universal flow table. The number of times the message is extracted for the matched bit field can be reduced, and the processing efficiency of the universal matching is improved.
- FIG. 1 is a schematic flowchart of a packet processing method according to an embodiment of the present disclosure
- FIG. 2 is a schematic structural diagram of an OpenFlow network according to an embodiment of the present invention.
- FIG. 3 is a schematic flowchart of another method for processing a packet according to an embodiment of the present invention
- FIG. 4 is a schematic flowchart of a method for acquiring a general flow table according to an embodiment of the present invention
- FIG. 5 is a schematic diagram of an unoptimized process for processing a message according to a general flow table
- FIG. 6 is a schematic flowchart of processing a packet according to a general flow table according to an embodiment of the present invention
- FIG. 7 is a schematic flowchart of another packet processing method according to an embodiment of the present invention
- FIG. 8 is a system structure corresponding to FIG. Schematic diagram
- FIG. 9 is a schematic flowchart of another packet processing method according to an embodiment of the present invention.
- FIG. 10 is a schematic flowchart of processing a packet according to a hybrid flow table according to an embodiment of the present invention.
- FIG. 11 is a schematic diagram of another process for processing a message according to a hybrid flow table according to an embodiment of the present invention.
- FIG. 12 is a schematic flowchart of another packet processing method according to an embodiment of the present invention
- FIG. 13 is a schematic diagram of a mapping relationship between a general flow entry and an exact flow entry in the embodiment of the present invention
- FIG. 14 is a schematic diagram of another process for processing a message according to a hybrid flow table according to an embodiment of the present invention.
- FIG. 15 is a schematic diagram of another process for processing a message according to a hybrid flow table according to an embodiment of the present invention.
- FIG. 16 is a schematic flowchart of another packet processing method according to an embodiment of the present invention
- FIG. 17 is a schematic flowchart of another packet processing method according to an embodiment of the present invention
- Schematic diagram of a type of switching device
- FIG. 19 is a schematic structural diagram of a control device according to an embodiment of the present disclosure.
- FIG. 20 is a schematic structural diagram of a packet processing system according to an embodiment of the present invention
- FIG. 21 is a schematic structural diagram of another packet processing system according to an embodiment of the present invention.
- FIG. 1 is a schematic flowchart of a packet processing method according to an embodiment of the present invention, including: 11: A switching device receives a prefix item configuration message, where the prefix item configuration message includes a prefix item; and exemplary, a prefix item configuration message
- the number of prefix items included in the number may be one or more, and the specific number may be preset.
- there is a field A[0-15] of the message indicating that the field of the message has a total of 16 bits, and the bit is numbered from 0, and is incremented to 15, wherein A[0] represents the first one.
- the prefix item configuration message may be used to add, modify, or delete a prefix configuration table, where the switching device may store the multiple prefixes in the form of a list when the control device sends multiple prefix items to the switching device. Item, this list can be called a prefix configuration table.
- the matching field of the common flow entry corresponding to the prefix item includes: And the prefix item, after the switching device receives the packet, extracts a bit field for matching according to the prefix item, and uses a value of the bit field with a common flow entry corresponding to the prefix item. The data parameters of the matching domain are matched.
- the prefix item included in the prefix item configuration message and the matching field included in the matching field of the general flow entry may have different data structures but carry the same content.
- the corresponding relationship between the established prefix entry and the common flow entry may be stored in the prefix configuration table, or may exist in other lists.
- the general flow entry T1, ⁇ 2, ⁇ 3, and ⁇ 4 are stored on the switching device. If T1, ⁇ 2, and ⁇ 3 both include the prefix item Prefix X, the prefix entry configuration message received by the switching device is included.
- the switching device can establish the correspondence between Prefix X and Tl, T2, and T3, that is, Prefix X has a corresponding relationship with T1, ⁇ 2, and ⁇ 3, respectively.
- the switching device when it receives the packet, for example, [0-15], it can first obtain the to-be-matched field of the packet through Prefix X, that is, the bit field used for matching, for example, A[2-9 ], according to the relationship between the established Prefix X to Tl, ⁇ 2 and ⁇ 3, the values of the bit field ⁇ [2-9] for matching are matched with the data parameters of the matching fields in T1, ⁇ 2 and ⁇ 3, respectively.
- Prefix X that is, the bit field used for matching, for example, A[2-9 ]
- the switching device needs to acquire the bit field ⁇ [2-9] for matching in the process of matching with T1, ⁇ 2 and ⁇ 3 respectively, that is, obtain 3 times for matching bits.
- the domain ⁇ [2-9] caused repeated acquisition operations. Therefore, by establishing a correspondence between the prefix item and the general flow entry on the switching device, the matching bit field and the multiple common flow entry items that have been acquired may be used in the matching process, and not necessarily for each general purpose.
- the flow entry obtains the operation of the bit field for matching once, thereby improving the processing efficiency of the general flow entry.
- the optimized universal matching process can be performed.
- An exemplary, optimized universal matching process can include:
- the switching device After receiving the packet, the switching device extracts a bit field for matching according to the prefix item; the switching device compares the value of the bit field with the data of the matching field of the universal flow entry corresponding to the prefix item. The parameters are matched.
- an optimized universal matching process may also be included. It should be known to those skilled in the art that when a correspondence between a prefix entry and a general flow entry has been stored on the switching device (for example, in the manner shown in FIG. 1 , the prefix entry and the general flow entry are established by the switching device. The corresponding relationship may also be obtained by the switching device from the switching device of the corresponding relationship between the prefix entry and the general flow entry. After the receiving device receives the packet, the switching device may directly perform the optimized universal matching process. It is not necessary to perform steps 11 and 12.
- the method shown in FIG. 1 may further include:
- the switching device Receiving, by the switching device, a feature request message sent by the control device, and sending a feature reply message to the control device, where the feature reply message carries a matching type supported by the switching device, so that the control device according to the The matching type supported by the switching device determines that the switching device supports the common matching, and sends the prefix item configuration message.
- the control device may first know whether the switching device has the capability of processing the universal matching, and may be understood as having the capability of processing the general flow entry, and may also be understood as the processing of the prefix entry. ability.
- the request message can be used to request the switching device to report whether the device has the capability of the universal matching.
- the specific implementation manner of the request message is not limited in the embodiment of the present invention.
- the switching device can also store the exact flow entry, that is, the accurate flow entry and the common flow entry are stored on the interaction device, where the precise flow entry and the universal flow entry are There may also be a correspondence.
- the correspondence between T1 and T2 can be expressed as follows: First, the matching of T1 is performed, and the matching of T2 is performed after the matching is passed; It is expressed as: First, the matching of T2 is performed, and the matching of T1 is performed after the matching is passed. In view of this, the method shown in FIG.
- the method may further include: after the switching device matches the value of the bit field with the data parameter of the matching field of the universal flow entry corresponding to the prefix item, the packet and the accurate flow table are successfully obtained. Items are matched.
- prefix item the prefix item configuration message, the prefix configuration table, the correspondence between the prefix item and the general flow table item, the capability of universal matching, and the like are interpreted in the embodiment related to FIG. And examples are also applicable to other embodiments of the invention.
- control device in the embodiment of the present invention may be a control server (Controller) in the OpenFlow network, and the switching device may be an OpenFlow switch in the OpenFlow network. (OpenFlow Switch).
- Controller In the OpenFlow network
- OpenFlow Switch OpenFlow Switch
- the prefix item configuration message may be sent by the control device to the switching device, or may be sent by other devices to the switching device.
- an OpenFlow network which includes a control device, a switching device, and a host.
- the method shown in FIG. 1 can be applied in the network shown in FIG. 2.
- a prefix item configuration message is sent by the control device to the switching device.
- the following describes a method for processing a packet according to an embodiment of the present invention by using the network shown in FIG. 2 as an example.
- the control device knows in advance whether the switching device can support the universal matching.
- the control device determines that the switching device can support the universal matching, the control device performs the process of configuring the universal flow entry according to the switching device.
- the common flow entry includes the prefix entry corresponding to the common flow entry, and the prefix entry corresponding to the common flow entry in the prefix pool is sent to the switching device by using the prefix configuration message.
- the switching device can establish a prefix configuration table according to the delivered prefix item, and store the correspondence between the established prefix entry and the common flow entry in the prefix configuration table. After the switching device receives the packet, the switching device can use the prefix entry and the universal The correspondence of flow table entries to perform an optimized universal matching process.
- the scenario shown in Figure 3 will be described in detail below.
- 31-32 is a process for the control device to learn whether the switching device can support universal matching.
- the process is not a process that must be performed.
- the execution of the process may refer to a specific network situation, such as the connection between the control device and FIG. If all switching devices support universal matching, it is not necessary to perform this process. If the configuration information on the control device in Figure 2 has indicated that some of the switching devices connected to it support universal matching, the control device may not indicate whether it supports universal
- the matching switching device performs this process.
- the process can include:
- the control device sends a feature request message to the switching device.
- control device sending the feature request message to the switching device is to learn whether the switching device supports universal matching.
- Those skilled in the art should know that other forms of messages can also know whether the switching device supports universal matching, such as universal matching capability.
- Query messages, etc. are not limited here.
- the switching device sends a feature reply message to the controlling device indicating whether a universal match is supported.
- the switching device can directly return whether to support the universal matching to the control device, or return the supported matching type to the control device, so that the control device knows whether the switching device supports the universal device. Match.
- the types of matches supported by the switching device may include: exact matching and/or universal matching.
- the exact match means that the switching device can process the packet according to the precise flow entry.
- the universal matching means that the switching device can process according to the universal flow table.
- the switching device responds with a feature reply message to support universal matching and/or exact matching.
- This embodiment takes the control device as supporting the universal matching as an example.
- a flow table includes one or more flow entries, and each flow entry includes a match field and an instruction set.
- the switching device is configured according to the instruction set. The action processes the message.
- the matching field of the exact flow table contains specific field names, such as source IP address, destination IP address, port number, etc.;
- the matching field of the table does not contain the specific field name. Instead, the offset and size are used to indicate the position of the field to be matched in the message.
- the values to be matched are represented by mask and data.
- the field to be matched is The field from the Mth byte to the Nth byte from the start of the packet frame. Since the specific field names in the current accurate flow table are only the fields of the second layer to the fourth layer (L2 to L4), there are certain restrictions.
- the general flow table adopts the methods of offset, size and mask, and is not limited to L2 ⁇ L4, and can always indicate to the seventh layer (L7), that is, the field that the general flow table can indicate includes the fields of L2 ⁇ L7.
- the process of configuring the general flow entry can be performed between the control device and the switching device.
- the switching device can perform a common universal matching process, as shown in step 33'.
- the process of configuring a general flow entry may also be understood as a process in which a switching device obtains a generic flow entry from a control device.
- the switching device After the switching device receives the packet, if the switching device does not store the universal flow entry matching the packet, the switching device sends a flow entry request packet (packet_in) to the control device, where the flow The received packet is encapsulated in the request packet.
- packet_in a flow entry request packet
- control device After the control device receives the flow entry request packet sent by the switching device, the control device determines the flow entry.
- the request packet encapsulates a general flow entry corresponding to the packet received by the switching device, and sends a flow entry configuration (flow_mod) message to the switching device, where the flow entry configuration message includes the universal flow entry. .
- flow_mod flow entry configuration
- the switching device may store the received general flow entry in a list, which may be referred to as a general flow table.
- the switching device obtains the general flow entry corresponding to the packet, and can process the packet according to the obtained universal flow entry, so that the packet can be subjected to a common universal matching process.
- the switching device traverses the general flow entry in the general flow table
- the switching device acquires the bit field to be matched of the packet according to the offset, size, and mask (where the mask is optional) in the matching field of the traversed general flow entry, and extracts the extracted bit field to be matched with the bit field.
- the data parameters (data) in the matching domain of the general flow entry are compared to obtain a matching result.
- each general flow entry can include a match field and an instruction set.
- the matching field can record the prefix items (that is, offset, size and mask, where mask is optional) and the value corresponding to the prefix item (also can be understood as data parameter, ie data), the action set can be recorded in the instruction set (action)
- the action in the corresponding instruction set may be performed on the message.
- the prefix item of the current traversal general flow entry is the first prefix item, and the first prefix item specifically includes offset1, sizel, and maskl, and the value of the first prefix item corresponds to datal, then the switching device according to the offset1, sizel
- the corresponding first common field is extracted from the received message, and the common field may also be referred to as a bit field for matching, and the extracted first common field is masked by maskl, and the masked first universal field is masked.
- the field is compared with datal. If the two are the same, the match is successful, otherwise it fails.
- offset8 and sizel are used to extract a field of 8 bytes, such as 00101101.
- the matching manner is not limited, for example, For hash search, etc., the above matching method is just an example, and other defined matching methods may also be used.
- the switching device determines whether the match is successful, and if so, executes 54, otherwise executes 55.
- the switching device processes according to the instruction set action of the universal flow entry. Then it ends.
- the switching device may first record the action in the command set in the matched universal flow entry, and then traverse other common flow entries, and if other flow entries are also The received packets match, and the actions of the instruction sets of other flow entries are recorded. After all the flow entries in the flow table are traversed, the recorded actions are executed.
- the switching device determines whether the traversal is completed. If there is no matching universal flow entry, 56 can be performed. Otherwise, 52 and subsequent steps are repeated.
- the switching device encapsulates the packet into a flow table request packet (packet_in) and sends the packet to the control device to request the control device to deliver the flow entry matching the received packet. Then it ends.
- step 56 is not a mandatory step of the general universal matching process.
- the flow entry in the general flow table needs to be traversed. Therefore, for each traversal general flow entry, the packet needs to be extracted.
- the bit field to be matched may exist in these general flow entries. For example, during the traversal process, 100 general flow entries are traversed, and perhaps 20 common flow entries are prefixed (offset, size, and mask, where If the mask is optional, the same is true. Then, when matching the 20 general flow entries, you only need to extract the bit field to be matched once in the packet, and then match the data of the matching domain with the 20 common flow entries. The parameters are matched.
- a prefix configuration table may be established in the switching device, and the general flow entry with the same prefix entry is classified into one class.
- the bit field is matched with the data parameters of the matching domain of each general flow entry under the class, which can reduce the number of extractions.
- the common flow entry with the same prefix entry is classified into one class by establishing a prefix configuration table, and only one time can be extracted when extracting the matching field of the packet, instead of Avoid extraction 20 times.
- the following process can be used:
- the control device establishes a prefix pool. Each time the control device sends a flow table configuration message, it can count the prefix items in each of the common flow entry items, and arrange the prefix items according to the priority or the number of times to establish a prefix pool. For example, the general flow entry containing the first prefix item is sent 5 times in the first time, and the general flow entry containing the second prefix item is sent 3 times, and the general flow entry containing the third prefix item is sent.
- the first prefix item, the second prefix item, and the third prefix item are included in the prefix pool, and the order from the front to the back is: the first prefix item, the second prefix item, and the third prefix item.
- the step 34 is optional, and the prefix item that is sent to the switching device can also be implemented through configuration, or negotiated with other devices, and is not limited herein.
- the switching device can establish a more reasonable and scientific prefix item configuration table, so as to further improve the processing efficiency of the switching device.
- the control device sends a prefix prefix modification message to the switching device, where the prefix item selected from the prefix pool is carried.
- the number of the prefix items to be carried may be set in advance, for example, the number of the prefix items is two, and in the above scenario, the prefix items carried in the prefix item configuration message are the first prefix item and the second The prefix item.
- the prefix item configuration message can be specifically used to add, modify, or delete a prefix configuration table.
- the structure of the prefix item configuration message can be as shown in Table 1:
- the prefix entry configuration message may include the following fields: header, prefix table id, command, and refix [] , where header is an OpenFlow header; refix table id is a prefix configuration table sequence number; command is a command type, for example, adding The prefix [] is a prefix item, for example, the first prefix item and the second prefix item, and the number of the prefix items is variable.
- the switching device establishes a prefix configuration table according to the prefix item configuration message.
- the prefix configuration table may also be referred to as a collection or other name.
- the prefix table id contained in the prefix entry configuration message is idl
- the prefix[] includes the first before The prefix and the second prefix
- the command is added
- the switching device may establish a prefix configuration table that is identified as id1
- the prefix items included in the prefix configuration table are the first prefix item and the second prefix item.
- the switching device can add the first prefix item and the second prefix item to the existing prefix configuration table.
- the control device and the switching device can process the packet with an optimized universal matching process.
- the process of the optimized universal matching may include: after the switching device receives the message;
- the switching device obtains a prefix entry from the prefix configuration table, and extracts a bit field to be matched from the packet according to the prefix entry;
- the switching device compares the extracted bit field to be matched with the data parameter in the matching field of the universal flow entry corresponding to the prefix item to obtain a matching result.
- the same prefix entry may exist in the general flow entry, and the prefix configuration table created contains different prefix entries.
- the created prefix configuration table may include the 20 different prefix entries. Therefore, in the process of extracting the bit field to be matched, the bit field to be matched needs to be extracted 100 times in the process of the common universal matching, and this embodiment only needs to extract 20 times. Can improve the efficiency of the search.
- the switching device determines whether the matching is successful. If yes, execute 64, otherwise it can execute 65.
- the matching may be performed by using the prefix item as an index to obtain a corresponding general flow entry, for example, extracting the first to-be-matched bit field from the received message according to the first prefix item in the prefix configuration table, and the first universal
- the matching field of the flow entry includes the first prefix, and the value of the first common field in the packet can be compared with the data parameter (data) in the matching domain of the first universal flow entry. If the two are the same, The match is successful, otherwise it fails.
- the switching device processes according to the instruction set action of the matching universal flow entry. At this point, the process of optimizing the universal matching ends.
- step 65 can be performed.
- step 65 The switching device encapsulates the packet into a packet-in message and sends the packet to the control device. Among them, step 65 is not a mandatory step of the optimized universal matching process.
- the prefix configuration table is established in the switching device. After receiving the packet, the switching device first extracts the bit field to be matched according to the prefix configuration table, and can implement pre-processing of the packet to avoid traversing each common flow entry. When the bit field to be matched is extracted each time, the processing efficiency of the general flow entry can be improved.
- FIG. 7 is a schematic flowchart of another packet processing method according to an embodiment of the present invention.
- FIG. 8 is a schematic structural diagram of the system corresponding to FIG. 7.
- the OpenFlow network further includes a virtual layer device, and the virtual layer device can forward the packet.
- the area resources are fragmented so that each mutually isolated network with different forwarding logic can share the same set of physical forwarding plane devices.
- the virtual layer device is, for example, a hypervisor.
- this embodiment includes:
- the first control device and the second control device respectively send a prefix item configuration message to the virtual layer device;
- control device of this embodiment is not limited to two, and may be at least three. When there are at least three control devices, the same principle as that of the embodiment may be used.
- the virtual layer device integrates the prefix table in the first prefix item configuration message and the second prefix item configuration message.
- the prefix modification message sent by each control device may include the information of the switching device and the corresponding prefix table.
- the first prefix modification message includes the information of the first switching device and the information of the second switching device, and the first exchange.
- a prefix table of the device and a prefix table of the second switching device or only the information of the first switching device and the prefix table of the first switching device, or only the information of the second switching device and the prefix table of the second switching device.
- the second prefix modification message is similar.
- the virtual layer device may merge the same prefix items in the prefix table corresponding to the same switching device according to the information of the switching device included in the prefix modification message, for example, the prefix table of the first switching device included in the first prefix modification message.
- the first prefix item (specifically, offset1 and size1) is included, and the prefix table of the first switching device included in the second prefix modification message also includes the first prefix item (specifically, offset1 and size1), and the virtual layer device may A prefix item is merged such that the first prefix item sent to the first switching device is only one item, and is no longer two items.
- the foregoing integration may also be performed by deleting a prefix item that needs to be discarded.
- the prefix item to be discarded may be pre-defined in the virtual layer device, and the virtual layer device may be lost after receiving the prefix modification message. Discard the prefix entry that needs to be discarded.
- the virtual layer device pre-defines the prefix item to be modified as the second prefix item, and discards the second prefix item if the received first prefix modification message and/or the second prefix modification message includes the second prefix item. That is, the second prefix item is no longer included in the integrated prefix table.
- the above integration may also be a slice processing.
- a large forwarding network composed of multiple switches, it can be divided into multiple logical areas. Different logical areas may overlap, and control devices of different logical areas may also be different.
- the switches in the large forwarding network are connected to the virtual layer devices, and the control devices in different logical areas are also connected to the virtual layer devices.
- the control device of the overlapping area is logically regarded as a switch, and only one prefix table is modified to send a message.
- the prefix table modification message reaches the virtual layer device, the virtual layer device splits the message into multiple pieces.
- the prefix table modification message is sent to different switches in the overlapping area.
- the virtual layer device sends a prefix item configuration message to the first switching device and the second switching device, where the integrated prefix table is respectively carried.
- the first switching device and the second switching device After receiving the prefix modification message, the first switching device and the second switching device establish respective prefix configuration tables according to the integrated prefix table carried therein.
- the first switching device and the second switching device respectively perform optimized universal matching processing according to respective prefix configuration tables.
- 73 to 75 refer to the above 36 to 37 and Figure 6.
- the prefix configuration table is established in the switching device. After receiving the packet, the switching device first extracts the bit field to be matched in the packet according to the prefix entry in the prefix configuration table, and then uses multiple prefixes corresponding to the prefix entry. The data parameters in the matching domain of the flow entry are matched, so that the pre-extraction of the bit field to be matched can be implemented, and the bit field to be matched needs to be extracted once when traversing each general flow entry. The processing efficiency of the general flow entry can be improved.
- the integration of the virtual layer device in the embodiment can reduce the number of duplicate prefix entries from different control devices or discard the prefix entries that need to be deleted, which can further improve the exchange. The validity of the prefix entry in the prefix configuration table established by the device further improves the search efficiency.
- the control device can be configured to the switch device general flow entry and the precise flow entry. That is, the switch device needs to enter
- the matching of the flow-precision flow entry also requires the matching of the general flow entry.
- the exact flow entry and the general flow entry are collectively referred to as a hybrid flow entry.
- the exact match is A match that is mixed with a universal match can be called a hybrid match.
- the matching of the hybrid flow entries may be in a unified or separate manner. In the unified mode, the matching of one flow entry is supplemented by the matching of another flow entry. In the separation mode, the two matching modes are independent. match.
- the matching of the exact flow entry may be referred to as an exact match
- the matching of the general flow entry may be referred to as a universal match
- the optimized universal flow entry using the idea of the present invention The processing may be referred to as an optimized universal matching, whereas the processing of a general general flow entry not using the inventive concept may be referred to as a general universal matching.
- the switching device further includes an accurate flow entry corresponding to the common flow entry corresponding to the prefix item, where the method further includes:
- the switching device Before the switching device extracts the bit field for matching according to the prefix item, the switching device matches the packet with the exact flow entry, so as to be extracted according to the prefix entry after the matching succeeds Matched bit field; or,
- the switching device After the switching device successfully matches the value of the bit field with the data parameter of the matching field of the universal flow entry corresponding to the prefix item, the switching device matches the packet with the precise flow entry.
- each precision flow entry and each general flow entry may be traversed to complete an exact match and a universal match respectively; or each precise flow entry may be pre-established with each After a match (exact match or universal match) is successfully matched, the other flow entry corresponding to a flow entry (exact flow entry or general flow entry) that matches the match is determined. (general flow entry or exact flow entry), another match (generic match or exact match) according to the corresponding flow entry (general flow entry or exact flow entry), without traversing another Match each flow entry.
- the switching device before the switching device extracts a bit field for matching according to the prefix item, the switching device matches the packet with the precise flow entry, so that after the matching succeeds, according to the
- the prefix term extracted in the matched bit field may specifically include:
- the switching device Before the switching device extracts the bit field for matching according to the prefix item, the switching device sequentially matches the packet with each precise flow entry, so that each prefix is sequentially followed after the matching is successful. Item extraction for matching bit fields; or,
- the exchange before the switching device extracts a bit field for matching according to the prefix item The device sequentially matches the packet with each precise flow entry to extract a bit field for matching according to a prefix entry included in the universal flow entry corresponding to the matched accurate flow entry after the matching succeeds.
- the switching device may match the packet with the precise flow entry. Specifically include:
- the packet is matched with each precise flow entry in turn; or ,
- the switching device After the matching of the bit field and the data parameter of the matching field of the common flow entry corresponding to the prefix entry, the switching device matches the packet with the matching universal flow entry.
- FIG. 9 is a schematic flowchart of another packet processing method according to an embodiment of the present invention.
- the hybrid matching in the unified mode is taken as an example for description.
- This embodiment includes:
- the switching device sends a flow entry request packet to the control device.
- the flow entry request packet may be a packet_in message.
- the switching device can encapsulate the packet into the control device to request a new flow entry if the corresponding flow entry does not exist.
- the control device sends a flow entry configuration message to the switching device, including an accurate flow entry and a universal flow entry.
- the flow entry configuration message can be used to add, modify, or delete a flow entry on the switching device.
- the prefix configuration table can be pre-configured on the switching device. If not configured, the prefix configuration message can be configured.
- the method may further include:
- the control device sends a prefix modification message to the switching device, so that the switching device establishes a prefix configuration table according to the prefix modification message.
- the specific content of the control device to generate and send the prefix modification message, and the specific content of the switching device establishment prefix configuration table can be referred to the corresponding steps in FIG.
- the switching device can perform the processing of hybrid matching.
- the switching device mixes and matches the packets.
- FIG. 10 For the process of the hybrid device matching the packets in a unified manner, refer to FIG. 10, which includes:
- the switching device receives the packet through the network port
- the switching device extracts the matching field from the packet according to the exact flow entry, and matches the matching field with the precise flow entry.
- the fields defined in advance in the message may be referred to as matching fields, such as destination IP, source IP, and the like.
- a matching field of the corresponding set number is extracted in the message, and the matching field includes multiple fields such as a source IP and a destination IP address. Then compare the value of the extracted matching field with the value of the corresponding field in the exact flow entry. If the two are the same, the match is successful, otherwise it fails.
- the above matching method is also an example, and a mask may be used for masking and the like when specifically matching.
- the switching device determines whether the exact match is successful, and if so, executes 104, otherwise, performs 108.
- 104 The switching device obtains a prefix item from the prefix configuration table, and extracts a bit field to be matched from the packet according to the prefix item.
- the prefix item obtained here may have one or more
- the switching device compares the extracted bit field to be matched with the data parameter in the matching field of the universal flow entry corresponding to the prefix item to obtain a universal matching result.
- the switching device determines whether the universal matching is successful, and if so, executes 107, otherwise executes 108.
- 107 The switching device processes according to the instruction set action of the matching universal flow entry. At this point, the processing of the hybrid matching of the one-in-one mode can be regarded as completion.
- the switching device may also request the control device to match the flow entry corresponding to the packet, as shown in step 108.
- the switching device sends the packet to the control device, and the control device sends a flow entry matching the packet.
- the hybrid matching when the hybrid matching is performed in a unified manner, it may be first determined whether the exact matching is successful. When the exact matching is successful, it is also required to determine whether the universal matching is successful, and only when the exact matching and the universal matching are successful. action.
- the prefix to be matched is first extracted.
- the bit field can also be a normal general matching process after the exact match is successful. In this case, the prefix configuration table does not need to be established.
- the present invention further provides an embodiment including:
- the switching device performs a first matching on the received packet according to the first flow entry.
- the switching device After the first matching is successful, the switching device performs a second matching on the packet according to the second flow entry.
- the first flow entry is an exact flow entry
- the first match is an exact match
- the second flow entry is a universal flow entry
- the second match is a universal match
- the first flow entry is a universal flow table
- the first match is a universal match
- the second flow entry is an accurate flow table
- the second match is an exact match
- the common matching may also first extract the bit field to be matched from the packet according to the prefix item in the prefix configuration table, and adopt the bit field to be matched. Matches with a generic flow table entry. For specific establishment of the prefix configuration table, extraction of common fields, and matching specific content, refer to the above embodiment.
- the packet matching processing can be completed in the mixed flow table scenario, thereby improving the processing efficiency.
- FIG. 12 is a schematic flowchart of another method for processing a flow table according to an embodiment of the present invention.
- a hybrid flow table is used as a separation mode.
- This embodiment includes:
- the switching device sends a flow entry request message (for example: packet_in) to the control device. After receiving the first packet, the switching device may encapsulate the first packet into a flow entry request packet and send the packet to the control device to request the first packet. The flow entry corresponding to the text.
- a flow entry request message for example: packet_in
- the control device sends a flow entry configuration message to the switching device, including the precise flow entry and the universal flow entry, and the matching manner.
- the flow entry configuration message can be used to add, modify, or delete a flow entry on the switching device.
- the match type includes: only exact match, only universal match, mixed match of the unity mode, and mixed match of the split mode.
- the matching method can be expressed by different values, so that the switching device can learn the matching method according to the value, for example, 00 means only exact match, only 01 means only generic match, and 10 means unity. Way Mixed match, using 11 to identify the hybrid match of the separation mode.
- the switching device can obtain the exact flow entry and the general flow entry, and the switching device can also know which matching is needed.
- the method may further include:
- the control device sends a prefix configuration message to the switching device, so that the switching device establishes a prefix configuration table according to the prefix entry in the prefix configuration message.
- the specific content of the control device generating and sending the prefix character configuration message and the specific content of the switching device establishment prefix configuration table can be referred to the corresponding steps in FIG.
- the switching device establishes a hybrid flow entry according to the flow entry configuration message, where the hybrid flow entry includes a universal flow entry and an accurate flow entry, and a mapping table, where the mapping table is used to indicate the accurate flow entry and the universal flow table.
- the switching device inserts an index of the corresponding precision flow entry when the general flow entry is established.
- the index of the accurate flow entry corresponding to the established universal flow entry #1 is index #1;
- the index of the corresponding general flow entry is inserted.
- the index of the general flow entry corresponding to the established accurate flow entry #1 is index #1.
- the switching device processes the packet according to the mixed flow entry. That is, the processing of mixing and matching the message.
- the switching device receives the packet through the network port;
- the switching device extracts a matching field from the packet according to the exact flow entry, and matches the matching field with the precise flow entry.
- a matching field refers to the embodiment shown in Figure 10, and no further details are provided here.
- the source IP address can be directly extracted from the packet, and the source IP address of the packet and the source IP address in the exact flow entry. The values are compared. If the two are the same, the match is successful or it fails.
- the switching device determines whether a universal matching is required, and if so, executes 1405, otherwise executes 1404.
- the switching device can judge according to the matching method.
- the matching method For a description of the matching manner, reference may be made to the embodiment shown in Fig. 12, and no description is made here.
- the switching device processes the actions in the instruction set of the matched precise flow entry.
- the precise flow entry matching the packet may be one or multiple.
- the switching device may sequentially perform the action in the instruction set of the matched precise flow entry, or may follow The priority of the action performs the action in the instruction set of the matched precise flow entry, or only the action with the highest priority in the instruction set of the matched exact flow entry.
- the description of the actions in the instruction set for the switching device to process the matched precise flow entry in the other embodiments of the present invention is similar to this embodiment.
- a flow entry request can be sent to the control device.
- the switching device determines a corresponding universal flow entry according to the matched precise flow entry.
- the precise flow entry that extracts and matches the packet according to the exact flow entry is the exact flow entry #1, and then according to the mapping relationship between the precise flow entry and the general flow entry, such as the exact flow entry #
- the index of the inserted general flow entry is index #1, and then the determined universal flow entry is the general flow entry of index #1.
- the general flow entry determined here may be one or more than one. 1406: The switching device extracts a bit field to be matched from the packet according to the corresponding universal flow entry.
- the matching field of the general flow entry of index #1 includes the prefix items (offset, size, and mask), and the corresponding bit field to be matched is extracted from the text according to the offset, size, and mask.
- the common universal matching needs to extract the bit field to be matched for each corresponding general flow entry. If the prefix entries of the matching fields in the common flow entries of the index #1 are the same, the optimized universal matching may be used to extract only one common flow entry with the same prefix entry. Matching bit field.
- the switching device compares the extracted bit field to be matched with the data parameter of the matching field in the universal flow entry to obtain a universal matching result.
- bit field to be matched extracted according to the general flow entry of index #1 is the first bit field, and then the data parameter (data) of the matching field of the first bit field and the general flow entry of index #1 is used. For comparison, if the two values are the same, the universal match is successful, otherwise the universal match fails.
- the switching device determines whether the universal matching is successful. If yes, execute 1409, otherwise execute 1410. Exemplarily, in the case where there are multiple general flow entries, the universal matching is considered successful as long as one of the general flow entries can match.
- the switching device processes according to the instruction centralized action of the universal flow entry.
- the general flow entry matching the 4 ⁇ text as described above may be one or more
- the switching device may sequentially perform an action in the instruction set of the matched universal flow entry, or may perform an action in the instruction set of the matched universal flow entry according to the priority of the action, or may only perform The highest priority action in the instruction set of the matching generic flow entry.
- the description of the actions in the instruction set for the switching device to process the matched generic flow entry in other embodiments of the present invention is similar to this embodiment.
- the switching device may end the process, or may request the control device to match the flow entry corresponding to the packet. For example: You can refer to the steps
- the switching device encapsulates the message into a flow table request (packet_in) message and sends the message to the control device.
- FIG. 14 is that the exact matching is performed first to determine whether to perform the universal matching.
- the universal matching is required, the general matching item corresponding to the matched exact matching item is processed, or the universal matching may be performed first to determine whether An exact match is made, and when an exact match is required, it is processed according to the exact match corresponding to the matched universal match.
- the general-purpose field extraction of the packet may be performed according to the prefix configuration table, and then matched with the common flow entry of the universal flow table. I will not repeat them here, please refer to the related embodiments mentioned above.
- the present invention further provides an embodiment including:
- the switching device performs a first matching on the received packet according to the first flow entry.
- the switching device determines, according to the received matching manner, that the second matching item corresponding to the first flow entry used in the first matching is determined according to the pre-established correspondence, and uses the corresponding The second flow entry performs a second matching on the packet.
- the first flow entry is an exact flow entry
- the first match is an exact match
- the second flow entry is a universal flow entry
- the second match is a universal match
- the The first-class entry is a universal flow entry
- the first match is a universal match
- the second flow entry is an accurate flow entry
- the second match is an exact match
- the pre-established correspondence relationship is the mapping relationship between the general flow entry and the precise flow entry as shown in FIG. 13 .
- the common matching may also first extract the bit field to be matched according to the prefix item in the prefix configuration table, and adopt the common field and General flow table entries are matched.
- extraction of the bit field to be matched, and specific content of the matching refer to the related embodiments above.
- FIG. 16 is a schematic flowchart of another packet processing method according to an embodiment of the present invention, including: 161: A switching device receives a packet, where the switching device has the prefix item and a universal identifier established by using a prefix item as an index. a matching relationship of the flow entry, the matching domain of the universal flow entry corresponding to the prefix entry includes the prefix entry;
- 162 The switching device extracts a bit field used for matching in the packet according to a prefix item.
- 163 The switching device compares a value of the bit field with a matching field of a universal flow entry corresponding to the prefix item. Data parameters are matched.
- the switching device further includes an accurate flow entry corresponding to the universal flow entry, and the method further includes:
- the switching device Before the switching device extracts the bit field used for matching in the packet according to the prefix item, the switching device matches the packet with the precise flow entry, so as to be based on the prefix after the matching succeeds Extracting the bit field used for matching in the file; or
- the switching device After the matching, by the switching device, the data parameters of the matching domain of the common flow entry corresponding to the prefix entry are successfully matched, the switching device matches the precise flow entry.
- FIG. 17 is a schematic flowchart of another packet processing method according to an embodiment of the present invention, including:
- the control device generates a prefix item configuration message, where the prefix item configuration message includes a prefix item.
- the control device sends the prefix item configuration message to the switching device, so that the switching device uses the prefix item as an index to establish a correspondence between the prefix item and a universal flow entry on the switching device.
- the matching field of the universal flow entry corresponding to the prefix item includes the prefix item.
- the data structure of the prefix item included in the prefix field configuration message and the matching field included in the common stream entry may be different, but the content of the bearer is the same.
- the method further includes:
- control device sends a feature request message to the switching device, and receives a feature reply message sent by the switching device, where the feature reply message carries a matching type supported by the switching device;
- the control device determines the switching device support according to a matching type supported by the switching device Universal match.
- the sending, by the control device, the prefix item configuration message to the switching device includes: the control device sending, by the control device, the multiple prefix item configuration message to the virtual layer device, so that the virtual layer device integrates the multiple The prefix item configures the message, and sends the integrated prefix item configuration message to the switching device.
- the method further includes:
- the control device performs statistics on the prefix items corresponding to the sent general flow entry when the common flow entry is sent to the switching device;
- the control device determines, according to the statistical result, a prefix item included in the prefix item configuration message.
- the control device sends a prefix to the switching device, so that after receiving the packet, the switching device first extracts the common field from the packet according to the prefix, and can perform pre-processing on the packet to avoid traversing each common stream.
- Table items can improve the efficiency of searching.
- FIG. 18 is a schematic structural diagram of a switching device according to an embodiment of the present invention.
- the device 180 includes a communication unit 181, a processor 182, and a memory 183.
- the storage unit 183 is configured to store a correspondence between the prefix item and the common flow entry that is set by using a prefix item, where the matching field of the universal flow entry corresponding to the prefix item includes the prefix item;
- the communication unit 181 is configured to receive a message
- the processor 182 is configured to acquire, according to the prefix item, a bit field used for matching in the packet, and set a value of the bit field to a data parameter of a matching field of a universal flow entry corresponding to the prefix item. Make a match.
- the memory 183 is further configured to store an accurate flow entry corresponding to the universal flow entry; the processor 182 is configured to: use the universal flow table corresponding to the value of the bit field and the prefix entry.
- the matching of the data parameters of the matching field of the item includes: the processor 182 is configured to match the text with the exact text, and after the matching is successful, the value of the bit field is corresponding to the prefix item. The data parameters of the matching fields of the flow entry are matched.
- the memory 183 is further configured to store an accurate flow entry corresponding to the universal flow entry; the processor is further configured to: use, in the bit field, a universal flow table corresponding to the prefix entry If the data parameters of the matching domain of the item are successfully matched, the packet is matched with the precise flow entry.
- the processor 182 is further configured to use the prefix item as an index to establish a correspondence between the prefix item and the universal flow entry.
- the communication unit 181 is further configured to receive a prefix item configuration message sent by the control device, where the prefix item configuration message includes the prefix item.
- the communication unit 181 is further configured to receive a feature request message sent by the control device, and send a feature reply message to the control device, where the feature reply message indicates that the switching device supports universal matching, so that the control The device sends the prefix item configuration message according to the feature reply message.
- the switching device may include:
- a storage unit configured to store a correspondence between the prefix item and a common flow entry that is established by using a prefix item, where a matching field of the universal flow entry corresponding to the prefix item includes the prefix item; Used to receive messages;
- An acquiring unit configured to acquire, according to the prefix item, a bit field used for matching in the packet; a first matching unit, configured to match a value of the bit field with a universal flow entry corresponding to the prefix item The data parameters of the domain are matched.
- the storage unit is further configured to store an accurate flow entry corresponding to the universal flow entry;
- the switching device further includes a second matching unit, and the second matching unit is configured to: The packet is matched with the exact flow entry, where the first matching unit is specifically configured to: when the second matching unit is successfully matched, the value of the bit field is corresponding to the prefix entry The data parameters of the matching domain of the generic flow entry are matched.
- the storage unit is further configured to store an accurate flow entry corresponding to the universal flow entry;
- the switching device further includes a third matching unit, where the third matching unit is configured to be in the first If the matching unit is successfully matched, the packet is matched with the precise flow entry.
- the switching device further includes an establishing unit, where the establishing unit is configured to establish, by using the prefix item as an index, a correspondence between the prefix item and the universal flow entry.
- the receiving unit is further configured to receive a prefix item configuration message sent by the control device, where the prefix item configuration message includes the prefix item.
- the receiving unit is further configured to receive a feature request message sent by the control device, where the switching device further includes a sending unit, configured to send a feature reply message to the control device, where the feature response is Message indicating that the switching device supports universal matching, so that the control device Sending the prefix item configuration message according to the feature reply message.
- the switching device receives the prefix item sent by the control device, and the correspondence between the prefix item and the common flow entry is established on the switching device. After receiving the packet, the switching device firstly extracts the packet according to the prefix item. The matched bit field is matched with the data parameters of the matching field in the common flow entry corresponding to the prefix item, thereby avoiding that the bit field to be matched needs to be extracted once for each common flow entry, which can improve the universal The processing efficiency of flow entries.
- FIG. 19 is a schematic structural diagram of a control device according to an embodiment of the present invention.
- the device 190 includes a processor 191 and a communication unit 192.
- the processor 191 is configured to generate a prefix item configuration message, where the prefix item configuration message includes a prefix item;
- the communication unit 192 is configured to send the prefix item configuration message to the switching device, so that the switching device uses the prefix item as an index to establish a correspondence between the prefix item and a general flow entry on the switching device.
- the matching field of the universal flow entry corresponding to the prefix entry includes the prefix entry.
- the processor 191 is further configured to: when the common flow entry is sent to the switching device, perform statistics on the prefix item corresponding to the sent general flow entry, and determine, according to the statistical result, the The prefix entry contains the prefix entry included in the message.
- the communication unit 192 is specifically configured to send the multiple prefix item configuration messages to the virtual layer device, so that the virtual layer device integrates the multiple prefix item configuration messages, and the integrated prefix items are A configuration message is sent to the switching device.
- the communication unit 192 is further configured to send a feature request message to the switching device, and receive a feature reply message sent by the switching device, where the feature reply message carries a matching type supported by the switching device.
- the processor 191 is further configured to determine that the switching device supports universal matching according to a matching type supported by the switching device.
- control device may include:
- a generating unit configured to generate a prefix item configuration message, where the prefix item configuration message includes a prefix item
- the control device further includes: a statistics unit, configured to perform statistics on the prefix items corresponding to the sent general flow entry when the common flow entry is sent to the switching device; The prefix item included in the prefix item configuration message is determined according to the statistical result.
- the sending unit is configured to send the multiple prefix item configuration messages to the virtual layer device, so that the virtual layer device integrates the multiple prefix item configuration messages, and configures the integrated prefix items.
- a message is sent to the switching device.
- the sending unit is further configured to send a feature request message to the switching device
- the control device further includes a receiving unit and a capability determining unit, where the receiving unit is configured to receive a feature reply sent by the switching device.
- the message, the feature reply message carries a matching type supported by the switching device, and the capability determining unit is configured to determine, according to a matching type supported by the switching device, that the switching device supports universal matching.
- the control device sends a prefix entry to the switching device, so that the switching device establishes a correspondence between the prefix entry and the universal flow entry.
- the switching device After receiving the packet, the switching device first extracts the to-be-matched packet according to the prefix entry.
- the bit field is matched with the data parameters of the matching field in the common flow entry corresponding to the prefix entry, thereby avoiding that the bit field to be matched needs to be extracted once for each common flow entry, and the universal flow table can be improved. Item processing efficiency.
- FIG. 20 is a schematic structural diagram of a packet processing system according to an embodiment of the present invention.
- the system 200 includes a switching device 201 and a control device 202.
- the switching device 201 may be specifically described in FIG. 18 when communicating directly with the control device.
- Control device 202 may be specifically as described in connection with the switching device in FIG.
- the system may further include a virtual layer device 203.
- the switching device 201 may specifically communicate with the control device through the virtual layer device in FIG. 18, and the control device 202 may specifically pass through FIG.
- the virtual layer device 203 When the virtual layer device communicates with the switching device, the virtual layer device 203 is configured to receive multiple pieces of the prefix item configuration message sent by the control device 202, and integrate the multiple prefix item configuration messages, and integrate the A prefix entry configuration message is sent to the switching device 201.
- the control device sends a prefix entry to the switching device, so that the switching device establishes a correspondence between the prefix entry and the universal flow entry.
- the switching device After receiving the packet, the switching device first extracts the to-be-matched packet according to the prefix entry.
- the bit field is matched with the data parameters of the matching field in the common flow entry corresponding to the prefix entry, thereby avoiding that the bit field to be matched needs to be extracted once for each common flow entry, and the universal flow table can be improved. Item processing efficiency.
- the disclosed systems, devices, and methods may be implemented in other ways.
- the device embodiments described above are merely illustrative.
- the division of the modules or units is only a logical function division.
- there may be another division manner for example, multiple units or components may be used. Combined or can be integrated into another system, or some features can be ignored, or not executed.
- the coupling or direct coupling or communication connection between the various components shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be electrical, mechanical or otherwise.
- the units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solution of the embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software function unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
- the instructions include a plurality of instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to perform all or part of the steps of the methods described in various embodiments of the present application.
- the foregoing storage medium includes: a U disk, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and the like, which can store program code. .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种报文处理方法、设备和系统。该方法包括交换设备接收报文,其中该交换设备上有以前缀项为索引建立的前缀项和通用流表项的对应关系,其中该前缀项对应的通用流表项的匹配域包括该前缀项;该交换设备根据该前缀项获取该报文中用于匹配的比特域;该交换设备将该比特域的值与该前缀项对应的通用流表项的匹配域的数据参数进行匹配。本发明实施例可以降低报文提取通用字段的次数,提高处理效率。
Description
报文处理方法、 设备及系统 技术领域 本发明实施例涉及通信技术, 尤其涉及一种报文处理方法、设备及系统。 背景技术
开放流( OpenFlow ) 网络中包括 OpenFlow交换机( OpenFlow Switch ) 和控制服务器( Controller )。 OpenFlow交换机会在本地维护流表( Flow Table ), 如果要转发的报文在流表中有对应项, 则直接根据该对应项进行快速转发; 如流表中没有对应项, 报文会被发送到控制服务器进行传输路径的确认, 控 制服务器在确认传输路径后会向 OpenFlow交换机下发流表, OpenFlow交换 机根据控制服务器下发的流表进行转发。
流表可以包括一个或多个流表项, 每个流表项用于匹配报文, 包含匹配 域(match field )字段和指令集(instructions )等。 当接收的报文的字段与匹 配域中的内容匹配时, 则 OpenFlow交换机按照指令集中的动作 ( action )进 行处理, 例如将报文转发到指定的输出端口, 丟包、 修改报文头或者转发到 群组表等。
通用流处理实现了转发面与具体协议格式无关的原子处理, OpenFlow交 换机能够对收到的报文中的任意比特域与预设的值进行比较, 如果相等则匹 配成功。为了指定分组报文中的任意比特域,采用偏移量( offset )、长度( size )、 比特掩码(mask )和数据(data )这 4个参数描述一个用于匹配的比特域的 特征。 offset表示偏移量, 以交换机入接口收到的分组帧起始位置算起; size 指定 offset后面连续比特的长度, offset和 size共同指定分组数据报文中一个 确定长度的连续的比特字段; mask表示 offset和 size指定比特字段内的比特 掩码,指定该比特字段内哪些比特位参与匹配操作。 mask长度为 size字节长, mask 为可选项, 如果不包括 mask, 则表明指定的整个比特字段作为匹配用 的比特域; data表示匹配用的比特域的所需满足的取值。 示例性的, 实现通 用匹配的过程为: OpenFlow 交换机的流表中增加通用匹配流表项, 包含 offset, size, mask和 data。 当 OpenFlow交换机接收到分组数据报文后, 如 果该报文按照 offset, size, mask指定的比特域的值等于 data值,则匹配成功,
然后 OpenFlow交换机可按照流表项中指定的动作 (action )执行后续操作。 上述的 offset和 size可以称为前缀项, offset, size和 mask也可以称为前 缀项, 即前缀项包括 offset和 size, 或者包括 offset, size和 mask。
在实践中, 通用匹配的处理效率较低。 发明内容
有鉴于此, 本发明实施例提供了一种报文处理方法、 设备及系统, 用于 解决通用匹配处理效率较低的问题。
第一方面, 提供了一种报文处理方法, 包括:
交换设备接收报文, 其中所述交换设备上有以前缀项为索引建立的所述 前缀项和通用流表项的对应关系 , 所述前缀项对应的通用流表项的匹配域包 括所述前缀项;
所述交换设备根据所述前缀项获取所述报文中用于匹配的比特域; 所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配。
结合第一方面, 在第一方面的第一种可能的实现方式中, 所述交换设备 上还有和所述通用流表项对应的精确流表项, 该方法还包括:
所述交换设备将所述报文与所述精确流表项进行匹配, 以便在匹配成功 后根据所述前缀项获取所述报文中用于匹配的比特域; 或者,
所述交换设备在将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹配。
结合第一方面或第一方面的第一种可能的实现方式, 在第一方面的第二 种可能的实现方式中, 还包括:
所述交换设备以所述前缀项为索引, 建立所述前缀项与所述交换设备上 的通用流表项的对应关系。
结合第一方面或第一方面的第一种或第二种可能的实现方式, 在第一方 面的第三种可能的实现方式中, 在所述交换设备以所述前缀项为索引, 建立 所述前缀符与所述交换设备上的通用流表项的对应关系之前, 所述方法还包 括:
所述交换设备接收控制设备发送的前缀项配置消息, 所述前缀项配置消
息包括所述前缀项。
结合第一方面或第一方面的第三种可能的实现方式, 在第一方面的第四 种可能的实现方式中, 该方法还包括:
所述交换设备接收所述控制设备发送的特征请求消息;
所述交换设备发送特征回复消息至所述控制设备, 其中, 所述特征回复 消息指示所述交换设备支持通用匹配, 以便所述控制设备根据所述特征回复 消息发送所述前缀项配置消息。
第二方面, 提供一种报文处理方法, 包括:
交换设备接收前缀项配置消息, 所述前缀项配置消息中包括前缀项; 所述交换设备以所述前缀项为索引, 建立所述前缀项与所述交换设备上 的通用流表项的对应关系, 其中所述前缀项对应的通用流表项的匹配域包括 所述前缀项, 以使所述交换设备接收到报文后, 根据所述前缀项提取用于匹 配的比特域, 并将所述比特域的值与所述前缀项对应的通用流表项的匹配域 的数据参数进行匹配。
结合第二方面, 在第二方面的第一种实现方式中, 还包括: 所述交换设 备接收到报文后, 根据所述前缀项提取用于匹配的比特域; 所述交换设备将 所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹 配。
结合第二方面或者第二方面的第一种实现方式, 在第二方面的第二种实 现方式中, 还包括: 所述交换设备接收控制设备发送的特征请求消息, 并向 所述控制设备发送特征回复消息, 所述特征回复消息中携带所述交换设备支 持的匹配类型, 以便所述控制设备根据所述交换设备支持的匹配类型确定所 述交换设备支持通用匹配时, 发送所述前缀项配置消息。
结合第二方面的第一种或者第二种实现方式, 在第二方面的第三种实现 方式中, 所述交换设备上还存有精确流表项, 所述精确流表项与所述前缀项 对应的通用流表项对应, 所述方法还包括: 所述交换设备将所述报文与所述 精确流表项进行匹配, 以便在匹配成功后根据所述前缀项提取用于匹配的比 特域; 或者, 所述交换设备将所述比特域的值与所述前缀项对应的通用流表 项的匹配域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行 匹配。
第三方面, 提供了一种报文处理方法, 包括:
控制设备生成前缀项配置消息, 所述前缀项配置消息中包括前缀项; 所述控制设备向交换设备发送所述前缀项配置消息, 以便所述交换设备 以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项的对 应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
结合第三方面, 在第三方面的第一种可能的实现方式中, 还包括: 所述控制设备在下发通用流表项至所述交换设备的情况下, 对所述下发 的通用流表项对应的前缀项进行统计;
所述控制设备根据统计结果确定所述前缀项配置消息中包含的前缀项。 结合第三方面或第三方面的第一种可能的实现方式, 在第三方面的第二 种可能的实现方式中, 所述控制设备向交换设备发送所述前缀项配置消息, 包括:
所述控制设备发送多条所述前缀项配置消息至虚拟层设备, 以使所述虚 拟层设备整合所述多条前缀项配置消息, 并将整合后的前缀项配置消息发送 至所述交换设备。
结合第三方面或第三方面的第一种或第二种可能的实现方式, 在第三方 面的第三种可能的实现方式中, 还包括:
所述控制设备向所述交换设备发送特征请求消息, 并接收所述交换设备 发送的特征回复消息, 所述特征回复消息中携带所述交换设备支持的匹配类 型;
所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持 通用匹配 。
第四方面, 提供了一种交换设备, 包括:
存储单元, 用于存储以前缀项为索引建立的所述前缀项和通用流表项的 对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项; 接收单元, 用于接收报文;
获取单元, 用于根据所述前缀项获取所述报文中用于匹配的比特域; 第一匹配单元, 用于将所述比特域的值与所述前缀项对应的通用流表项 的匹配域的数据参数进行匹配。
结合第四方面, 在第四方面的第一种可能的实现方式中, 所述存储单元
还用于存储和所述通用流表项对应的精确流表项; 所述交换设备还包括第二 匹配单元; 所述第二匹配单元, 用于在将所述报文与所述精确流表项进行匹 配; 其中, 所述第一匹配单元, 具体用于当所述第二匹配单元匹配成功的情 况下, 将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参 数进行匹配。
结合第四方面或第四方面的第一种可能的实现方式, 在第四方面的第二 种可能的实现方式中, 所述存储单元还用于存储和所述通用流表项对应的精 确流表项; 所述交换设备还包括第三匹配单元; 所述第三匹配单元, 用于在 所述第一匹配单元匹配成功的情况下, 将所述报文与所述精确流表项进行匹 配。
结合第四方面或第四方面的第一种或第二种可能的实现方式, 在第四方 面的第三种可能的实现方式中, 还包括建立单元, 所述建立单元, 用于以所 述前缀项为索引, 建立所述前缀项与所述通用流表项的对应关系。
结合第四方面, 或者第四方面的第一种、 第二种或者第三种实现方式, 在第四方面的第四种实现方式中, 所述接收单元还用于接收控制设备发送的 前缀项配置消息, 所述前缀项配置消息包括所述前缀项。
结合第四方面, 或者第四方面的第一种、 第二种、 第三种或者第四种实 现方式, 在第四方面的第五种实现方式中, 所述接收单元, 还用于接收所述 控制设备发送的特征请求消息; 所述交换设备还包括发送单元, 用于发送特 征回复消息至所述控制设备, 其中, 所述特征回复消息指示所述交换设备支 持通用匹配, 以便所述控制设备根据所述特征回复消息发送所述前缀项配置 消息。
第五方面, 提供了一种交换设备, 包括: 存储器、 处理器和通信单元; 所述存储器, 用于存储以前缀项为索引建立的所述前缀项和通用流表项 的对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项; 所述通信单元, 用于接收报文;
所述处理器, 用于根据所述前缀项获取所述报文中用于匹配的比特域, 将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行 匹配。
结合第五方面, 在第五方面的第一种实现方式中, 所述存储器还用于存
储和所述通用流表项对应的精确流表项; 所述处理器用于将所述比特域的值 与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配, 包括: 所述 处理器用于将所述报文与所述精确报文进行匹配, 匹配成功后, 将所述比特 域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第五方面, 在第五方面的第二种实现方式中, 所述存储器还用于存 储和所述通用流表项对应的精确流表项; 所述处理器还用于在所述比特域的 值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功的情况 下, 将所述报文与所述精确流表项进行匹配。
结合第五方面, 或者第五方面的第一种或者第二种实现方式, 在第五方 面的第三种实现方式中, 所述处理器还用于以所述前缀项为索引, 建立所述 前缀项与所述通用流表项的对应关系。
结合第五方面, 或者第五方面的第一种、 第二种或者第三种实现方式, 在第五方面的第四种实现方式中, 所述通信单元还用于接收控制设备发送的 前缀项配置消息, 所述前缀项配置消息包括所述前缀项。
结合第五方面的第四种实现方式, 在第五方面的第五种实现方式中, 所 述通信单元还用于接收所述控制设备发送的特征请求消息, 并发送特征回复 消息至所述控制设备, 其中, 所述特征回复消息指示所述交换设备支持通用 匹配, 以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
第六方面, 提供了一种交换设备, 包括:
接收单元, 用于接收前缀项配置消息, 所述前缀项配置消息中包括前缀 项;
建立单元, 用于以所述前缀项为索引, 建立所述前缀项与所述交换设备 上的通用流表项的对应关系, 其中所述前缀项对应的通用流表项的匹配域包 括所述前缀项, 以使所述交换设备接收到报文后, 根据所述前缀项提取用于 匹配的比特域, 并将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配。
结合第六方面, 在第六方面的第一种实现方式中, 所述接收单元还用于 接收报文;
所述交换设备还包括:
提取单元, 用于根据所述前缀项从所述报文提取用于匹配的比特域;
匹配单元 , 用于将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配。
结合第六方面, 或者第六方面的第一种实现方式, 在第六方面的第二种 实现方式中, 所述接收单元还用于接收控制设备发送的特征请求消息, 所述 交换设备还包括发送单元, 用于向所述控制设备发送特征回复消息, 所述特 征回复消息中携带所述交换设备支持的匹配类型, 以便所述控制设备根据所 述交换设备支持的匹配类型确定所述交换设备支持通用匹配时, 发送所述前 缀项配置消息。
结合第六方面的第一种或者第二种实现方式, 在第六方面的第三种实现 方式中, 所述交换设备上还存有精确流表项, 所述精确流表项与所述前缀项 对应的通用流表项对应, 所述匹配单元还用于将所述报文与所述精确流表项 进行匹配, 以便在匹配成功后根据所述前缀项提取用于匹配的比特域; 或者 所述匹配单元还用于将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹配。
第七方面, 提供了一种交换设备, 包括: 通信单元, 存储器和处理器; 所述通信单元, 用于接收前缀项配置消息, 所述前缀项配置消息中包括 前缀项;
所述处理器, 用于以所述前缀项为索引, 建立所述前缀项与所述交换设 备上的通用流表项的对应关系, 其中所述前缀项对应的通用流表项的匹配域 包括所述前缀项, 以使所述交换设备接收到报文后, 根据所述前缀项提取用 于匹配的比特域, 并将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配;
所述存储器, 用于存储所述前缀项, 所述通用流表项和所述前缀项与所 述通用流表项的对应关系。
结合第七方面, 在第七方面的第一个实现方式中, 所述通信单元还用于 接收报文; 所述处理器还用于根据所述前缀项从所述报文提取用于匹配的比 特域, 将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参 数进行匹配。
结合第七方面, 或者第七方面的第一种实现方式, 在第七方面的第二种 实现方式中, 所述通信单元还用于接收控制设备发送的特征请求信息, 向所
述控制设备发送特征回复消息, 所述特征回复消息中携带所述交换设备支持 的匹配类型, 以便所述控制设备根据所述交换设备支持的匹配类型确定所述 交换设备支持通用匹配时, 发送所述前缀项配置消息。
结合第七方面的第一种或者第二种实现方式, 在第七方面的第三种实现 方式中, 所述存储器还用于存储精确流表, 所述精确流表项与所述前缀项对 应的通用流表项对应, 所述处理器还用于将所述报文与所述精确流表项进行 匹配, 以便在匹配成功后根据所述前缀项提取用于匹配的比特域, 或者所述 处理器还用于, 将所述比特域的值与所述前缀项对应的通用流表项的匹配域 的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹配。
第八方面, 提供了一种控制设备, 包括:
生成单元, 用于生成前缀项配置消息, 所述前缀项配置消息中包括前缀 项;
发送单元, 用于向交换设备发送所述前缀项配置消息, 以便所述交换设 备以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项的 对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
结合第八方面, 在第八方面的第一种可能的实现方式中, 还包括: 统计单元, 用于在下发通用流表项至所述交换设备的情况下, 对所述下 发的通用流表项对应的前缀项进行统计;
确定单元,用于根据统计结果确定所述前缀项配置消息中包含的前缀项。 结合第八方面或者第八方面的第一种可能的实现方式, 在第八方面第二 种可能的实现方式中, 所述发送单元具体用于发送多条所述前缀项配置消息 至虚拟层设备, 以使所述虚拟层设备整合所述多条前缀项配置消息, 并将整 合后的前缀项配置消息发送至所述交换设备。
结合第八方面, 或者第八方面的第一种或者第二种可能的实现方式, 在 第八方面第三种可能的实现方式中, 所述发送单元还用于向所述交换设备发 送特征请求消息; 所述控制设备还包括接收单元和能力确定单元; 所述接收 单元, 用于接收所述交换设备发送的特征回复消息, 所述特征回复消息中携 带所述交换设备支持的匹配类型; 所述能力确定单元, 用于根据所述交换设 备支持的匹配类型确定所述交换设备支持通用匹配。
第九方面, 提供了一种控制设备, 包括: 通信单元和处理器;
所述处理器用于生成前缀项配置消息, 所述前缀项配置消息中包括前缀 项;
所述通信单元用于向交换设备发送所述前缀项配置消息, 以便所述交换 设备以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项 的对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
结合第九方面, 在第九方面的第一种可能的实现方式中, 所述处理器还 用于在下发通用流表项至所述交换设备的情况下, 对所述下发的通用流表项 对应的前缀项进行统计, 根据统计结果确定所述前缀项配置消息中包含的前 缀项。
结合第九方面或者第九方面的第一种可能的实现方式, 在第九方面的第 二种可能的实现方式中, 所述通信单元具体用于发送多条所述前缀项配置消 息至虚拟层设备, 以使所述虚拟层设备整合所述多条前缀项配置消息, 并将 整合后的前缀项配置消息发送至所述交换设备。
结合第九方面, 或者第九方面的第一种或者第二种可能的实现方式, 在 第九方面第三种可能的实现方式中, 所述通信单元还用于向所述交换设备发 送特征请求消息, 接收所述交换设备发送的特征回复消息, 所述特征回复消 息中携带所述交换设备支持的匹配类型; 所述处理器还用于根据所述交换设 备支持的匹配类型确定所述交换设备支持通用匹配。
第十方面, 提供了一种报文处理系统系统, 包括上述任——种交换设备 和任一一种控制设备。
通过上述技术方案, 本发明实施例在交换设备上会获取前缀项, 交换设 备接收到报文后首先会根据该前缀项提取用于匹配的比特域, 之后才将用于 匹配的比特域与通用流表中的通用流表项进行匹配, 这样就实现了对报文的 预处理, 不需要根据通用流表中每个通用流表项对报文的用于匹配的比特域 进行提取及匹配, 可以降低报文提取用于匹配的比特域的次数, 提高通用匹 配的处理效率。 附图说明 为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中 所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图是本发明
的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前 提下, 还可以根据这些附图获得其他的附图。
图 1为本发明实施例提供的一种报文处理方法的流程示意图;
图 2为本发明实施例中一种 OpenFlow网络的结构示意图;
图 3为本发明实施例提供的另一种报文处理方法的流程示意图; 图 4为本发明实施例中通用流表的获取流程示意图;
图 5为未优化的根据通用流表对报文进行处理的流程示意图;
图 6为本发明实施例中根据通用流表对报文进行处理的流程示意图; 图 7为本发明实施例提供的另一种报文处理方法的流程示意图; 图 8为图 7对应的系统结构示意图;
图 9为本发明实施例提供的另一种报文处理方法的流程示意图; 图 10 为本发明实施例中一种根据混合流表对报文进行处理的流程示意 图;
图 11 为本发明实施例中另一种根据混合流表对报文进行处理的流程示 意图;
图 12为本发明实施例提供的另一种报文处理方法的流程示意图; 图 13 为本发明实施例中通用流表项和精确流表项之间的映射关系的示 意图;
图 14 为本发明实施例中另一种根据混合流表对报文进行处理的流程示 意图;
图 15 为本发明实施例中另一种根据混合流表对报文进行处理的流程示 意图;
图 16为本发明实施例提供的另一种报文处理方法的流程示意图; 图 17为本发明实施例提供的另一种报文处理方法的流程示意图; 图 18为本发明实施例提供的一种交换设备的结构示意图;
图 19为本发明实施例提供的一种控制设备的结构示意图;
图 20为本发明实施例提供的一种报文处理系统的结构示意图; 图 21为本发明实施例提供的另一种报文处理系统的结构示意图; 具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例, 都属于本发明保护的范围。
图 1为本发明实施例提供的一种报文处理方法的流程示意图, 包括: 11 : 交换设备接收前缀项配置消息, 所述前缀项配置消息中包括前缀项; 示例性的, 前缀项配置消息中包含的前缀项的个数可以为一个或多个, 具体个数可以进行预先设定。
示例性的, 在前缀项配置消息中, 假设前缀项的内容为 offset=5, size=8, mask=l l l l l l l l , 或者前缀项的内容为 offset=5, size=8, 前述 2个前缀项指示 了报文从起始位置起的第 6个比特位到第 13个比特位的比特字段中所有的比 特位参与匹配操作。 再例如, 有报文的字段 A[0-15],表示该报文的字段共有 16个比特位, 比特位从 0开始编号, 一直递增至 15 , 其中 A[0]表示其中的第 一个比特位, A[ l ]表示其中的第二个比特位, 以此类推; 当前缀项为 offset=5, size=8, mask=l l 111111或者当前缀项为 offset=5, size=8时 , 表示 A[0-15]中的 比特字段 A[5-12]中所有的比特位进行匹配; 又例如当 mask=10100000时,表 示 A[5-12]中第 1个和第 3个比特位, 即 A[5]和 A[7] , 进行匹配。
示例性的, 前缀项配置消息可以用于增加、 修改或者删除前缀配置表, 其中当控制设备下发了多个前缀项至交换设备时, 交换设备可以以列表的形 式来存储所述多个前缀项, 该列表可称为前缀配置表。
12: 所述交换设备以所述前缀项为索引, 建立所述前缀项与所述交换设 备上的通用流表项的对应关系, 其中, 所述前缀项对应的通用流表项的匹配 域包括所述前缀项, 以使所述交换设备收到报文后, 根据所述前缀项提取用 于匹配的比特域, 并将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配。
其中, 前缀项配置消息中包括的前缀项和通用流表项的匹配域包括的前 缀项的数据结构可以不同, 但承载相同的内容。
示例性的, 也可将建立的前缀项与通用流表项的对应关系存储在前缀配 置表中, 或者单独存在其他列表中, 本发明实施例对此不作限制。
示例性的, ^^设在交换设备上存有通用流表项 Tl、 Τ2、 Τ3和 Τ4 ,若 Tl、 Τ2和 Τ3都包括前缀项 Prefix X,当交换设备接收到的前缀项配置消息中包括 该前缀项 Prefix X时, 交换设备可以建立 Prefix X到 Tl、 T2和 T3的对应关 系, 即 Prefix X分别和 Tl、 Τ2和 Τ3存在对应关系。 利用建立的对应关系, 当交换设备收到报文, 例如 Α[0-15]时, 可以先通过 Prefix X获取报文的待匹 配字段, 即用于匹配的比特域, 例如 A[2-9] , 再根据建立的 Prefix X到 Tl、 Τ2和 Τ3的对应关系, 将用于匹配的比特域 Α[2-9]的值, 分别与 Tl、 Τ2和 Τ3中匹配域的数据参数进行匹配,这样在进行与 Τ1、Τ2和 Τ3匹配的过程中, 只需要获取 1次用于匹配的比特域 Α[2-9]。 而在实践中, 由于没有建立前缀 项与交换设备上的通用流表项的对应关系, 进而无法获知用于匹配的比特域 Α[2-9]可以用于 Tl、 Τ2和 Τ3的匹配, 当交换设备收到报文 Α后,分别与 Tl、 Τ2和 Τ3进行匹配的过程中, 都需要各获取一次用于匹配的比特域 Α[2-9] , 即共获取 3次用于匹配的比特域 Α[2-9] , 造成了重复的获取操作。 因此, 通 过在交换设备上建立前缀项和通用流表项的对应关系, 可以在匹配过程中利 用已经获取的用于匹配的比特域和多个通用流表项进行匹配, 而不必针对每 个通用流表项都进行一次获取用于匹配的比特域的操作, 从而提高了通用流 表项的处理效率。
为了更清楚的对本发明实施例的方案进行说明, 在本发明实施例中, 采 用本发明实施例提出的通过建立前缀项和通用流表项的对应关系来进行流表 项的匹配的过程称之为优化的通用匹配的处理过程; 对应的, 未采用本发明 实施例提出的通过建立前缀项和通用流表项的对应关系, 而直接将报文与通 用流表项进行匹配的过程称之为普通的通用匹配的处理过程
当交换设备上建立了前缀项和通用流表项的对应关系后, 在交换设备收 到报文后, 可以进行优化的通用匹配的处理过程。
示例性的, 优化的通用匹配的处理过程, 可以包括:
所述交换设备接收到报文后, 根据所述前缀项提取用于匹配的比特域; 所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配。
作为一种可选的实施方式, 如图 1所示的方法, 在步骤 11和 12后, 还 可以包括优化的通用匹配的处理过程。
本领域技术人员应知, 当交换设备上已经存有前缀项和通用流表项的对 应关系的情况下 (例如, 如图 1所示的方式, 由交换设备建立前缀项和通用 流表项的对应关系, 也可以由交换设备从其他已建立前缀项和通用流表项的 对应关系的交换设备上获取), 交换设备后续收到报文后, 可以直接执行优化 的通用匹配的处理过程, 而不必执行步骤 11和 12。
作为一种可选的实施方式, 图 1所示的方法还可以包括:
所述交换设备接收所述控制设备发送的特征请求消息, 并向所述控制设 备发送特性回复消息, 所述特征回复消息中携带所述交换设备支持的匹配类 型, 以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备 支持通用匹配时, 发送所述前缀项配置消息。
示例性的, 控制设备在向交换设备发送前缀项配置消息之前, 可以先获 知交换设备是否具有处理通用匹配的能力, 可以理解为具有处理通用流表项 的能力, 也可以理解为处理前缀项的能力。 通常可以通过请求消息来请求交 换设备上报是否具备通用匹配的能力, 本发明实施例对于此类请求消息的具 体实现方式并不作限定。
作为一种可选的实施方式, 交换设备上还可以存有精确流表项, 即交互 设备上同时存储精确流表项和通用流表项, 其中, 精确流表项和通用流表项 之间也可以存在对应关系。 例如存在精确流表项 T1和通用流表项 T2, T1和 T2存在对应关系 ,此时 T1和 T2的对应关系可以表示为: 先进行 T1的匹配, 匹配通过后才进行 T2的匹配; 也可以表示为: 先进行 T2的匹配, 匹配通过 后再进行 T1的匹配。 鉴于此, 图 1所示的方法还可以包括: 述交换设备将所 述报文与所述精确流表项进行匹配, 以便在匹配成功后根据所述前缀项提取 用于匹配的比特域; 或者该方法还可以包括: 所述交换设备将所述比特域的 值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后, 将 所述报文与所述精确流表项进行匹配。
本领域技术人员应知, 图 1有关的实施例中的关于前缀项、 前缀项配置 消息、 前缀配置表、 前缀项和通用流表项的对应关系、 通用匹配的能力等概 念和内容的解译以及举例也适用于本发明的其他实施例中。
示例性的, 本发明实施例中的控制设备可以为 OpenFlow 网络中的控制 服务器(Controller ), 交换设备可以为 OpenFlow网络中的 OpenFlow交换机
( OpenFlow Switch )。
示例性的, 该前缀项配置消息可以是控制设备发送给交换设备的, 也可 以是其他设备发送给交换设备的。
如图 2所示, 给出了一种 OpenFlow网络, 该网络中包括控制设备、 交 换设备和主机, 图 1所示的方法可以在图 2所示的网络中应用。 在图 2中, 由控制设备向交换设备下发前缀项配置消息。以下将以图 2所示的网络为例, 对本发明实施例提供的一种报文处理的方法进行举例说明。
在图 3所示的场景中, 控制设备预先获知交换设备是否能够支持通用匹 配, 当控制设备确定交换设备能够支持通用匹配的情况下, 控制设备根据向 交换设备配置通用流表项的过程中的所涉及的通用流表项, 将所涉及的通用 流表项对应的前缀项组成前缀池, 并将前缀池中对应通用流表项较多的前缀 项通过前缀项配置消息发送至交换设备, 从而交换设备可以根据下发的前缀 项建立前缀配置表, 并将建立的前缀项和通用流表项的对应关系存储在前缀 配置表中, 在交换设备收到报文后, 可以根据前缀项和通用流表项的对应关 系来执行优化的通用匹配的处理过程。 以下将对图 3所示的场景进行详细的 说明。
参见图 3 , 31-32为控制设备获知交换设备是否能够支持通用匹配的过程, 该过程不是必须执行的过程, 该过程的执行与否可以参考具体的网络情况, 例如图 2中和控制设备连接的所有交换设备都支持通用匹配, 则没有必要执 行此过程, 若图 2中的控制设备上的配置信息已经表明部分与其连接的交换 设备支持通用匹配, 则控制设备可以与其他未表明是否支持通用匹配的交换 设备执行此过程。 该过程可以包括:
31 : 控制设备向交换设备发送特征请求( feature request ) 消息。
其中, 控制设备向交换设备发送特征请求消息的目的是为了获知交换设 备是否支持通用匹配, 本领域技术人员应知, 其他的形式的消息也可来获知 交换设备是否支持通用匹配, 例如通用匹配能力查询消息等, 在此不作限制。
32: 交换设备向控制设备发送特征回复( feature reply ) 消息, 表明是否 支持通用匹配。
其中, 交换设备可以直接返回是否支持通用匹配至控制设备, 也可以返 回支持的匹配类型至控制设备, 从而使控制设备获知交换设备是否支持通用
匹配。
示例性的,交换设备支持的匹配类型可以包括:精确匹配和 /或通用匹配。 精确匹配是指交换设备可以根据精确流表项对报文进行处理, 通用匹配是指 交换设备可以根据通用流表进行处理。
例如, 交换设备通过 feature reply消息, 回复自身支持通用匹配和 /或精 确匹配。
本实施例以控制设备支持通用匹配为例。
通常, 一个流表包括一个或多个流表项, 每个流表项包括匹配域( match field )和指令集(instructions ), 当报文的字段与匹配域匹配时, 交换设备根 据指令集中的动作 (action )对报文进行处理。
一种可选的观点认为: 精确流表项与通用流表项的区别在于: 精确流表 的匹配域中会包含具体的字段名称, 例如源 IP地址、 目的 IP地址、 端口号 等; 通用流表的匹配域中不包含具体的字段名称, 而是采用 offset和 size表 示要匹配的字段在报文中的位置, 用 mask和 data表示要匹配的取值, 例如, 表明要匹配的字段为从分组帧起始位置算起的第 M个字节到第 N个字节的字 段。 由于目前的精确流表中的具体字段名称只是第二层〜第四层(L2〜L4 ) 的 字段, 存在一定的限制。 而通用流表采用 offset, size和 mask这种方式, 并 不限定在 L2〜L4, 可以一直指示到第七层(L7 ), 即通用流表可以指示的字段 包括 L2〜L7的字段。
33 : 在交换设备建立前缀配置表之前, 控制设备和交换设备之间可以进 行配置通用流表项的过程。
作为一种可选的实施方式, 在交换设备上配置有通用流表项之后, 交换 设备可以进行普通的通用匹配的处理过程, 如步骤 33'所示。
示例性的, 配置通用流表项的过程也可以理解为交换设备从控制设备获 取通用流表项的过程。
示例性的, 配置通用流表项的过程可以参见图 4, 包括:
41 : 交换设备接收到报文后, 如果在交换设备上没有存储有与该报文匹 配的通用流表项时, 交换设备向控制设备发送流表项请求报文( packet— in ), 该流表项请求报文中封装有接收到的报文。
42: 控制设备接收到交换设备发送的流表项请求报文后, 确定该流表项
请求报文封装有交换设备接收到的报文对应的通用流表项, 并向交换设备发 送流表项配置 (flow— mod ) 消息, 其中, 该流表项配置消息中包含该通用流 表项。
作为一种可选的实施方式, 交换设备可以将收到的通用流表项存入列表 中, 该列表可以称之为通用流表。
至此, 交换设备获取了该报文对应的通用流表项, 并可以根据获取的通 用流表项对报文进行相应的处理, 即可对报文进行普通的通用匹配的处理过 程。
示例性的, 普通的通用匹配的处理过程可以参见图 5 , 包括:
当交换设备接收到报文的情况下:
51 : 交换设备遍历通用流表中的通用流表项;
52: 交换设备根据遍历的通用流表项的匹配域中的 offset, size和 mask (其 中 mask为可选)获取报文的待匹配的比特域, 并将提取出的待匹配的比特域 与该通用流表项的匹配域中的数据参数 (data)进行比较, 得到匹配结果。
其中, 每个通用流表项可以包含匹配域 ( match field ) 和指令集
( instructions ), 匹配域中可以记录前缀项(即 offset, size和 mask,其中 mask 为可选)以及前缀项对应的值(也可以理解为数据参数, 即 data ), 指令集中 可以记录动作 (action ), 当根据前缀项获取的报文中的待匹配的比特域的值 与通用流表项的匹配域的值( data )匹配时, 可以对该报文执行相应的指令集 中的动作。
例如, 当前遍历的通用流表项的前缀项为第一前缀项, 第一前缀项具体 包括 offsetl、 sizel和 maskl , 该第一前缀项对应的值为 datal , 那么交换设备 根据该 offsetl、 sizel从接收的报文中提取出对应的第一通用字段, 通用字段 也可以称为用于匹配的比特域, 采用 maskl对提取出的第一通用字段进行加 掩, 并将加掩后的第一通用字段与 datal进行比较, 如果两者相同, 则匹配成 功, 否则失败。 例如通过 offsetl 和 sizel 提取出一段 8 个字节的字段如 00101101 , 掩码为了提取中间 4位, 可以采用或的操作或者与的操作, 或的 操作设定为 maskl=11000011 , 与的操作设定为 maskl=00111100加掩后, 得 到 11101111 , 而 datal为 11101111 , 则匹配。 当然, 可以理解的是, 在采用 offset, size, mask和 data进行匹配时并不限于上述的匹配方式, 例如还可以
进行哈希查找等, 上述匹配方式只是一种示例, 还可以采用其它定义的匹配 方式。
53 : 交换设备判断匹配是否成功, 若是, 执行 54, 否则执行 55。
54: 交换设备根据该通用流表项的指令集中动作进行处理。 之后结束。 作为一种可选的实施方式, 交换设备在匹配成功后, 可以先记录匹配的 通用流表项中的指令集中的动作, 再遍历其他的通用流表项, 若有其他流表 项也与该接收到的报文匹配, 一并将其他流表项的指令集的动作记录下来, 等到流表中所有流表项都遍历完成后, 再执行记录下来的动作。
55: 交换设备判断遍历是否完成, 若没有匹配的通用流表项, 可以执行 56, 否则重复执行 52及其后续步骤。
56: 交换设备将该报文封装到流表请求报文(packet— in ) 中发送给控制 设备, 用以请求控制设备下发与该接收到的报文相匹配的流表项。 之后结束。 其中, 步骤 56并不是普通的通用匹配的处理过程的必选步骤。
通过图 5所示的流程可以看出, 在普通的通用匹配的处理过程中, 需要 遍历通用流表中的流表项, 因此针对每个遍历到的通用流表项, 都需要提取 报文的待匹配的比特域。 但是, 这些通用流表项中可能存在相同的前缀项, 例如, 在上述遍历过程中遍历了 100项通用流表项, 可能其中 20个通用流表 项的前缀项 (offset, size和 mask, 其中 mask为可选)相同, 那么在匹配这 20个通用流表项时, 其实只需要在报文中提取 1次待匹配的比特域, 再分别 与这 20个通用流表项的匹配域的数据参数进行匹配,而在普通的通用匹配的 处理过程中, 在每一次与通用流表项匹配的过程中, 都需要提取一次待匹配 的比特域, 因此需要在报文中提取 20次重复的待匹配的比特域, 这样将会造 成效率低下。 为了提高效率, 本实施例可以在交换设备中建立前缀配置表, 将具有相同前缀项的通用流表项归为一类, 在匹配时, 针对每一类通用流表 项只需要提取一次待匹配的比特域, 再与该类下的每一个通用流表项的匹配 域的数据参数进行匹配, 这样可以降低提取次数。 例如在上述场景下, 本实 施例通过建立前缀配置表, 将这 20 个具有相同前缀项的通用流表项归为一 类, 在提取报文的带匹配字段时可以仅提取 1次, 而不避提取 20次。 示例性 的, 在交换设备上建立前缀配置表可以采用如下流程:
34: 控制设备建立前缀池( prefix pool )。
控制设备在每次下发流表配置消息时, 可以统计其中携带的每个通用流 表项中的前缀项的情况, 根据优先级或者次数等对前缀项进行排列, 建立前 缀池。 例如, 经过统计在第一时间内包含第一前缀项的通用流表项发送了 5 次, 包含第二前缀项的通用流表项发送了 3次, 包含第三前缀项的通用流表 项发送了 1次, 那么建立的前缀池中包括第一前缀项、 第二前缀项和第三前 缀项, 且从前到后的顺序为: 第一前缀项、 第二前缀项和第三前缀项。
其中, 步骤 34是可选的, 下发给交换设备的前缀项也可以通过配置, 或 者与其他设备协商等方式实现, 在此不作限制。 通过统计每个前缀项的使用 情况, 并根据使用情况下发前缀项至交换设备, 可以使交换设备建立更加合 理、 科学的前缀项配置表, 以期进一步提高交换设备的处理效率。
35: 控制设备向交换设备发送前缀符修改(generic prefix modification ) 消息, 其中携带从前缀池中选取的前缀项。
示例性的, 携带的前缀项的个数可以预先设定, 例如, 设定个数为 2个, 那么在上述场景下, 该前缀项配置消息中携带的前缀项为第一前缀项和第二 前缀项。
该前缀项配置消息可以具体用于增加、 修改或删除前缀配置表。
该前缀项配置消息的结构可以如表 1所示:
表 1
也就是说, 前缀项配置消息中可以包括如下字段: header, prefix table id, command和 refix [] , 其中 , header为 OpenFlow消息头; refix table id为前 缀配置表序号; command为命令类型, 例如增加、 修改或删除; prefix[]为前 缀项, 例如, 上述的第一前缀项和第二前缀项, 该前缀项的个数是可变的。
36: 交换设备根据前缀项配置消息建立前缀配置表。
其中, 前缀配置表也可以称为集合或其它名称。
例如,前缀项配置消息中包含的 prefix table id为 idl , prefix[]包括第一前
缀项和第二前缀项, command为增加, 那么交换设备可以建立标识为 idl的 前缀配置表, 该前缀配置表中包括的前缀项为第一前缀项和第二前缀项。 当 然, 可以理解的是, 如果交换设备中已经建立标识为 idl 的前缀配置表, 那 么交换设备可以在已有的前缀配置表中增加第一前缀项和第二前缀项。
37: 在交换设备建立前缀配置表之后, 控制设备和交换设备之间可以采 用优化的通用匹配的处理过程对报文进行处理。
示例性的, 参见图 6, 该优化的通用匹配的处理过程可以包括: 交换设备接收到报文后;
61 : 交换设备从前缀配置表中获取前缀项, 并根据前缀项从报文中提取 出待匹配的比特域;
62: 交换设备将提取出的待匹配的比特域与上述前缀项对应的通用流表 项的匹配域中的数据参数进行比较, 得到匹配结果。
一般来说, 通用流表项中可能存在相同的前缀项, 而建立的前缀配置表 中包含不同的前缀项。
例如,通用流表项中包含 100个前缀项,但可能只有 20个不同的前缀项, 那么建立的前缀配置表中可以包含该 20个不同的前缀项。 因此, 在提取待匹 配的比特域时, 普通的通用匹配的处理过程中需要提取待匹配的比特域 100 次, 而本实施例仅需要提取 20次。 可以提高查找效率。
63 : 交换设备判断匹配是否成功, 若是, 执行 64, 否则可以执行 65。 在匹配时可以以前缀项为索引, 获取对应的通用流表项, 例如, 根据前 缀配置表中的第一前缀项从接收的报文中提取出第一待匹配的比特域, 且第 一通用流表项的匹配域中包括第一前缀项, 那么可以将报文中第一通用字段 的值与第一通用流表项的匹配域中的数据参数(data )进行比较, 如果两者相 同, 则匹配成功, 否则失败。
64: 交换设备根据匹配成功的通用流表项的指令集中动作进行处理。 至 此, 优化的通用匹配的处理过程结束。
若没有通用流表项与该报文匹配, 则可以执行步骤 65。
65: 交换设备将该报文封装到入分组(packet— in )报文中发送给控制设 备。 其中, 步骤 65并不是优化的通用匹配的处理过程的必选步骤。
另外, 交换设备获取通用流表项的流程可以参见图 4, 在此不再贅述。
本实施例通过在交换设备中建立前缀配置表, 交换设备接收到报文后首 先根据该前缀配置表提取待匹配的比特域, 可以实现对报文的预处理, 避免 遍历每个通用流表项时, 每次都提取待匹配的比特域, 可以提高通用流表项 的处理效率。
图 7为本发明实施例提供的另一种报文处理方法的流程示意图, 图 8为 图 7对应的系统结构示意图,本实施中, OpenFlow网络中还包括虚拟层设备, 虚拟层设备可以对转发面资源进行分片, 使得各个相互隔离的具有不同转发 逻辑的网络可以共享同一组物理转发面设备。 虚拟层设备例如为 hypervisor。
参见图 7, 本实施例包括:
71 : 第一控制设备和第二控制设备分别向虚拟层设备发送前缀项配置消 息;
每个控制设备生成及发送前缀项配置消息的具体流程可以参见上述的 34-35 , 在此不再贅述。
另外, 可以理解是, 本实施例的控制设备并不限于两个, 也可以为至少 三个, 当存在至少三个控制设备时也可以采用本实施例类似的原理执行。
72: 虚拟层设备对第一前缀项配置消息和第二前缀项配置消息中的前缀 表进行整合。
其中, 每个控制设备发送的前缀修改消息中可以包含交换设备的信息及 对应的前缀表, 例如, 第一前缀修改消息中包含第一交换设备的信息和第二 交换设备的信息以及第一交换设备的前缀表和第二交换设备的前缀表, 或者 仅包含第一交换设备的信息以及第一交换设备的前缀表, 或者, 仅包含第二 交换设备的信息以及第二交换设备的前缀表, 第二前缀修改消息类似。
虚拟层设备可以根据前缀修改消息中包含的交换设备的信息, 对同一个 交换设备对应的前缀表中相同的前缀项进行合并, 例如, 第一前缀修改消息 中包含的第一交换设备的前缀表包含第一前缀项 (具体为 offsetl和 sizel ), 第二前缀修改消息中包含的第一交换设备的前缀表也包含第一前缀项 (具体 为 offsetl和 sizel ), 那么虚拟层设备可以将该第一前缀项合并, 使得发送给 第一交换设备的该第一前缀项仅为一项, 而不再是两项。
另外, 上述的整合也可以是删除需要丟弃的前缀项, 可以在虚拟层设备 中预先定义需要丟弃的前缀项, 虚拟层设备在接收到前缀修改消息后可以丟
弃其中需要丟弃的前缀项。 例如, 虚拟层设备预先定义需要修改的前缀项为 第二前缀项, 如果接收的第一前缀修改消息和 /或第二前缀修改消息中包含第 二前缀项, 则丟弃该第二前缀项, 也就是整合后的前缀表中不再包含第二前 缀项。
再者, 上述的整合也可以是分片处理。 在由多个交换机构成一个大的转 发网络中, 可以分成多个逻辑区域, 不同的逻辑区域可能有重叠, 不同逻辑 区域的控制设备也可能不一样。 该大的转发网络中的交换机都与虚拟层设备 相连, 不同逻辑区域的控制设备也都与该虚拟层设备相连。 针对重叠区域的 交换机, 重叠区域的控制设备在逻辑上看成是一个交换机, 只发送一条前缀 表修改消息, 当该前缀表修改消息到达虚拟层设备时, 虚拟层设备将其拆分 成多条前缀表修改消息, 分别发送给重叠区域的不同的交换机。
可以理解的是, 上述的整合不限于上述的合并删除或分片处理, 还可以 进行其它处理。
73: 虚拟层设备分别向第一交换设备和第二交换设备发送前缀项配置消 息, 其中分别携带整合后的前缀表。
74: 第一交换设备和第二交换设备接收到前缀修改消息后, 根据其中携 带的整合后的前缀表建立各自的前缀配置表。
75 : 第一交换设备和第二交换设备分别根据各自的前缀配置表进行优化 的通用匹配的处理过程。 73〜75 的具体内容可以参见上述的 36〜37以及图 6 的内容。
本实施例通过在交换设备中建立前缀配置表, 交换设备接收到报文后首 先根据该前缀配置表中的前缀项预先提取报文中待匹配的比特域, 再与前缀 项对应的多个通用流表项的匹配域中的数据参数进行匹配, 可以实现对报文 的待匹配的比特域的预提取, 避免在遍历每个通用流表项时, 都需要提取一 次待匹配的比特域, 因此可以提高通用流表项的处理效率; 另外, 本实施例 在虚拟层设备中进行整合, 可以降低来自不同控制设备的重复的前缀项的个 数或者丟弃需要删除的前缀项, 可以进一步提高交换设备建立的前缀配置表 中前缀项的有效性, 进一步提高查找效率。
上述描述了优化的通用匹配的处理流程, 在一些场景下, 控制设备可以 配置给交换设备通用流表项以及精确流表项, 也就是说, 交换设备既需要进
行精确流表项的匹配也需要进行通用流表项的匹配, 此时, 可以将精确流表 项和通用流表项统称为混合流表项, 对于混合流表项的匹配, 是指精确匹配 与通用匹配混合在一起的匹配, 可以称为混合匹配。 混合流表项的匹配可以 采用合一或分离的方式, 在合一方式下, 一种流表项的匹配作为另一种流表 项的匹配的补充, 在分离方式下, 两种匹配方式独立匹配。 和上面的实施例 类似, 精确流表项的匹配可以称为精确匹配, 通用流表项的匹配可以称为通 用匹配, 在通用匹配中, 采用本发明的思想进行的优化的通用流表项的处理 过程可以称为优化的通用匹配, 反之未采用本发明的思想进行的普通的通用 流表项的处理过程可以称为普通的通用匹配。
可选的, 所述交换设备上还包括与所述前缀项对应的通用流表项对应的 精确流表项, 所述方法还包括:
在所述交换设备根据所述前缀项提取用于匹配的比特域之前, 所述交换 设备将所述报文与所述精确流表项进行匹配, 以便在匹配成功后根据所述前 缀项提取于匹配的比特域; 或者,
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹配。
在上述精确匹配和通用匹配时, 可以是遍历每个精确流表项以及每个通 用流表项, 以分别完成精确匹配和通用匹配; 或者, 也可以预先建立每个精 确流表项与每个通用流表项的对应关系, 在一种匹配(精确匹配或通用匹配 ) 成功后, 确定匹配成功的一种流表项 (精确流表项或通用流表项 )对应的另 一种流表项(通用流表项或精确流表项), 根据对应的流表项(通用流表项或 精确流表项 )进行另一种匹配(通用匹配或精确匹配), 而不需要再遍历另一 种匹配的每个流表项。
具体的, 上述的在所述交换设备根据所述前缀项提取用于匹配的比特域 之前, 所述交换设备将所述报文与所述精确流表项进行匹配, 以便在匹配成 功后根据所述前缀项提取于匹配的比特域可以具体包括:
在所述交换设备根据所述前缀项提取用于匹配的比特域之前, 所述交换 设备将所述报文与每个精确流表项依次进行匹配, 以便在匹配成功后再依次 根据每个前缀项提取用于匹配的比特域; 或者,
在所述交换设备根据所述前缀项提取用于匹配的比特域之前, 所述交换
设备将所述报文与每个精确流表项依次进行匹配, 以便在匹配成功后根据与 匹配成功的精确流表项对应的通用流表项中包括的前缀项提取用于匹配的比 特域。
上述的所述交换设备将所述比特域的值与所述前缀项对应的通用流表项 的匹配域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹 配可以具体包括:
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配成功后,将所述报文依次与每个精确流表项进行匹配; 或者,
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配成功后, 将所述报文与匹配成功的通用流表项对应的
^"确流表项进行匹配。
具体可以参见后续实施例。
图 9为本发明实施例提供的另一种报文处理方法的流程示意图, 本实施 例以合一方式下的混合匹配为例进行说明。 本实施例包括:
91 : 交换设备向控制设备发送流表项请求报文。
其中, 流表项请求报文可以是 packet— in消息。
交换设备在接收到报文后, 如果本身不存在对应的流表项, 则可以将该 报文封装到中发送给控制设备以请求新的流表项。
92: 控制设备向交换设备发送流表项配置消息, 包含精确流表项和通用 流表项。
其中, 流表项配置消息可以用于增加、修改或删除交换设备上的流表项。 示例性的, 交换设备上可以预先配置好前缀配置表, 若没有配置也可以 通过前缀符配置消息来配置。
可选的, 该方法还可以包括:
93 : 控制设备向交换设备发送前缀符修改消息, 以便交换设备根据前缀 修改消息建立前缀配置表。
控制设备生成以及发送前缀修改消息的具体内容, 以及交换设备建立前 缀配置表的具体内容可以参见图 3中的相应步骤。
至此, 交换设备可以进行混合匹配的处理。
94: 交换设备对报文进行混合匹配。
交换设备以合一的方式对报文进行混合匹配的处理的流程可以参见图 10, 包括:
101 : 交换设备通过网络端口接收报文;
102: 交换设备根据精确流表项从报文中提取匹配字段, 并将匹配字段与 精确流表项进行匹配。 其中, 在报文中事先定义好的字段可以称为匹配字段, 例如目的 IP, 源 IP等等。
例如, 根据协议规定的设定个数的匹配字段, 在报文中提取出相应设定 个数的匹配字段, 该匹配字段包括源 IP、 目的 IP地址等多个字段。 之后再将 提取的匹配字段的数值与精确流表项中相应字段的数值进行比较, 如果两者 相同则匹配成功, 否则失败。 当然, 上述匹配方式也是一种示例, 在具体精 确匹配时还可以采用 mask进行掩码等。
103: 交换设备判断精确匹配是否成功,若是,执行 104,否则,执行 108。 104: 交换设备从前缀配置表中获取前缀项, 并根据前缀项从报文中提取 出待匹配的比特域; 示例性的, 这里获取的前缀项可以有一个或多个
105: 交换设备将提取出的待匹配的比特域与前缀项对应的通用流表项的 匹配域中的数据参数进行比较, 得到通用匹配结果。
106: 交换设备判断通用匹配是否成功, 若是, 执行 107, 否则执行 108。 107: 交换设备根据匹配成功的通用流表项的指令集中动作进行处理。 至此, 合一方式的混合匹配的处理可以视为完成。
若, 交换设备上不存在与接收到的报文相匹配的流表项时, 交换设备还 可以向控制设备请求与该报文相匹配的流表项, 如步骤 108所示。
108: 交换设备将该报文封装到流表请求报文(例如: packet— in ) 中发送 给控制设备, 以请求控制设备下发与该报文相匹配的流表项。
本实施例中, 当以合一方式进行混合匹配时, 可以先判断精确匹配是否 成功, 在精确匹配成功时还需要判断通用匹配是否成功, 只有在精确匹配和 通用匹配都成功时才执行相应的动作。
可以理解的是, 图 10是先进行精确匹配再进行通用匹配, 也可以是, 先 进行通用匹配, 在通用匹配成功时再进行精确匹配及处理。
另夕卜, 图 10所示的实施例中, 在通用匹配时先通过前缀项提取待匹配的
比特域, 也可以是在精确匹配成功后采用普通的通用匹配流程, 此时就不需 要建立前缀配置表。
参见图 11 , 在混合流表的场景下本发明还提供一种实施例包括:
111 : 交换设备根据第一流表项对接收的报文进行第一匹配;
112: 所述交换设备在第一匹配成功后, 根据第二流表项对所述报文进行 第二匹配;
示例性的, 所述第一流表项为精确流表项, 所述第一匹配为精确匹配, 所述第二流表项为通用流表项, 所述第二匹配为通用匹配; 或者, 所述第一 流表项为通用流表, 所述第一匹配为通用匹配, 所述第二流表项为精确流表, 所述第二匹配为精确匹配。
可选的, 当第一流表项为通用流表项时, 在通用匹配时也可以首先根据 前缀配置表中前缀项从报文中提取出待匹配的比特域, 在采用该待匹配的比 特域与通用流表项进行匹配。 而具体的建立前缀配置表、 提取通用字段以及 匹配的具体内容可以参见上述实施例。
本实施例通过在一种匹配成功后再进行另一种匹配, 可以在混合流表场 景下完成报文匹配处理, 提高处理效率。
图 12为本发明实施例提供的另一种流表处理方法的流程示意图,本实施 例以混合流表为分离方式为例。 本实施例包括:
121 : 交换设备向控制设备发送流表项请求报文(例如: packet— in )。 交换设备在接收到第一报文后, 如果在交换设备上不存在对应的流表, 则可以将该第一报文封装到流表项请求报文中发送给控制设备以请求与该第 一才艮文对应的流表项。
122: 控制设备向交换设备发送流表项配置消息, 包含精确流表项和通用 流表项以及匹配方式。
示例性的, 流表项配置消息可以用于增加、 修改或删除交换设备上的流 表项。
匹配方式(match type ) 包括: 仅精确匹配、 仅通用匹配、 合一方式的混 合匹配, 分离方式的混合匹配。 可以用不同的数值表示匹配方式, 以便交换 设备根据该数值获知匹配方式, 例如, 用 00 表示仅精确匹配 (only exact match ), 用 01表示仅通用匹配 ( only generic match ), 用 10表示合一方式的
混合匹配( multiple match ), 用 11标识分离方式的混合匹配。
至此, 交换设备可以获取了精确流表项和通用流表项, 交换设备还可以 获知需要进行哪种匹配。
可选的, 该方法还可以包括:
123: 控制设备向交换设备发送前缀符配置消息, 以便交换设备根据前缀 符配置消息中的前缀项建立前缀配置表。
控制设备生成以及发送前缀符配置消息的具体内容以及交换设备建立前 缀配置表的具体内容可以参见图 3中的相应步骤。
124: 交换设备根据流表项配置消息, 建立混合流表项, 该混合流表项包 括通用流表项和精确流表项以及映射表, 该映射表用于表明精确流表项与通 用流表项的对应关系。
参见图 13 , 交换设备在建立每个通用流表项时, 插入对应的精确流表项 的索引, 例如, 建立的通用流表项 #1对应的精确流表项的索引为索引 #1 ; 在 建立每个精确流表项时, 插入对应的通用流表项的索引, 例如, 建立的精确 流表项 #1对应的通用流表项索引为索引 #1。
125: 交换设备根据混合流表项对报文进行处理。 即对报文进行混合匹配 的处理。
交换设备根据混合流表项对报文进行处理的流程可以参见图 14, 包括: 1401 : 交换设备通过网络端口接收报文;
1402: 交换设备根据精确流表项从报文中提取匹配字段, 并将匹配字段 与精确流表项进行匹配。 其中匹配字段的说明可以参见图 10所示的实施例, 此处不做贅述。
例如, 精确流表项表明要匹配的字段为源 IP地址, 那么可以在报文中直 接提取出源 IP地址, 并将该报文的源 IP地址的数值与精确流表项中的源 IP 地址的数值进行比较, 如果两者相同则匹配成功否则失败。
1403: 交换设备判断是否需要进行通用匹配, 若是, 执行 1405, 否则执 行 1404。
交换设备可以根据匹配方式进行判断。 匹配方式的说明可以参照图 12所 示的实施例, 此处不做赞述。
1404: 交换设备处理匹配的精确流表项的指令集中的动作。
示例性的, 与报文相匹配的精确流表项可以是一个, 也可以多个, 在多 个的情况下, 交换设备可以依次执行匹配的精确流表项的指令集中的动作, 也可以按照动作的优先级执行匹配的精确流表项的指令集中的动作, 也可以 只执行匹配的精确流表项的指令集中的优先级最高的动作。 本发明其他实施 例中关于交换设备处理匹配的精确流表项的指令集中的动作的说明与本实施 例类似。
示例性的, 如果精确匹配失败, 可以向控制设备发送流表项请求
( packet— in ) 消息。
1405: 交换设备根据匹配的精确流表项确定对应的通用流表项。
例如, 在根据精确流表项对报文进行提取及匹配的精确流表项为精确流 表项 #1 , 再根据精确流表项与通用流表项的映射关系, 如精确流表项 #中插入 的通用流表项的索引为索引 #1 , 那么确定出的通用流表项为索引 #1的通用流 表项。 这里确定出的通用流表项可以是一个, 也可以是多个。 1406: 交换设 备根据该对应的通用流表项, 从报文中提取待匹配的比特域。
例如, 索引 #1 的通用流表项的匹配域中会包含前缀项 (offset, size 和 mask ) , 根据该 offset、 size和 mask从才艮文中提取出对应的待匹配的比特域。
示例性的, 若索引 #1的通用流表项为多个, 采用普通的通用匹配需要为 每一个对应的通用流表项提取待匹配的比特域。 若索引 #1的多个通用流表项 中有部分通用流表项的匹配域中的前缀项相同,也可以采用优化的通用匹配, 只为前缀项相同的多个通用流表项提取一次待匹配的比特域。
1407: 交换设备将提取出的待匹配的比特域与该通用流表项中匹配域的 数据参数进行比较, 得到通用匹配结果。
例如, 根据索引 #1的通用流表项提取的待匹配的比特域为第一比特域, 之后将该第一比特域与索引 #1 的通用流表项的匹配域中的数据参数 ( data ) 进行比较, 如果两者数值相同则通用匹配成功, 否则通用匹配失败。
1408:交换设备判断通用匹配是否成功,若是,执行 1409,否则执行 1410。 示例性的, 在有多个通用流表项的情况下, 只要其中有一个通用流表项 可以匹配即可认为通用匹配成功。
1409: 交换设备根据该通用流表项的指令集中动作进行处理。
示例性的, 如前所述与 4艮文相匹配的通用流表项可以是一个, 也可以多
个, 在多个的情况下, 交换设备可以依次执行匹配的通用流表项的指令集中 的动作,也可以按照动作的优先级执行匹配的通用流表项的指令集中的动作, 也可以只执行匹配的通用流表项的指令集中的优先级最高的动作。 本发明其 他实施例中关于交换设备处理匹配的通用流表项的指令集中的动作的说明与 本实施例类似。
若没有通用流表项与交换设备接收到的报文相匹配, 交换设备可以结束 流程, 也可以向控制设备请求与该报文匹配的流表项。 例如: 可以参考步骤
1410。
1410: 交换设备将该报文封装到流表请求(packet— in ) 消息中发送给控 制设备。
可以理解的是, 图 14是先进行精确匹配再确定是否进行通用匹配, 在需 要通用匹配时根据匹配到的精确匹配项对应的通用匹配项进行处理, 也可以 是, 先进行通用匹配再确定是否进行精确匹配, 在需要精确匹配时根据匹配 到的通用匹配项对应的精确匹配项进行处理。
另外, 在先进行通用匹配时可以是先根据前缀配置表对报文进行通用字 段提取再与通用流表的各通用流表项进行匹配。 此处不做贅述, 请参考前述 相关的实施例。
参见图 15 , 在混合流表的场景下本发明还提供一种实施例包括:
151 : 交换设备根据第一流表项对接收的报文进行第一匹配;
152: 所述交换设备根据接收的匹配方式确定需要进行第二匹配后, 根据 预先建立的对应关系确定第一匹配时采用的第一流表项对应的第二流表项, 并采用所述对应的第二流表项对所述报文进行第二匹配;
其中, 所述第一流表项为精确流表项, 所述第一匹配为精确匹配, 所述 第二流表项为通用流表项, 所述第二匹配为通用匹配; 或者, 所述第一流表 项为通用流表项, 所述第一匹配项为通用匹配项, 所述第二流表项为精确流 表项, 所述第二匹配为精确匹配。
上述的预先建立的对应关系就是如图 13 所示的通用流表项与精确流表 项的映射关系, 具体建立的流程可以参见上述实施例。
可选的, 当第一流表项为通用流表项时, 在通用匹配时也可以首先根据 前缀配置表中前缀项从报文中提取出待匹配的比特域, 在采用该通用字段与
通用流表项进行匹配。 而具体的建立前缀配置表、 提取待匹配的比特域以及 匹配的具体内容可以参见上述相关实施例。
本实施例通过在混合流表时建立精确流表项与通用流表项的映射关系, 可以保证通用流表和精确流表之间的唯一性,提高了通用流处理的应用价值。
图 16为本发明实施例提供的另一种报文处理方法的流程示意图, 包括: 161 : 交换设备接收报文, 其中所述交换设备上有以前缀项为索引建立的 所述前缀项和通用流表项的对应关系 , 所述前缀项对应的通用流表项的匹配 域包括所述前缀项;
162: 所述交换设备根据前缀项提取所述报文中用于匹配的比特域; 163:所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的 匹配域的数据参数进行匹配。
可选的, 所述交换设备上还有和所述通用流表项对应的精确流表项, 所 述方法还包括:
在所述交换设备根据前缀项提取所述报文中用于匹配的比特域之前, 所 述交换设备将所述报文与所述精确流表项进行匹配, 以便在匹配成功后根据 所述前缀项提取所述 ^艮文中用于匹配的比特域; 或者,
所述交换设备在将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹配。
图 17为本发明实施例提供的另一种报文处理方法的流程示意图, 包括:
171 :控制设备生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
172: 所述控制设备向交换设备发送所述前缀项配置消息, 以便所述交换 设备以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项 的对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
其中, 前缀项配置消息中包括的前缀项和通用流表项的匹配域包括的前 缀项的数据结构可以不同, 但承载的内容相同。
可选的, 该方法还包括:
所述控制设备向所述交换设备发送特征请求消息, 并接收所述交换设备 发送的特征回复消息, 所述特征回复消息中携带所述交换设备支持的匹配类 型;
所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持
通用匹配。
可选的, 所述控制设备向交换设备发送所述前缀项配置消息, 包括: 所述控制设备发送多条所述前缀项配置消息至虚拟层设备, 以使所述虚 拟层设备整合所述多条前缀项配置消息, 并将整合后的前缀项配置消息发送 至所述交换设备。
可选的, 该方法还包括:
所述控制设备在下发通用流表项至所述交换设备的情况下, 对所述下发 的通用流表项对应的前缀项进行统计;
所述控制设备根据统计结果确定所述前缀项配置消息中包含的前缀项。 本实施例通过控制设备向交换设备发送前缀项, 可以使得交换设备接收 到报文后首先根据该前缀项从报文中提取通用字段, 可以实现对报文的预处 理, 避免遍历每个通用流表项, 可以提高查找效率。
图 18为本发明实施例提供的一种交换设备的结构示意图,该设备 180包 括通信单元 181、 处理器 182和存储器 183。
所述存储器 183 , 用于存储以前缀项为索引建立的所述前缀项和通用流 表项的对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前 缀项;
所述通信单元 181 , 用于接收报文;
所述处理器 182, 用于根据所述前缀项获取所述报文中用于匹配的比特 域, 将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数 进行匹配。
可选的, 所述存储器 183还用于存储和所述通用流表项对应的精确流表 项; 所述处理器 182用于将所述比特域的值与所述前缀项对应的通用流表项 的匹配域的数据参数进行匹配, 包括: 所述处理器 182用于将所述 文与所 述精确 文进行匹配, 匹配成功后, 将所述比特域的值与所述前缀项对应的 通用流表项的匹配域的数据参数进行匹配。
可选的, 所述存储器 183还用于存储和所述通用流表项对应的精确流表 项; 所述处理器还用于在所述比特域的值与所述前缀项对应的通用流表项的 匹配域的数据参数进行匹配成功的情况下, 将所述报文与所述精确流表项进 行匹配。
可选的, 所述处理器 182还用于以所述前缀项为索引, 建立所述前缀项 与所述通用流表项的对应关系 .
可选的,所述通信单元 181还用于接收控制设备发送的前缀项配置消息, 所述前缀项配置消息包括所述前缀项。
所述通信单元 181还用于接收所述控制设备发送的特征请求消息, 并发 送特征回复消息至所述控制设备, 其中, 所述特征回复消息指示所述交换设 备支持通用匹配, 以便所述控制设备根据所述特征回复消息发送所述前缀项 配置消息。
作为另一种可选的实施方式, 交换设备可以包括:
存储单元, 用于存储以前缀项为索引建立的所述前缀项和通用流表项的 对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项; 接收单元, 用于接收报文;
获取单元, 用于根据所述前缀项获取所述报文中用于匹配的比特域; 第一匹配单元, 用于将所述比特域的值与所述前缀项对应的通用流表项 的匹配域的数据参数进行匹配。
可选的,所述存储单元还用于存储和所述通用流表项对应的精确流表项; 所述交换设备还包括第二匹配单元; 所述第二匹配单元, 用于在将所述报文 与所述精确流表项进行匹配; 其中, 所述第一匹配单元, 具体用于当所述第 二匹配单元匹配成功的情况下, 将所述比特域的值与所述前缀项对应的通用 流表项的匹配域的数据参数进行匹配。
可选的,所述存储单元还用于存储和所述通用流表项对应的精确流表项; 所述交换设备还包括第三匹配单元; 所述第三匹配单元, 用于在所述第一匹 配单元匹配成功的情况下, 将所述报文与所述精确流表项进行匹配。
可选的, 交换设备还包括建立单元, 所述建立单元, 用于以所述前缀项 为索引, 建立所述前缀项与所述通用流表项的对应关系。
可选的, 所述接收单元还用于接收控制设备发送的前缀项配置消息, 所 述前缀项配置消息包括所述前缀项。
可选的, 所述接收单元, 还用于接收所述控制设备发送的特征请求消息; 所述交换设备还包括发送单元, 用于发送特征回复消息至所述控制设备, 其 中, 所述特征回复消息指示所述交换设备支持通用匹配, 以便所述控制设备
根据所述特征回复消息发送所述前缀项配置消息。
本实施例通过交换设备接收控制设备发送的前缀项, 可以在交换设备上 建立前缀项和通用流表项的对应关系, 在交换设备接收到报文后首先根据该 前缀项从报文中提取待匹配的比特域, 再依次与该前缀项对应的通用流表项 的匹配域中的数据参数进行匹配, 从而避免了对每个通用流表项都需要提取 一次待匹配的比特域, 可以提高通用流表项的处理效率。
图 19为本发明实施例提供的一种控制设备的结构示意图,该设备 190包 括处理器 191 , 通信单元 192。
所述处理器 191用于生成前缀项配置消息, 所述前缀项配置消息中包括 前缀项;
所述通信单元 192用于向交换设备发送所述前缀项配置消息, 以便所述 交换设备以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流 表项的对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前 缀项。
可选的, 所述处理器 191还用于在下发通用流表项至所述交换设备的情 况下, 对所述下发的通用流表项对应的前缀项进行统计, 根据统计结果确定 所述前缀项配置消息中包含的前缀项。
可选的, 所述通信单元 192具体用于发送多条所述前缀项配置消息至虚 拟层设备, 以使所述虚拟层设备整合所述多条前缀项配置消息, 并将整合后 的前缀项配置消息发送至所述交换设备。
可选的, 所述通信单元 192还用于向所述交换设备发送特征请求消息, 接收所述交换设备发送的特征回复消息, 所述特征回复消息中携带所述交换 设备支持的匹配类型; 所述处理器 191还用于根据所述交换设备支持的匹配 类型确定所述交换设备支持通用匹配。
作为一种可选的实施方式, 控制设备可以包括:
生成单元, 用于生成前缀项配置消息, 所述前缀项配置消息中包括前缀 项;
发送单元, 用于向交换设备发送所述前缀项配置消息, 以便所述交换设 备以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项的 对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
可选的, 控制设备还包括统计单元, 用于在下发通用流表项至所述交换 设备的情况下, 对所述下发的通用流表项对应的前缀项进行统计; 确定单元, 用于根据统计结果确定所述前缀项配置消息中包含的前缀项。
可选的, 所述发送单元具体用于发送多条所述前缀项配置消息至虚拟层 设备, 以使所述虚拟层设备整合所述多条前缀项配置消息, 并将整合后的前 缀项配置消息发送至所述交换设备。
可选的, 所述发送单元还用于向所述交换设备发送特征请求消息; 所述 控制设备还包括接收单元和能力确定单元; 所述接收单元, 用于接收所述交 换设备发送的特征回复消息, 所述特征回复消息中携带所述交换设备支持的 匹配类型; 所述能力确定单元, 用于根据所述交换设备支持的匹配类型确定 所述交换设备支持通用匹配。
本实施例通过控制设备向交换设备发送前缀项, 可以使得交换设备建立 前缀项和通用流表项的对应关系, 在交换设备接收到报文后首先根据该前缀 项从报文中提取待匹配的比特域, 再依次与该前缀项对应的通用流表项的匹 配域中的数据参数进行匹配, 从而避免了对每个通用流表项都需要提取一次 待匹配的比特域, 可以提高通用流表项的处理效率。
图 20 为本发明实施例提供的一种报文处理系统的结构示意图, 该系统 200包括交换设备 201和控制设备 202; 交换设备 201可以具体如图 18中直 接与控制设备进行通信时的描述,控制设备 202可以具体如图 19中直接与交 换设备通信时的描述。 或者, 参见图 21 , 该系统还可以包括虚拟层设备 203 , 此时,交换设备 201可以具体如图 18中通过虚拟层设备与控制设备进行通信 的描述,控制设备 202可以具体如图 19中通过虚拟层设备与交换设备通信时 的描述, 虚拟层设备 203用于接收所述控制设备 202发送的多条所述前缀项 配置消息, 以及整合所述多条前缀项配置消息, 并将整合后的前缀项配置消 息发送至所述交换设备 201。
本实施例通过控制设备向交换设备发送前缀项, 可以使得交换设备建立 前缀项和通用流表项的对应关系, 在交换设备接收到报文后首先根据该前缀 项从报文中提取待匹配的比特域, 再依次与该前缀项对应的通用流表项的匹 配域中的数据参数进行匹配, 从而避免了对每个通用流表项都需要提取一次 待匹配的比特域, 可以提高通用流表项的处理效率。
所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 仅以上 述各功能模块的划分进行举例说明, 实际应用中, 可以根据需要而将上述功 能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块, 以完成以上描述的全部或者部分功能。 上述描述的系统, 装置和单元的具体 工作过程, 可以参考前述方法实施例中的对应过程, 在此不再贅述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统, 装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示 意性的, 例如, 所述模块或单元的划分, 仅仅为一种逻辑功能划分, 实际实 现时可以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相 互之间的耦合或直接耦合或通信连接可以是通过一些接口, 装置或单元的间 接耦合或通信连接, 可以是电性, 机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作 为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个单 元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用软件功能单 元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售 或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本 申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的 全部或部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个 存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)或处理器(processor )执行本申请各个实施例所 述方法的全部或部分步骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读 存储器(ROM, Read-Only Memory ),随机存取存储器(RAM, Random Access Memory )、 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述, 以上实施例仅用以说明本申请的技术方案, 而非对其限制;
尽管参照前述实施例对本申请进行了详细的说明, 本领域的普通技术人员应 当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其 中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技术方案 的本质脱离本申请各实施例技术方案的精神和范围。
Claims
1、 一种 文处理方法, 其特征在于, 包括:
交换设备接收报文, 其中所述交换设备上有以前缀项为索引建立的所述 前缀项和通用流表项的对应关系 , 所述前缀项对应的通用流表项的匹配域包 括所述前缀项;
所述交换设备根据所述前缀项获取所述报文中用于匹配的比特域; 所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配 域的数据参数进行匹配。
2、 根据权利要求 1所述的方法, 其特征在于, 所述交换设备上还有和所 述通用流表项对应的精确流表项, 所述方法还包括:
所述交换设备将所述报文与所述精确流表项进行匹配, 以便在匹配成功 后根据所述前缀项获取所述报文中用于匹配的比特域; 或者,
所述交换设备在将所述比特域的值与所述前缀项对应的通用流表项的匹 配域的数据参数进行匹配成功后, 将所述报文与所述精确流表项进行匹配。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 还包括:
所述交换设备以所述前缀项为索引, 建立所述前缀项与所述交换设备上 的通用流表项的对应关系。
4、 根据权利要求 3所述的方法, 其特征在于, 在所述交换设备以所述前 缀项为索引, 建立所述前缀符与所述交换设备上的通用流表项的对应关系之 前, 还包括:
所述交换设备接收控制设备发送的前缀项配置消息, 所述前缀项配置消 息包括所述前缀项。
5、 根据权利要求 4所述的方法, 其特征在于, 还包括:
所述交换设备接收所述控制设备发送的特征请求消息;
所述交换设备发送特征回复消息至所述控制设备, 其中, 所述特征回复 消息指示所述交换设备支持通用匹配, 以便所述控制设备根据所述特征回复 消息发送所述前缀项配置消息。
6、 一种 文处理方法, 其特征在于, 包括:
控制设备生成前缀项配置消息, 所述前缀项配置消息中包括前缀项; 所述控制设备向交换设备发送所述前缀项配置消息, 以便所述交换设备
以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项的对 应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
7、 根据权利要求 6所述的方法, 其特征在于, 还包括:
所述控制设备在下发通用流表项至所述交换设备的情况下, 对所述下发 的通用流表项对应的前缀项进行统计;
所述控制设备根据统计结果确定所述前缀项配置消息中包含的前缀项。
8、 根据权利要求 6或 7所述的方法, 其特征在于, 所述控制设备向交换 设备发送所述前缀项配置消息, 包括:
所述控制设备发送多条所述前缀项配置消息至虚拟层设备, 以使所述虚 拟层设备整合所述多条前缀项配置消息, 并将整合后的前缀项配置消息发送 至所述交换设备。
9、 根据权利要求 6-8任一所述的方法, 其特征在于, 还包括: 所述控制设备向所述交换设备发送特征请求消息, 并接收所述交换设备 发送的特征回复消息, 所述特征回复消息中携带所述交换设备支持的匹配类 型;
所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持 通用匹配。
10、 一种交换设备, 其特征在于, 包括:
存储单元, 用于存储以前缀项为索引建立的所述前缀项和通用流表项的 对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项; 接收单元, 用于接收报文;
获取单元, 用于根据所述前缀项获取所述报文中用于匹配的比特域; 第一匹配单元, 用于将所述比特域的值与所述前缀项对应的通用流表项 的匹配域的数据参数进行匹配。
11、 根据权利要求 10所述的交换设备, 其特征在于,
所述存储单元还用于存储和所述通用流表项对应的精确流表项; 所述交换设备还包括第二匹配单元;
所述第二匹配单元, 用于在将所述 ^艮文与所述精确流表项进行匹配; 其 中, 所述第一匹配单元, 具体用于当所述第二匹配单元匹配成功的情况下, 将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行
匹配。
12、 根据权利要求 10所述的交换设备, 其特征在于,
所述存储单元还用于存储和所述通用流表项对应的精确流表项; 所述交换设备还包括第三匹配单元;
所述第三匹配单元, 用于在所述第一匹配单元匹配成功的情况下, 将所 述报文与所述精确流表项进行匹配。
13、 根据权利要求 10-12任一所述的交换设备, 其特征在于, 还包括建 立单元, 所述建立单元, 用于以所述前缀项为索引, 建立所述前缀项与所述 通用流表项的对应关系。
14、 根据权利要求 10-13任一所述的交换设备, 其特征在于,
所述接收单元还用于接收控制设备发送的前缀项配置消息, 所述前缀项 配置消息包括所述前缀项。
15、 根据权利要求 14所述的交换设备, 其特征在于,
所述接收单元, 还用于接收所述控制设备发送的特征请求消息; 所述交换设备还包括发送单元,用于发送特征回复消息至所述控制设备, 其中, 所述特征回复消息指示所述交换设备支持通用匹配, 以便所述控制设 备根据所述特征回复消息发送所述前缀项配置消息。
16、 一种控制设备, 其特征在于, 包括:
生成单元, 用于生成前缀项配置消息, 所述前缀项配置消息中包括前缀 项;
发送单元, 用于向交换设备发送所述前缀项配置消息, 以便所述交换设 备以所述前缀项为索引, 建立所述前缀项与所述交换设备上的通用流表项的 对应关系, 其中, 所述前缀项对应的通用流表项的匹配域包括所述前缀项。
17、 根据权利要求 16所述的控制设备, 其特征在于, 还包括:
统计单元, 用于在下发通用流表项至所述交换设备的情况下, 对所述下 发的通用流表项对应的前缀项进行统计;
确定单元,用于根据统计结果确定所述前缀项配置消息中包含的前缀项。
18、 根据权利要求 16或 17所述的控制设备, 其特征在于, 所述发送单 元具体用于发送多条所述前缀项配置消息至虚拟层设备, 以使所述虚拟层设 备整合所述多条前缀项配置消息, 并将整合后的前缀项配置消息发送至所述
交换设备。
19、 根据权利要求 16-18任一所述的控制设备, 其特征在于,
所述发送单元还用于向所述交换设备发送特征请求消息;
所述控制设备还包括接收单元和能力确定单元;
所述接收单元, 用于接收所述交换设备发送的特征回复消息, 所述特征 回复消息中携带所述交换设备支持的匹配类型;
所述能力确定单元, 用于根据所述交换设备支持的匹配类型确定所述交 换设备支持通用匹配。
20、 一种报文处理系统, 包括如权利要求 10-15任一所述的交换设备和 如权利要求 16-19任一所述的控制设备。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810156571.2A CN108173763B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
EP13892621.7A EP3029894B1 (en) | 2013-08-28 | 2013-08-28 | Packet processing method, device and system |
CN201380001132.XA CN104584492B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
PCT/CN2013/082430 WO2015027401A1 (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
US15/054,265 US10057392B2 (en) | 2013-08-28 | 2016-02-26 | Packet processing method, device and system |
US16/050,434 US10749997B2 (en) | 2013-08-28 | 2018-07-31 | Prefix matching based packet processing method, switching apparatus, and control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/082430 WO2015027401A1 (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/054,265 Continuation US10057392B2 (en) | 2013-08-28 | 2016-02-26 | Packet processing method, device and system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015027401A1 true WO2015027401A1 (zh) | 2015-03-05 |
Family
ID=52585383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/082430 WO2015027401A1 (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10057392B2 (zh) |
EP (1) | EP3029894B1 (zh) |
CN (2) | CN108173763B (zh) |
WO (1) | WO2015027401A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027401A1 (zh) * | 2013-08-28 | 2015-03-05 | 华为技术有限公司 | 报文处理方法、设备及系统 |
US20180048593A1 (en) * | 2015-02-17 | 2018-02-15 | Hewlett Packard Enterprise Development Lp | Flow entry generating and packet processing based on flow entry |
CN108476179A (zh) * | 2015-12-17 | 2018-08-31 | 慧与发展有限责任合伙企业 | 简化的正交网络策略集选择 |
CN109815263B (zh) * | 2019-01-04 | 2021-10-26 | 烽火通信科技股份有限公司 | 一种模糊查找的数据流识别方法及系统 |
CN110442570B (zh) * | 2019-06-06 | 2021-08-17 | 北京左江科技股份有限公司 | 一种BitMap高速模糊查找方法 |
CN113923303B (zh) * | 2020-07-10 | 2024-06-28 | 中国电信股份有限公司 | 平台号码传递方法、主叫侧处理装置和被叫侧处理装置 |
CN117354237B (zh) * | 2023-11-03 | 2024-09-27 | 中科驭数(北京)科技有限公司 | 网络流表操作处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072034A (zh) * | 2007-06-12 | 2007-11-14 | 华为技术有限公司 | 一种变长解码方法及其装置 |
CN101272386A (zh) * | 2007-03-23 | 2008-09-24 | 凹凸电子(武汉)有限公司 | 一种前缀匹配算法 |
CN101505279A (zh) * | 2009-03-20 | 2009-08-12 | 中国人民解放军信息工程大学 | 一种路由查找方法和装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7466703B1 (en) * | 1998-05-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Scalable high speed router apparatus |
WO2000003517A1 (en) * | 1998-07-08 | 2000-01-20 | Broadcom Corporation | High performance self balancing low cost network switching architecture based on distributed hierarchical shared memory |
WO2002019624A2 (en) * | 2000-08-31 | 2002-03-07 | The Regents Of The University Of California | Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks |
WO2003001737A2 (en) * | 2000-10-26 | 2003-01-03 | Wave7 Optics, Inc. | Method and system for processing upstream packets of an optical network |
US7219184B2 (en) * | 2002-12-10 | 2007-05-15 | Isic Corporation | Method and apparatus for longest prefix matching in processing a forwarding information database |
KR100481806B1 (ko) * | 2004-07-03 | 2005-04-11 | 오토윈주식회사 | 창을 이용한 실내 공기질 개선방법 및 장치 |
US7555594B2 (en) * | 2004-07-22 | 2009-06-30 | Netlogic Microsystems, Inc. | Range representation in a content addressable memory (CAM) using an improved encoding scheme |
US20070008888A1 (en) * | 2005-06-28 | 2007-01-11 | Shuchi Chawla | Direct lookup tables and extensions thereto for packet classification |
US7957332B1 (en) * | 2006-11-15 | 2011-06-07 | Marvell International Ltd. | Memory efficient filtering |
CN102377664B (zh) * | 2010-08-27 | 2015-06-10 | 武汉烽火网络有限责任公司 | 一种基于tcam的区域匹配装置和方法 |
US8644149B2 (en) * | 2011-11-22 | 2014-02-04 | Telefonaktiebolaget L M Ericsson (Publ) | Mechanism for packet forwarding using switch pools in flow-based, split-architecture networks |
US8521905B2 (en) * | 2011-12-22 | 2013-08-27 | Telefonaktiebolaget L M Ericsson (Publ) | System for flexible and extensible flow processing in software-defined networks |
US8886827B2 (en) * | 2012-02-13 | 2014-11-11 | Juniper Networks, Inc. | Flow cache mechanism for performing packet flow lookups in a network device |
US8799507B2 (en) * | 2012-03-13 | 2014-08-05 | Juniper Networks, Inc. | Longest prefix match searches with variable numbers of prefixes |
WO2015027401A1 (zh) * | 2013-08-28 | 2015-03-05 | 华为技术有限公司 | 报文处理方法、设备及系统 |
-
2013
- 2013-08-28 WO PCT/CN2013/082430 patent/WO2015027401A1/zh active Application Filing
- 2013-08-28 CN CN201810156571.2A patent/CN108173763B/zh active Active
- 2013-08-28 CN CN201380001132.XA patent/CN104584492B/zh active Active
- 2013-08-28 EP EP13892621.7A patent/EP3029894B1/en active Active
-
2016
- 2016-02-26 US US15/054,265 patent/US10057392B2/en active Active
-
2018
- 2018-07-31 US US16/050,434 patent/US10749997B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272386A (zh) * | 2007-03-23 | 2008-09-24 | 凹凸电子(武汉)有限公司 | 一种前缀匹配算法 |
CN101072034A (zh) * | 2007-06-12 | 2007-11-14 | 华为技术有限公司 | 一种变长解码方法及其装置 |
CN101505279A (zh) * | 2009-03-20 | 2009-08-12 | 中国人民解放军信息工程大学 | 一种路由查找方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3029894B1 (en) | 2020-08-19 |
EP3029894A1 (en) | 2016-06-08 |
CN108173763A (zh) | 2018-06-15 |
CN104584492A (zh) | 2015-04-29 |
CN108173763B (zh) | 2021-06-01 |
US10057392B2 (en) | 2018-08-21 |
EP3029894A4 (en) | 2016-08-10 |
US20180367649A1 (en) | 2018-12-20 |
US20160173657A1 (en) | 2016-06-16 |
US10749997B2 (en) | 2020-08-18 |
CN104584492B (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10659342B2 (en) | Flow entry configuration method, apparatus, and system | |
WO2015027401A1 (zh) | 报文处理方法、设备及系统 | |
US11575592B2 (en) | Message processing method and apparatus, control-plane device, and computer storage medium | |
WO2015149563A1 (zh) | 通信方法、系统、资源池管理系统、交换机和控制装置 | |
CN105052087B (zh) | 一种基于流表的表项寻址方法、交换机及控制器 | |
US9973400B2 (en) | Network flow information collection method and apparatus | |
WO2019127134A1 (zh) | 一种数据传送的方法和虚拟交换机 | |
CN110703817A (zh) | 一种统计流量的控制方法、装置和系统 | |
EP3313031A1 (en) | Sdn-based arp realization method and apparatus | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
CN112929419B (zh) | 一种数据包传输方法、装置、电子设备及可读存储介质 | |
EP2913964A1 (en) | Software-defined networking event distribution method, control device, and processor | |
CN115225734A (zh) | 一种报文处理方法和网络设备 | |
US10230647B2 (en) | Data packet processing method and device | |
US20160269325A1 (en) | Method, apparatus, and system for controlling forwarding of service data in virtual network | |
WO2024037366A1 (zh) | 转发规则下发方法、智能网卡及存储介质 | |
CN110235417B (zh) | 一种sdn及其报文转发的方法和装置 | |
WO2014190843A1 (zh) | 生成输入参数的方法及设备 | |
EP4231165A1 (en) | Method and device for processing forwarding entry | |
KR102024545B1 (ko) | 오버레이 네트워크 기반에서의 오리지널 패킷 플로우 매핑 장치 및 그 방법 | |
WO2015141014A1 (en) | Method of constructing software-defined pci express (pci-e) switch | |
WO2014067055A1 (zh) | 流表刷新的方法及装置 | |
EP4412310A1 (en) | System and method for processing message, and network apparatus | |
CN109167731B (zh) | 报文发送方法及装置 | |
CN109729026B (zh) | 一种sdn网络的控制方法和sdn控制器 |
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: 13892621 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013892621 Country of ref document: EP |