CN103152201A - Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system - Google Patents

Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system Download PDF

Info

Publication number
CN103152201A
CN103152201A CN201310079362XA CN201310079362A CN103152201A CN 103152201 A CN103152201 A CN 103152201A CN 201310079362X A CN201310079362X A CN 201310079362XA CN 201310079362 A CN201310079362 A CN 201310079362A CN 103152201 A CN103152201 A CN 103152201A
Authority
CN
China
Prior art keywords
logic function
function block
class
lfb
starting point
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
Application number
CN201310079362XA
Other languages
Chinese (zh)
Other versions
CN103152201B (en
Inventor
高明
王伟明
李传煌
诸葛斌
董黎刚
吴穹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201310079362.XA priority Critical patent/CN103152201B/en
Publication of CN103152201A publication Critical patent/CN103152201A/en
Application granted granted Critical
Publication of CN103152201B publication Critical patent/CN103152201B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a verifying method of the logic function block topology correctness in a ForCES (forwarding and control element separation) system. According to the method, feasible edges are limited and built according to the logic function block topology capability, the verifying problem of the logic function block topology correctness is converted into the legality verifying problem of each actual edge; and the feasible edges and the practical edges are subjected to character processing, the original complicated actual edge legality verifying problem is simplified into the pure character string mode matching problem, and further, the foundation is laid for improving the verifying efficiency through utilizing various mode matching algorithms. The verifying method has the obvious technical advantages that 1, the realization is easy, the relevant character processing and the mode matching are very common technologies, and almost all programming environments provide the similar function; and 2, the expandability is high, the mode format and the text in the mode matching can be customized according to practical requirements for improving the matching precision, and users are allowed to introduce or improve various mode matching algorithms for greatly improving the matching efficiency.

Description

The verification method of logic function block topology correctness in the ForCES system
Technical field
The invention belongs to network communications technology field, relate in particular to the verification method of logic function block topology correctness in a kind of ForCES system.
Background technology
The rapid expansion in applications of computer network field, new features, new demand constantly occur and constantly change, and this generation network equipment of will looking for novelty should have enough flexibilities, can make response to new business, new demand rapidly; Require new generation network equipment should have enough openings, make the user can be according to the resource flexible combination of opening, so that different network demand services to be provided; Require new generation network equipment should have enough modular natures, and carry out standardization by standardization body, make each module to be developed by the different manufacturers independent studies, can become an integral body by the cordwood system type organic assembling again, this cordwood development model can greatly be accelerated the development process of product, simultaneously also be conducive to benign competition, reduce costs, the development of personal computer (PC) sufficient proof the validity of this pattern.The network equipment that forwarding separates with control has obtained broad research and application just because of the above requirement of having satisfied new generation network at present.
For the problems referred to above, in order to break away from the constraint of legacy network devices architecture, IETF had set up ForCES(Forwarding and Control Element Separation in 2003, forward and to separate with control piece) working group, specialize in the architecture of the new generation network equipment of open architecture.
The key point of ForCES technology is that apparatus for network node realizes that structurally forwarding face separates with chain of command, forward simultaneously the face internal resource and realize virtual, modularization, standardization, and then the flexible open restructural of realization, the mode recombination function module that these features make the network operator to play with building blocks, and then customization realizes various new business.Above these technical characterstics make the ForCES framework become and realize that new network service application is as the apparatus for network node important technology framework of the integration of three networks, cloud computing etc.
A ForCES system (ForCES Network Element, ForCES NE) is divided into forwarding element (Forwarding Element, FE) and control piece (Control Element, CE) two parts.FE realizes the forward process to packet, and its typical structure as shown in Figure 1.Include the various logic functions piece that packet is processed and forwarded in FE, forward as classification, scheduling, IPv4 or IPv6 etc.According to the different disposal operation that packet is carried out, FE can be by logic function module (Logical Function Block such as classification, scheduling, queue managements, LFB) form, Internet protocol RFC5812 has stipulated the concrete model " ForCES Forwarding Element (FE) Model " of these LFB.The ForCES protocol stack is completed the tasks such as protocol analysis, execution.Control piece is controlled and information exchange forwarding element, and in order to realize the opening of system, information exchange therebetween is to carry out according to the ForCES consensus standard, guarantees that system effectively moves.Internet protocol RFC3746 has stipulated the framework (Framework) of forwarding with ForCES, Internet protocol RFC5810 has stipulated the standard information exchange agreement " ForCES Protocol Specification " between FE and CE, and standardization makes FE and the CE can be by different manufacturers production.
LFB is as the logic module that can complete set function, must provide a series of parameter (as: the IP address of EtherPort LFB and mask address etc.) for user's configuration and referring to.Parameter is under the jurisdiction of LFB, LFB is under the jurisdiction of FE, FE is under the jurisdiction of ForCES NE, and according to this logical level relation, can constructing a tree-shaped ForCES NE resource, to look at figure (being similar to the explorer of Windows) and each parameter be exactly a node on this tree.Each node position in the tree is unique, and for the managerial demand that facilitates node is numbered each node, principle is: what No. FE+LFB class-mark+LFB instance number+element number, ForCES claimed to adopt this principle is numbered path (Path).For each node, also need be described, be mainly: the descriptive information of node and data type (for example the data type of IP address is 32 integer numbers), we are referred to as LFB attribute (Attribute) these descriptors.
LFB ability (capability) has reflected the capacity of LFB, only supply external inquiry, such as the version number of the corresponding LFB class of LFB, the optional attribute that the LFB class is supported, the maximum configurable output port quantity of an output port group, the range constraint extra to the LFB attribute.
Any directed edge on the LFB topological diagram must be the input port from the output port of starting point LFB to terminal point LFB, the information of described output and input port must be identical, when we described a topological line on topological diagram based on this, one that only need write exactly in output or input got final product.Annexation in FE between these LFB has consisted of the inner topology of ForCEs system, a kind of function of the common corresponding ForCES of a topology system.In the ForCES system, the dynamic topology of LFB refers to the user and changes online, in real time the internal system topology, thereby realizes the function conversion of system and upgrading etc.
Although there are many research institutions that the implementation based on the ForCES system is studied both at home and abroad, up to the present, each research group also not yet disclosed the implementation of LFB topology verification of correctness in effective ForCES system.
Summary of the invention
The objective of the invention is to overcome the deficiencies in the prior art, propose the verification method of logic function block topology correctness in a kind of ForCES system.
The technical solution adopted for the present invention to solve the technical problems comprises following steps:
Step (1) is from class FEObject(forwarding element object by name) logic function block, read the information that its topological ability parts comprise, and ability chained list topological according to the information structuring of the topological ability parts that read, make a feasible limit in each the node counterlogic functional block topology on topological ability chained list;
Described feasible limit is the directed edge that is allowed in the logic function block topology;
The topological ability parts of the logic function block of described class FEObject by name are arrays, and the element of array is a structure, the corresponding logic function block feature of each structure;
Described structure has been described the instantiation restriction of its corresponding logic function block and the syntople that is allowed to, the member of structure comprise the maximum instance number of the class ID of the class name of current logic function block, current logic function block, current logic function block, current logic function block port limit, with the syntople of preposition neighbours' logic function block, with the syntople of rearmounted neighbours' logic function block;
In described step (1), the construction process of topological ability chained list specifically comprises following steps:
1-1. the topological ability parts array of the logic function block of FEObject by name described in traversal step (1), from the corresponding structure of array element, read its that comprise and syntople preposition neighbours' logic function block and with the syntople of rearmounted neighbours' logic function block, then limit and construct all feasible limits; The information format that this feasible limit comprises is: the input port group name of the output port group name of the class ID of starting point logic function block, starting point logic function block, the class ID of terminal point logic function block, terminal point logic function block;
1-2. the feasible limit that syntople described according to step 1-1 and preposition neighbours' logic function block is constructed, its starting point are preposition neighbours' logic function blocks, terminal point is current logic function block;
1-3. the feasible limit that syntople described according to step 1-1 and rearmounted neighbours' logic function block is constructed, its starting point is current logic function block, and terminal point is rearmounted neighbours' logic function block;
The syntople of described and preposition neighbours' logic function block and only mean a kind of license with the syntople of rearmounted neighbours' logic function block is not illustrated in actual logic function block topology and must exists.
Each feasible limit in the described topological ability chained list of step (2) traversal step (1), with the keyword by name of the port set in institute's inclusion information on feasible limit, in the defined file of the logic function block under this port group name, search the details of the corresponding port set of this port group name, the information that re-constructs feasible limit forms, and it is comprised: the input message of the output information of starting point logic function block class ID, starting point logic function block, terminal point logic function block class ID, terminal point logic function block;
The feasible limit of neotectonics in the described topological ability chained list of step (3) traversal step (2), the coupling text of structural string form specifically comprises following steps:
3-1. the feasible limit of each neotectonics in the described topological ability chained list of traversal step (2), contained information in the feasible limit of neotectonics is carried out the character processing, obtain a character string, be referred to as the text substring, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", ": " separating character for introducing;
3-2. all the text substrings described in step 3-1 are spliced into a character string from beginning to end as the coupling text of pattern matching, and form is: " text substring 1﹠amp; Text substring 2﹠amp; ﹒ ﹒ ﹒ ", “ ﹠amp; " be the separating character of introducing;
Step (4) reads its topological attribute parts and obtains current configured topology from the logic function block of class FEObject by name; Described current configured topology is an array, and array element is a structure, and an in esse directed edge in each structure counterlogic functional block topology is referred to as actual limit; Construct actual limit, its contained information is comprised: starting point logic function block class ID, starting point logic function block instance number, starting point logic function block output port group name, starting point logic function block output port numbering, terminal point logic function block class ID, terminal point logic function block instance number, terminal point logic function block input port group name, terminal point logic function block input port numbering;
Each actual limit in the described current configured topology of step (5) traversal step (4), with the keyword by name of the port set in institute's inclusion information on actual limit, in the defined file of the logic function block under this port group name, search the details of the corresponding port set of this port group name; The information that re-constructs actual limit forms, and it is comprised: the input message of the output information of starting point logic function block class ID, starting point logic function block, terminal point logic function block class ID, terminal point logic function block;
The actual limit of neotectonics in the described current configured topology of step (6) traversal step (5), each contained information in actual limit is carried out the character processing, obtain a character string, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", ": " separating character for introducing;
Step (7) execution pattern coupling, in matching process with the described coupling text of step (3) as the target in pattern matching, the described character string of step (6) is mated seriatim as pattern and target; Only in the situation that described each character string of step (6) the match is successful, just return successfully, otherwise return to failure; Describedly represent that successfully current logic function block topology is correct, failed represent incorrect;
In described step (2) and step (5), the output information of starting point logic function block, the input message of terminal point logic function block all comprise frame and metadata two parts.
Beneficial effect of the present invention is as follows:
The present invention is according to logic function block topology ability limit and construct feasible limit, the validation problem of logic function block topology correctness is converted into the legitimate verification problem on each actual limit; By the character processing to feasible limit and actual limit, the legitimate verification problem reduction on originally complicated actual limit is become the pattern matching problem of simple character string, and then for utilizing various pattern matching algorithms raising verification efficiencies to lay a good foundation.Remarkable technological merit of the present invention is: 1, easily realize, related character processing and pattern matching are all very common technology, and nearly all programmed environment all provides similar functions; 2, extensibility is strong, and in pattern matching, the form of text and pattern can customize to improve matching precision according to actual needs, allows the user introduce or improve various pattern matching algorithms to improve significantly matching efficiency.
Description of drawings
The cut-away view of Fig. 1 ForCES forwarding element;
The configuration flow figure of Fig. 2 LFB topology;
The example of Fig. 3 LFB output port;
The example of Fig. 4 LFB input port.
Embodiment
The invention will be further described below in conjunction with drawings and Examples.
As shown in Figure 1 and Figure 2, the verification method of logic function block topology correctness in the ForCES system comprises following steps:
Step (1) is from class FEObject(forwarding element object by name) logic function block, read the information that its topological ability parts comprise, and ability chained list topological according to the information structuring of the topological ability parts that read, make a feasible limit in each the node counterlogic functional block topology on topological ability chained list;
Described feasible limit is the directed edge that is allowed in the logic function block topology;
The topological ability parts of the logic function block of described class FEObject by name are arrays, and the element of array is a structure, the corresponding logic function block feature of each structure;
Described structure has been described the instantiation restriction of its corresponding logic function block and the syntople that is allowed to, the member of structure comprise the maximum instance number of the class ID of the class name of current logic function block, current logic function block, current logic function block, current logic function block port limit, with the syntople of preposition neighbours' logic function block, with the syntople of rearmounted neighbours' logic function block;
In described step (1), the construction process of topological ability chained list specifically comprises following steps:
1-1. the topological ability parts array of the logic function block of FEObject by name described in traversal step (1), from the corresponding structure of array element, read its that comprise and syntople preposition neighbours' logic function block and with the syntople of rearmounted neighbours' logic function block, then limit and construct all feasible limits; The information format that this feasible limit comprises is: the input port group name of the output port group name of the class ID of starting point logic function block, starting point logic function block, the class ID of terminal point logic function block, terminal point logic function block;
1-2. the feasible limit that syntople described according to step 1-1 and preposition neighbours' logic function block is constructed, its starting point are preposition neighbours' logic function blocks, terminal point is current logic function block;
1-3. the feasible limit that syntople described according to step 1-1 and rearmounted neighbours' logic function block is constructed, its starting point is current logic function block, and terminal point is rearmounted neighbours' logic function block;
The syntople of described and preposition neighbours' logic function block and only mean a kind of license with the syntople of rearmounted neighbours' logic function block is not illustrated in actual logic function block topology and must exists.
Each feasible limit in the described topological ability chained list of step (2) traversal step (1), with the keyword by name of the port set in institute's inclusion information on feasible limit, in the defined file of the logic function block under this port group name, search the details of the corresponding port set of this port group name, the information that re-constructs feasible limit forms, and it is comprised: the input message of the output information of starting point logic function block class ID, starting point logic function block, terminal point logic function block class ID, terminal point logic function block;
The feasible limit of neotectonics in the described topological ability chained list of step (3) traversal step (2), the coupling text of structural string form specifically comprises following steps:
3-1. the feasible limit of each neotectonics in the described topological ability chained list of traversal step (2), contained information in the feasible limit of neotectonics is carried out the character processing, obtain a character string, be referred to as the text substring, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", ": " separating character for introducing;
3-2. all the text substrings described in step 3-1 are spliced into a character string from beginning to end as the coupling text of pattern matching, and form is: " text substring 1﹠amp; Text substring 2﹠amp; ﹒ ﹒ ﹒ ", “ ﹠amp; " be the separating character of introducing;
Step (4) reads its topological attribute parts and obtains current configured topology from the logic function block of class FEObject by name; Described current configured topology is an array, and array element is a structure, and an in esse directed edge in each structure counterlogic functional block topology is referred to as actual limit; Construct actual limit, its contained information is comprised: starting point logic function block class ID, starting point logic function block instance number, starting point logic function block output port group name, starting point logic function block output port numbering, terminal point logic function block class ID, terminal point logic function block instance number, terminal point logic function block input port group name, terminal point logic function block input port numbering;
Each actual limit in the described current configured topology of step (5) traversal step (4), with the keyword by name of the port set in institute's inclusion information on actual limit, in the defined file of the logic function block under this port group name, search the details of the corresponding port set of this port group name; The information that re-constructs actual limit forms, and it is comprised: the input message of the output information of starting point logic function block class ID, starting point logic function block, terminal point logic function block class ID, terminal point logic function block;
The actual limit of neotectonics in the described current configured topology of step (6) traversal step (5), each contained information in actual limit is carried out the character processing, obtain a character string, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", ": " separating character for introducing;
Step (7) execution pattern coupling, in matching process with the described coupling text of step (3) as the target in pattern matching, the described character string of step (6) is mated seriatim as pattern and target; Only in the situation that described each character string of step (6) the match is successful, just return successfully, otherwise return to failure; Describedly represent that successfully current logic function block topology is correct, failed represent incorrect;
In described step (2) and step (5), the output information of starting point logic function block, the input message of terminal point logic function block all comprise frame and metadata two parts.
Embodiment
Understand and realize the present invention now further illustrating by reference to the accompanying drawings technical scheme of the present invention for the ease of persons skilled in the art, providing a kind of embodiment of the present invention.
One) LFB modeling and FEObejct LFB
1. the model of LFB
Described in conjunction with " background technology ", LFB is the functor that separates in logic, and the LFB that defines is written into the standard document in " LFB storehouse ".The LFB class model has defined LFB attribute, LFB ability and LFB event.LFB interconnects in a directed graph, and and metadata receives together, processes, modification and the transmission of data bag.The LFB model must have following content:
Has the separable Elementary Function of logic.Its function can be processing data packets, or other standalone features.
Can construct topological relation possible between LFB (having represented the processing sequence of packet) for processing data packets.
Attribute, ability, event in LFB can be described.
The LFB attribute has reflected the characteristic of LFB, can supply exterior arrangement and inquiry, such as configurable flag bit and selector switch, the quantity of output or input port in port set, various configurable question blanks (comprise the interface table, prefix table, classification chart, DSCP mapping table, mac address table etc.), packet and byte counter, variety of event counter, LFB state.
The ability of LFB has reflected the capacity of LFB, only for external inquiry, such as, the version number of the corresponding LFB class of LFB example, the optional attribute that the LFB class is supported, the maximum configurable output port quantity of an output port group, the range constraint extra to the LFB attribute.
The metadata (metadata can not independently exist, and is to depend on packet) of exchange message between LFB can be described.
Divide according to functional category, LFB can be divided into processing data packets LFB and system support LFB.System support LFB in forwarding element comprises protocol layer LFB, transport mapping layer LFB, forwarding element object LFB.The difference of system support LFB and processing data packets LFB is:
System support LFB does not have input and output port, can not be dissolved in the LFB topology of processing data packets yet.
System support LFB example existed before setting up link, and 1 example (example ID is 0x1) is only arranged, and need to not carry out instantiation.
All properties in system support LFB example must have preset value.The operation of these system support of any modification LFB state (for example, stopping using) must cause a mistake.
1.1) LFB output
LFB processes input, and generates one or more outputs, and each output is some packets and relevant metadata thereof.Packet or the metadata of output may allow for sky, and this depends on the definition of LFB output port.Appending to the metadata of output on packet and may be what to receive from previous LFB may be also that this LFB produces.The metadata of output offers follow-up LFB and uses.
As shown in Figure 3, a LFB can have an output port or a plurality of output port.In a plurality of output ports, two kinds of situations are arranged:
(1) several ports belong to different output port groups (port group).Packet and metadata that the output of different port group is different.In LFB, the kind of output port group and a number average are defined in the LFB library file.For example, an Ipv4 LPM(longest prefix match) LFB may have an output port group to be used for sending the packet of those expressions LPM successful inquiring, and attached a META_ROUTEID as metadata, may also have in addition an abnormal output port group (EXCEPTIONOUT) is to send abnormal bag in order to inquire about unsuccessfully as LPM.
(2) several output ports belong to the same port group.The output port that belongs to same group sends identical packet and metadata.This is applied to same set of packet and metadata need to be distributed to situation in a plurality of subsequent path.In same output port group, the number of output port is (rather than in being defined in the LFB class) of determining in the instantiation of LFB class.From this angle, an output port can be considered the example of an output port group.Obviously, belong to the output port group that of a sort LFB example must have identical type and quantity, but the output port of varying number can be arranged.The output port group can instantiation the maximum quantity of output port may be the ability parameter of this LFB.Output example in group is serial number, from 0 to N-1.
1.2) the LFB input
A LFB can have one or more inputs.Each input has some packets and relevant metadata.Packet or metadata may allow for sky (but both can not be sky simultaneously), and this depends on the definition of LFB input port.
As shown in Figure 4, the rule same with LFB output adopted in the LFB input, the port set (kind of input port group and quantity are by the definition of LFB library file) that the different packet of a plurality of inputs and metadata are namely arranged, and same input port group has the input port (quantity of input port is determined) of a plurality of input identical data packet and metadata when the LFB instantiation.
1.3) type of data packet
When a LFB class was defined, the type (for example, Ipv4, Ipv6, Ethernet etc.) of its input and packet must be designated.This means the type of data packet that a given LFB can receive and process, perhaps the capable type of data packet that generates and export of given LFB.
1.4) metadata
Metadata is accompanied by packet and is delivered to another LFB from a LFB.Information in metadata can be assisted the LFB handle packet.The effect of metadata is that the result that makes upstream LFB process can affect downstream LFB to the processing of packet.Metadata is with<label, value〉form of (<label, value 〉) indicates.Label shows the type (as " color ", the label list here is shown a text, but when realizing the numerical value of a related uniqueness) of metadata, and its value is the information (as " red ") in the representation element data.
For guaranteeing the interoperability between LFB, the LFB library file must define and describe in detail certain LFB class and " read " or " consumption " which metadata at its input port, and it is in which type of metadata of output port place " generation ".Which which for the needs of autgmentability, need not in the LFB class definition force to specify metadata from LFB or consumed by LFB.
A LFB may export metadata in this port set always, or only output under certain conditions.We claim that the former is the metadata of " unconditionally ", and the latter is the metadata of " having ready conditions ".For example, deep-packet detection LFB may generate several metadata relevant to packet.First metadata may be carrying the IP agreement (TCP, UDP, SCTP ...), two other metadata may be the source and destination port numbers.Two metadata of back are take first metadata (IP agreement) as condition, because they only are used for the agreement of use side slogan.
2. system support LFB-FEObject
System support LFB-FEObject is abstract to FE globality function (as, LFB topology).This LFB class is for No. ID 1.Can only have this LFB example in each FE, its LFB example ID is decided to be 1.FEObject LFB major function is: obtain the LFB class, the output of example and example, input message by the ability (Capability) that self defines.Reflect annexation between inner each LFB example of FE by these information.
FEObject LFB has defined all multiattributes and ability, as ModifiableLFBTopology, SupportedLFBs, LFBSelectors etc.Here only elaborate two attributes and the abilities relevant to the LFB Topology Management.
2.1) ability SupportedLFBs
The described topology information legitimate verification of step (3) and this ability are closely related.The LFB class that ability SupportedLFBs provides FE to support.SupportedLFBs is array type, and each array element comprises the full detail of the LFB class that FE supports.This array element type is SupportedLFBType.The SupportedLFBType type has following content:
LFBName:LFB class title
The ID of LFBClassID:LFB class.LFB class ID and LFB class title all have global uniqueness
LFBVersion: the version number of the LFB class that current FE supports.
The maximum example number of this LFB class that LFBOccurrenceLimit:FE can support.
PortGroupLimits and PortGroupLimitType.The port set information that PortGroupLimits provides this LFB class to support.PortGroupLimits is array type, and its data element is the PortGroupLimitType type.PortGroupLimitType comprises PortGroupName(port set title), the MinPortCount(port set allow port minimum), the port that allows of MaxPortCount(port set is most) structure.
CanOccurAfters: introduce which LFB class example can dispose current LFB example after, form the rearmounted feasible limit of current LFB.CanOccurAfters is array type, and its data element is the LFBAdjacencyLimitType type.LFBAdjacencyLimitType is the ID that comprises the adjacent LFB class of NeighborLFB() be connected the list of the output port that can connect in the LFB class with ViaPort() structure.
CanOccurBefores: introduce before which LFB class example can be deployed in current LFB example, form the preposition feasible limit of current LFB.CanOccurBefores is array type, and as CanOccurAfters, its data element is also the LFBAdjacencyLimitType type.Different from CanOccurAfters is: in the LFBAdjacencyLimitType type, ViaPort refers to the list of the input port that can connect in adjacent LFB class.
2.2) attribute LFBTopology
LFBTopology is optional content, and it has illustrated the annexation between inner each LFB example of FE.This attribute concentrates on step 1-1 in claim) expression way of described topology information.LFBTopology is array type, and the element in array is the LFBLinkType type.Every terminal point information of all preserving each connection of array.LFBLinkType comprises following content:
FromLFBID: the starting point LFBID of certain connection.Its type is LFBSelectorType, comprises class ID and the example ID of LFB.
FromPortGroup: the output port group name of the starting point of certain connection claims.
FromPortIndex: the numbering in the output port group of the starting point of certain connection.
ToLFBID: the middle stop LFBID of certain connection.
ToPortGroup: the input port group name of the middle stop of certain connection claims.
ToPortIndex: the numbering in the input port group of the middle stop of certain connection.
Found by above-mentioned being not difficult, FEObject is based on to the LFB topological relation in FE that the mode of oriented line describes, that FromLFBID is corresponding is source LFB, the corresponding target LFB of ToLFBID, be attached to FromPortGroup, FromPortIndex, ToPortGroup, ToPortIndex, arbitrary oriented line just can be determined a certain output port of source LFB and a certain input port of target LFB uniquely again.
Two) algorithm is realized and process analysis procedure analysis
Based on foregoing " one) LFB modeling and FEObejct LFB " part, realize angle from the C language, the described step of claim is described further.
1. the topological ability chained list of constitution step (1)
1.1) the key data structure definition
The topological ability parts SupportedLFBs of FEObject LFB is an array, and each array element comprises the full detail of the LFB class that FE supports.Each array element is SupportedLFB, and the definition structure body is as follows:
typedef struct PortGroupLimits{
String portGroupName;
UINT32 minPortCount;
UINT32 maxPortCount;
} TPortGroupLimits;
typdef struct LFBAdjacencyLimitType{
UNIT32 neighborLFBClassID;
String viaPorts[];
}TLFBAdjacencyLimitType;
The array define of the ability parts SupportedLFBs of //FEObject LFB
typedef Struct SupportedLFB{
String LFBName;
UINT32 LFBClassID;
UINT32 LFBVersion;
UINT32 LFBOccurrenceLimit;
TPortGroupLimits portGroupLimits[];
TLFBAdjacencyLimitType CanOccurBefores[];
TLFBAdjacencyLimitType CanOccurAfters[];
} TSupportedLFB;
TSupportedLFB supportedLFBs[];
The described feasible limit of step (1) in // definition claim
typedef FeasibleTopoLineBreif{
UINT32 srcLFBClassID;
String srcLFBOutPortGroupName;
UINT32 sinkLFBClassID;
String sinkLFBInPortGroupName;
}TFeasibleBreifTopoLine;
The topological ability chained list of the described structure of step (1) in // definition claim
TFeasibleBreifTopoLine FeasibleBreifTopoLines[];
Array SupportedLFBs is the topological capability component of FEObject LFB, member variable LFBClassID in each element represents the class-mark of current LFB, member variable CanOccurBefores and CanOccurAfters are arrays, the all possible preposition neighbours LFB of the former, the latter represents all possible rearmounted neighbours LFB; The data type of each element of array CanOccurBefores and CanOccurAfters is LFBAdjacencyLimitType, and member variable neighborLFBClassID represents the class-mark of neighbours LFB, and viaPorts represents the port group name.
1.2) building process of topological ability chained list
Each element of traversal array SupportedLFBs is take element S upportedLFBs[i] be example, introduce in detail step in claim (1) described feasible limit.SupportedLFBs[i] member variable LFBClassID represent the class-mark of current LFB, each data element type in array CanOccurBefores is LFBAdjacencyLimitType, the starting point on the preposition feasible limit of corresponding current LFB, the terminal point on the postposition feasible limit of the corresponding current LFB of each LFBAdjacencyLimitType in array CanOccurAfters similarly.
the information composition of considering a feasible limit has comprised: the class ID of starting point logic function block, the output port group name of starting point logic function block, the class ID of terminal point logic function block, the input port group name of terminal point logic function block, and preposition LFBAdjacencyLimitType only provides class ID and the output port group name of the starting point logic function block on feasible limit, rearmounted LFBAdjacencyLimitType only provides class ID and input end's mouth group name of the terminal point logic function block on feasible limit, feasible side information is still imperfect, what lack for preposition feasible limit is the input port group name of current LFB, what lack for postposition feasible limit is the output port group name of current LFB.
A feasible limit between starting point LFB and terminal point LFB, for starting point LFB, this feasible limit is rearmounted feasible limit; For terminal point LFB, this feasible limit is preposition feasible limit.Under this principle instructs, obtain the garbled information in feasible limit: 1) for the preposition feasible limit of current LFB, need the input port group name of the current LFB of completion; 2) for the rearmounted feasible limit of current LFB, need the output port group name of the current LFB of completion.Following situation 1) be that example describes in detail: again travel through array SupportedLFBs take the starting point LFB class ID on preposition feasible limit as keyword, find LFBClassID to equal the array element of starting point LFB class ID, that this data element is corresponding is exactly starting point LFB, is understood that in the CanOccurAfters of this starting point LFB, an element must be arranged is the input port of current LFB.In like manner obtain the output port name of current LFB for postposition feasible limit.
2. improve the topological ability chained list of step (2)
the information on the described feasible limit of step (2) forms and comprises: starting point logic function block class ID, the output information of starting point logic function block, terminal point logic function block class ID, the input message of terminal point logic function block, and step (1) described feasible limit has only comprised the port group name, therefore need to ask for port information in the class definition file of LFB according to the port group name, the class definition file of LFB is seen IETF official definition http://www.ietf.org/id/draft-ietf-forces-lfb-lib-09.txt, below listed the fragment of the input and output port during a LFB class file defines.
The detailed description of input port group:
<inputPorts>
<inputPort>
<name>PktsIn</name>
<synopsis>
The packet input port for dispatching. Every input
packet should be associated with a metadata that will
be used by the LFB to do the dispatch.
</synopsis>
<expectation>
<frameExpected>
<ref>ethernetII</ref>
</frameExpected>
<metadataExpected>
<ref>logicalPortID</ref>
</metadataExpected>
</expectation>
</inputPort>
</inputPorts>
The detailed description of output port group:
< outputPorts >
<outputPort group="false">
<name>ExceptionOut</name>
<synopsis>
The output port outputs packets for which the data
processing failed, along with an additional
ExceptionID metadata to indicate what caused the
exception.
</synopsis>
<product>
<metadataProduced>
<ref>ExceptionID</ref>
</metadataProduced>
</product>
</outputPort>
</outputPorts>
Above-mentioned input port group name is PktsIn, by<name〉PktsIn</name〉definition, its input message comprises: type of data packet ethernetII and metadata logcialPortID; The input port group name is ExceptionOut, and output information includes only: metadata ExceptionID.
3. the current configured topology in constitution step (5)
According to the description about attribute LFBTopology of FEObject LFB, each the actual limit structure that now defines in described step (4) is as follows:
typedef struct ActualLFBTopoLine{
UINT32 fromLFBClassID;
UINT32 fromLFBInstanceID;
String fromLFBOutPortGroupName;
UINT32 fromLFBOutPortIndex;
UINT32 toLFBClassID;
UINT32 toLFBInstanceID;
String toLFBOutPortGroupName;
UINT32 toLFBOutPortIndex;
} TActualLFBTopoLine;
As for the explanation of each member variable in structure visible ") LFB modeling and FEObejct LFB " part about " attribute LFBTopology " and introduction.
4, improve actual limit in described step (5)
Concrete grammar referring to " 2. improve the topological ability chained list of step (2)", correlated process and principle are identical.
5, the character processing on feasible limit and actual limit
Be no matter the described feasible limit of step (3) or step (6) described actual limit, text and target for the structural model coupling all need they are carried out the character processing.at structure corresponding to each feasible limit and the actual limit situation of assignment, the character processing obtains the character string on feasible limit and actual limit, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", the sprintf function that can adopt the C language to provide, the concrete form of function is sprintf(buffer, " %d:%s-%s:%d:%s-%s ", fromLFBClassID, frameExpected, metadataExpected, toLFBClassID, frameProduced, metadataProduced).The Buffer of output is feasible limit and the actual limit after stringification.
6, the described pattern matching of performing step (7)
In the situation that existing text and target, the implementation of pattern matching process is multifarious, can adopt monotype or multi-mode, can select again regular expression, AC algorithm etc. under multi-mode, and the present invention does not impose any restrictions this.
Although described the present invention by embodiment, those of ordinary skills know, the present invention has many distortion and variation and do not break away from spirit of the present invention, wish that appended claim comprises these distortion and variation and do not break away from spirit of the present invention.

Claims (1)

1. the verification method of logic function block topology correctness in the ForCES system, is characterized in that and comprise the steps:
Step (1) is from class FEObject(forwarding element object by name) logic function block, read the information that its topological ability parts comprise, and ability chained list topological according to the information structuring of the topological ability parts that read, make a feasible limit in each the node counterlogic functional block topology on topological ability chained list;
Described feasible limit is the directed edge that is allowed in the logic function block topology;
The topological ability parts of the logic function block of described class FEObject by name are arrays, and the element of array is a structure, the corresponding logic function block feature of each structure;
Described structure has been described the instantiation restriction of its corresponding logic function block and the syntople that is allowed to, the member of structure comprise the maximum instance number of the class ID of the class name of current logic function block, current logic function block, current logic function block, current logic function block port limit, with the syntople of preposition neighbours' logic function block, with the syntople of rearmounted neighbours' logic function block;
In described step (1), the construction process of topological ability chained list specifically comprises following steps:
1-1. the topological ability parts array of the logic function block of FEObject by name described in traversal step (1), from the corresponding structure of array element, read its that comprise and syntople preposition neighbours' logic function block and with the syntople of rearmounted neighbours' logic function block, then limit and construct all feasible limits; The information format that this feasible limit comprises is: the input port group name of the output port group name of the class ID of starting point logic function block, starting point logic function block, the class ID of terminal point logic function block, terminal point logic function block;
1-2. the feasible limit that syntople described according to step 1-1 and preposition neighbours' logic function block is constructed, its starting point are preposition neighbours' logic function blocks, terminal point is current logic function block;
1-3. the feasible limit that syntople described according to step 1-1 and rearmounted neighbours' logic function block is constructed, its starting point is current logic function block, and terminal point is rearmounted neighbours' logic function block;
The syntople of described and preposition neighbours' logic function block and only mean a kind of license with the syntople of rearmounted neighbours' logic function block is not illustrated in actual logic function block topology and must exists;
Each feasible limit in the described topological ability chained list of step (2) traversal step (1), with the keyword by name of the port set in institute's inclusion information on feasible limit, in the defined file of the logic function block under this port group name, search the details of the corresponding port set of this port group name, the information that re-constructs feasible limit forms, and it is comprised: the input message of the output information of starting point logic function block class ID, starting point logic function block, terminal point logic function block class ID, terminal point logic function block;
The feasible limit of neotectonics in the described topological ability chained list of step (3) traversal step (2), the coupling text of structural string form specifically comprises following steps:
3-1. the feasible limit of each neotectonics in the described topological ability chained list of traversal step (2), contained information in the feasible limit of neotectonics is carried out the character processing, obtain a character string, be referred to as the text substring, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", ": " separating character for introducing;
3-2. all the text substrings described in step 3-1 are spliced into a character string from beginning to end as the coupling text of pattern matching, and form is: " text substring 1﹠amp; Text substring 2﹠amp; ﹒ ﹒ ﹒ ", “ ﹠amp; " be the separating character of introducing;
Step (4) reads its topological attribute parts and obtains current configured topology from the logic function block of class FEObject by name; Described current configured topology is an array, and array element is a structure, and an in esse directed edge in each structure counterlogic functional block topology is referred to as actual limit; Construct actual limit, its contained information is comprised: starting point logic function block class ID, starting point logic function block instance number, starting point logic function block output port group name, starting point logic function block output port numbering, terminal point logic function block class ID, terminal point logic function block instance number, terminal point logic function block input port group name, terminal point logic function block input port numbering;
Each actual limit in the described current configured topology of step (5) traversal step (4), with the keyword by name of the port set in institute's inclusion information on actual limit, in the defined file of the logic function block under this port group name, search the details of the corresponding port set of this port group name; The information that re-constructs actual limit forms, and it is comprised: the input message of the output information of starting point logic function block class ID, starting point logic function block, terminal point logic function block class ID, terminal point logic function block;
The actual limit of neotectonics in the described current configured topology of step (6) traversal step (5), each contained information in actual limit is carried out the character processing, obtain a character string, form is: " starting point logic function block class ID: the output information of starting point logic function block: terminal point logic function block class ID: the input message of terminal point logic function block ", ": " separating character for introducing;
Step (7) execution pattern coupling, in matching process with the described coupling text of step (3) as the target in pattern matching, the described character string of step (6) is mated seriatim as pattern and target; Only in the situation that described each character string of step (6) the match is successful, just return successfully, otherwise return to failure; Describedly represent that successfully current logic function block topology is correct, failed represent incorrect;
In described step (2) and step (5), the output information of starting point logic function block, the input message of terminal point logic function block all comprise frame and metadata two parts.
CN201310079362.XA 2013-03-12 2013-03-12 Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system Expired - Fee Related CN103152201B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310079362.XA CN103152201B (en) 2013-03-12 2013-03-12 Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310079362.XA CN103152201B (en) 2013-03-12 2013-03-12 Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system

Publications (2)

Publication Number Publication Date
CN103152201A true CN103152201A (en) 2013-06-12
CN103152201B CN103152201B (en) 2015-06-17

Family

ID=48550076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310079362.XA Expired - Fee Related CN103152201B (en) 2013-03-12 2013-03-12 Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system

Country Status (1)

Country Link
CN (1) CN103152201B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301212A (en) * 2014-09-26 2015-01-21 浙江工商大学 Functional chain combination method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946051A (en) * 2005-10-09 2007-04-11 华为技术有限公司 Method for selecting repeat path in repeat control separating system
CN102638409A (en) * 2012-04-27 2012-08-15 浙江工商大学 Method for controlling traffics among channels in architecture of network element based on forwarding and control separation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946051A (en) * 2005-10-09 2007-04-11 华为技术有限公司 Method for selecting repeat path in repeat control separating system
CN102638409A (en) * 2012-04-27 2012-08-15 浙江工商大学 Method for controlling traffics among channels in architecture of network element based on forwarding and control separation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何红军: "ForCES架构路由器功能层的研究和实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, vol. 2008, no. 2, 15 February 2008 (2008-02-15), pages 136 - 38 *
岳挺: "转发与控制分离(ForCES)协议软件的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, vol. 2007, no. 3, 15 March 2007 (2007-03-15), pages 138 - 40 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301212A (en) * 2014-09-26 2015-01-21 浙江工商大学 Functional chain combination method
CN104301212B (en) * 2014-09-26 2017-05-17 浙江工商大学 Functional chain combination method

Also Published As

Publication number Publication date
CN103152201B (en) 2015-06-17

Similar Documents

Publication Publication Date Title
CN110381054A (en) Message parsing method, device, equipment and computer readable storage medium
US8284776B2 (en) Recursive packet header processing
US20130163427A1 (en) System for flexible and extensible flow processing in software-defined networks
EP2835938B1 (en) Message publishing and subscribing method and apparatus
CN103347013A (en) OpenFlow network system and method for enhancing programmable capability
CN103004158A (en) Network device with a programmable core
CN104144156A (en) Message processing method and device
CN101834871B (en) Open type router device and method thereof
CN106533943A (en) Method for realizing microcode and flow table based on network switching chip
CN101409677A (en) Access control method and apparatus
CN102710491B (en) The method and apparatus that the lossless real-time line rate of the PATRICIA trees aided in using PCAP type filters and hardware is filtered
JP6524911B2 (en) Network controller, network control method and program
TWI665894B (en) Method and apparatus for generating parallel lookup requests utilizing a super key
CN106850559A (en) A kind of expansible procotol analysis system and method
CN103078802B (en) A kind of implementation method of logic function block dynamic topology
Geissler et al. Tablevisor 2.0: Towards full-featured, scalable and hardware-independent multi table processing
CN103986714B (en) Bus marco network insertion AVB networks are acted on behalf of into implementation method and device
CN103152201B (en) Verifying method of logic function block topology correctness in ForCES (forwarding and control element separation) system
CN104104557A (en) Deep packet detection device orienting IPv6 security gateway
CN115168365B (en) Data storage method and device, electronic equipment and storage medium
CN107404440A (en) A kind of forwarding-table item sending method, message forwarding method and device
Yang et al. Modeling of Internet of Things service platform based on X language
WO2000049481A2 (en) Dynamic information gateway management system
CN111800342B (en) NFV message forwarding method based on OVS
CN113934767A (en) Data processing method and device, computer equipment and storage medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150617

CF01 Termination of patent right due to non-payment of annual fee