WO2017128112A1 - Calculation method, system, device, and chip for combined programming action in software-defined network - Google Patents

Calculation method, system, device, and chip for combined programming action in software-defined network Download PDF

Info

Publication number
WO2017128112A1
WO2017128112A1 PCT/CN2016/072353 CN2016072353W WO2017128112A1 WO 2017128112 A1 WO2017128112 A1 WO 2017128112A1 CN 2016072353 W CN2016072353 W CN 2016072353W WO 2017128112 A1 WO2017128112 A1 WO 2017128112A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
action
rule
module
nodes
Prior art date
Application number
PCT/CN2016/072353
Other languages
French (fr)
Chinese (zh)
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 中国科学院计算技术研究所
Priority to PCT/CN2016/072353 priority Critical patent/WO2017128112A1/en
Publication of WO2017128112A1 publication Critical patent/WO2017128112A1/en

Links

Images

Definitions

  • the present invention relates to the field of software-defined network technologies, and in particular, to a software-defined network combined programming action calculation method, system, device and chip.
  • SDN Software-defined networking
  • SDN Small programmability is one of the important features provided by SDN. Therefore, the SDN network programming model has become a hot research field.
  • modular combination programming has become the most important programming feature in the network programming model.
  • Parallel programming is mainly to realize that multiple modules process the same data packet in parallel according to their respective logics, while serial processing refers to a data packet processed by one module logic and then processed by the next module.
  • serial processing refers to a data packet processed by one module logic and then processed by the next module.
  • parallel parallel
  • the existing rule compiling algorithm mainly generates new ones according to the intersection of the rule table spaces of multiple submodules. Rule set, specifically:
  • each module When the parallel module is compiled, each module first generates its own rule table. Then, each two modules are forked according to their respective rule tables, that is, the matching domain space of each two rules from the two rule tables is intersected. If the result of the intersection is not empty, a new rule is generated according to the intersection of the two rules, as shown in Figure 1-1.
  • each module When the serial module is compiled, each module still generates its own rule table first, and then preprocesses the rule table corresponding to the module that needs to process the data packet first, that is, each rule of the rule table is used by the rule table. The corresponding action first acts on the matching field of the rule. Finally, the rule table of the two modules is multiplied.
  • the process of forming the rule table by fork is similar to the compilation of the parallel module, as shown in Figure 1-2.
  • the existing SDN combination programming compilation algorithm is based on the intersection of rule spaces of different submodules. Constructing the merged rule and calculating the priority size for the merged rule. However, the current compilation algorithm calculates the action list of the merged rule only for the action rules of the two rules of the submodule. Simply concatenate together, as shown in Figure 2-1.
  • the present invention proposes a software defined network combination programming action calculation method, system, device and chip.
  • the invention provides a software definition network combination programming action calculation method, which comprises:
  • Step 1 abstracting the rule action list in the software-defined network, generating one or more nodes, the nodes forming a node set V;
  • Step 2 adding a directed edge to all the nodes in the node set V, generating a directed graph, and generating a Hamilton path for the directed graph, wherein a sum of weights of each edge in the directed graph is minimum .
  • the step 1 includes the step 101 of acquiring the original data p, and generating an initial node n 0 for the original data p, wherein the data packet header of the original data p is copied and associated with the initial node n 0 . Executing the rule action list in sequence;
  • Step 102 if the rule in the rule action list is empty, the operation is ended, otherwise step 103 is performed;
  • Step 103 Record the action to be performed by the rule action list as act. If the act is modify, modify the packet header of the original data p. If the act is forward, generate a new node n. i , and copying the packet header of the original data p, and associating the original data p with the node n i , and jumping to step 102 until the rule in the rule action list is empty.
  • Step 2 includes step 201, if the node set V is empty or only 1 node, the operation ends, otherwise step 202 is performed;
  • Step 202 taking one node v from the node set V, and sequentially performing the following operations on the node v and the remaining nodes in the set, wherein the remaining nodes are denoted as v i : if the node v is associated
  • the packet header of the original data p is converted into the packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, and the node v points to the node v. i , and vice versa;
  • step 203 the weight of the added directed edge is calculated, and the value of the weight is the data of the added modifyaction, and the process proceeds to step 201.
  • Each of the nodes is a ⁇ packet, port> pair.
  • the invention also provides a software defined network combined programming action computing system, comprising:
  • the generating node set V module includes an associated n 0 module for acquiring the original data p, and generating an initial node n 0 for the original data p, wherein the data packet header of the original data p is copied, and the The initial node n 0 is associated, and the rule action linked list is sequentially executed;
  • a judging module configured to end the operation if the rule in the rule action list is empty, otherwise execute the associated n i module;
  • the associated n i module is configured to record an action to be performed by the rule action list as act, and if the act is modify, modify a packet header of the original data p, and if the act is forward, generate a a new node n i , and copying the packet header of the original data p, and associating the original data p with the node n i , jumping to the judging module until the rule action list The rule is empty.
  • the generating a Hamilton path module includes a determining a node number module, configured to end the operation if the node set V is empty or has only one node, and otherwise execute the added directed edge module;
  • the packet header of the original data p associated with the node v is converted into a packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, by the node v Point to the node v i and vice versa;
  • the calculation weight module is configured to calculate the weight of the added directed edge, and the value of the weight is the data of the added modify action, and the parameter is determined by the node number module.
  • Each of the nodes is a ⁇ packet, port> pair.
  • the present invention also provides an apparatus for a software defined network combined programming action computing system.
  • the invention also proposes a chip for software-defined network combination programming action calculation method.
  • Figure 1-1 is a flowchart of parallel module compilation
  • Figure 1-2 shows the serial module compilation flowchart
  • Figure 2-1 is a flow chart of compiling action list
  • Figure 2-2 is a semantic inequality diagram
  • Figure 2-3 is a redundant view of the action
  • Figure 3 is an abstract view of the rule action list
  • Figure 4 is a construction diagram of a directed graph
  • Figure 5 is a Hamilton road map
  • Figure 6 is a flow chart of the present invention.
  • Figure 7 is an illustration of an example of the invention.
  • the present invention abstracts the action list to produce multiple nodes (each node is a ⁇ packet, port> pair).
  • a raw data p hits the rule r.
  • the action list associated with r is executed, denoted as r.a.
  • the specific abstraction process is as follows:
  • Step 1 Corresponding to the original data p, the initial node n 0 is generated, that is, the data packet header of p is copied, and then associated with n 0 , and then ra is sequentially executed;
  • Step 2 If the rule in r.a is empty, jump to step four, otherwise perform step three;
  • Step 3 Remember that the action to be executed by ra is act. If act is modify (that is, modify the packet instruction), modify the packet header of packet p. If act is forward (that is, forward the packet instruction), a new one is generated. Node n i , and the packet header of packet p is copied and associated with node n i . Jump to step two;
  • one or more nodes can be generated, and these nodes can form a node set V. Then, add a directional edge between these nodes, and finally form a directed graph, the specific steps are as follows.
  • Step 1 If the set V is empty or has only 1 node, jump to step 4, otherwise proceed to step 2;
  • Step 2 Take 1 node v from the set V, and then v and the remaining nodes in the set (set to v i ) are sequentially performed as follows: if the packet header of the v association can be added by adding a modify action (ie, modifying the data) The way of the packet header instruction is changed to the packet header associated with v i , then a directed edge is added, and v points to vi; vice versa. Go to step three;
  • Step 3 Calculate the weight of the added directed edge, the size is the data of the added modify action, and go to step one;
  • one directed graph can be constructed. Then, starting from the node n0 associated with the original data packet p, a Hamiltonian path is sought, which traverses all the nodes in the graph, and the sum of the weights of the sides is the smallest, as shown in FIG.
  • the action list is mainly composed of the modify action on the side of the path and the derived from each node.
  • the forward action (that is, forwarding packet instructions) consists of the order of the paths.
  • the invention also provides a software defined network combined programming action computing system, comprising:
  • the generating node set V module includes an associated n 0 module for acquiring the original data p, and generating an initial node n 0 for the original data p, wherein the data packet header of the original data p is copied, and the The initial node n 0 is associated, and the rule action linked list is sequentially executed;
  • a judging module configured to end the operation if the rule in the rule action list is empty, otherwise execute the associated n i module;
  • the associated n i module is configured to record an action to be performed by the rule action list as act, and if the act is modify, modify a packet header of the original data p, and if the act is forward, generate a a new node n i , and copying the packet header of the original data p, and associating the original data p with the node n i , jumping to the judging module until the rule action list The rule is empty.
  • the generating a Hamilton path module includes a determining a node number module, configured to end the operation if the node set V is empty or has only one node, and otherwise execute the added directed edge module;
  • the packet header of the original data p associated with the node v is converted into a packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, by the node v Point to the node v i and vice versa;
  • the calculation weight module is configured to calculate the weight of the added directed edge, and the value of the weight is the data of the added modify action, and the parameter is determined by the node number module.
  • Each of the nodes is a ⁇ packet, port> pair.
  • the present invention also proposes an apparatus comprising a software defined network combined programming action computing system.
  • the invention also proposes a chip using a software defined network combination programming action calculation method.
  • the software-defined network combined programming action calculation method, system, device and chip proposed by the invention have the following advantages and applicability:
  • the present invention can ensure the semantic equivalence of the synthetic rule action list in the SDN combination programming, and calculate the action list of the final synthesis rule by searching for a Hamiltonian path in the abstract directed graph.
  • the action list can guarantee the minimum number of actions.

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Provided are a calculation method, system, device, and chip for combined programming action in a software-defined network, relating to the technical field of software-defined networking. The method comprises: abstracting a rule-action linked list in a software-defined network, and generating one or more nodes, wherein the nodes form a node set V; and adding directed edges to all nodes in the node set V to generate directed graphs, and generating Hamiltonian paths for the directed graphs, wherein a sum of weights of all edges in the directed graphs is a minimum. The method ensures, by means of a series of theoretical models, the semantic equivalence of an action list of a combination rule in SDN combined programming, and one Hamiltonian path is searched for in an abstracted directed graph to calculate an action list of a final combination rule, and therefore, the action list can guarantee that the number of actions of the combination rule are at a minimum.

Description

软件定义网络组合编程动作计算方法、系统、装置及芯片Software defined network combined programming action calculation method, system, device and chip 技术领域Technical field
本发明涉及软件定义网络技术领域,尤其涉及软件定义网络组合编程动作计算方法、系统、装置及芯片。The present invention relates to the field of software-defined network technologies, and in particular, to a software-defined network combined programming action calculation method, system, device and chip.
背景技术Background technique
随着信息技术的不断发展,互联网已经成为现代社会不可或缺的信息基础设施,然而,当前网络瘦腰型架构已经无法承载用户越来越多的网络需求,因此,一种新型的网络架构---软件定义网络(Software-defined networking,SDN)受到了广泛地关注,SDN的主要思想是将传统网络设备中的控制逻辑从数据平面进行分离,通过集中化的控制来进行整个网络的管理。With the continuous development of information technology, the Internet has become an indispensable information infrastructure for modern society. However, the current network thin waist architecture has been unable to carry more and more network needs of users, therefore, a new type of network architecture - Software-defined networking (SDN) has received extensive attention. The main idea of SDN is to separate the control logic in traditional network devices from the data plane and manage the entire network through centralized control.
灵活可编程性是SDN提供的重要特性之一,因此,SDN网络编程模型成为一个热点的研究技术领域,其中,模块化组合编程已经成为网络编程模型中最为重要的编程特性。模块化组合编程中,主要分为并行编程和串行编程。并行编程主要是实现多个模块按照各自的逻辑并行处理同一个数据包,而串行处理是指一个数据包经过一个模块逻辑处理之后然后再经过下一个模块处理,在模块化组合编程中,并行模块和串行模块产生的SDN交换机规则需要编译成逻辑上等价的一套规则下发到底层交换机,现有的规则编译算法主要是根据多个子模块的规则表空间的相交情况来产生新的规则集,具体来说:Flexible programmability is one of the important features provided by SDN. Therefore, the SDN network programming model has become a hot research field. Among them, modular combination programming has become the most important programming feature in the network programming model. In modular combination programming, it is mainly divided into parallel programming and serial programming. Parallel programming is mainly to realize that multiple modules process the same data packet in parallel according to their respective logics, while serial processing refers to a data packet processed by one module logic and then processed by the next module. In modular combination programming, parallel The SDN switch rules generated by the module and the serial module need to be compiled into a logically equivalent set of rules and sent to the underlying switch. The existing rule compiling algorithm mainly generates new ones according to the intersection of the rule table spaces of multiple submodules. Rule set, specifically:
(1)并行模块编译时,各个模块首先生成各自的规则表,然后,每两个模块按照各自规则表进行叉乘,即将来自两个规则表的每两条规则的匹配域空间进行求交,若求交的结果不为空,则根据该两条规则的交集来生成一条新的规则,如图1-1所示。(1) When the parallel module is compiled, each module first generates its own rule table. Then, each two modules are forked according to their respective rule tables, that is, the matching domain space of each two rules from the two rule tables is intersected. If the result of the intersection is not empty, a new rule is generated according to the intersection of the two rules, as shown in Figure 1-1.
(2)串行模块编译时,各个模块仍然是首先生成各自的规则表,然后,让需要先处理数据包的模块所对应的规则表进行预处理,即让规则表的每条规则用其所对应的动作先作用于规则的匹配域,最后再让两个模块的规则表进行叉乘,叉乘形成规则表的过程与并行模块编译类似,如图1-2所示。(2) When the serial module is compiled, each module still generates its own rule table first, and then preprocesses the rule table corresponding to the module that needs to process the data packet first, that is, each rule of the rule table is used by the rule table. The corresponding action first acts on the matching field of the rule. Finally, the rule table of the two modules is multiplied. The process of forming the rule table by fork is similar to the compilation of the parallel module, as shown in Figure 1-2.
现有的SDN组合编程编译算法根据不同子模块的规则空间的相交情况来 构造进行合并后的规则,同时为合并后的规则计算其优先级大小,然而,当前的编译算法针对合并后规则的action list(规则动作链表)的计算只是将子模块的两条规则的action list简单地串接在一起,如图2-1所示。The existing SDN combination programming compilation algorithm is based on the intersection of rule spaces of different submodules. Constructing the merged rule and calculating the priority size for the merged rule. However, the current compilation algorithm calculates the action list of the merged rule only for the action rules of the two rules of the submodule. Simply concatenate together, as shown in Figure 2-1.
这种简单串接action list的方法会导致合成后的规则与之前规则的语义不等价或者产生冗余的动作,产生这种问题最根本的原因是多个并行模块可能需要对数据包的包头同时进行读写然后再转发到不同的端口,而这种串接action list的方法使得两段子action list无法形成对数据包独立地操作,因此,从根本上无法保证逻辑上的并行操作,如图2-2所示,规则1的要求是将原数据包的F2匹配域进行修改后转发到端口1,而规则2是将原数据包修改其匹配域F1后转发到端口2。但是,合并后的规则转发到端口2的数据包是被同时修改了F1和F2,其与原规则2的语义并不等价。This simple method of concatenating the action list will cause the synthesized rule to be not equivalent to the semantics of the previous rule or to generate redundant actions. The most fundamental reason for this problem is that multiple parallel modules may need a packet header for the packet. Simultaneous reading and writing and then forwarding to different ports, and this method of serially arranging the action list makes the two subaction lists unable to form independent operations on the data packets. Therefore, the logical parallel operation cannot be guaranteed at all. As shown in 2-2, the requirement of rule 1 is to modify the F 2 matching field of the original data packet and then forward it to port 1, and rule 2 is to forward the original data packet to its matching domain F 1 and then forward it to port 2. However, the data packet forwarded by the merged rule to port 2 is modified by F 1 and F 2 at the same time, which is not equivalent to the semantics of the original rule 2.
除此之外,虽然这种转接方式可以保证串行方式的模块化编译,但多个子action list可能对数据包的包头重复进行操作,从而产生冗余的动作,如图2-3所示,合并规则的action list中第一个对数据包F1的修改是冗余的。In addition, although this transfer method can guarantee the modular compilation of the serial mode, multiple sub-action lists may repeatedly operate on the packet header, thereby generating redundant actions, as shown in Figure 2-3. The first modification to the packet F 1 in the action list of the merge rule is redundant.
发明公开Invention disclosure
针对现有技术不足,本发明提出了软件定义网络组合编程动作计算方法、系统、装置及芯片。In view of the deficiencies of the prior art, the present invention proposes a software defined network combination programming action calculation method, system, device and chip.
本发明提出一种软件定义网络组合编程动作计算方法,包括:The invention provides a software definition network combination programming action calculation method, which comprises:
步骤1,将所述软件定义网络中的规则动作链表进行抽象,生成一个或多个节点,所述节点组成节点集合V; Step 1, abstracting the rule action list in the software-defined network, generating one or more nodes, the nodes forming a node set V;
步骤2,向所述节点集合V中的所有所述节点添加有向边,生成有向图,为所述有向图生成汉密尔顿路径,其中所述有向图中每条边的权重之和最小。Step 2: adding a directed edge to all the nodes in the node set V, generating a directed graph, and generating a Hamilton path for the directed graph, wherein a sum of weights of each edge in the directed graph is minimum .
所述步骤1包括步骤101,获取原始数据p,为所述原始数据p生成初始节点n0,其中将所述原始数据p的数据包头部进行复制,并与所述初始节点n0进行关联,顺序执行所述规则动作链表;The step 1 includes the step 101 of acquiring the original data p, and generating an initial node n 0 for the original data p, wherein the data packet header of the original data p is copied and associated with the initial node n 0 . Executing the rule action list in sequence;
步骤102,若所述规则动作链表中的规则为空,则结束操作,否则执行步骤103;Step 102, if the rule in the rule action list is empty, the operation is ended, otherwise step 103 is performed;
步骤103,将所述规则动作链表将要执行的动作记为act,若所述act为modify,则修改所述原始数据p的数据包头部,若所述act为forward,则生成 一个新的节点ni,并将所述原始数据p的数据包头部进行复制,并将所述原始数据p与所述节点ni进行关联,跳转到步骤102,直到所述规则动作链表中的规则为空。Step 103: Record the action to be performed by the rule action list as act. If the act is modify, modify the packet header of the original data p. If the act is forward, generate a new node n. i , and copying the packet header of the original data p, and associating the original data p with the node n i , and jumping to step 102 until the rule in the rule action list is empty.
所述步骤2包括步骤201,若所述节点集合V为空或者只有1个节点,则结束操作,否则执行步骤202; Step 2 includes step 201, if the node set V is empty or only 1 node, the operation ends, otherwise step 202 is performed;
步骤202,从所述节点集合V中任取1个节点v,将所述节点v与集合中剩余的节点依次进行如下操作,其中所述剩余的节点记为vi:若所述节点v关联的所述原始数据p的数据包头部通过添加modify action的方式转变成vi所关联的所述原始数据p的数据包头部,则添加一条有向边,由所述节点v指向所述节点vi,反之亦然;Step 202, taking one node v from the node set V, and sequentially performing the following operations on the node v and the remaining nodes in the set, wherein the remaining nodes are denoted as v i : if the node v is associated The packet header of the original data p is converted into the packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, and the node v points to the node v. i , and vice versa;
步骤203,计算添加的有向边的权重,所述权重的数值为添加的modifyaction的数据,转向步骤201。In step 203, the weight of the added directed edge is calculated, and the value of the weight is the data of the added modifyaction, and the process proceeds to step 201.
每个所述节点为一个<packet,port>对。Each of the nodes is a <packet, port> pair.
本发明还提出一种软件定义网络组合编程动作计算系统,包括:The invention also provides a software defined network combined programming action computing system, comprising:
生成节点集合V模块,用于将所述软件定义网络中的规则动作链表进行抽象,生成一个或多个节点,所述节点组成节点集合V;Generating a node set V module for abstracting a rule action linked list in the software defined network to generate one or more nodes, the nodes forming a node set V;
生成汉密尔顿路径模块,用于向所述节点集合V中的所有所述节点添加有向边,生成有向图,为所述有向图生成汉密尔顿路径,其中所述有向图中每条边的权重之和最小。Generating a Hamilton path module for adding a directed edge to all of the nodes in the set of nodes V, generating a directed graph, generating a Hamilton path for the directed graph, wherein each edge of the directed graph The sum of the weights is the smallest.
所述生成节点集合V模块包括关联n0模块,用于获取原始数据p,为所述原始数据p生成初始节点n0,其中将所述原始数据p的数据包头部进行复制,并与所述初始节点n0进行关联,顺序执行所述规则动作链表;The generating node set V module includes an associated n 0 module for acquiring the original data p, and generating an initial node n 0 for the original data p, wherein the data packet header of the original data p is copied, and the The initial node n 0 is associated, and the rule action linked list is sequentially executed;
判断模块,用于若所述规则动作链表中的规则为空,则结束操作,否则执行关联ni模块;a judging module, configured to end the operation if the rule in the rule action list is empty, otherwise execute the associated n i module;
关联ni模块,用于将所述规则动作链表将要执行的动作记为act,若所述act为modify,则修改所述原始数据p的数据包头部,若所述act为forward,则生成一个新的节点ni,并将所述原始数据p的数据包头部进行复制,并将所述原始数据p与所述节点ni进行关联,跳转到判断模块,直到所述规则动作链表中的规则为空。 The associated n i module is configured to record an action to be performed by the rule action list as act, and if the act is modify, modify a packet header of the original data p, and if the act is forward, generate a a new node n i , and copying the packet header of the original data p, and associating the original data p with the node n i , jumping to the judging module until the rule action list The rule is empty.
所述生成汉密尔顿路径模块包括判断节点数量模块,用于若所述节点集合V为空或者只有1个节点,则结束操作,否则执行添加有向边模块;The generating a Hamilton path module includes a determining a node number module, configured to end the operation if the node set V is empty or has only one node, and otherwise execute the added directed edge module;
添加有向边模块,用于从所述节点集合V中任取1个节点v,将所述节点v与集合中剩余的节点依次进行如下操作,其中所述剩余的节点记为vi:若所述节点v关联的所述原始数据p的数据包头部通过添加modify action的方式转变成vi所关联的所述原始数据p的数据包头部,则添加一条有向边,由所述节点v指向所述节点vi,反之亦然;Adding a directed edge module for taking one node v from the node set V, and sequentially performing the following operations on the node v and the remaining nodes in the set, wherein the remaining nodes are recorded as v i : The packet header of the original data p associated with the node v is converted into a packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, by the node v Point to the node v i and vice versa;
计算权重模块,用于计算添加的有向边的权重,所述权重的数值为添加的modify action的数据,转向判断节点数量模块。The calculation weight module is configured to calculate the weight of the added directed edge, and the value of the weight is the data of the added modify action, and the parameter is determined by the node number module.
每个所述节点为一个<packet,port>对。Each of the nodes is a <packet, port> pair.
本发明还提出一种软件定义网络组合编程动作计算系统的装置。The present invention also provides an apparatus for a software defined network combined programming action computing system.
本发明还提出一种软件定义网络组合编程动作计算方法的芯片。The invention also proposes a chip for software-defined network combination programming action calculation method.
附图简要说明BRIEF DESCRIPTION OF THE DRAWINGS
图1-1为并行模块编译流程图;Figure 1-1 is a flowchart of parallel module compilation;
图1-2为串行模块编译流程图;Figure 1-2 shows the serial module compilation flowchart;
图2-1为编译action list流程图;Figure 2-1 is a flow chart of compiling action list;
图2-2为语义不等价图;Figure 2-2 is a semantic inequality diagram;
图2-3为动作冗余图;Figure 2-3 is a redundant view of the action;
图3为对规则action list的抽象图;Figure 3 is an abstract view of the rule action list;
图4为有向图的构建图;Figure 4 is a construction diagram of a directed graph;
图5为汉密尔顿路径图;Figure 5 is a Hamilton road map;
图6为本发明流程图;Figure 6 is a flow chart of the present invention;
图7为本发明示例图。Figure 7 is an illustration of an example of the invention.
实现本发明的最佳方式The best way to implement the invention
本发明将action list进行抽象,使其产生多个节点(每个节点为一个<packet,port>对)。假设一个原始数据p命中规则r,命中之后,执行r所关联的action list,记为r.a,具体抽象的过程如下: The present invention abstracts the action list to produce multiple nodes (each node is a <packet, port> pair). Suppose a raw data p hits the rule r. After the hit, the action list associated with r is executed, denoted as r.a. The specific abstraction process is as follows:
步骤一:对应原始数据p,产生初始节点n0,即将p的数据包头部进行复制,然后关联于n0,之后顺序执行r.a;Step 1: Corresponding to the original data p, the initial node n 0 is generated, that is, the data packet header of p is copied, and then associated with n 0 , and then ra is sequentially executed;
步骤二:若r.a中规则为空,则跳转到步骤四,否则执行步骤三;Step 2: If the rule in r.a is empty, jump to step four, otherwise perform step three;
步骤三:记r.a将要执行的action为act,若act为modify(即修改数据包指令),则修改数据包p的数据包头部,若act为forward(即转发数据包指令),则产生一个新的节点ni,并数据包p的数据包头部进行复制,并关联于节点ni。跳转到步骤二;Step 3: Remember that the action to be executed by ra is act. If act is modify (that is, modify the packet instruction), modify the packet header of packet p. If act is forward (that is, forward the packet instruction), a new one is generated. Node n i , and the packet header of packet p is copied and associated with node n i . Jump to step two;
步骤四:结束。Step 4: End.
整个过程,如附图3所示。The whole process is shown in Figure 3.
多个action list经过上述步骤后,可以产生一个或者多个节点,这些节点能形成一个节点集合V。然后,在这些节点之间添加有向边,最后构成一个有向图,其具体步骤如下所示。After the multiple action lists are subjected to the above steps, one or more nodes can be generated, and these nodes can form a node set V. Then, add a directional edge between these nodes, and finally form a directed graph, the specific steps are as follows.
步骤一:若集合V为空或者只有1个节点,则跳转到步骤四,否则进行步骤二;Step 1: If the set V is empty or has only 1 node, jump to step 4, otherwise proceed to step 2;
步骤二:从集合V中任取1个节点v,然后将v与集合中剩余的节点(设为vi)依次进行如下操作:若v关联的数据包包头能够通过添加modify action(即修改数据包包头指令)的方式转变成vi所关联的数据包包头,则添加一条有向边,由v指向vi;反之,亦然。跳转到步骤三;Step 2: Take 1 node v from the set V, and then v and the remaining nodes in the set (set to v i ) are sequentially performed as follows: if the packet header of the v association can be added by adding a modify action (ie, modifying the data) The way of the packet header instruction is changed to the packet header associated with v i , then a directed edge is added, and v points to vi; vice versa. Go to step three;
步骤三:计算添加的有向边的权重,大小为添加的modify action的数据,并转向步骤一;Step 3: Calculate the weight of the added directed edge, the size is the data of the added modify action, and go to step one;
步骤四:结束Step 4: End
整个过程如附图4所示。The entire process is shown in Figure 4.
经过上述步骤之后,1个有向图可以构成。然后,从关联原始数据包p的节点n0出发,寻找一条哈密顿路径,该路径遍历图中所有的节点,其边的权重之和最小,如附图5所示。After the above steps, one directed graph can be constructed. Then, starting from the node n0 associated with the original data packet p, a Hamiltonian path is sought, which traverses all the nodes in the graph, and the sum of the weights of the sides is the smallest, as shown in FIG.
通过找出的一条哈密顿路径,可以重构回一条组合后的action list,这个action list的主要由路径中边上的modify action以及每个节点上派生出的 forward action(即转发数据包指令)按路径的顺序所构成。By finding a Hamiltonian path, you can refactor a combined action list. The action list is mainly composed of the modify action on the side of the path and the derived from each node. The forward action (that is, forwarding packet instructions) consists of the order of the paths.
综上所述,整个流程图如附图6所示。In summary, the entire flow chart is shown in Figure 6.
具体事例如附图7所示。A specific matter is shown in Fig. 7, for example.
本发明还提出一种软件定义网络组合编程动作计算系统,包括:The invention also provides a software defined network combined programming action computing system, comprising:
生成节点集合V模块,用于将所述软件定义网络中的规则动作链表进行抽象,生成一个或多个节点,所述节点组成节点集合V;Generating a node set V module for abstracting a rule action linked list in the software defined network to generate one or more nodes, the nodes forming a node set V;
生成汉密尔顿路径模块,用于向所述节点集合V中的所有所述节点添加有向边,生成有向图,为所述有向图生成汉密尔顿路径,其中所述有向图中每条边的权重之和最小。Generating a Hamilton path module for adding a directed edge to all of the nodes in the set of nodes V, generating a directed graph, generating a Hamilton path for the directed graph, wherein each edge of the directed graph The sum of the weights is the smallest.
所述生成节点集合V模块包括关联n0模块,用于获取原始数据p,为所述原始数据p生成初始节点n0,其中将所述原始数据p的数据包头部进行复制,并与所述初始节点n0进行关联,顺序执行所述规则动作链表;The generating node set V module includes an associated n 0 module for acquiring the original data p, and generating an initial node n 0 for the original data p, wherein the data packet header of the original data p is copied, and the The initial node n 0 is associated, and the rule action linked list is sequentially executed;
判断模块,用于若所述规则动作链表中的规则为空,则结束操作,否则执行关联ni模块;a judging module, configured to end the operation if the rule in the rule action list is empty, otherwise execute the associated n i module;
关联ni模块,用于将所述规则动作链表将要执行的动作记为act,若所述act为modify,则修改所述原始数据p的数据包头部,若所述act为forward,则生成一个新的节点ni,并将所述原始数据p的数据包头部进行复制,并将所述原始数据p与所述节点ni进行关联,跳转到判断模块,直到所述规则动作链表中的规则为空。The associated n i module is configured to record an action to be performed by the rule action list as act, and if the act is modify, modify a packet header of the original data p, and if the act is forward, generate a a new node n i , and copying the packet header of the original data p, and associating the original data p with the node n i , jumping to the judging module until the rule action list The rule is empty.
所述生成汉密尔顿路径模块包括判断节点数量模块,用于若所述节点集合V为空或者只有1个节点,则结束操作,否则执行添加有向边模块;The generating a Hamilton path module includes a determining a node number module, configured to end the operation if the node set V is empty or has only one node, and otherwise execute the added directed edge module;
添加有向边模块,用于从所述节点集合V中任取1个节点v,将所述节点v与集合中剩余的节点依次进行如下操作,其中所述剩余的节点记为vi:若所述节点v关联的所述原始数据p的数据包头部通过添加modify action的方式转变成vi所关联的所述原始数据p的数据包头部,则添加一条有向边,由所述节点v指向所述节点vi,反之亦然;Adding a directed edge module for taking one node v from the node set V, and sequentially performing the following operations on the node v and the remaining nodes in the set, wherein the remaining nodes are recorded as v i : The packet header of the original data p associated with the node v is converted into a packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, by the node v Point to the node v i and vice versa;
计算权重模块,用于计算添加的有向边的权重,所述权重的数值为添加的modify action的数据,转向判断节点数量模块。 The calculation weight module is configured to calculate the weight of the added directed edge, and the value of the weight is the data of the added modify action, and the parameter is determined by the node number module.
每个所述节点为一个<packet,port>对。Each of the nodes is a <packet, port> pair.
本发明还提出一种包括软件定义网络组合编程动作计算系统的装置。The present invention also proposes an apparatus comprising a software defined network combined programming action computing system.
本发明还提出一种利用软件定义网络组合编程动作计算方法的芯片。The invention also proposes a chip using a software defined network combination programming action calculation method.
工业应用性Industrial applicability
本发明所提出软件定义网络组合编程动作计算方法、系统、装置及芯片,具有如下优点和应用性:The software-defined network combined programming action calculation method, system, device and chip proposed by the invention have the following advantages and applicability:
本发明经过一系列的理论建模,能够保证SDN组合编程中合成规则action list的语义等价性,通过在抽象有向图中搜寻一条哈密顿路径来计算出最终合成规则的action list,因此,该action list能保证其action的数目能最小。 Through a series of theoretical modeling, the present invention can ensure the semantic equivalence of the synthetic rule action list in the SDN combination programming, and calculate the action list of the final synthesis rule by searching for a Hamiltonian path in the abstract directed graph. The action list can guarantee the minimum number of actions.

Claims (10)

  1. 一种软件定义网络组合编程动作计算方法,其特征在于,包括:A software-defined network combined programming action calculation method, comprising:
    步骤1,将所述软件定义网络中的规则动作链表进行抽象,生成一个或多个节点,所述节点组成节点集合V;Step 1, abstracting the rule action list in the software-defined network, generating one or more nodes, the nodes forming a node set V;
    步骤2,向所述节点集合V中的所有所述节点添加有向边,生成有向图,为所述有向图生成汉密尔顿路径,其中所述有向图中每条边的权重之和最小。Step 2: adding a directed edge to all the nodes in the node set V, generating a directed graph, and generating a Hamilton path for the directed graph, wherein a sum of weights of each edge in the directed graph is minimum .
  2. 如权利要求1所述的软件定义网络组合编程动作计算方法,其特征在于,所述步骤1包括步骤101,获取原始数据p,为所述原始数据p生成初始节点n0,其中将所述原始数据p的数据包头部进行复制,并与所述初始节点n0进行关联,顺序执行所述规则动作链表;The software-defined network combination programming action calculation method according to claim 1, wherein the step 1 comprises the step 101 of acquiring raw data p, and generating an initial node n 0 for the original data p, wherein the original The packet header of the data p is copied and associated with the initial node n 0 , and the rule action list is sequentially executed;
    步骤102,若所述规则动作链表中的规则为空,则结束操作,否则执行步骤103;Step 102, if the rule in the rule action list is empty, the operation is ended, otherwise step 103 is performed;
    步骤103,将所述规则动作链表将要执行的动作记为act,若所述act为modify,则修改所述原始数据p的数据包头部,若所述act为forward,则生成一个新的节点ni,并将所述原始数据p的数据包头部进行复制,并将所述原始数据p与所述节点ni进行关联,跳转到步骤102,直到所述规则动作链表中的规则为空。Step 103: Record the action to be performed by the rule action list as act. If the act is modify, modify the packet header of the original data p. If the act is forward, generate a new node n. i , and copying the packet header of the original data p, and associating the original data p with the node n i , and jumping to step 102 until the rule in the rule action list is empty.
  3. 如权利要求1所述的软件定义网络组合编程动作计算方法,其特征在于,所述步骤2包括步骤201,若所述节点集合V为空或者只有1个节点,则结束操作,否则执行步骤202;The software-defined network combination programming action calculation method according to claim 1, wherein the step 2 includes a step 201, if the node set V is empty or has only one node, the operation ends, otherwise step 202 is performed. ;
    步骤202,从所述节点集合V中任取1个节点v,将所述节点v与集合中剩余的节点依次进行如下操作,其中所述剩余的节点记为vi:若所述节点v关联的所述原始数据p的数据包头部通过添加modify action的方式转变成vi所关联的所述原始数据p的数据包头部,则添加一条有向边,由所述节点v指向所述节点vi,反之亦然;Step 202, taking one node v from the node set V, and sequentially performing the following operations on the node v and the remaining nodes in the set, wherein the remaining nodes are denoted as v i : if the node v is associated The packet header of the original data p is converted into the packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, and the node v points to the node v. i , and vice versa;
    步骤203,计算添加的有向边的权重,所述权重的数值为添加的modifyaction的数据,转向步骤201。 In step 203, the weight of the added directed edge is calculated, and the value of the weight is the data of the added modifyaction, and the process proceeds to step 201.
  4. 如权利要求1所述的软件定义网络组合编程动作计算方法,其特征在于,每个所述节点为一个<packet,port>对。The software-defined network combination programming action calculation method according to claim 1, wherein each of said nodes is a <packet, port> pair.
  5. 一种软件定义网络组合编程动作计算系统,其特征在于,包括:A software defined network combined programming action computing system, comprising:
    生成节点集合V模块,用于将所述软件定义网络中的规则动作链表进行抽象,生成一个或多个节点,所述节点组成节点集合V;Generating a node set V module for abstracting a rule action linked list in the software defined network to generate one or more nodes, the nodes forming a node set V;
    生成汉密尔顿路径模块,用于向所述节点集合V中的所有所述节点添加有向边,生成有向图,为所述有向图生成汉密尔顿路径,其中所述有向图中每条边的权重之和最小。Generating a Hamilton path module for adding a directed edge to all of the nodes in the set of nodes V, generating a directed graph, generating a Hamilton path for the directed graph, wherein each edge of the directed graph The sum of the weights is the smallest.
  6. 如权利要求5所述的软件定义网络组合编程动作计算系统,其特征在于,所述生成节点集合V模块包括关联n0模块,用于获取原始数据p,为所述原始数据p生成初始节点n0,其中将所述原始数据p的数据包头部进行复制,并与所述初始节点n0进行关联,顺序执行所述规则动作链表;The software-defined network combined programming action computing system of claim 5, wherein the generating node set V module comprises an associated n 0 module for acquiring raw data p, and generating an initial node n for the original data p 0 , wherein a packet header of the original data p is copied and associated with the initial node n 0 , and the rule action linked list is sequentially executed;
    判断模块,用于若所述规则动作链表中的规则为空,则结束操作,否则执行关联ni模块;a judging module, configured to end the operation if the rule in the rule action list is empty, otherwise execute the associated n i module;
    关联ni模块,用于将所述规则动作链表将要执行的动作记为act,若所述act为modify,则修改所述原始数据p的数据包头部,若所述act为forward,则生成一个新的节点ni,并将所述原始数据p的数据包头部进行复制,并将所述原始数据p与所述节点ni进行关联,跳转到判断模块,直到所述规则动作链表中的规则为空。The associated n i module is configured to record an action to be performed by the rule action list as act, and if the act is modify, modify a packet header of the original data p, and if the act is forward, generate a a new node n i , and copying the packet header of the original data p, and associating the original data p with the node n i , jumping to the judging module until the rule action list The rule is empty.
  7. 如权利要求5所述的软件定义网络组合编程动作计算系统,其特征在于,所述生成汉密尔顿路径模块包括判断节点数量模块,用于若所述节点集合V为空或者只有1个节点,则结束操作,否则执行添加有向边模块;The software-defined network combination programming action calculation system according to claim 5, wherein said generating a Hamilton path module comprises determining a node number module for ending if said node set V is empty or has only one node Operation, otherwise perform the addition of the directed edge module;
    添加有向边模块,用于从所述节点集合V中任取1个节点v,将所述节点v与集合中剩余的节点依次进行如下操作,其中所述剩余的节点记为vi:若所述节点v关联的所述原始数据p的数据包头部通过添加modify action的方式转变成vi所关联的所述原始数据p的数据包头部,则添加一条有向边,由所述节点v指向所述节点vi,反之亦然;Adding a directed edge module for taking one node v from the node set V, and sequentially performing the following operations on the node v and the remaining nodes in the set, wherein the remaining nodes are recorded as v i : The packet header of the original data p associated with the node v is converted into a packet header of the original data p associated with v i by adding a modify action, and a directed edge is added, by the node v Point to the node v i and vice versa;
    计算权重模块,用于计算添加的有向边的权重,所述权重的数值为添加的modify action的数据,转向判断节点数量模块。 The calculation weight module is configured to calculate the weight of the added directed edge, and the value of the weight is the data of the added modify action, and the parameter is determined by the node number module.
  8. 如权利要求5所述的软件定义网络组合编程动作计算系统,其特征在于,每个所述节点为一个<packet,port>对。The software-defined network combined programming action computing system of claim 5 wherein each of said nodes is a <packet, port> pair.
  9. 一种包括如权利要求5-8任意一项系统的装置。An apparatus comprising a system according to any of claims 5-8.
  10. 一种利用如权利要求1-4任意一项方法的芯片。 A chip using the method of any of claims 1-4.
PCT/CN2016/072353 2016-01-27 2016-01-27 Calculation method, system, device, and chip for combined programming action in software-defined network WO2017128112A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/072353 WO2017128112A1 (en) 2016-01-27 2016-01-27 Calculation method, system, device, and chip for combined programming action in software-defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/072353 WO2017128112A1 (en) 2016-01-27 2016-01-27 Calculation method, system, device, and chip for combined programming action in software-defined network

Publications (1)

Publication Number Publication Date
WO2017128112A1 true WO2017128112A1 (en) 2017-08-03

Family

ID=59396940

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/072353 WO2017128112A1 (en) 2016-01-27 2016-01-27 Calculation method, system, device, and chip for combined programming action in software-defined network

Country Status (1)

Country Link
WO (1) WO2017128112A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996392A (en) * 2023-09-27 2023-11-03 山东省计算中心(国家超级计算济南中心) Flow path reconstruction method and system based on weighted directed graph algorithm

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140177634A1 (en) * 2012-12-24 2014-06-26 Huawei Technologies Co., Ltd. Software defined network-based data processing method, node, and system
CN104715019A (en) * 2015-02-10 2015-06-17 清华大学 Rule dynamic issuing method and devoice for software-defined network
CN104954271A (en) * 2014-03-26 2015-09-30 国际商业机器公司 Data packet processing method and data packet processing device in SDN network
CN105207912A (en) * 2015-09-16 2015-12-30 江苏省未来网络创新研究院 Method for handling SDN multi-module deployment rule conflicts
CN105245400A (en) * 2015-09-16 2016-01-13 江苏省未来网络创新研究院 SDN (Software Defined Network) service chain application validity detection method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140177634A1 (en) * 2012-12-24 2014-06-26 Huawei Technologies Co., Ltd. Software defined network-based data processing method, node, and system
CN104954271A (en) * 2014-03-26 2015-09-30 国际商业机器公司 Data packet processing method and data packet processing device in SDN network
CN104715019A (en) * 2015-02-10 2015-06-17 清华大学 Rule dynamic issuing method and devoice for software-defined network
CN105207912A (en) * 2015-09-16 2015-12-30 江苏省未来网络创新研究院 Method for handling SDN multi-module deployment rule conflicts
CN105245400A (en) * 2015-09-16 2016-01-13 江苏省未来网络创新研究院 SDN (Software Defined Network) service chain application validity detection method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996392A (en) * 2023-09-27 2023-11-03 山东省计算中心(国家超级计算济南中心) Flow path reconstruction method and system based on weighted directed graph algorithm
CN116996392B (en) * 2023-09-27 2023-12-29 山东省计算中心(国家超级计算济南中心) Flow path reconstruction method and system based on weighted directed graph algorithm

Similar Documents

Publication Publication Date Title
CN103354522B (en) A kind of multilevel flow table lookup method and device
Dally A VLSI architecture for concurrent data structures
Durand et al. Complexity and optimality of the best response algorithm in random potential games
Chatterjee et al. Automatic generation of inductive invariants from high-level microarchitectural models of communication fabrics
JP2007306442A (en) System and method for searching shortest path between nodes included in network
Pujol-Perich et al. Ignnition: Bridging the gap between graph neural networks and networking systems
Holzman et al. Strong equilibrium in network congestion games: increasing versus decreasing costs
Aiswarya et al. An automata-theoretic approach to the verification of distributed algorithms
Ghose et al. Generalizable cross-graph embedding for gnn-based congestion prediction
Cooper et al. The Hamiltonian cycle and travelling salesman problems in cP systems
Guo et al. An efficient critical path generation algorithm considering extensive path constraints
Zhao et al. Ruletailor: Optimizing flow table updates in openflow switches with rule transformations
JP2006139427A (en) Same subgraph detection device of data flow graph, high order synthesizer, method of detecting same subgraph of data flow graph, same subgraph detection control program of data flow graph and readable recording medium
WO2017128112A1 (en) Calculation method, system, device, and chip for combined programming action in software-defined network
Xiao et al. An efficient algorithm for dynamic shortest path tree update in network routing
Scornavacca et al. Fast algorithm for the reconciliation of gene trees and LGT networks
Bampas et al. Robustness of the rotor–router mechanism
Blin et al. Compact self-stabilizing leader election for general networks
Sasao et al. Applications of zero-suppressed decision diagrams
CN105183652B (en) Pushed net under time dynamic the conversion method of network
Khalil et al. Algorithm to solve travel salesman problem efficently
Lu et al. RL-CCD: Concurrent clock and data optimization using attention-based self-supervised reinforcement learning
Atasu Resource-efficient regular expression matching architecture for text analytics
Das et al. xMAS based accurate modeling and progress verification of NoCs
Ismkhan et al. Developing Programming Tools to Handle Traveling Salesman Problem by the Three Object‐Oriented Languages

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

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

Country of ref document: EP

Kind code of ref document: A1