CN104967575A - Virtual software-defined network switch - Google Patents
Virtual software-defined network switch Download PDFInfo
- Publication number
- CN104967575A CN104967575A CN201510297237.5A CN201510297237A CN104967575A CN 104967575 A CN104967575 A CN 104967575A CN 201510297237 A CN201510297237 A CN 201510297237A CN 104967575 A CN104967575 A CN 104967575A
- Authority
- CN
- China
- Prior art keywords
- virtual
- switch
- matching inquiry
- inquiry string
- virtual switch
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention provides a virtual software-defined network switch, which comprises a pre-processing module, extracting head fields and the serial number of a virtual switch from a data packet; and a plurality of processing pipeline stages, each including a match query string extractor and a wildcard rule table. For each processing pipeline stage, the match query string extractor selects and splices a plurality of fields from the head fields into a match query string; and the wildcard rule table includes a ternary content addressable memory storing a plurality of rows of matching rules and a static random addressable memory, conducts query of the matching rules from the ternary content addressable memory according to the match query string, and selects and performs a corresponding command from the static random addressable memory. The switch provided by the invention can flexibly define the processing logic of the virtual switch on a physical switch based on application needs, and can thus flexibly adjust the storage resource allocation of the physical switch, thereby improving the utilization efficiency of storage resources.
Description
Technical field
The present invention relates to software defined network technical field, particularly a kind of virtual software define grid switch.
Background technology
Software defined network is the important research direction of Next Generation Internet, an important branch of software defined network area research work is now network virtualization, use by Embeded Software define grid being carried out being virtualized into multiple virtual network and distributing to different virtual network user, thus improve the utilance of Internet resources.
The method that the implementation of current software defined network virtual switch has two classes common, one is pure software simulated implementation mode, this mode can define the virtual switch in virtual network flexibly according to virtual network user demand, but owing to being the mode adopting software simulation, virtual switch disposal ability is very limited.Another kind of common method is divided by address space to obtain different logic bursts in traditional software define grid physical switches, and each logic burst uses as a virtual switch.This method limits the spendable address space of each virtual network on the one hand, and the Message processing flow process of each virtual switch all depends on physical switches on the other hand, and virtual network user can not define flexibly to it.
Summary of the invention
The present invention is intended to solve one of technical problem in above-mentioned correlation technique at least to a certain extent.
For this reason, the object of the invention is to propose a kind of virtual software define grid switch, this switch can according to the processing logic of self application demand flexible defining virtual switch in physical switches, and then the configuration of physical switches storage resources can be adjusted flexibly, improve storage resources utilization ratio.
To achieve these goals, embodiments of the invention propose a kind of virtual software define grid switch, comprising: pretreatment module, for mentioning header fields and virtual switch numbering from data message; Multistep treatment pipelining-stage, every grade of process pipelining-stage comprises matching inquiry string extractor and wildcard rule list, wherein, described multistep treatment pipelining-stage processing said data message successively; Described matching inquiry string extractor is used for selecting multiple field from described header fields, and described multiple field is spliced into matching inquiry string; Described wildcard rule list comprises three-state content addressing memory and static random addressable memory, described three-state content addressing memory stores multirow matched rule, described wildcard rule list is used for according to described matching inquiry string match query rule from described three-state content addressing memory, and to select from described static random addressable memory according to the matched rule of inquiry and perform corresponding instruction, wherein, the matched rule of often going stores the numbering of the virtual switch belonging to it.
In addition, virtual software define grid switch according to the above embodiment of the present invention can also have following additional technical characteristic:
In some instances, described pretreatment module comprises: header fields extraction module, for extracting described header fields from described data message; Virtual switch identification module, for extracting virtual switch numbering.
In some instances, described matching inquiry string extractor comprises: multiple input register, and described multiple input register stores described multiple field correspondingly; Multiple output register, described multiple output register comprises virtual switch numbered register and multiple Field registers, described multiple Field registers is connected with described multiple input register respectively by MUX, to be spliced into described matching inquiry string to the field from described multiple input register input; Output module, described output module is connected with described multiple output register, to export described matching inquiry string.
In some instances, described multiple input register is 16 bit input registers.
According to the virtual software define grid switch of the embodiment of the present invention, tool has the following advantages:
1. virtual network user can according to the processing logic of self application demand flexible defining virtual switch in physical switches;
2. virtual network user is without the need to being concerned about that physical switches processing logic realizes details;
3. can adjust the configuration of physical switches storage resources flexibly according to virtual switch processing logic demand, improve storage resources utilization ratio.
Additional aspect of the present invention and advantage will part provide in the following description, and part will become obvious from the following description, or be recognized by practice of the present invention.
Accompanying drawing explanation
Above-mentioned and/or additional aspect of the present invention and advantage will become obvious and easy understand from accompanying drawing below combining to the description of embodiment, wherein:
Fig. 1 is the structured flowchart of virtual software define grid switch according to an embodiment of the invention;
Fig. 2 is the structured flowchart of the pretreatment module of virtual software define grid switch according to an embodiment of the invention;
Fig. 3 is the structured flowchart of the matching inquiry string extractor of virtual software define grid switch according to an embodiment of the invention;
Fig. 4 is the handling process schematic diagram of virtual software define grid switch according to an embodiment of the invention; And
Fig. 5 is the matching inquiry string extractor structural representation according to the present invention's specific embodiment.
Embodiment
Be described below in detail embodiments of the invention, the example of described embodiment is shown in the drawings, and wherein same or similar label represents same or similar element or has element that is identical or similar functions from start to finish.Being exemplary below by the embodiment be described with reference to the drawings, only for explaining the present invention, and can not limitation of the present invention being interpreted as.
Below in conjunction with accompanying drawing, the virtual software define grid switch according to the embodiment of the present invention is described.
Fig. 1 is the structured flowchart of virtual software define grid switch according to an embodiment of the invention.As shown in Figure 1, this virtual software define grid switch 1000 comprises: pretreatment module 100 and multistep treatment pipelining-stage 200.
Wherein, pretreatment module 100 for extracting header fields and virtual switch numbering from data message.More specifically, in some instances, as shown in Figure 2, pretreatment module 100 comprises: header fields extraction module 110 and virtual switch identification module 120.Wherein, header fields extraction module 110 for extracting header fields from data message.Virtual switch identification module 120 is for extracting virtual switch numbering.
Every grade of process pipelining-stage 200 comprises matching inquiry string extractor 210 and wildcard rule list 220, and wherein, multistep treatment pipelining-stage 200 is deal with data message successively.
Specifically, multiple field for selecting multiple field from header fields, and is spliced into matching inquiry string by matching inquiry string extractor 210.Further, as shown in Figure 3, matching inquiry string extractor 210 comprises: multiple input register 211, multiple output register 212 and output module 213.Specifically, multiple input register 211 stores multiple field correspondingly.Multiple output register 212 comprises virtual switch numbered register and multiple Field registers, multiple Field registers is connected with multiple input register 211 respectively by MUX, so that the field inputted from multiple input register 211 is spliced into matching inquiry string.Output module 213 is connected with multiple output register 212, with output matching query string.Wherein, in this example, such as, multiple input register 211 is 16 bit input registers.
Wildcard rule list 220 comprises three-state content addressing memory and static random addressable memory, three-state content addressing memory stores multirow matched rule, wildcard rule list is used for according to matching inquiry string match query rule from three-state content addressing memory, and to select from static random addressable memory according to the matched rule of inquiry and perform corresponding instruction, wherein, the matched rule of often going stores the numbering of the virtual switch belonging to it.
For the ease of understanding the virtual software define grid switch of the embodiment of the present invention better, carry out specifically, particularly describing to this switch with specific embodiment below in conjunction with Fig. 4 and Fig. 5.
As a specific example, as shown in Figure 4, the Message processing streamline of virtual software define grid switch is made up of multistep treatment pipelining-stage, and every grade of process pipelining-stage is made up of matching inquiry string extractor and wildcard rule list two parts.Matching inquiry string extractor is responsible for from all fields of data message, selecting the some fields of part and being spliced into matching inquiry string.Wildcard rule list then utilizes matching inquiry string as input, is contrasted one by one by query string all list items in rule list, and performs the process action corresponding to matching result.After every grade of process pipeline processes is complete, message is delivered to next stage pipelining-stage, to the last message is sent streamline by one-level stream treatment level.
Specifically, as shown in Figure 4, data message enters process streamline, first extracts and the virtual switch identifying processing stage through header fields.In this stage, switch once extracts field in need from header.Virtual switch numbering is extracted to adopt to be increased new for newer field that is virtual network protocol-independent in message, or in multiplexing existing field, such as VLAN field realizes.Then the whole header fields extracted and virtual switch numbering are sent into the query string extractor of pipelining-stage.
Further, wildcard rule list is realized by three-state content addressing memory (TCAM) and static random addressable memory (SRAM).Three-state content addressing memory is regularly list structure tissue, comprises some row and columns, such as 800 row, often row 40 bit width.In three-state content addressing memory, every a line stores a matched rule, and each can one in three kinds of states, be 0 respectively, 1, *, wherein " * " represents wildcard, namely all can mate 0 and also can mate 1.The input content of three-state content addressing memory is 01 Bit String isometric with line width.Rule in input string and every a line according to priority contrasts by three-state content addressing memory one by one, if match, takes out action command set and perform according to the line number of matched rule as address from static random addressable memory.Because multiple virtual switch needs shared wildcard rule list resource, in order to isolate the rule of different virtual switch, need to retain some bits to store the numbering of virtual switch belonging to current rule at the assigned address of each line discipline.Correspondingly, the relevant position of Input matching query string should be set to the numbering of the virtual switch that current message will be inquired about.
It should be noted that, in wildcard rule list, the contents in table of different virtual switch is all compact to the first alignment of row, and except virtual switch numbering, all the other fields all do not need alignment.By compact arrangement, the line width of three-state content addressing memory can be compressed, by regulation rule table thus minimise storage space waste.
As shown in Figure 5, the structural representation of matching inquiry string extractor is illustrated.Specifically, first preliminary treatment is carried out to incoming message field.The all fields extracted from message field (MFLD) are different in size, need first all fields to be carried out segmentation for this reason, divide by 16 bits, press 16 bit completions less than 16 bits, and can obtain the fragment that whole length is 16 bits thus, quantity is N.
Wherein, query string extractor comprises N number of 16 bit input registers and N number of 16 bit output register, and N number of fragment is stored in N number of 16 bit input registers temporarily.Each input register is connected to N number of input register by a MUX, and each output register all can obtain field fragment from any one input register.
The query string form that different virtual switches checks at pipelining-stage at different levels is different, and its matching field message bit pattern leaves in coupling string field table, and query string extractor takes out corresponding field bitmap according to virtual switch numbering from table.Field bit legend is if any N number of unit, and each unit stores corresponding output register should get content from which input register.
Such as, a virtual switch needs extraction the 2nd and the 3rd field fragment composition query string, then its field bitmap content is 0x02 0x03 0xff..., the i.e. numbering of first and second unit memory input register 2 and 3, all the other N-2 unit storage 0xff exceed the representative of all input field segment number scopes and do not carry out assign operation.
And then by each output register dynamically assignment from the input field fragment of being specified by virtual switch, realize different virtual switch and extract different query string.And when exporting spliced matching inquiry string from output register, virtual switch numbering is added in matching inquiry string, is used for the rule of other virtual switches in shielding rules table.
Last output matching query string carries out intercepting or polishing according to the width of current pipelining-stage rule list, ensures that input inquiry string length is consistent with rule list width, then matching inquiry string is sent into rule list and carries out inquiring about and respective handling.To table look-up and after process terminates, the field of renewal and virtual switch numbering are delivered to next stage process by current pipelining-stage matching inquiry string extractor.
To sum up, the main thought of the virtual software define grid switch of the embodiment of the present invention is summarized as follows: table look-up because one-level every on the Message processing streamline of traditional software define grid physical switches is mated voluntarily to specific field in message, and performs corresponding operating according to structure of tabling look-up.In addition, in conventional switch, the kind of every coagulation matching field is factory setting or user configures in advance, and can not change in switch these configurations time of running, therefore physical switches all performs identical process to all messages.Based on this, the embodiment of the present invention is by identifying virtual switch belonging to current message in advance, and every level production line matching field type carries out dynamic conditioning according to the virtual switch of current correspondence, thus the handling process of different virtual switches to message is different.Further, an Embeded Software define grid switch can hold multiple virtual switch simultaneously, and the Message processing logic of each virtual switch defines flexibly by virtual network user.
To sum up, according to the virtual software define grid switch of the embodiment of the present invention, tool has the following advantages:
1. virtual network user can according to the processing logic of self application demand flexible defining virtual switch in physical switches;
2. virtual network user is without the need to being concerned about that physical switches processing logic realizes details;
3. can adjust the configuration of physical switches storage resources flexibly according to virtual switch processing logic demand, improve storage resources utilization ratio.
In describing the invention, it will be appreciated that, term " " center ", " longitudinal direction ", " transverse direction ", " length ", " width ", " thickness ", " on ", D score, " front ", " afterwards ", " left side ", " right side ", " vertically ", " level ", " top ", " end " " interior ", " outward ", " clockwise ", " counterclockwise ", " axis ", " radial direction ", orientation or the position relationship of the instruction such as " circumference " are based on orientation shown in the drawings or position relationship, only the present invention for convenience of description and simplified characterization, instead of indicate or imply that the device of indication or element must have specific orientation, with specific azimuth configuration and operation, therefore limitation of the present invention can not be interpreted as.
In addition, term " first ", " second " only for describing object, and can not be interpreted as instruction or hint relative importance or imply the quantity indicating indicated technical characteristic.Thus, be limited with " first ", the feature of " second " can express or impliedly comprise at least one this feature.In describing the invention, the implication of " multiple " is at least two, such as two, three etc., unless otherwise expressly limited specifically.
In the present invention, unless otherwise clearly defined and limited, the term such as term " installation ", " being connected ", " connection ", " fixing " should be interpreted broadly, and such as, can be fixedly connected with, also can be removably connect, or integral; Can be mechanical connection, also can be electrical connection; Can be directly be connected, also indirectly can be connected by intermediary, can be the connection of two element internals or the interaction relationship of two elements, unless otherwise clear and definite restriction.For the ordinary skill in the art, above-mentioned term concrete meaning in the present invention can be understood as the case may be.
In the present invention, unless otherwise clearly defined and limited, fisrt feature second feature " on " or D score can be that the first and second features directly contact, or the first and second features are by intermediary indirect contact.And, fisrt feature second feature " on ", " top " and " above " but fisrt feature directly over second feature or oblique upper, or only represent that fisrt feature level height is higher than second feature.Fisrt feature second feature " under ", " below " and " below " can be fisrt feature immediately below second feature or tiltedly below, or only represent that fisrt feature level height is less than second feature.
In the description of this specification, specific features, structure, material or feature that the description of reference term " embodiment ", " some embodiments ", " example ", " concrete example " or " some examples " etc. means to describe in conjunction with this embodiment or example are contained at least one embodiment of the present invention or example.In this manual, to the schematic representation of above-mentioned term not must for be identical embodiment or example.And the specific features of description, structure, material or feature can combine in one or more embodiment in office or example in an appropriate manner.In addition, when not conflicting, the feature of the different embodiment described in this specification or example and different embodiment or example can carry out combining and combining by those skilled in the art.
Although illustrate and describe embodiments of the invention above, be understandable that, above-described embodiment is exemplary, can not be interpreted as limitation of the present invention, and those of ordinary skill in the art can change above-described embodiment within the scope of the invention, revises, replace and modification.
Claims (4)
1. a virtual software define grid switch, is characterized in that, comprising:
Pretreatment module, for extracting header fields and virtual switch numbering from data message;
Multistep treatment pipelining-stage, every grade of process pipelining-stage comprises matching inquiry string extractor and wildcard rule list, wherein, described multistep treatment pipelining-stage processing said data message successively;
Described matching inquiry string extractor is used for selecting multiple field from described header fields, and described multiple field is spliced into matching inquiry string;
Described wildcard rule list comprises three-state content addressing memory and static random addressable memory, described three-state content addressing memory stores multirow matched rule, described wildcard rule list is used for according to described matching inquiry string match query rule from described three-state content addressing memory, and to select from described static random addressable memory according to the matched rule of inquiry and perform corresponding instruction, wherein, the matched rule of often going stores the numbering of the virtual switch belonging to it.
2. virtual software define grid switch according to claim 1, it is characterized in that, described pretreatment module comprises:
Header fields extraction module, for extracting described header fields from described data message;
Virtual switch identification module, for extracting virtual switch numbering.
3. virtual software define grid switch according to claim 1, is characterized in that, described matching inquiry string extractor comprises:
Multiple input register, described multiple input register stores described multiple field correspondingly;
Multiple output register, described multiple output register comprises virtual switch numbered register and multiple Field registers, described multiple Field registers is connected with described multiple input register respectively by MUX, so that the field from described multiple input register input is spliced into described matching inquiry string;
Output module, described output module is connected with described multiple output register, to export described matching inquiry string.
4. virtual software define grid switch according to claim 3, is characterized in that, described multiple input register is 16 bit input registers.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510297237.5A CN104967575B (en) | 2015-06-03 | 2015-06-03 | Virtual software defines the network switch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510297237.5A CN104967575B (en) | 2015-06-03 | 2015-06-03 | Virtual software defines the network switch |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104967575A true CN104967575A (en) | 2015-10-07 |
CN104967575B CN104967575B (en) | 2018-10-02 |
Family
ID=54221522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510297237.5A Active CN104967575B (en) | 2015-06-03 | 2015-06-03 | Virtual software defines the network switch |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104967575B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110036610A (en) * | 2016-12-07 | 2019-07-19 | 华为技术有限公司 | The method and interchanger of routing management in a kind of software defined network |
WO2020140412A1 (en) * | 2019-01-03 | 2020-07-09 | 清华大学 | Reconfigurable switch forwarding engine parser capable of destroying hardware trojan |
CN113992606A (en) * | 2020-07-10 | 2022-01-28 | 瑞昱半导体股份有限公司 | Replication string list structure for multicast packet replication |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021491A1 (en) * | 2003-07-25 | 2005-01-27 | Sandburst Corporation | Apparatus and method for classifier identification |
CN102427428A (en) * | 2011-12-07 | 2012-04-25 | 西安电子科技大学 | Stream identifying method and device based on multi-domain longest match |
CN103248573A (en) * | 2013-04-08 | 2013-08-14 | 北京天地互连信息技术有限公司 | Centralization management switch for OpenFlow and data processing method of centralization management switch |
CN103684905A (en) * | 2013-11-27 | 2014-03-26 | 北京邮电大学 | Flow rule conflict detection and processing method for network virtualization platform |
-
2015
- 2015-06-03 CN CN201510297237.5A patent/CN104967575B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021491A1 (en) * | 2003-07-25 | 2005-01-27 | Sandburst Corporation | Apparatus and method for classifier identification |
CN102427428A (en) * | 2011-12-07 | 2012-04-25 | 西安电子科技大学 | Stream identifying method and device based on multi-domain longest match |
CN103248573A (en) * | 2013-04-08 | 2013-08-14 | 北京天地互连信息技术有限公司 | Centralization management switch for OpenFlow and data processing method of centralization management switch |
CN103684905A (en) * | 2013-11-27 | 2014-03-26 | 北京邮电大学 | Flow rule conflict detection and processing method for network virtualization platform |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110036610A (en) * | 2016-12-07 | 2019-07-19 | 华为技术有限公司 | The method and interchanger of routing management in a kind of software defined network |
CN110036610B (en) * | 2016-12-07 | 2020-10-16 | 华为技术有限公司 | Method and switch for route management in software defined network |
WO2020140412A1 (en) * | 2019-01-03 | 2020-07-09 | 清华大学 | Reconfigurable switch forwarding engine parser capable of destroying hardware trojan |
US11736515B2 (en) | 2019-01-03 | 2023-08-22 | Tsinghua University | Reconfigurable switch forwarding engine parser capable of disabling hardware trojans |
CN113992606A (en) * | 2020-07-10 | 2022-01-28 | 瑞昱半导体股份有限公司 | Replication string list structure for multicast packet replication |
Also Published As
Publication number | Publication date |
---|---|
CN104967575B (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967575A (en) | Virtual software-defined network switch | |
US7162617B2 (en) | Data processor with changeable architecture | |
CN104408192B (en) | The compression processing method and device of character string type row | |
KR940024586A (en) | Micro computer | |
CN108011823A (en) | Multipolarity method and device, multilevel flow table lookup method and the device of multiple domain flow table | |
DE68929080T2 (en) | Arrangement for storing information for a data provider processor | |
CN101840373B (en) | Data operating method and device | |
CN103547995B (en) | Short pointer | |
DE2713685A1 (en) | MICRO-PROGRAM CONTROLLED DATA PROCESSING SYSTEM | |
CN103678619B (en) | Database index treating method and apparatus | |
CN114610288B (en) | Method and device for realizing back-end compiler based on array type analysis element structure | |
CN110362577B (en) | Data insertion method, device, equipment and storage medium | |
CN101727987A (en) | Data programming and reading method and single time programmable memory applying the same | |
CN100378652C (en) | Variable-instruction-length processing | |
CN102880426A (en) | Method for system virtual machine to reduce TLB refreshing and system virtual machine | |
CN101295239A (en) | Instruction execution method of Java card virtual machine | |
DE69825461T2 (en) | METHOD AND DEVICE FOR TRANSFERRING DATA BETWEEN A REGISTER STACK AND A STORAGE SOURCE | |
CN201414137Y (en) | Route list capability adjustment device | |
CN103294603A (en) | Method and device for controlling memory allocation | |
US9582419B2 (en) | Data processing device and method for interleaved storage of data elements | |
CN104657185B (en) | A kind of Java code patch method of Java card | |
CN102541745A (en) | Addressing method for data storage of microcontroller and microcontroller | |
CN103870313A (en) | Virtual machine task scheduling method and system | |
US20120320930A1 (en) | Mac address table collection in distributed switching systems | |
CN113076178B (en) | Message storage method, device and equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |