WO2014206208A1 - 数据查询方法、设备和系统 - Google Patents

数据查询方法、设备和系统 Download PDF

Info

Publication number
WO2014206208A1
WO2014206208A1 PCT/CN2014/079903 CN2014079903W WO2014206208A1 WO 2014206208 A1 WO2014206208 A1 WO 2014206208A1 CN 2014079903 W CN2014079903 W CN 2014079903W WO 2014206208 A1 WO2014206208 A1 WO 2014206208A1
Authority
WO
WIPO (PCT)
Prior art keywords
group
group table
type
entry
group entry
Prior art date
Application number
PCT/CN2014/079903
Other languages
English (en)
French (fr)
Inventor
王刚
王蛟
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2014206208A1 publication Critical patent/WO2014206208A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Definitions

  • the present invention relates to the field of network technologies, and in particular, to a data query method, device, and system. Background technique
  • OpenFlow is a communication protocol developed by the Open Networking Foundation (ONF) for regulating between control devices and routing switching devices in networks including control devices and routing switching devices. Communication.
  • ONF Open Networking Foundation
  • the control device assumes the functions of the control plane, such as topology discovery, routing switching device management, route calculation, and management of various types of tables in the routing switching device.
  • the routing switching device mainly functions as a data plane. That is, the data forwarding function.
  • the control device controls various types of tables in the routing switching device through the OpenFlow protocol to implement various network functions, and the routing switching device implements the function of forwarding data packets by matching the stored various types of tables in the received data packets.
  • the routing and forwarding table in the routing switching device is delivered to the switching device by the control device and managed by the OpenFlow protocol.
  • the routing forwarding table includes a flow table and a group table.
  • the flow table stores the flow table. Flow Entry, a group entry in the group table (Group Entry).
  • the matching is first performed in the flow table. If the matching succeeds, the counting is updated, and the instruction is executed, where the instruction includes going to the next flow table, updating. Action set and update metadata ( Metadata ). When the next flow table is not included in the instruction, the action ( action ) in the action set is executed. If the action set includes a group action, when the route switching device executes the group action, it will be identified according to the group table in the group action (Group
  • Group ID Find the group table entry in the group table.
  • the routing switch device queries the corresponding group entry in all the stored group tables according to the Group ID, and the number of group entries is often large. Therefore, the method for querying the group entry of the prior art is inefficient, and the processing delay of the routing switch device is increased. Summary of the invention
  • the embodiment of the invention provides a data query method, device and system, which overcomes the problem that the routing switch device has low query efficiency for group entries in the prior art.
  • an embodiment of the present invention provides a data query method, including:
  • the routing switching device obtains an instruction for querying a group entry, where the instruction includes a group table identifier; the routing switching device determines, according to a mapping relationship between the group entry type and the group table identifier, a group entry corresponding to the group table identifier. Types of;
  • routing switching device queries the group table entry in the determined sub-group table corresponding to the group entry type corresponding to the group table identifier.
  • the method further includes:
  • the routing switching device receives, from the control device, a mapping relationship between the group entry type and the group table identifier, and the mapping relationship between the group entry type and the group table identifier is created by the control device.
  • the method further includes:
  • the routing device stores the group entry in the subgroup table corresponding to the group entry type of the group according to the group entry type to which the group entry belongs.
  • the method further includes:
  • the control device is configured according to at least one of the following information: a quantity of a group entry type, a number of group entries included in each group entry type, a proportion of a total number of group entries in all group entry types, and a group table. Priority information of the item type, encoding the group item type;
  • control device selects, according to the code length of the group entry type, a continuous identifier segment that is greater than or equal to a code length of the largest group entry type in the set identifier segment of the group table identifier; the control device Mapping the code of the group entry type to the continuous identifier segment, and using the coded group entry identifier of the group entry type as a mapping relationship between the group entry type and the group table identifier.
  • the method further includes:
  • the control device updates the group entry type and the group table identifier according to the change situation, if at least one of the ratio of the total number of the group entry in the group entry type and the priority information of each group entry type changes. Mapping relationship; or,
  • control device acquires an instruction to update the mapping relationship, and then updates a mapping relationship between the group entry type and the group table identifier according to the instruction to update the mapping relationship.
  • the group entry type includes at least two types: Type, selection type, indirect type, fast failover type, priority type.
  • the sub-group table corresponding to the group entry type is stored in the following In at least one type of memory cell: a register, a tri-state content addressed memory, a static random access memory, and a dynamic random access memory.
  • the group entry type is a sub-group table corresponding to the priority type, and is stored in the three-state content Memory.
  • an embodiment of the present invention provides a route switching device, including:
  • An instruction obtaining module configured to acquire an instruction for querying a group entry, where the instruction includes a group table identifier, and a type determining module, configured to determine, according to a mapping relationship between the group entry type and the group table identifier, corresponding to the group table identifier Group entry type;
  • a querying module configured to query the group table item in the determined sub-group table corresponding to the group item type corresponding to the group table identifier.
  • the method further includes:
  • a receiving module configured to receive, by the control device, a mapping relationship between the group entry type and the group table identifier, where the mapping relationship between the group entry type and the group table identifier is created by the control device.
  • the receiving module is further configured to receive the group entry that is sent by the control device;
  • the method further includes: a storage module, configured to store, according to the group entry type to which the group entry belongs, the group entry in the subgroup table corresponding to the group entry type to which the group entry belongs.
  • the group entry type includes at least two types: all types, selected Select Type, Indirect Type, Fast Failover Type, Priority Type.
  • the storage module is specifically configured to:
  • the subgroup table corresponding to the group entry type is stored in at least one of the following types of storage units: a register, a tri-state content addressed memory, a static random access memory, and a dynamic random access memory.
  • the storage module is specifically configured to: use the group entry type as a subtype corresponding to the priority type
  • the group table is stored in a tri-state content addressed memory.
  • the embodiment of the present invention provides a data query system, including: a routing switching device, and a control device, as described in the second aspect and any possible implementation manner of the second aspect;
  • the control device is configured to: create a mapping relationship between the group entry type and the group table identifier, and send the mapping relationship between the group entry type and the group table identifier to the routing switching device.
  • control device is further configured to: according to at least one of the following information: a quantity of the group entry type, and a quantity of the group entry included in each group entry type The ratio of the total number of group entries in the group entry type and the priority information of each group entry type, and encoding the group entry type; according to the coding length of the group entry type, And selecting, in the identifier segment of the group table identifier, a continuous identifier segment that is greater than or equal to a code length of the largest group entry type; mapping the code of the group entry type to the continuous identifier segment, and the group is included
  • the group entry identifier of the encoding of the entry type is used as a mapping relationship between the group entry type and the group table identifier.
  • control device is further configured to: if the number of the group entry type, each group entry The number of group entries included in the type varies according to the ratio of the total number of group entries in the group entry type and the priority information of each group entry type, and the group entry is updated according to the change.
  • mapping relationship Obtaining an instruction to update the mapping relationship, and updating a mapping relationship between the group entry type and the group table identifier according to the instruction to update the mapping relationship.
  • the data query method, device, and system provided by the embodiment of the present invention create a mapping relationship between a group entry type Group Entry type and a group table identifier Group ID by the control device, and the group entry is
  • the mapping relationship between the Group Entry type and the group table identifier Group ID is sent to the routing switch device, so that the routing switch device can group the group entry according to the group entry according to the mapping relationship between the group entry type Group Entry type and the group table identifier Group ID.
  • the type is stored so as to query the target group table item Group Entry in the type to solve the problem that the prior art needs to query in all group table items Group Entry is inefficient.
  • Embodiment 1 is a flowchart of Embodiment 1 of a data query method according to the present invention
  • Embodiment 2 is a flowchart of Embodiment 2 of a data query method according to the present invention
  • Embodiment 3 is a flowchart of Embodiment 3 of a data query method according to the present invention.
  • Embodiment 4 is a flowchart of Embodiment 4 of a data query method according to the present invention.
  • FIG. 5 is a signaling flowchart of Embodiment 5 of a data query method according to the present invention.
  • Embodiment 1 of a control device according to the present invention.
  • Embodiment 7 is a schematic structural diagram of Embodiment 2 of a control device according to the present invention.
  • Embodiment 8 is a schematic structural diagram of Embodiment 1 of a route switching device according to the present invention.
  • Embodiment 9 is a schematic structural diagram of Embodiment 2 of a route switching device according to the present invention.
  • FIG. 10 is a schematic structural diagram of an embodiment of a data query system according to the present invention.
  • the technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention.
  • the embodiments are a part of the embodiments of the invention, and not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without departing from the inventive scope are the scope of the present invention.
  • the controller device according to the embodiment of the present invention may be a general-purpose computer, a virtual machine, a server, a server cluster, a plurality of server clusters, or a cloud composed of a plurality of servers.
  • the cloud is composed of a large number of computers or servers based on Cloud Computing, wherein the cloud is a kind of distributed computing, a super virtual computer composed of a group of loosely coupled computers.
  • the routing switching device in the embodiment of the present invention may be an OpenFlow router, an OpenFlow switch, a software implemented OpenFlow router, an OpenFlow switch, or the like.
  • the group entry Group Entry includes a group entry Group Entry defined in the OpenFlow standard.
  • the structure of the group entry Group Entry is usually as follows:
  • the Group ID is a group table identifier, which is a 32-bit value;
  • the Group Type is a group entry type, and the following four types are defined in the OpenFlow protocol: All ALL types, Select Select type, Indirect Indirect type, Fast failover Fast Fa i lover type; Counters (counter) For statistics, whenever the Group Entry is applied once, the load is 1 time; Action Bucket: Action set for Group Entry, ⁇ port will be data The packet is forwarded to the port of the router, or forwarded to other Group Entry for processing (ie, containing other Group IDs), or forwarding the packet to the controller, or dropping the packet.
  • all ⁇ type of Group Entry executes all Action Buckets, which can be used for multicast and broadcast; Select Select type of Group Entry, select only one Action Bucket, can be used for multi-path traffic balancing; Indirect Indirect type of Group Entry, Only one Action Bucket can be used for fast aggregation of traffic; Fast Failover type of Group Entry can contain multiple Action Buckets, and select active Action Buckets in order.
  • FIG. 1 is a flowchart of a first embodiment of a data query method according to the present invention.
  • the execution subject of the embodiment is a control device.
  • the method in this embodiment may include:
  • Step 101 The control device creates a mapping relationship between the group entry type and the group table identifier.
  • the group entry type may include at least two types: all ALL types, select Select types, indirect Indirect types, fast failover types, and priority types.
  • the group entry of the priority type includes the group entry, which may be pre-defined by the user.
  • the group entry in the priority type may be all ALL types, select Select type, indirect Indirect type, fast failover Fast Fai lover type, or It can also be a combination of any of the above four types. That is, the priority type can be used for the user to classify the group entry Group Entry that needs to be preferentially processed into a class to provide fast processing for the group entry Group Entry of the priority type. For example, a type of signaling message transmitted in the network has a higher priority and needs to be processed quickly.
  • such a signaling message may need to be defined by four types in the OpenFlow protocol (all ALL types, select Select types, indirect Indirect types).
  • Group Entry processing of fast failover type (Fast Fai lover type), in which case a priority type can be defined, including all group entries Group Entry required to process the signaling message.
  • the number of priority types may be multiple.
  • a group entry type may be defined as a priority type A, including a partial group entry, Group Entry, and a group entry type may be defined as a priority type B. This includes other partial group entries, Group Entry.
  • a new type may be defined according to other policies, for example, defining a new group entry type according to the destination address, for example, for the destination Internet.
  • a protocol Internet Protocol, IP for short
  • IP Internet Protocol
  • the controller device may encode various group entry types and carry them in the group table identifier Group ID, so that the group table identifier is included in the group ID.
  • the type information of the group entry Group Entry may be encoded.
  • the group entry type may be encoded, specifically, according to the number of types of the group entry Group Entry, the number of Group Entry included in each group entry type, and the total number of Group Entry. At least one of the information such as the priority of each group entry type, and the various group entry types are encoded.
  • the group entry type includes the following four types: All ALL type, Select Select type, Indirect Indirect type, Fast failover Fas t Fa i lover type, and the proportion of Group Entry in each type to the total number of Group Entry Both are 25%, and a feasible coding method is as follows:
  • a two-bit equal length coding method is used, and the coding manner can be as follows: The ALL type is encoded as 00, the Select type is encoded as 01, the Indirect type is encoded as 10, and the Fast Failover type is encoded as 11.
  • the group ID 0 ⁇ (Identification, ID: ID) segment is 32 bits: xyaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  • the format of the Group ID of the Select type is Olaaaaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. 8,8,8,8, ⁇
  • the format of the Group ID of the Fast Failover type is llaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
  • the remaining bits, the letter a, may contain the identifier of the Group ID to distinguish between different Group Entry.
  • the foregoing coding mode and the coding of the group entry type in the ID segment of the group table identifier Group ID are only an example, and the coding of the group entry type may also be encoded from variable length coding.
  • the encoding of the group entry type in the ID segment of the group table identifier Group ID may also be other locations, for example, the encoding of the group table entry type is set in the minimum bit of the Group ID, that is, the whole
  • the ID segment is as follows: aaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxy, xy identifies the encoding of the group entry type, and the letter a indicates other bits in the ID segment; or the encoding of the identifier group entry type may be located in the middle portion of the ID segment.
  • Step 102 The control device sends the mapping relationship between the group entry type and the group table identifier to the routing switch device.
  • the routing switch device may perform the group entry Group Entry according to the type of the Group Entry according to the mapping relationship between the group entry type and the group table identifier. Storage, so that when searching for group entry Group Entry, it can be searched according to the type of Group Entry to improve the efficiency of the search.
  • the group entry Group Entry cannot be classified and stored in the routing switch device, and the Group ID is required to be used when querying the group entry Group Entry. Query in all group entries, Group Entry, so the efficiency is better Low.
  • the controller device may use a Transmission Control Protocol (TCP) or a Transport Layer Security Protocol (TLS) or a User Datagram Protocol ( The User Datagram Protocol (abbreviation: UDP) or the Datagram Transport Layer Security (DTLS) sends the mapping relationship between the group entry type and the group table identifier Group ID to the route switching device.
  • TCP Transmission Control Protocol
  • TLS Transport Layer Security Protocol
  • UDP User Datagram Protocol
  • DTLS Datagram Transport Layer Security
  • the control device creates a mapping relationship between the group entry type and the group table identifier Group ID, and sends the mapping relationship between the group entry type and the group table identifier Group ID to the routing switching device, so that the routing switching device can
  • the group entry Group Entry is stored according to the type of the Group Entry, so that the Group Entry type can be found according to the type of the Group Entry, only in the group.
  • the target group table item Group Entry is queried to solve the problem that the prior art needs to query in all group table items Group Entry is inefficient.
  • FIG. 2 is a flowchart of a second embodiment of the data query method of the present invention.
  • the present embodiment provides a detailed description of the content of step 101 in FIG. 1 on the basis of the embodiment shown in FIG. 203 corresponds to an implementation of step 101 of FIG.
  • the method in this embodiment may include:
  • Step 201 The control device according to the number of group entry types, the proportion of the total number of group entries included in each group entry type, and the priority information of each group entry type , encoding the group entry type.
  • the encoding the group entry type may include: the control device performing equal length coding or variable length coding on the Group Entry type.
  • the variable length coding may be encoded by Huffman variable length coding, for example, according to the ratio of the number of Group Entry included in each Group Entry type to the total number of Group Entry.
  • Group Entry type Number of entries in the total number of Group Entry codes
  • Step 202 The control device selects, according to the code length of the group entry type, a consecutive ID segment that is greater than or equal to the code length of the largest group entry type in the ID segment of the set group ID.
  • the continuous ID segment may be located at any position in the ID segment of the Group ID.
  • the encoding length of the largest Group Entry type is 3 bits. Therefore, it is necessary to select in the ID segment of the Group ID. There are at least 3 consecutive bits of the bit.
  • the continuous ID segment may be a field of consecutive bits starting from a maximum ID bit in the ID segment of the Group ID, or may be a minimum ID bit in the ID segment from the Group ID. The field of the starting consecutive bits.
  • Step 203 The control device maps the code of the group entry type to the continuous ID segment, and uses the group entry identifier that includes the code of the group entry type as the group entry type and group table. The mapping relationship of the identity.
  • step 203 is to map the code of the Group Entry type to the continuous ID segment, which may be specifically:
  • the encoding of the Group Entry type is mapped from the smallest ID bit of the consecutive ID segments to the consecutive ID segments.
  • the method of mapping the encoding of the Group Entry type from the maximum ID bit of the continuous ID segment to the continuous ID segment then, ALL
  • the format of the Group ID of the type of Group Entry is: Oaaaaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
  • the format is 111a Aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a.
  • Step 204 The control device sends the mapping relationship between the group entry type and the group table identifier to the routing switch device.
  • the Group Entry type is encoded, and the code is mapped to the Group.
  • the group ID In the contiguous ID space of the group ID of the entry, the group ID carries the information of the type of each group entry, and the group ID of the group entry type is used as the mapping relationship between the group entry type and the group ID, thereby making the route
  • the switching device may store the group entry Group Entry according to the type of the Group Entry according to the mapping relationship between the group entry type and the group table identifier Group ID, so that the group entry type may be based on the type of the group entry.
  • the target group entry Group Entry is queried only in the type of the Group Entry to improve query efficiency.
  • the update may also be included.
  • the step of group entry and group entry type group entry type and group table identifier group ID which is:
  • the control device changes according to the number of the Group Entry types, the ratio of the number of Group Entry included in each Group Entry type to the total number of Group Entry, and the priority of each Group Entry type.
  • the group entry type is updated to update the mapping relationship between the group entry type Group Entry type and the group table identifier Group ID; or the control device acquires an instruction to update the mapping relationship, according to the instruction for updating the mapping relationship Update the mapping relationship between the group entry type and the group table identifier Group ID.
  • the step of detecting, by the control device, whether the update group entry Group Entry and the mapping relationship between the group entry type Group Entry type and the group table identifier Group ID are satisfied is further included.
  • the trigger condition can be:
  • the number of the Group Entry types, the ratio of the number of Group Entry included in each Group Entry type to the total number of Group Entry, and at least one of the priorities of each Group Entry type are changed;
  • control device acquires an instruction to update the mapping relationship
  • control device may determine that the current time is according to a preset update period. The update time reached by the run.
  • the information about the type of the group entry of the original group entry is as follows:
  • the number of Group Entry types is 4, which are All type, Select type, Indirect type, and Fast Failover type, and their priorities are: 1, 2, 3, respectively. 4.
  • the proportion of Group Entry included in each Group Entry type is 25%, 25%, 25%, and 25%, respectively.
  • the control device After the control device detects that the trigger condition of the mapping relationship between the group entry type and the group entry type Group Entry and the group table identifier Group ID is satisfied, the control device updates according to the trigger condition. Correspondingly, the control device sends the updated mapping relationship between the group entry type Group Entry type and the group table identifier Group ID to the routing switching device, and the routing switching device obtains the updated group entry type Group Entry type.
  • the group entry type corresponding to the group table identifier Group ID is determined according to the mapping relationship between the updated group entry type Group Entry type and the group table identifier Group ID; And querying the corresponding group entry Group Entry in the determined sub-group table corresponding to the group entry type corresponding to the group table identifier Group ID.
  • FIG. 3 is a flowchart of a third embodiment of the data query method of the present invention.
  • the executor of the embodiment is a routing switching device. As shown in FIG. 3, the method in this embodiment may include:
  • Step 301 The routing switching device acquires an instruction for querying a group entry, where the instruction includes a group table identifier.
  • the routing switching device After receiving the data packet, the routing switching device first performs matching in the flow table. If the matching succeeds, the counting is updated, and the instruction is executed, where the instruction includes going to the next flow table, updating the action set Action Set, and updating the metadata. ( Metadata ).
  • the Action Action in the Action Set is executed, and the Action Set includes actions defined by the OpenFlow protocol.
  • fruit Action Set ⁇ mouth include Group Action, in accordance with the execution order defined Action OpenFlow, perform a Group Action, the lookup table entries set in the group table Group Entry Group Act ion according to the Group ID 0
  • Step 302 The routing switching device determines, according to the mapping relationship between the group entry type and the group table identifier, the group entry type corresponding to the group table identifier.
  • mapping relationship between the group entry type and the group table identifier Group ID may be sent to the routing switch device by the control device in advance, and the group entry type and the group entry type are The mapping relationship between the group table and the group ID indicates that the group table identifies the type to which the group entry Group Entry belongs.
  • the Group Entry type includes at least two types: All ALL type, Select Select type, Indirect Indirect type, Fast failover Fast Fa lover type, Group entry in the priority type, Group Entry may be the above ALL type, Group table entry of type Select, Indirect, and Fast Fa lover. That is, the ⁇ ⁇ type can be used for the user to group the group entries Group Entry that need to be prioritized to provide fast processing for the group entry Group Entry of the priority type.
  • Step 303 The routing switching device queries the group table entry in the determined sub-group table corresponding to the group entry type corresponding to the group table identifier.
  • each group entry type is stored in the corresponding sub-group table according to the Group Entry type to which each group entry Group Entry belongs, so only the query time is The query needs to be performed in the corresponding sub-group table, and the query scope is narrowed compared to the manner in the prior art that the query is required in all group entries Group Entry.
  • the routing entry device determines, according to the mapping relationship between the group entry type and the group table identifier Group ID, the group entry type corresponding to the group table identifier Group ID, and the subgroup corresponding to the group entry type.
  • the group entry of the query group table in the table reduces the scope of the query, thereby improving query efficiency.
  • FIG. 4 is a flowchart of Embodiment 4 of the data query method of the present invention.
  • the mapping relationship between the group entry type of the group switching entry and the group ID of the group switch is added. And the specific steps of storing the group entry Group Entry.
  • the method of the embodiment may further include: Step 401: The routing switching device receives, by the control device, a mapping relationship between the group entry type and the group table identifier. The mapping relationship between the group entry type and the group table identifier is created by the control device.
  • Step 402 The routing switching device receives the group entry sent by the control device.
  • Step 403 The routing switching device stores, according to the group entry type of the group entry, the group entry in the subgroup table corresponding to the group entry type.
  • step 403 group entry items of different Group Entry types are stored in different sub-group tables, and sub-group tables corresponding to the Group Entry type are stored in the following One type of memory cell: Register, Ternary Content Addressable Memory (TCAM), Static Random Access Memory (SRAM), and Dynamic Random Access Memory (Dynamic Random Access Memory) , referred to as: DRAM).
  • TCAM Ternary Content Addressable Memory
  • SRAM Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • the subgroup tables corresponding to each Group Entry type may be stored in the same type of storage unit, or may be stored in different storage units.
  • the priority of the four types of Group Entry is: The priority of the All type is 1, the priority of the Select type is 1, the priority of the Indirect type is 2, and the priority of the Fas t Fa i lover type is 2.
  • the routing switch device stores the group entry in the subgroup table of the group entry type according to the group entry type to which the group entry belongs, because the priority of the All type and the Select type are the same.
  • the Indirect type and the Fast Failover type have the same priority.
  • the subtype table of the All type and the Select type may be stored in the same storage unit, such as the TCAM, the Indirect type and the Fast.
  • Subgroup tables of the Failover type are stored in the same storage unit, such as in SRAM.
  • the group entry Group Entry contains a Group Entry of a preferred type, it may be stored separately in the TCAM to provide a quick query for the Group Entry of the priority type.
  • control device has the following policies: For the destination IP address is
  • the data packets of 192.168.1.111-192.168.1.120 are all processed by the Group Entry of the Fast Failover type defined in the OpenFlow standard, and the control device can define a group entry of a prior type, namely: destination IP address For
  • the group entry of the priority type may be stored in the subgroup table corresponding to the priority type, and the subgroup table corresponding to the priority type is separately stored in the TCAM, and other types of subgroup tables are stored in other Memory cells, such as SRAM, DRAM.
  • the routing switch device receives the group entry group group entry sent by the control device, and the mapping relationship between the group entry type Group Entry type and the group table identifier Group ID, and according to the group entry type to which the group entry Group Entry belongs. And storing the group entry Group Entry in the subgroup table of the group Entry type, so that the routing switch device can perform the query in the corresponding group entry type subgroup table when receiving the instruction for querying the Group Entry. Thereby improving query efficiency.
  • FIG. 5 is a signaling flowchart of Embodiment 5 of the data query method of the present invention.
  • This embodiment describes an interaction process between a control device and a route switching device.
  • the method in this embodiment may include: Step 501: The ratio of the number of group entry types and the number of group entries included in each group entry type to the total number of group entries And at least one of the priority information of each group entry type, encoding the group entry type.
  • Step 502 The control device selects, according to the code length of the group entry type, a consecutive ID segment that is greater than or equal to the code length of the largest group entry type in the ID segment of the set group identifier Group ID.
  • Step 503 The control device maps the code of the group entry type to the continuous ID segment, and uses the group entry identifier that includes the code of the group entry type as the group entry type and group table. The mapping relationship of the identity.
  • Step 504 The control device sends the group entry, and the mapping relationship between the group entry type and the group table identifier to the routing switching device.
  • Step 505 The routing switch device stores the group entry in the subgroup table of the group entry type to which the group entry belongs according to the group entry type to which the group entry belongs.
  • Step 506 The routing switching device acquires an instruction for querying a group entry, where the instruction includes a group table identifier.
  • Step 506 is triggered by the routing switching device processing the data packet. Therefore, there is no strict sequential relationship with the foregoing steps 501-505. However, subsequent steps 507, and 508 need to be performed after completion of step 505.
  • Step 507 The routing switching device determines, according to the mapping relationship between the group entry type and the group table identifier, the group entry type corresponding to the group table identifier.
  • Step 508 The routing switching device queries the group table entry in the determined sub-group table corresponding to the group entry type corresponding to the group table identifier.
  • the routing switching device when the control device updates the mapping relationship between the group entry type and the group table identifier, the routing switching device also updates accordingly. Specifically, the above steps may be repeatedly performed.
  • the group entry type is encoded by the control device, and the code is mapped into the continuous ID space of the Group ID of the Group Ent ry, so that the Group ID carries the information of each type of the Group Ent ry, and The group ID including the group entry type is used as the group entry.
  • a mapping relationship between the type and the group ID so that the routing switch device can store the group entry Group Ent ry according to the type of the Group Ent ry according to the mapping relationship between the group entry type and the group table identifier Group ID, so as to search for the group.
  • the table item Group Ent ry can query the target group table item Group Ent ry only in the type of the Group Ent ry according to the type of the Group Ent ry to improve the query efficiency.
  • FIG. 6 is a schematic structural diagram of Embodiment 1 of a control device according to the present invention.
  • the control device 600 of this embodiment may include: a mapping relationship creating module 11 and a sending module 12, where the mapping relationship creating module 11 may be used.
  • the mapping relationship between the group entry type and the group table identifier is created;
  • the sending module 12 is configured to send the mapping relationship between the group entry type and the group table identifier to the routing switching device.
  • control device of this embodiment may be used to implement the technical solution of the method embodiment shown in FIG. 1 and the technical solution corresponding to the control device in the embodiment shown in FIG. 5, and the implementation principle thereof is similar, and details are not described herein again.
  • the control device of the embodiment sends a mapping relationship between the group entry type and the group table identifier, and sends the mapping relationship between the group entry type and the group table identifier to the routing switching device, so that the routing switching device can
  • the mapping between the group entry type and the group table identifier stores the group entry according to the group entry type, so that when the group entry is searched, the target group can be queried only according to the type of the group entry.
  • the entry to solve the problem that the prior art requires query in all group table items Group Ent ry to cause inefficient query.
  • FIG. 7 is a schematic structural diagram of Embodiment 2 of a control device according to the present invention.
  • the control device 700 of the present embodiment is further configured by the mapping relationship creation module 11 on the basis of the structure of the control device shown in FIG.
  • the method may include: a coding unit 111, an ID segment selection unit 112, and a mapping unit 11 3 , where
  • the coding unit 111 may be configured to use, according to the number of group entry types, the proportion of the number of Group Ent ry included in each group entry type, the proportion of the total number of Group Ent ry, and the priority information of each group entry type. At least one of encoding the group entry type;
  • the ID segment selection unit 112 may be configured to select, according to the code length of the group entry type, a continuous ID segment that is greater than or equal to the code length of the largest group entry type in the set ID segment of the Group ID;
  • Mapping unit 11 3 may be configured to map the encoding of the group entry type to the continuous ID The segment, the location of the consecutive ID segment in the Group ID and the encoding of the group entry type are used as a mapping relationship between the group entry type and the group ID.
  • the coding unit 111 may be specifically configured to:
  • mapping unit 113 may be specifically configured to:
  • the encoding of the group entry type is mapped from the smallest ID bit of the consecutive ID segments to the consecutive ID segments.
  • the group entry type may include at least two types: all ALL types, select Se lec t type, indirect Ind i rec t type, fast failover Fas t Fa i lover type, priority type.
  • control device of this embodiment may further include: an update module 13
  • the update module 13 may be configured to: after the mapping relationship between the group entry type and the group table identifier is created, the number of the group entry type, and the number of Group Entry included in each group entry type occupies a total Group Ent
  • the mapping between the group entry type and the group table identifier Group ID is updated according to the changed group entry type; or at least one of the priority of the group entry type changes; or
  • mapping relationship Obtaining an instruction to update the mapping relationship, and updating a mapping relationship between the group entry type and the group table identifier according to the instruction to update the mapping relationship.
  • the device in this embodiment may be used to perform the technical solution of the method embodiment shown in FIG. 2 and the technical solution executed by the corresponding control device in the embodiment shown in FIG. 5, and the implementation principle and the technical effect are similar, and details are not described herein again.
  • the routing switching device 800 of the present embodiment may include: an instruction acquiring module 21, a type determining module 22, and a query module 23, where
  • the instruction obtaining module 21 may be configured to obtain an instruction for querying a group entry, where the instruction includes a group identifier
  • the type determining module 22 may be configured to determine, according to a mapping relationship between the group entry type and the group table identifier, a group entry type corresponding to the group table identifier;
  • the query module 23 may be configured to: determine, in the determined group entry class corresponding to the group table identifier The group table entry is queried in the corresponding subgroup table.
  • the routing switching device in this embodiment may be used to implement the technical solution of the method embodiment shown in FIG. 3 and the technical solution corresponding to the routing switching device in the embodiment shown in FIG. 5, and the implementation principle is similar, and details are not described herein again.
  • the routing switching device of the embodiment determines the group entry type corresponding to the group table identifier according to the mapping relationship between the group entry type and the group table identifier, and queries the group in the subgroup table corresponding to the group entry type. Table items, narrowing the scope of the query, thereby improving query efficiency.
  • FIG. 9 is a schematic structural diagram of Embodiment 2 of a routing switching device according to the present invention.
  • the routing switching device 900 of the present embodiment further includes: a receiving module, based on the structure of the routing switching device shown in FIG. twenty four ,
  • the receiving module 24 is configured to receive a mapping relationship between the group entry type and the group table identifier sent by the control device, where the mapping relationship between the group entry type and the group table identifier is created by the control device.
  • the receiving module 24 may be further configured to receive a group entry sent by the control device;
  • the routing switching device further includes: a storage module 25, configured to store, according to the group entry type to which the group entry Group Ent ry belongs, the group entry in the subgroup table corresponding to the group entry type to which the group entry belongs. in.
  • the group entry type may include at least two types: all ALL types, select Se ec t type, indirect Ind i rec t type, fast failover Fa s t Fa i lover type, priority type.
  • the storage module 25 is specifically configured to:
  • the subgroup table corresponding to the group entry type is stored in at least one of the following types of memory cells: a register, a tri-state content addressed memory TCAM, a static random access memory SRAM, and a dynamic random access memory DRAM.
  • the storage module 25 is specifically configured to: store, in the tri-state content addressing memory TCAM, the sub-group table corresponding to the group entry type as the priority type.
  • the device in this embodiment may be used to implement the technical solution of the method embodiment shown in FIG. 4, and the technical solution executed by the corresponding routing switching device in the embodiment shown in FIG. 5, and the implementation principle and the technical effect are similar. Narration.
  • FIG. 10 is a schematic structural diagram of an embodiment of a data query system according to the present invention, as shown in FIG.
  • the system of the embodiment includes: a control device and a routing switch device, where the control device can be configured to: create a mapping relationship between the group entry type and the group table identifier, and send the mapping relationship between the group entry type and the group table identifier
  • the routing switching device may be configured to: obtain an instruction for querying a group entry, where the instruction includes a group table identifier; and according to the group entry type and group table identifier sent by the control device
  • the mapping relationship, the group entry type corresponding to the group table identifier is determined, and the group table entry is queried in the determined sub-group table corresponding to the group entry type corresponding to the group table identifier.
  • the routing switching device can use the structure of the embodiment shown in FIG. 8 or FIG. 9 , and correspondingly, the technical solution of the method embodiment shown in FIG. 3 or FIG. 4 and the corresponding routing switching device in the embodiment shown in FIG. 5 can be executed.
  • the technical solution is similar in its implementation principle and will not be described here.
  • the mapping relationship between the group entry type and the group table identifier is created by the control device, and the mapping relationship between the group entry type and the group table identifier is sent to the routing switching device, and the routing switching device is used.
  • the group table entry is stored in the subgroup table corresponding to the corresponding group entry type, so that when the group entry is queried, the The group table identifies the corresponding group entry type, and queries the group table entry in the subgroup table corresponding to the group entry type, which narrows the query range, thereby improving query efficiency.
  • control device may be further configured to: group according to the number of group entry types, the number of group entries included in each group entry type, and the group of all group entry types At least one of a ratio of a total number of entries and a priority information of each group entry type, encoding the group entry type; according to the coding length of the group entry type, the set of the group table And selecting, in the identifier ID segment of the identifier, a continuous identifier segment that is greater than or equal to a code length of the largest group entry type; mapping the code of the group entry type to the continuous identifier segment, and including the group entry type
  • the encoded group table item identifier is used as a mapping relationship between the group table item type and the group table identifier.
  • each The at least one of the priority information of the group entry type is changed, and the control device may be further configured to: update the mapping relationship between the group entry type and the group table identifier according to the change situation; or
  • the control device may be further configured to: obtain an instruction to update the mapping relationship, and update a mapping relationship between the group entry type and the group table identifier according to the instruction to update the mapping relationship.
  • the steps can be completed by the relevant hardware of the program instructions.
  • the aforementioned program can be stored in a computer readable storage medium. When the program is executed, the steps including the foregoing method embodiments are performed; and the foregoing storage medium includes: various media that can store program codes, such as ROM, RAM, disk or optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供一种数据査询方法、设备和系统。其中,方法包括:路由交换设备获取査询组表项的指令,所述指令中包含组表标识;所述路由交换设备根据组表项类型与组表标识的映射关系,确定与所述组表标识对应的组表项类型;所述路由交换设备在所确定的与所述组表标识对应的所述组表项类型对应的子组表中査询所述组表项。可以克服现有技术中路由交换设备对组表项的査询效率低的问题。

Description

数据查询方法、 设备和系统
技术领域 本发明实施例涉及网络技术领域, 尤其涉及一种数据查询方法、 设备 和系统。 背景技术
开放流(OpenFlow ) 是一种通信协议, 由开放网络基金会(Open Networking Foundation, 简称: ONF ) 负责制定, 用于在包括控制设备和路 由交换设备的网络中规范控制设备和路由交换设备之间的通信。 在支持
OpenFlow的网络中, 通常, 控制设备承担控制面的功能, 如包括拓朴发现、 路由交换设备管理、 路由计算、 路由交换设备中各类表的管理等; 路由交换 设备主要承担数据面的功能, 即数据转发功能。 控制设备通过 OpenFlow协 议控制路由交换设备中的各类表, 以实现各种网络功能, 而路由交换设备在 接收到数据包中, 通过匹配存储的各类表来实现数据包转发的功能。 路由交 换设备中的路由转发表是由控制设备通过 OpenFlow协议向交换设备下发并 负责管理, 其中, 路由转发表包括流表 ( Flow table )和组表( Group table ) , 流表中存储流表项 (Flow Entry ) , 组表中存储组表项 ( Group Entry ) 。
在通过 OpenFlow方式进行数据转发的过程中, 数据包进入路由交换设 备后, 首先在流表中进行匹配, 如果匹配成功, 则更新计数, 并执行指令, 其中指令包括转到下一个流表、 更新动作集 (action set ) 和更新元数据 ( Metadata ) 。 当指令中不包括下一个流表时, 会执 action set中的动作 ( action ) 。 如果 action set中包括组动作 ( group action ) , 则当路由交换设 备执行到 group action时, 将根据 group action中的组表标识 ( Group
Identification, 简称: Group ID ) 在组表中查找组表项。
现有技术中,路由交换设备根据 Group ID在存储的所有组表中查询对应 的组表项, 而组表项的数量往往较大。 因此, 现有技术的组表项查询方法效 率较低, 从而导致路由交换设备的处理时延增加。 发明内容
本发明实施例提供一种数据查询方法、 设备和系统, 以克服现有技术中 路由交换设备对组表项的查询效率低的问题。
第一方面, 本发明实施例提供一种数据查询方法, 包括:
路由交换设备获取查询组表项的指令, 所述指令中包含组表标识; 所述路由交换设备根据组表项类型与组表标识的映射关系, 确定与所述 组表标识对应的组表项类型;
所述路由交换设备在所确定的与所述组表标识对应的所述组表项类型对 应的子组表中查询所述组表项。
在第一方面的第一种可能的实现方式中, 还包括:
所述路由交换设备从控制设备接收所述组表项类型与组表标识的映射关 系, 所述组表项类型与组表标识的映射关系是由所述控制设备创建的。
根据第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 还包括:
所述路由交换设备接收所述控制设备发送的所述组表项;
所述路由交换设备根据所述组表项所属的组表项类型, 将所述组表项存 储在所属的所述组表项类型对应的子组表中。
根据第一方面的第一种或第一方面的第二种可能的实现方式, 在第三种 可能的实现方式中, 还包括:
所述控制设备根据如下信息中的至少一个: 组表项类型的数量、 每种组 表项类型中包括的组表项数量占所有组表项类型中组表项数量总和的比例、 各个组表项类型的优先级信息, 对所述组表项类型进行编码;
所述控制设备根据所述组表项类型的编码长度, 在设定的所述组表标识 的标识段中选取大于或等于最大的组表项类型的编码长度的连续标识段; 所述控制设备将所述组表项类型的编码映射到所述的连续标识段, 将包 含所述组表项类型的编码的所述组表项标识作为所述组表项类型和组表标识 的映射关系。
根据第一方面的第一种至第三种可能的实现方式中的任意一种, 在第四 种可能的实现方式中, 还包括:
若所述组表项类型的数量、 每种组表项类型中包括的组表项数量占所有 组表项类型中组表项数量总和的比例、 各个组表项类型的优先级信息中的至 少一个发生变化, 则所述控制设备根据所述变化情况更新所述组表项类型和 组表标识的映射关系; 或者,
所述控制设备获取更新所述映射关系的指令, 则根据所述更新所述映射 关系的指令更新所述组表项类型和组表标识的映射关系。
根据第一方面、 第一方面的第一种至第四种可能的实现方式中的任意一 种, 在第五种可能的实现方式中, 所述组表项类型包括以下至少两种类型: 全部类型、 选择类型、 间接类型、 快速故障切换类型、 优先类型。
根据第一方面、 第一方面的第一种至第五种可能的实现方式中的任意一 种, 在第六种可能的实现方式中, 所述组表项类型对应的子组表存储在以下 至少一种类型的存储单元中: 寄存器、 三态内容寻址存储器、 静态随机存储 器和动态随机存储器。
根据第一方面的第五种或第六种可能的实现方式, 在第七种可能的实现 方式中, 所述组表项类型为所述优先类型对应的子组表存储在三态内容寻址 存储器。
第二方面, 本发明实施例提供一种路由交换设备, 包括:
指令获取模块, 用于获取查询组表项的指令, 所述指令中包含组表标识; 类型确定模块, 用于根据组表项类型与组表标识的映射关系, 确定与所 述组表标识对应的组表项类型;
查询模块, 用于在所确定的与所述组表标识对应的所述组表项类型对应 的子组表中查询所述组表项。
在第二方面的第一种可能的实现方式中, 还包括:
接收模块,用于从控制设备接收所述组表项类型与组表标识的映射关系, 所述组表项类型与组表标识的映射关系是由所述控制设备创建的。
根据第二方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述接收模块, 还用于接收所述控制设备发送的所述组表项;
还包括: 存储模块, 用于根据所述组表项所属的组表项类型, 将所述组 表项存储在所属的组表项类型对应的子组表中。
根据第二方面、 第二方面的第一种或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述组表项类型包括以下至少两种类型: 全部类型、 选 择类型、 间接类型、 快速故障切换类型、 优先类型。
根据第二方面、 第二方面的第一种至第三种可能的实现方式种的任意一 种, 在第四种可能的实现方式中, 所述存储模块具体用于:
将组表项类型对应的子组表存储在以下至少一种类型的存储单元中: 寄 存器、 三态内容寻址存储器、 静态随机存储器和动态随机存储器。
根据第二方面的第三种或第四种可能的实现方式, 在第五种可能的实现 方式中, 所述存储模块具体用于: 将所述组表项类型为所述优先类型对应的 子组表存储在三态内容寻址存储器。
第三方面, 本发明实施例提供一种数据查询系统, 包括: 包括如第二方 面以及第二方面的任意一种可能的实现方式所述的路由交换设备, 以及控制 设备;
所述控制设备用于, 创建组表项类型与组表标识的映射关系, 并将所述 组表项类型与组表标识的映射关系发送给所述路由交换设备。
在第三方面的第一种可能的实现方式中, 所述控制设备还用于: 根据如 下信息中的至少一个: 组表项类型的数量、 每种组表项类型中包括的组表项 数量占所有组表项类型中组表项数量总和的比例、 各个组表项类型的优先级 信息, 对所述组表项类型进行编码; 根据所述组表项类型的编码长度, 在设 定的所述组表标识的标识段中选取大于或等于最大的组表项类型的编码长度 的连续标识段; 将所述组表项类型的编码映射到所述的连续标识段, 将包含 所述组表项类型的编码的所述组表项标识作为所述组表项类型和组表标识的 映射关系。
根据第三方面或第三方面的第一种可能的实现方式, 在第二种可能的实 现方式中, 所述控制设备还用于: 若所述组表项类型的数量、 每种组表项类 型中包括的组表项数量占所有组表项类型中组表项数量总和的比例、 各个组 表项类型的优先级信息中的至少一个发生变化, 根据所述变化情况更新所述 组表项类型和组表标识的映射关系; 或者,
获取更新所述映射关系的指令, 则根据所述更新所述映射关系的指令更 新所述组表项类型和组表标识的映射关系。
本发明实施例提供的数据查询方法、 设备和系统, 通过控制设备创建组 表项 Group Entry类型和组表标识 Group ID的映射关系, 并将所述组表项 Group Entry类型和组表标识 Group ID的映射关系发送给路由交换设备, 使 得路由交换设备可以根据所述组表项 Group Entry类型和组表标识 Group ID 的映射关系将组表项 Group Entry按照 Group Entry的类型进行存储, 以便在 的类型中查询目标组表项 Group Entry, 以解决现有技术需要在所有组表项 Group Entry中进行查询导致的查询效率低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明数据查询方法实施例一的流程图;
图 2为本发明数据查询方法实施例二的流程图;
图 3为本发明数据查询方法实施例三的流程图;
图 4为本发明数据查询方法实施例四的流程图;
图 5为本发明数据查询方法实施例五的信令流程图;
图 6为本发明控制设备实施例一的结构示意图;
图 7为本发明控制设备实施例二的结构示意图;
图 8为本发明路由交换设备实施例一的结构示意图;
图 9为本发明路由交换设备实施例二的结构示意图;
图 10为本发明数据查询系统实施例的结构示意图。 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例, 都属于本发明保护的范围。 本发明实施例涉及的控制器设备可以为通用的计算机、虚拟机、服务器、 服务器集群, 多个服务器集群或多个服务器构成的云等。 在此, 云由基于云 计算(Cloud Computing) 的大量计算机或服务器构成, 其中, 云是分布式计 算的一种, 由一群松散耦合的计算机集组成的一个超级虚拟计算机。 本发明 实施例涉及的路由交换设备可以为硬件实现的 OpenFlow路由器、 OpenFlow 交换机、 软件实现的 OpenFlow路由器、 OpenFlow交换机等。 本领域技术人 员应能理解上述的控制器设备、 路由交换设备仅为举例, 其他现有的或今后 可能出现的控制设备、 路由交换设备如可适用于本发明, 也应包含在本发明 保护范围以内。
在本发明实施例中,组表项 Group Entry包括 OpenFlow标准中定义的组 表项 Group Entry。 组表项 Group Entry的结构通常如下:
Figure imgf000007_0001
其中, Group ID为组表标识, 为一个 32比特位的数值; Group Type为 组表项类型, OpenFlow协议中定义了以下四种类型: 全部 ALL类型、 选择 Select类型、 间接 Indirect类型、 快速故障切换 Fast Fa i lover类型; Counters (计数器) 用于统计, 每当应用一次该 Group Entry时, 则累力口 1 次; Action Bucket (动作集合) : 为 Group Entry能够执行的动作集合, ^口 将数据包转发到路由器的端口, 或是转发到其他 Group Entry继续处理(即, 包含其他的 Group ID) , 或是将数据包转发到控制器, 或是丟弃数据包等。
其中, 全部 ΑΙ 类型的 Group Entry执行所有的 Action Buckets, 可以 用于多播和广播; 选择 Select类型的 Group Entry, 只选择一个 Action Bucket, 可以用于多路径流量均衡; 间接 Indirect类型的 Group Entry, 只 包含一个 Action Bucket, 可以用于流量的快速聚合; 快速故障切换 Fast Failover类型的 Group Entry, 可以包含多个 Act ion Bucket, 按顺序选择 活跃的 Action Bucket。
图 1为本发明数据查询方法实施例一的流程图, 本实施例的执行主体为 控制设备, 如图 1所示, 本实施例的方法可以包括:
步骤 101、 控制设备创建组表项类型和组表标识的映射关系。
在本实施例中, 所述组表项类型可以包括以下至少两种类型: 全部 ALL 类型、 选择 Select类型、 间接 Indirect类型、 快速故障切换 Fas t Fa i lover 类型、 优先类型。 其中, 优先类型包括哪些组表项 Group Entry可以由用户预先定义, 该 优先类型中的组表项 Group Entry可以为全部 ALL类型、 选择 Select类型、 间接 Indirect类型、 快速故障切换 Fast Fai lover类型, 或者, 也可以为上 述四种类型中的任意几种类型的组合。 即, 优先类型可以用于, 供用户将需 要优先处理的组表项 Group Entry归为一类, 以便对该优先类型的组表项 Group Entry提供快速处理。 例如, 网络中传输的一种信令消息, 优先级较 高, 需要快速处理, 而且这种信令消息可能需要被 OpenFlow协议中定义的 4 种类型 (全部 ALL类型、 选择 Select类型、 间接 Indirect类型、 快速故障 切换 Fast Fai lover类型) 的 Group Entry处理, 这时可以定义一种优先类 型, 在该类型中包括处理该信令消息所需要的所有组表项 Group Entry。
在具体实现时, 优先类型的数量可以有多个, 例如可以定义一种组表项 类型为优先类型 A, 其中包括部分组表项 Group Entry, 可以定义一种组表 项类型为优先类型 B, 其中包括其他的部分组表项 Group Entry。
在具体实现时, 对于组表项类型, 与所述优先类型类似的, 还可以根据 其他的策略定义新的类型, 例如根据目的地址来定义一种新的组表项类型, 例如, 针对目的互联网协议(Internet Protocol, 简称: IP)为某一特定地址 段 (如 192.168.1.111-192.168.1.120 )的数据包, 可以将涉及该目的 IP地 址的 Group Entry设置为一种新的组表项类型。 若将该新的组表项类型赋予 较高的优先级 ,则网络中针对包含该特定 I P地址的数据包时将获得较快的处 理。
对于组表项类型和组表标识的映射关系, 具体地, 控制器设备可以将各 种组表项类型进行编码, 并将其携带在组表标识 Group ID中, 使得组表标识 Group ID中包含该组表项 Group Entry的类型信息。
其中,可以将各种组表项类型进行编码,具体地,可以根据组表项 Group Entry的类型的数量、 每种组表项类型中包括的 Group Entry数量所占总的 Group Entry数量的比例、 各个组表项类型的优先级等相关信息中的至少一 个, 将各种组表项类型进行编码。
例如, 组表项类型包括以下四种: 全部 ALL类型、 选择 Select类型、 间 接 Indirect类型、 快速故障切换 Fas t Fa i lover类型, 每种类型中的 Group Entry数量所占总的 Group Entry数量的比例均为 25%, —种可行的编码方式 为, 对上述四种组表项类型釆用 2位等长编码的方式, 编码方式可以如下: 将 ALL类型编码为 00, Select类型编码为 01, Indirect类型编码为 10, Fast Failover类型编码为 11。 而组表标识 Group ID 0^ ( Identification, 简称: ID)段为 32个比特位: xyaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa, 其中, 一个字母代表 1个比特位。 可以从该 ID段的最大比特位开始选取 2 位比特的连续 ID段, 即上述 ID空间中的 xy。 则 ALL类型的 Group Entry的 Group ID的格式为: 00aa aaaa aaaa aaaa aaaa aaaa aaaa aaaa. Select 类型的 Group ID的格式为 Olaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa. Indirect类型的 Group ID的格式为 lOaa aaaa aaaa aaaa aaaa aaaa aaaa 8,8,8,8, ^ Fast Failover类型的 Group ID的格式为 llaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa。
其中, 剩下的比特位, 即字母 a, 可以包含 Group ID的标识, 用于区分 不同的 Group Entry。
需要说明的是, 上述的编码方式以及对组表项类型的编码在组表标识 Group ID的 ID段中的位置仅仅是一种举例, 对组表项类型的编码还可以从 釆用变长编码等其他的编码方式, 组表项类型的编码在组表标识 Group ID 的 ID段中的位置也可以为其他的位置, 例如将组表项类型的编码设置在 Group ID的最小比特位, 即整个 ID段如下: aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaxy, xy标识组表项类型的编码, 字母 a表示 ID段中的其他比特位; 或者该标识组表项类型的编码可以位于 ID段的中间部分,如 aaaa aaaa aaaa aaxy aaaa aaaa aaaa aaaa。 只要遵循 ID段中的连续字段的长度大于组表项 类型的编码的最大长度,即 ID段中的连续字段足够容纳所述组表项类型的编 码, 的原则即可。
步骤 102、 控制设备将所述组表项类型和组表标识的映射关系发送给路 由交换设备。
相应地,路由交换设备在接收所述组表项类型和组表标识的映射关系后, 可以根据所述组表项类型和组表标识的映射关系将组表项 Group Entry按照 Group Entry的类型进行存储, 以便在查找组表项 Group Entry时可以根据 Group Entry的类型进行查找, 以提高查找的效率。
而在现有技术中, 由于不存在组表项类型和组表标识的映射关系, 因此, 在路由交换设备中组表项 Group Entry不能分类存储, 在查询组表项 Group Entry时需要通过 Group ID在所有组表项 Group Entry中查询, 因此效率较 低。
在本实施例的步骤 102中, 具体地, 控制器设备可以通过传输控制协议 (Transmission Control Protocol ,简称: TCP )或安全传输层协议( Transport Layer Security Protocol, 简称: TLS ) 或用户数据报协议 ( User Datagram Protocol, 简称: UDP )或数据包安全传输层协议( Datagram Transport Layer Security, 简称: DTLS )将所述组表项类型和组表标识 Group ID的映射关系 发送给路由交换设备。
本实施例,通过控制设备创建组表项类型和组表标识 Group ID的映射关 系, 并将所述组表项类型和组表标识 Group ID的映射关系发送给路由交换设 备,使得路由交换设备可以根据所述组表项类型和组表标识 Group ID的映射 关系将组表项 Group Entry按照 Group Entry的类型进行存储, 以便在查找 组表项 Group Entry时可以根据 Group Entry的类型, 只在该 Group Entry 的类型中查询目标组表项 Group Entry, 以解决现有技术需要在所有组表项 Group Entry中进行查询导致的查询效率低的问题。
下面釆用几个具体的实施例, 对图 1所示方法实施例的技术方案进行详 细说明。
图 2为本发明数据查询方法实施例二的流程图, 本实施例在图 1所示实 施例的基础上, 对图 1中步骤 101的内容进行了详细的描述, 本实施例的步 骤 201—203即对应于图 1的步骤 101的一种实现方式。 如图 2所示, 本实施 例的方法可以包括:
步骤 201、 控制设备根据组表项类型的数量、 每种组表项类型中包括的 组表项数量所占总的组表项数量的比例、 各个组表项类型的优先级信息中的 至少一个, 对所述组表项类型进行编码。
进一步具体地, 所述对所述 Group Entry类型进行编码, 可以包括: 所述控制设备对所述 Group Entry类型进行等长编码或变长编码。其中, 变长编码例如可以根据每种 Group Entry类型中包括的 Group Entry数量所 占总的 Group Entry数量的比例, 釆用霍夫曼变长编码进行编码。
^列 ^口, 对于^口下的 Group Entry, 每种 Group Entry类型中包括的 Group Entry数量所占总的 Group Entry数量的比例如下表中的第二列所示, 釆用 变长编码后每种 Group Entry类型的编码如下表中的第三列所示。 每种 Group Entry类型中包括的 Group
Group Entry类型 Entry数量所占总的 Group Entry数量的 编码
比例
ALL 40% 0
Indirect 30% 10
Fas t f a i lover 20% 111
Indirect 10% 110 步骤 202、控制设备根据所述组表项类型的编码长度,在设定的 Group ID 的 ID段中选取大于或等于最大的组表项类型的编码长度的连续 ID段。
该连续 ID段可以位于 Group ID的 ID段中的任意位置, 例如针对上述表 格中的编码方式, 最大的 Group Entry类型的编码长度为 3个比特位, 因此, 需要在 Group ID的 ID段中选择存在至少 3个连续的比特位的部分。
在具体实现时, 优选地, 可以将该连续 ID段可以为从 Group ID的 ID 段中的最大 ID比特位开始的连续比特位的字段, 或者以为从 Group ID的 ID 段中的最小 ID比特位开始的连续比特位的字段。
步骤 203、 控制设备将所述组表项类型的编码映射到所述的连续 ID段, 将包含所述组表项类型的编码的所述组表项标识作为所述组表项类型和组表 标识的的映射关系。
进一步具体地, 步骤 203的将所述 Group Entry类型的编码映射到所述 的连续 ID段, 具体可以为:
将所述 Group Entry类型的编码从所述的连续 ID段的最大 ID比特位开 始映射到所述的连续 ID段; 或者,
将所述 Group Entry类型的编码从所述的连续 ID段的最小 ID比特位开 始映射到所述的连续 ID段。
例如, 对于上述表格所示的 Group Entry以及编码, 釆用将所述 Group Entry类型的编码从所述的连续 ID段的最大 ID比特位开始映射到所述的连 续 ID段的方式,则, ALL类型的 Group Entry的 Group ID的格式为: Oaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa. Select类型的 Group ID的格式为 lOaa 8,8,8,8, aaaa aaaa aaaa aaaa aaaa aaaa. Indirect类型的 Group ID的格式为 111a aaaa aaaa aaaa aaaa aaaa aaaa aaaa. Fas t Fa i lover类型的 Group ID的 格式为 110a aaaa aaaa aaaa aaaa aaaa aaaa aaaa。
步骤 204、 控制设备将所述组表项类型和组表标识的映射关系发送给路 由交换设备。
本实施例, 通过将 Group Entry类型进行编码, 并该编码映射到 Group
Entry的 Group ID的连续 ID空间中, 使 Group ID中携带每个 Group Entry 所属类型的信息, 并将该包含 Group Entry类型的 Group ID作为所述 Group Entry类型和 Group ID的映射关系, 从而使得路由交换设备可以根据所述组 表项 Group Entry类型和组表标识 Group ID的映射关系将组表项 Group Entry 按照 Group Entry的类型进行存储, 以便在查找组表项 Group Entry时可以 根据 Group Entry的类型, 只在该 Group Entry的类型中查询目标组表项 Group Entry, 以提高查询效率。
上述实施例, 在所述控制设备创建组表项 Group Entry类型和组表标识 Group ID的映射关系之后, 即在图 1中的步骤 101之后, 或者图 2中的步骤 203之后, 还可以包括更新组表项 Group Entry以及组表项 Group Entry类 型和组表标识 Group ID的映射关系的步骤。 即:
所述 Group Entry类型的数量、 每种 Group Entry类型中包括的 Group Entry数量所占总的 Group Entry数量的比例、 各个 Group Entry类型的优 先级中的至少一个发生变化, 则所述控制设备根据变化后的 Group Entry类 型更新所述组表项 Group Entry类型和组表标识 Group ID的映射关系;或者, 所述控制设备获取更新所述映射关系的指令, 则根据所述更新所述映射 关系的指令更新所述组表项 Group Entry类型和组表标识 Group ID的映射关 系。
在具体实现时, 还可以包括所述控制设备检测是否满足更新组表项 Group Entry以及组表项 Group Entry类型和组表标识 Group ID的映射关系 的触发条件的步骤。 所述触发条件可以为:
所述 Group Entry类型的数量、 每种 Group Entry类型中包括的 Group Entry数量所占总的 Group Entry数量的比例、 各个 Group Entry类型的优 先级中的至少一个发生变化;
或者, 所述控制设备获取更新所述映射关系的指令;
或者, 还可以为, 所述控制设备判断出当前时刻为按照预设的更新周期 运行达到的更新时刻。
例如, 原组表项 Group Entry的类型的相关信息如下: Group Entry 类 型的数量为 4,分别为 All类型、 Select类型、 Indirect类型和 Fast Failover 类型,其优先级分别为: 1、 2、 3、 4,其每种 Group Entry类型中包括的 Group Entry数量所占总的 Group Entry数量的比例分别为 25%、 25%、 25%、 25%。 当所述控制设备检测到原 Select类型的优先级由 1变为 1时,则所述控制设 备判断触发条件满足。
所述控制设备检测到满足更新组表项 Group Entry以及组表项 Group Entry类型和组表标识 Group ID的映射关系的触发条件后, 则根据触发条件 进行更新。 相应地, 所述控制设备将更新后的所述组表项 Group Entry类型 和组表标识 Group ID的映射关系发送给路由交换设备, 所述路由交换设备获 取了更新后的组表项 Group Entry类型和组表标识 Group ID的映射关系之后, 则才艮据该更新后的组表项 Group Entry类型和组表标识 Group ID的映射关系 , 确定与所述组表标识 Group ID对应的 Group Entry类型; 并在所确定的与所 述组表标识 Group ID对应的 Group Entry 类型对应的子组表中查询对应的 组表项 Group Entry。
图 3为本发明数据查询方法实施例三的流程图, 本实施例的执行主体为 路由交换设备, 如图 3所示, 本实施例的方法可以包括:
步骤 301、 路由交换设备获取查询组表项的指令, 所述指令中包含组表 标识。
通常, 路由交换设备接收到数据包后, 首先在流表中进行匹配, 如果匹 配成功, 会更新计数, 并执行指令, 其中指令包括转到下一个流表、 更新动 作集 Action Set和更新元数据( Metadata )。 当指令中不包括下一个流表时, 会执 Act ion Set中的动作 Action, Action Set中包括 OpenFlow协议定义的 动作。 ^口果 Action Set中包括 Group Action,则按照、 OpenFlow定义的 Action 执行顺序, 执行到 Group Action时, 将根据 Group Act ion中的 Group ID 在组表中查找组表项 Group Entry0
步骤 302、 路由交换设备根据组表项类型与组表标识的映射关系, 确定 与所述组表标识对应的组表项类型。
具体地, 所述组表项 Group Entry类型与组表标识 Group ID的映射关系 可以事先由控制设备发送给路由交换设备, 所述组表项 Group Entry类型与 组表标识 Group ID的映射关系即表明该组表标识 Group ID的组表项 Group Entry所属的类型。
所述 Group Entry类型包括以下至少两种类型: 全部 ALL类型、 选择 Select类型、 间接 Indirect类型、 快速故障切换 Fast Fa i lover类型、 优 该优先类型中的组表项 Group Entry可以为上述 ALL类型、 Select类型、 Indirect类型、 Fast Fa i lover类型的组表项。 即, 仂 ύ先类型可以用于, 供 用户将需要优先处理的组表项 Group Entry归为一类, 以便对该优先类型的 组表项 Group Entry提供快速处理。
步骤 303、 路由交换设备在所确定的与所述组表标识对应的所述组表项 类型对应的子组表中查询所述组表项。
具体地, 路由交换设备在存储组表项 Group Entry时, 根据每个组表项 Group Entry所属的 Group Entry类型, 将每种 Group Entry类型存储在对 应的子组表中, 因此, 在查询时只需要在该对应的子组表中进行查询, 相比 于现有技术中需要在所有组表项 Group Entry中进行查询的方式, 缩小了查 询范围。
本实施例, 通过路由交换设备根据组表项 Group Entry类型与组表标识 Group ID的映射关系, 确定与所述组表标识 Group ID对应的 Group Entry 类型, 并在该 Group Entry类型对应的子组表中查询组表项 Group Entry, 缩小了查询范围, 从而提高查询效率。
图 4为本发明数据查询方法实施例四的流程图, 本实施例在图 3所示实 施例的基础上, 增加了路由交换设备接收组表项 Group Entry类型与组表标 识 Group ID的映射关系、 以及存储所述组表项 Group Entry的具体步骤。 如 图 4所示, 本实施例的方法在图 3所示实施例的步骤 302之前,还可以包括: 步骤 401、 路由交换设备接收从控制设备接收组表项类型与组表标识的 映射关系,所述组表项类型与组表标识的映射关系是由所述控制设备创建的。
步骤 402、 路由交换设备接收所述控制设备发送的组表项。
步骤 403、 路由交换设备根据所述组表项所属的组表项类型, 将所述组 表项存储在所属的组表项类型对应的子组表中。
具体地, 在步骤 403中将不同 Group Entry类型的组表项 Group Entry 存储在不同的子组表中, 所述 Group Entry类型对应的子组表存储在以下至 少一种类型的存储单元中: 寄存器、 三态内容寻址存储器 (Ternary Content Addressable Memory, 简称: TCAM )、 静态随机存储器( Static Random Access Memory, 简称: SRAM ) 和动态随机存储器 ( Dynamic Random Access Memory, 简称: DRAM) 。 各个 Group Entry类型对应的子组表可以存放在同一类型的 存储单元中, 也可以各自存储在不同的存储单元中。
例如,四种 Group Entry的类型的优先级分别为: All类型的优先级为 1, Select类型的优先级为 1, Indirect类型的优先级为 2 , Fas t Fa i lover类 型的优先级为 2,在步骤 403中,路由交换设备根据所述组表项所属的 Group Entry类型, 将所述组表项存储在所属的组表项类型的子组表中, 由于 All 类型和 Select类型的优先级相同, Indirect类型和 Fast Failover类型的 优先级相同,在一种优选的实施方式中,可以将 All类型和 Select类型的子 组表存储在同一存储单元中, 如存储在 TCAM中, 将 Indirect类型和 Fast Failover类型的子组表存储在同一存储单元中, 如存储在 SRAM中。
进一步优选地, 若所述组表项 Group Entry中包含优先类型的 Group Entry, 可以将其单独存储在 TCAM, 以便对该优先类型的 Group Entry提供 快速查询。
例如, 控制设备存在如下策略: 对于目的 IP地址为
192.168.1.111-192.168.1.120的数据包,全部使用 OpenFlow标准中定义的 Fast Failover类型的组表项 Group Entry来处理, 则控制设备可以定义一 种仂 ύ先类型的 Group Entry, 即: 目的 IP地址为
192.168.1.111-192.168.1.120的数据包。这时, 可以将该优先类型的 Group Entry存储在该优先类型对应的子组表中, 并将该优先类型对应的子组表单 独存储在 TCAM中,而将其他类型的子组表存储在其他的存储单元中,如 SRAM、 DRAM中。
本实施例, 路由交换设备通过接收控制设备发送的组表项 Group Entry, 以及组表项 Group Entry类型与组表标识 Group ID的映射关系, 并根据所述 组表项 Group Entry所属的 Group Entry类型, 将所述组表项 Group Entry 存储在所属的 Group Entry类型的子组表中, 使得路由交换设备在接收到查 询 Group Entry的指令时能够在对应的 Group Entry类型的子组表中进行查 询, 从而提高查询效率。
上述实施例, 若接收到控制设备发送的更新所述组表项 Group Entry类 型和组表标识 Group ID的映射关系的指令, 则根据该指令进行相应的更新。 图 5为本发明数据查询方法实施例五的信令流程图, 本实施例介绍控制 设备与路由交换设备的交互过程。 如图 5所示, 本实施例的方法可以包括: 步骤 501、 控制设备根据组表项类型的数量、 每种组表项类型中包括的 组表项数量所占总的组表项数量的比例、 各个组表项类型的优先级信息中的 至少一个, 对所述组表项类型进行编码。
步骤 502、 控制设备根据所述组表项类型的编码长度, 在设定的所述组 表标识 Group ID的 ID段中选取大于或等于最大的组表项类型的编码长度的 连续 ID段。
步骤 503、 控制设备将所述组表项类型的编码映射到所述的连续 ID段, 将包含所述组表项类型的编码的所述组表项标识作为所述组表项类型和组表 标识的映射关系。
步骤 504、 控制设备将组表项、 以及所述组表项类型和组表标识的映射 关系发送给路由交换设备。
步骤 505、 路由交换设备根据所述组表项所属的组表项类型, 将所述组 表项存储在所属的组表项类型的子组表中。
步骤 506、 路由交换设备获取查询组表项的指令, 所述指令中包含组表 标识。
其中, 步骤 506是由路由交换设备处理数据包而触发的, 因此, 与上述 的步骤 501—505并无严格的顺序关系。 但是, 后续的步骤 507、 和步骤 508 需要在步骤 505完成之后执行。
步骤 507、 路由交换设备根据组表项类型与组表标识的映射关系, 确定 与所述组表标识对应的组表项类型。
步骤 508、 路由交换设备在所确定的与所述组表标识对应的组表项类型 对应的子组表中查询所述组表项。
进一步地, 当控制设备更新所述组表项类型和组表标识的映射关系时, 路由交换设备也相应地进行更新。 具体地, 可以重复执行上述的步骤
501—505。
本实施例, 通过控制设备将组表项类型进行编码, 并将该编码映射到 Group Ent ry的 Group ID的连续 ID空间中, 使 Group ID中携带每个 Group Ent ry所属类型的信息, 并将该包含组表项类型的 Group ID作为所述组表项 类型和 Group ID的映射关系,从而使得路由交换设备可以根据所述组表项类 型和组表标识 Group ID的映射关系将组表项 Group Ent ry按照 Group Ent ry 的类型进行存储, 以便在查找组表项 Group Ent ry时可以根据 Group Ent ry 的类型, 只在该 Group Ent ry的类型中查询目标组表项 Group Ent ry , 以提 高查询效率。
图 6为本发明控制设备实施例一的结构示意图, 如图 6所示, 本实施例 的控制设备 600可以包括: 映射关系创建模块 11和发送模块 12 , 其中, 映射关系创建模块 11 , 可以用于创建组表项类型和组表标识的映射关 系;
发送模块 12 , 可以用于将所述组表项类型和组表标识的映射关系发送给 路由交换设备。
本实施例的控制设备, 可以用于执行图 1所示方法实施例的技术方案以 及图 5所示实施例中控制设备对应执行的技术方案, 其实现原理类似, 此处 不再赘述。
本实施例的控制设备, 通过创建组表项类型和组表标识的映射关系, 并 将所述组表项类型和组表标识的映射关系发送给路由交换设备, 使得路由交 换设备可以根据所述组表项类型和组表标识的映射关系将组表项按照组表项 类型进行存储, 以便在查找组表项时可以根据组表项的类型, 只在该组表项 的类型中查询目标组表项, 以解决现有技术需要在所有组表项 Group Ent ry 中进行查询导致的查询效率低的问题。
图 7为本发明控制设备实施例二的结构示意图, 如图 6所示, 本实施例 的控制设备 700在图 6所示控制设备结构的基础上, 进一步地, 所述映射关 系创建模块 11 ,可以包括:编码单元 111、 ID段选择单元 112和映射单元 11 3 , 其中,
编码单元 111 , 可以用于根据组表项类型的数量、 每种组表项类型中包 括的 Group Ent ry数量所占总的 Group Ent ry数量的比例、 各个组表项类型 的优先级信息中的至少一个, 对所述组表项类型进行编码;
ID段选择单元 112 , 可以用于根据所述组表项类型的编码长度, 在设定 的所述 Group ID的 ID段中选取大于或等于最大的组表项类型的编码长度的 连续 ID段;
映射单元 11 3 , 可以用于将所述组表项类型的编码映射到所述的连续 ID 段, 釆用所述连续 ID段在所述 Group ID中的位置以及所述组表项类型的编 码作为所述 组表项类型和 Group ID的映射关系。
进一步地, 所述编码单元 111具体可以用于:
对所述组表项类型进行等长编码或变长编码。
进一步地, 所述映射单元 113具体可以用于:
将所述组表项类型的编码从所述的连续 ID段的最大 ID比特位开始映射 到所述的连续 ID段; 或者,
将所述组表项类型的编码从所述的连续 ID段的最小 ID比特位开始映射 到所述的连续 ID段。
进一步地, 所述组表项类型可以包括以下至少两种类型: 全部 ALL类型、 选择 Se lec t类型、 间接 Ind i rec t类型、 快速故障切换 Fas t Fa i lover类型、 优先类型。
进一步地, 本实施例的控制设备, 还可以包括: 更新模块 13 ,
该更新模块 13 , 可以用于在创建组表项类型和组表标识的映射关系之 后, 所述组表项类型的数量、 每种组表项类型中包括的 Group Entry数量所 占总的 Group Ent ry数量的比例、 各个组表项类型的优先级中的至少一个发 生变化, 则根据变化后的组表项类型更新所述组表项类型和组表标识 Group ID的映射关系; 或者,
获取更新所述映射关系的指令, 则根据所述更新所述映射关系的指令更 新所述组表项类型和组表标识的映射关系。
本实施例的装置, 可以用于执行图 2所示方法实施例的技术方案以及图 5所示实施例中对应控制设备执行的技术方案, 其实现原理和技术效果类似, 此处不再赘述。
图 8为本发明路由交换设备实施例一的结构示意图, 如图 8所示, 本实 施例的路由交换设备 800可以包括: 指令获取模块 21、 类型确定模块 22和 查询模块 23 , 其中,
指令获取模块 21 , 可以用于获取查询组表项的指令, 所述指令中包含组 表标识;
类型确定模块 22 , 可以用于根据组表项类型与组表标识的映射关系, 确 定与所述组表标识对应的组表项类型;
查询模块 23 , 可以用于在所确定的与所述组表标识对应的所述组表项类 型对应的子组表中查询所述组表项。
本实施例的路由交换设备, 可以用于执行图 3所示方法实施例的技术方 案以及图 5所示实施例中路由交换设备对应执行的技术方案, 其实现原理类 似, 此处不再赘述。
本实施例的路由交换设备, 根据组表项类型与组表标识的映射关系, 确 定与所述组表标识对应的组表项类型, 并在该组表项类型对应的子组表中查 询组表项, 缩小了查询范围, 从而提高查询效率。
图 9为本发明路由交换设备实施例二的结构示意图, 如图 9所示, 本实 施例的路由交换设备 900在图 8所示路由交换设备结构的基础上,进一步地, 还包括: 接收模块 24 ,
该接收模块 24 , 可以用于接收控制设备发送的所述组表项类型与组表标 识的映射关系, 所述组表项类型与组表标识的映射关系是由所述控制设备创 建的。
进一步地, 所述接收模块 24 , 还可以用于接收所述控制设备发送的组表 项;
所述路由交换设备还包括:存储模块 25 ,可以用于根据所述组表项 Group Ent ry所属的组表项类型, 将所述组表项存储在所属的组表项类型对应的子 组表中。
进一步地, 所述组表项类型可以包括以下至少两种类型: 全部 ALL类型、 选择 Se l ec t类型、 间接 Ind i rec t类型、 快速故障切换 Fa s t Fa i lover类型、 优先类型。
进一步地, 所述存储模块 25具体可以用于:
将组表项类型对应的子组表存储在以下至少一种类型的存储单元中: 寄 存器、 三态内容寻址存储器 TCAM、 静态随机存储器 SRAM和动态随机存储器 DRAM。
进一步地, 所述存储模块 25具体可以用于: 将所述组表项类型为所述优 先类型对应的子组表存储在三态内容寻址存储器 TCAM。
本实施例的装置, 可以用于执行图 4所示方法实施例的技术方案, 以及 图 5所示实施例中对应路由交换设备执行的技术方案, 其实现原理和技术效 果类似, 此处不再赘述。
图 10为本发明数据查询系统实施例的结构示意图, 如图 10所示, 本实 施例的系统包括: 控制设备和路由交换设备, 其中, 控制设备可以用于: 创 建组表项类型与组表标识的映射关系, 并将所述组表项类型与组表标识的映 射关系发送给所述路由交换设备; 所述路由交换设备可以用于: 获取查询组 表项的指令, 所述指令中包含组表标识; 根据所述控制设备发送的所述组表 项类型与组表标识的映射关系, 确定与所述组表标识对应的组表项类型, 并 在所确定的与所述组表标识对应的所述组表项类型对应的子组表中查询所述 组表项。 路由交换设备可以釆用图 8或图 9所示实施例的结构, 其对应地, 可以执行图 3或图 4所示方法实施例的技术方案以及图 5所示实施例中对应 路由交换设备执行的技术方案, 其实现原理类似, 此处不再赘述。
本实施例的数据查询系统, 通过控制设备创建组表项类型和组表标识的 映射关系,并将所述组表项类型和组表标识的映射关系发送给路由交换设备, 并通过路由交换设备根据该组表项类型与组表标识的映射关系, 将组表项存 储在其对应的组表项类型所对应的子组表中, 使得在进行组表项的查询时, 可以先确定与所述组表标识对应的组表项类型, 并在该组表项类型对应的子 组表中查询组表项, 缩小了查询范围, 从而提高查询效率。
进一步地, 上述实施例的数据查询系统中, 所述控制设备还可以用于: 根据组表项类型的数量、 每种组表项类型中包括的组表项数量占所有组表项 类型中组表项数量总和的比例、各个组表项类型的优先级信息中的至少一个, 对所述组表项类型进行编码; 根据所述组表项类型的编码长度, 在设定的所 述组表标识的标识 ID段中选取大于或等于最大的组表项类型的编码长度的 连续标识段; 将所述组表项类型的编码映射到所述的连续标识段, 将包含所 述组表项类型的编码的所述组表项标识作为所述组表项类型和组表标识的映 射关系。
进一步地, 上述实施例的数据查询系统, 若所述组表项类型的数量、 每 种组表项类型中包括的组表项数量占所有组表项类型中组表项数量总和的比 例、 各个组表项类型的优先级信息中的至少一个发生变化, 则所述控制设备 还可以用于:根据所述变化情况更新所述组表项类型和组表标识的映射关系; 或者,
所述控制设备还可以用于, 获取更新所述映射关系的指令, 则根据所述 更新所述映射关系的指令更新所述组表项类型和组表标识的映射关系。
本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。 前述的程序可以存储于一计算机可 读取存储介质中。 该程序在执行时, 执行包括上述各方法实施例的步骤; 而 前述的存储介质包括: R0M、 RAM, 磁碟或者光盘等各种可以存储程序代码的 介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims

权 利 要 求
1、 一种数据查询方法, 其特征在于, 包括:
路由交换设备获取查询组表项的指令, 所述指令中包含组表标识; 所述路由交换设备根据组表项类型与组表标识的映射关系,确定与所述 组表标识对应的组表项类型;
所述路由交换设备在所确定的与所述组表标识对应的所述组表项类型 对应的子组表中查询所述组表项。
2、 根据权利要求 1所述的方法, 其特征在于, 还包括:
所述路由交换设备从控制设备接收所述组表项类型与组表标识的映射 关系, 所述组表项类型与组表标识的映射关系是由所述控制设备创建的。
3、 根据权利要求 2所述的方法, 其特征在于, 还包括:
所述路由交换设备接收所述控制设备发送的所述组表项;
所述路由交换设备根据所述组表项所属的组表项类型,将所述组表项存 储在所属的所述组表项类型对应的子组表中。
4、 根据权利要求 2或 3所述的方法, 其特征在于, 还包括:
所述控制设备根据如下信息中的至少一个: 组表项类型的数量、 每种组 表项类型中包括的组表项数量占所有组表项类型中组表项数量总和的比例、 各个组表项类型的优先级信息, 对所述组表项类型进行编码;
所述控制设备根据所述组表项类型的编码长度,在设定的所述组表标识 的标识段中选取大于或等于最大的组表项类型的编码长度的连续标识段; 所述控制设备将所述组表项类型的编码映射到所述的连续标识段,将包 含所述组表项类型的编码的所述组表项标识作为所述组表项类型和组表标 识的映射关系。
5、 根据权利要求 2~4中任一项所述的方法, 其特征在于, 还包括: 若所述组表项类型的数量、每种组表项类型中包括的组表项数量占所有 组表项类型中组表项数量总和的比例、各个组表项类型的优先级信息中的至 少一个发生变化,则所述控制设备根据所述变化情况更新所述组表项类型和 组表标识的映射关系; 或者,
所述控制设备获取更新所述映射关系的指令,则根据所述更新所述映射 关系的指令更新所述组表项类型和组表标识的映射关系。
6、 根据权利要求 1~5中任一项所述的方法, 其特征在于, 所述组表项 类型包括以下至少两种类型: 全部类型、 选择类型、 间接类型、 快速故障切 换类型、 优先类型。
7、 根据权利要求 1~6中任一项所述的方法, 其特征在于, 所述组表项 类型对应的子组表存储在以下至少一种类型的存储单元中: 寄存器、 三态内 容寻址存储器、 静态随机存储器和动态随机存储器。
8、 根据权利要求 6或 7所述的方法, 其特征在于, 所述组表项类型为 所述优先类型对应的子组表存储在三态内容寻址存储器。
9、 一种路由交换设备, 其特征在于, 包括:
指令获取模块,用于获取查询组表项的指令,所述指令中包含组表标识; 类型确定模块, 用于根据组表项类型与组表标识的映射关系, 确定与所 述组表标识对应的组表项类型;
查询模块 ,用于在所确定的与所述组表标识对应的所述组表项类型对应 的子组表中查询所述组表项。
10、 根据权利要求 9所述的路由交换设备, 其特征在于, 还包括: 接收模块, 用于从控制设备接收所述组表项类型与组表标识的映射关 系, 所述组表项类型与组表标识的映射关系是由所述控制设备创建的。
11、 根据权利要求 10所述的路由交换设备, 其特征在于,
所述接收模块, 还用于接收所述控制设备发送的所述组表项;
还包括: 存储模块, 用于根据所述组表项所属的组表项类型, 将所述组 表项存储在所属的组表项类型对应的子组表中。
12、 根据权利要求 9~11中任一项所述的路由交换设备, 其特征在于, 所述组表项类型包括以下至少两种类型: 全部类型、 选择类型、 间接类型、 快速故障切换类型、 优先类型。
13、 根据权利要求 9~12中任一项所述的路由交换设备, 其特征在于, 所述存储模块具体用于:
将组表项类型对应的子组表存储在以下至少一种类型的存储单元中: 寄 存器、 三态内容寻址存储器、 静态随机存储器和动态随机存储器。
14、 根据权利要求 12或 13所述的路由交换设备, 其特征在于, 所述存 储模块具体用于:将所述组表项类型为所述优先类型对应的子组表存储在三 态内容寻址存储器。
15、 一种数据查询系统, 其特征在于, 包括如权利要求 9~14中任一项 所述的路由交换设备, 以及控制设备;
所述控制设备用于, 创建组表项类型与组表标识的映射关系, 并将所述 组表项类型与组表标识的映射关系发送给所述路由交换设备。
16、 根据权利要求 15所述的系统, 其特征在于, 所述控制设备还用于: 根据如下信息中的至少一个: 组表项类型的数量、 每种组表项类型中包括的 组表项数量占所有组表项类型中组表项数量总和的比例、各个组表项类型的 优先级信息,对所述组表项类型进行编码;根据所述组表项类型的编码长度, 在设定的所述组表标识的标识段中选取大于或等于最大的组表项类型的编 码长度的连续标识段; 将所述组表项类型的编码映射到所述的连续标识段, 将包含所述组表项类型的编码的所述组表项标识作为所述组表项类型和组 表标识的映射关系。
17、 根据权利要求 15或 16所述的系统, 其特征在于, 所述控制设备还 用于:
若所述组表项类型的数量、每种组表项类型中包括的组表项数量占所有 组表项类型中组表项数量总和的比例、各个组表项类型的优先级信息中的至 少一个发生变化,根据所述变化情况更新所述组表项类型和组表标识的映射 关系; 或者,
获取更新所述映射关系的指令,则根据所述更新所述映射关系的指令更 新所述组表项类型和组表标识的映射关系。
PCT/CN2014/079903 2013-06-29 2014-06-16 数据查询方法、设备和系统 WO2014206208A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310270912.6 2013-06-29
CN201310270912.6A CN104252504B (zh) 2013-06-29 2013-06-29 数据查询方法、设备和系统

Publications (1)

Publication Number Publication Date
WO2014206208A1 true WO2014206208A1 (zh) 2014-12-31

Family

ID=52141026

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/079903 WO2014206208A1 (zh) 2013-06-29 2014-06-16 数据查询方法、设备和系统

Country Status (2)

Country Link
CN (1) CN104252504B (zh)
WO (1) WO2014206208A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115484203A (zh) * 2022-09-14 2022-12-16 杭州云合智网技术有限公司 一种路由表项操作方法、装置、设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811384B (zh) * 2015-05-04 2018-01-16 山东超越数控电子股份有限公司 一种多级流表优先级调整方法
CN104836731B (zh) * 2015-05-14 2017-12-08 新华三技术有限公司 一种Open Flow协议的Group表处理方法和装置
CN107404440B (zh) * 2016-05-19 2021-01-29 华为技术有限公司 一种转发表项发送方法、报文转发方法及装置
CN110808910B (zh) * 2019-10-29 2021-09-21 长沙理工大学 一种支持QoS的OpenFlow流表节能存储架构及其方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130010600A1 (en) * 2011-07-08 2013-01-10 Telefonaktiebolaget L M Ericsson (Publ) Controller Driven OAM for OpenFlow
CN102984058A (zh) * 2012-12-05 2013-03-20 华为技术有限公司 基于开放流的网络通信方法、控制器和交换机
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130010600A1 (en) * 2011-07-08 2013-01-10 Telefonaktiebolaget L M Ericsson (Publ) Controller Driven OAM for OpenFlow
CN102984058A (zh) * 2012-12-05 2013-03-20 华为技术有限公司 基于开放流的网络通信方法、控制器和交换机
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115484203A (zh) * 2022-09-14 2022-12-16 杭州云合智网技术有限公司 一种路由表项操作方法、装置、设备及存储介质
CN115484203B (zh) * 2022-09-14 2024-05-24 云合智网(上海)技术有限公司 一种路由表项操作方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN104252504A (zh) 2014-12-31
CN104252504B (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
US11151163B2 (en) Scalable spine nodes with partial replication of routing information in a network environment
US9106443B2 (en) Forwarding table optimization with flow data
US10623308B2 (en) Flow routing system
US20190116220A1 (en) Neighbor Discovery for IPV6 Switching Systems
US9608938B2 (en) Method and system for tracking and managing network flows
US9569561B2 (en) Label masked addressable memory
US9602428B2 (en) Method and apparatus for locality sensitive hash-based load balancing
JP5518135B2 (ja) データセンター向けの拡張可能なマルチキャスト転送方法および装置
US20160241474A1 (en) Technologies for modular forwarding table scalability
WO2014206208A1 (zh) 数据查询方法、设备和系统
US9729446B1 (en) Protocol-independent packet routing
WO2016029345A1 (zh) 网络流的信息统计方法和装置
US11652744B1 (en) Multi-stage prefix matching enhancements
US20150372918A1 (en) System and method for providing congestion notification in layer 3 networks
Nallusamy et al. Decision Tree‐Based Entries Reduction scheme using multi‐match attributes to prevent flow table overflow in SDN environment
CN107977160B (zh) 交换机存取资料的方法
Miguel-Alonso A research review of OpenFlow for datacenter networking
CN108092896B (zh) 堆叠系统和聚合组建立装置
WO2015039616A1 (zh) 一种报文处理方法及设备
US9356838B1 (en) Systems and methods for determining network forwarding paths with a controller
US20130077530A1 (en) Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation
CN105007234A (zh) 一种用于全局ip调度的负载均衡方法
CN115550290A (zh) 一种在存储区域网络中实现Zone隔离的方法及设备
Ma et al. A distributed storage framework of FlowTable in software defined network
KR102001487B1 (ko) 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치

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: 14816596

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14816596

Country of ref document: EP

Kind code of ref document: A1