IP Library Granted Patent US 10,218,612
Granted Patent B2
US 10,218,612 · App. 14/147,994 · Granted Feb 26, 2019

Method and a device for defining implementation of a look-up table for a network element of a software-defined network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,218,612
App. No.
14/147,994
Granted
Feb 26, 2019
Kind
B2
Abstract

A method and a device for defining implementation of a look-up table for a network element of a software-defined network “SDN” is presented. The network element includes hardware for implementing the look-up table in two or more mutually alternative ways. The method includes selecting ( 301 ) an optimal, or at least a suitable, one of the mutually alternative ways to implement the look-up table on the basis of a) the hardware available for implementing the look-up table, b) information about one or more look-up keys, and c) at least one of the following: the maximum number of entries of the look-up table, an average time between successive look-ups, an average time between successive modifications of the look-up table. The method enables the network element to be configured in a way that the hardware resources of the network element are utilized in an optimal or at least a suitable way.

Claims (46)

1. A device for defining implementation of a first look-up table and a second look-up table for a network element of a software-defined network, the network element comprising hardware for implementing each of the first look-up table and the second look-up table in two or more mutually alternative ways, the device comprising a processing system configured to:

receive one or more first data items providing information about one or more look-up keys of the first look-up table,

receive one or more second data items indicating at least one of the following: the maximum number of entries of the first look- up table, an average time between successive look-ups from the first look-up table, an average time between successive modifications of the first look-up table,

select one of the two or more mutually alternative ways to implement the first look-up table on the basis of the hardware available for implementing the first look-up table, the one or more first data items, and the one or more second data items, and

determine the hardware remaining free for implementing the second look-up table after implementation of the first look-up table and to select one of the two or more mutually alternative ways to implement the second look-up table to exist simultaneously with the first look-up table on the basis of the hardware available for implementing the second look-up table and data related to the second look-up table and indicating corresponding information as the one or more first data items and the one or more second data items indicate relating to the first look-up table; and

wherein one or more actions associated with a matching entry of the first look-up table in conjunction with managing a data frame specifying the second look-up table to be used in conjunction with the managing the data frame.

2. A device according to claim 1 , wherein the processing system is configured to compute a weighted sum of the one or more first data items and the one or more second data items and to compare the weighted sum to a first threshold so as to make a selection between an implementation based on content access memory technology and an implementation based on a retrieval tree algorithm and random access memory technology.

3. A device according to claim 2 , wherein the processing system is configured to compare a second threshold to a third data item indicating a ratio of the number of don't care key matching bit positions of the first look-up table to the number of all key matching bit positions of the first look-up table so as to make a selection between an implementation based on binary content access memory technology and an implementation based on ternary content access memory technology.

4. A device according to claim 1 , wherein the processing system is configured to compare a second threshold to a third data item indicating a ratio of the number of don't care key matching bit positions of the first look-up table to the number of all key matching bit positions of the first look-up table so as to make a selection between an implementation based on binary content access memory technology and an implementation based on ternary content access memory technology.

5. A network element for a software-defined network, the network element comprising: a data transfer interface for receiving data and for transmitting data, the received data specifying a first look-up table and a second look-up table to be implemented in the network element, hardware for implementing each of the first look-up table and the second look-up table in two or more mutually alternative ways, and

a device for defining implementation of the first look-up table and the second look-up table, the device comprising a processing system configured to:

receive one or more first data items providing information about one or more look-up keys of the first look-up table,

receive one or more second data items indicating at least one of the following: the maximum number of entries of the first look-up table, an average time between successive look-ups from the first look-up table, an average time between successive modifications of the first look-up table,

select one of the two or more mutually alternative ways to implement the first look-up table on the basis of the hardware available for implementing the first look-up table, the one or more first data items, and the one or more second data items, and

determine the hardware remaining free for implementing the second look-up table after implementation of the first look-up table and to select one of the two or more mutually alternative ways to implement the second look-up table to exist simultaneously with the first look-up table on the basis of the hardware available for implementing the second look-up table and data related to the second look-up table and indicating corresponding information as the one or more first data items and the one or more second data items indicate relating to the first look-up table; and

wherein one or more actions associated with a matching entry of the first look-up table in conjunction with managing a data frame specifying the second look-up table to be used in conjunction with the managing the data frame.

6. A network element according to claim 5 , wherein the network element is at least one of the following: an Internet Protocol router, a multiprotocol label switching switch, a packet optical switch, an Ethernet switch.

7. A method for implementing a first look-up table and a second look-up table for a network element of a software-defined network, the network element comprising hardware for implementing each of the first look-up table and the second look-up table in two or more mutually alternative ways, the method comprising:

selecting one of the two or more mutually alternative ways to implement the first look-up table on the basis of the hardware available for implementing the first look-up table, one or more first data items, and one or more second data items, wherein

the one or more first data items provide information about one or more look-up keys of the first look-up table, and

the one or more second data items indicate at least one of the following: the maximum number of entries of the first look-up table, an average time between successive look-ups from the first look-up table, an average time between successive modifications of the first look-up table, and

the method further comprising determining the hardware remaining free for implementing the second look-up table after implementation of the first look-up table and selecting one of the two or more mutually alternative ways to implement the second look-up table to exist simultaneously with the first look-up table on the basis of the hardware available for implementing the second look-up table and data related to the second look-up table and indicating corresponding information as the one or more first data items and the one or more second data items indicate relating to the first look-up table; and

wherein one or more actions associated with a matching entry of the first look-up table in conjunction with managing a data frame specifying the second look-up table to be used in conjunction with the managing the data frame.

8. A method according to claim 7 , wherein the method comprises computing a weighted sum of the one or more first data items and the one or more second data items and comparing the weighted sum to a first threshold so as to make a selection between an implementation based on content access memory technology and an implementation based on a retrieval tree algorithm and random access memory technology.

9. A method according to claim 8 , wherein the method comprises comparing a second threshold to a third data item indicating a ratio of the number of don't care key matching bit positions of the first look-up table to the number of all key matching bit positions of the first look-up table so as to make a selection between an implementation based on binary content access memory technology and an implementation based on ternary content access memory technology.

10. A method according to claim 7 , wherein the method comprises comparing a second threshold to a third data item indicating a ratio of the number of don't care key matching bit positions of the first look-up table to the number of all key matching bit positions of the first look-up table so as to make a selection between an implementation based on binary content access memory technology and an implementation based on ternary content access memory technology.

11. A non-transitory computer readable medium encoded with a computer program for implementing a first look-up table and a second look-up table for a network element of a software-defined network, the network element comprising hardware for implementing each of the first look-up table and the second look-up table in two or more mutually alternative ways, the computer program comprising computer executable instructions for controlling a programmable processing system to perform a method comprising:

selecting one of the two or more mutually alternative ways to implement the first look-up table on the basis of the hardware available for implementing the first look-up table, one or more first data items, and one or more second data items,

wherein

the one or more first data items provide information about one or more look-up keys of the first look-up table, and

the one or more second data items indicate at least one of the following: the maximum number of entries of the first look-up table, an average time between successive look-ups from the first look-up table, an average time between successive modifications of the first look-up table,

wherein the computer program further comprises computer executable instructions for controlling the programmable processing system to determine the hardware remaining free for implementing the second look-up table after implementation of the first look-up table and select one of the two or more mutually alternative ways to implement the second look-up table to exist simultaneously with the first look-up table on the basis of the hardware available for implementing the second look-up table and data related to the second look-up table and indicating corresponding information as the one or more first data items and the one or more second data items indicate relating to the first look-up table; and

wherein one or more actions associated with a matching entry of the first look-up table in conjunction with managing a data frame specifying the second look-up table to be used in conjunction with the managing the data frame.

12. A software-defined network comprising:

a controller system for transmitting configuration data to the one or more network elements so as to configure the one or more network elements, the configuration data specifying a first look-up table and a second look-up table to be implemented in the one or more network elements, and

one or more network elements,

wherein each of the network elements comprises:

a data transfer interface for receiving data and for transmitting data, the received data specifying the first look-up table and the second look-up table to be implemented in the network element,

hardware for implementing each of the first look-up table and the second look-up table in two or more mutually alternative ways, and

a device for defining implementation of the first look-up table and the second look-up table, the device comprising a processing system configured to:

receive one or more first data items providing information about one or more look-up keys of the first look- up table,

receive one or more second data items indicating at least one of the following: the maximum number of entries of the first look-up table, an average time between successive look-ups from the first look-up table, an average time between successive modifications of the first look-up table,

select one of the two or more mutually alternative ways to implement the first look-up table on the basis of the hardware available for implementing the first look-up table, the one or more first data items, and the one or more second data items, and

determine the hardware remaining free for implementing the second look-up table after implementation of the first look-up table and to select one of the two or more mutually alternative ways to implement the second look-up table to exist simultaneously with the first look-up table on the basis of the hardware available for implementing the second look-up table and data related to the second look-up table and indicating corresponding information as the one or more first data items and the one or more second data items indicate relating to the first look-up table; and

wherein one or more actions associated with a matching entry of the first look-up table in conjunction with managing a data frame specifying the second look-up table to be used in conjunction with the managing the data frame.

13. A software-defined network according to claim 12 , wherein the controller system is configured to use the OpenFlow as a communication method for a control plane of the software-defined network to communicate with a data plane of the software-defined network.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2018
From: CERBERUS BUSINESS FINANCE, LLC
To: CORIANT OY (FORMERLY TELLABS OY)
Reel/Frame 047727/0035 →
SECURITY INTEREST Recorded Jul 20, 2015
From: CORIANT OY (FORMERLY KNOWN AS TELLABS OY
To: CERBERUS BUSINESS FINANCE, LLC, AS THE COLLATERAL AGENT
Reel/Frame 036132/0362 →
CHANGE OF NAME Recorded Feb 12, 2015
From: TELLABS OY
To: CORIANT OY
Reel/Frame 034980/0920 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2014
From: HALLIVUORI, VILLE; KUUSISAARI, JUHAMATTI
To: TELLABS OY
Reel/Frame 031938/0237 →