# US 9,882,835 B2 · Programming method and apparatus for core routing and switching system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,882,835 B2
- Document ID: US9882835B2
- Status: Granted
- Kind: B2
- Application number: 14/887,283
- Filed: 2015-10-19
- Published: 2016-04-21
- Granted: 2018-01-30
- Earliest claimed: 2014-10-21
- Assignees: Tsinghua University
- Applicants: Tsinghua University
- Inventors: Ke Xu; Yuchao Zhang; Meng Shen; Youjian Zhao
- Web page: https://patentgrep.com/patent/US9882835B2

## CPC

- H04L 41/0823: characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability (for optimising operational conditions of wireless networks H04W24/02)
- H04L 41/5051: Service on demand, e.g. definition and deployment of services in real time
- H04L 47/822: {Collecting or measuring resource availability data}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A programming method and a programming apparatus for a core routing and switching system are provided. The method includes: obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system; judging whether a first requirement for resources in the routing nodes is changed to a second requirement; judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed; searching for a plurality of second routing node groups with resources meeting the second requirement if the resources in the first routing node group do not meet the second requirement; calculating a plurality of migration overheads corresponding to the plurality of second routing node groups; selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups.

## Claims

### Claim 1

A programming method for a core routing and switching system, comprising:
obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
judging whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user;
judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
calculating a plurality of migration overheads corresponding to the plurality of second routing node groups;
selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement;
wherein obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system comprises:
maintaining by the core routing and switching system a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),
TiεN=(ri,1,ri,2, . . . ri,t, . . . ,ri,M) (1)
where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes in the core routing and switching system, M represents the number of the resource types, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.

### Claim 2 (depends on 1)

The programming method according to claim 1, wherein judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement comprises:
determining the first routing node group corresponding to the first requirement;
defining the first requirement of a jth user as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user as Dj′=(dj,1′, dj,2′, . . . dj,t′, . . . , dj,M′) and the first routing node group as Γ, where dj,t represents a demand of the jth user for the tth type of resource in the first requirement, dj,t′ represents a demand of the jth user for the tth type of resource in the second requirement;
judging whether a residual amount of the tth type of resource in a routing node corresponding to the demand dj,t of the jth user for the tth type of resource in the first requirement is greater than the demand dj,t′ of the jth user for the tth type of resource in the second requirement;
if yes, judging that the resources in the first routing node group meet the second requirement;
if no, judging that the resources in the first routing node group do not meet the second requirement.

### Claim 3 (depends on 2)

The programming method according to claim 2, wherein if there are n, routing nodes with the tth type of resource meeting the demand dj,t′ of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups is
n1×n2× . . . ×nM.

### Claim 4 (depends on 2)

The programming method according to claim 2, wherein calculating a plurality of migration overheads corresponding to the plurality of second routing node groups comprises:
defining routing nodes in a second routing node group as Pi, Pi+1, . . . , Pi+k, . . . Pi+M, where 1≦i≦N−M;
calculating a migration overhead of the second routing node group according to formula (2),
S=Sin+Sout+Sch (2),
where Sin represents a sum of internal communication overheads of the routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.

### Claim 5

A programming apparatus for a core routing and switching system, comprising:
an obtaining module, configured to obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
a first judging module, configured to judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user;
a second judging module, configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
a searching module, configured to search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
a calculating module, configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups;
a selecting module, configured to select a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement;
wherein the obtaining module is further configured to obtain a number of routing nodes and a number of resource types of each routing node in the core routing and switching system by a step of:
maintaining a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),
TiεN=(ri,1,ri,2, . . . ri,t, . . . ,ri,M) (1)
where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes, M represents the number of the resource types ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.

### Claim 6 (depends on 5)

The programming apparatus according to claim 5, wherein the second judging module is configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement by steps of:
determining the first routing node group corresponding to the first requirement;
defining the first requirement of a jth user as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user as Dj′=(dj,1′, dj,2′, . . . dj,t′, . . . , dj,M′) and the first routing node group as Γ, where dj,t represents a demand of the jth user for the tth type of resource in the first requirement, dj,t′ represents a demand of the jth user for the type of tth resource in the second requirement;
judging whether a residual amount of the tth type of resource in a routing node corresponding to the demand dj,t of the jth user for the tth type of resource in the first requirement is greater than the demand dj,t′ of the j user for the tth type of resource in the second requirement;
if yes, judging that the resources in the first routing node group meet the second requirement;
if no, judging that the resources in the first routing node group do not meet the second requirement.

### Claim 7 (depends on 6)

The programming apparatus according to claim 6, wherein if there are nt routing nodes with the tth type of resource meeting the demand dj,t′ of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups is
n1×n2× . . . ×nM.

### Claim 8 (depends on 6)

The programming apparatus according to claim 6, wherein the calculating module is configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups by steps of:
defining routing nodes in a second routing node group as Pi, Pi+1, . . . , Pi+k, . . . , Pi+M, where 1≦i≦N−M;
calculating a migration overhead of the second routing node group according to formula (2),
S=Sin+Sout+Sch (2),
where Sin represents a sum of internal communication overheads of the routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.

### Claim 9

A non-transitory computer-readable storage medium having stored therein instructions that, when executed by a processor of an apparatus, causes the apparatus to perform a programming method for a core routing and switching system, wherein the method comprises steps of:
obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
judging whether a first requirement of a user for resources in routing nodes in the core routing and switching system is changed to a second requirement of the user;
judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
calculating a plurality of migration overheads corresponding to the plurality of second routing node groups;
selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement;
wherein obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system comprises:
maintaining by the core routing and switching system a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),
TiεN=(ri,1,ri,2, . . . ri,t, . . . ,ri,M) (1)
where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes in the core routing and switching system, M represents the number of the resource types, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
