IP Library Granted Patent US 10,412,046
Granted Patent B2
US 10,412,046 · App. 14/306,602 · Granted Sep 10, 2019

Method of, and a device for updating a multiple-processing entity packet management system, and associated computer program product

Inventors: Avishay Moscovici (Tel Aviv, IL); Michal Silbermintz (Tel Mond, IL)
Assignee: NXP USA, Inc.
H04L63/0227G06F16/16G06F16/219G06F16/2474H04L45/021H04L45/64H04L45/745H04L63/1416H04L45/54
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,412,046
App. No.
14/306,602
Granted
Sep 10, 2019
Kind
B2
Abstract

There is described a method of managing a flow of data packets in a multiple-processing entity system comprising a plurality of look-up tables adapted to store information associated to actions to be performed on packets received by the system. The method comprises storing, on a per entry basis, in a shadowed entry associated to any table entry being updated, the previous content of said table entry being updated, in association with a table entry version number, for use for managing packets received in the system prior to any update operation. It is thus possible to continue using look-up tables while updating process is being carried out for some or all of the table entries. The solution provides benefits for systems that are limited in space and cost, by use of minimal memory thanks to the storing of small shadowed data instead of full shadowed table.

Claims (34)

1. A method of managing a flow of data packets in a multiple-processing entity system comprising a plurality of look-up tables adapted to store information associated to actions to be performed on packets received by the system,

responsive to a request for updating at least one table entry of at least one look-up table:

incrementing a system revision number associated to the system which identifies the current version of the system, and setting to the current version of the system a table entry version number associated to the table entry being updated which identifies the number of ongoing update operations for said entry;

storing, on a per entry basis, in a shadowed entry associated to any table entry being updated, the previous content of said table entry being updated, in association with the table entry version number, for use for managing packets received in the system prior to any update operation; and,

upon receipt of a new packet into the system:

assigning an attribute to the received packet, said attribute corresponding to the system revision number,

for each look-up table, processing packets in order of receipt in the table, said processing comprising, for each packet:

performing a table look-up operation in the look-up table, to identify a table entry in said look-up table based on information in a header field of the packet;

if the packet attribute is equal to or higher than the table entry version number of the identified table entry, then submitting the packet to actions defined by the content of the identified table entry, or else,

submitting the packet to actions defined by the content of the shadowed entry associated to the identified table entry, the table entry version number of which is equal to the packet attribute.

2. The method of claim 1 wherein, after performing a table look-up operation, and if the table entry version number of the identified table entry is equal to the table entry version number initially set for the identified table entry, then submitting the packet to actions defined by the content of the identified table entry irrespective of the packet attribute.

3. The method of claim 1 , further comprising erasing any shadowed entry after actions associated to the content of said shadowed entry have been performed with respect to all packets having packet attributes that are is less than the table entry version number of the table entry associated to said shadowed entry.

4. The method of claim 3 , further comprises assigning the table entry version number of a table entry to the value initially set for said table entry once the packet attribute of the received packet is equal to or higher than the table entry version number of said table entry.

5. A computer program product comprising a plurality of instructions stored in a non-transitory media accessible to a processor for executing instructions, computer program product for managing a flow of data packets in a multiple-processing core system comprising:

instructions for receiving packets to be processed in the system;

instructions for performing update operations on the content of at least one table entry of at least one look-up table responsive to a request for updating, to increment a system revision number associated to the system which identifies the current version of the system and to set to the current version of the system a table entry version number associated to the table entry being updated which identifies the number of ongoing update operations for said entry;

instructions for assigning an attribute to the received packet, said attribute corresponding to the system revision number;

instructions for storing a plurality of look-up tables, each table being divided into a plurality of table entries, each entry storing information associated to actions to be performed on packets received by the system;

instructions for storing the previous content of said table entry being updated in association with the table entry version number in shadowed table entries associated with any table being updated, for use for managing packets received in the system prior to any update operation;

instructions for performing for each packet and for each look-up table, a table look-up operation to identify a table entry of the look-up table based on information in a header field of the packet; and,

instructions for submitting

the packet to actions defined by the content of the identified table entry if the packet attribute is equal to or higher than the table entry version number of the identified table entry, or else,

the packet to actions defined by the content of the shadowed entry associated to the identified table entry, the table entry version number of which is equal to the packet attribute.

6. The computer program product of claim 5 , wherein, if the table entry version number of the identified table entry is equal to the table entry version number initially set for the identified table entry, the computer program product further comprising instructions for submitting the packet to actions defined by the content of the identified table entry irrespective of the packet attribute.

7. The computer program product of claim 5 , further comprising instructions for erasing any shadowed entry after actions associated with the content of said shadowed entry have been performed with respect to all packets whose packet attribute is less than the table entry version number of the table entry associated with said shadowed entry.

8. The computer program product of claim 7 , further comprising instructions for assigning the table entry version number of a table entry to the value initially set for said table entry once the packet attribute of the received packet is equal to or higher than the table entry version number of said table entry.

9. A computer program product comprising one or more stored sequences of instructions in a non-transitory media that are accessible to a processor and which, when executed by the processor, cause the processor to perform the method of claim 1 .

10. The method of claim 2 , further comprising erasing any shadowed entry after actions associated to the content of said shadowed entry have been performed with respect to all packets whose packet attribute is less than the table entry version number of the table entry associated to said shadowed entry.

11. The method of claim 10 , further comprises assigning the table entry version number of a table entry to the value initially set for said table entry once the packet attribute of the received packet is equal to or higher than the table entry version number of said table entry.

12. The computer program product of claim 6 , further comprising instructions for erasing any shadowed entry after actions associated to the content of said shadowed entry have been performed with respect to all packets whose packet attribute is less than the table entry version number of the table entry associated to said shadowed entry.

13. The computer program product of claim 12 , further comprising instructions for assigning the table entry version number of a table entry to the value initially set for said table entry once the packet attribute of the received packet is equal to or higher than the table entry version number of said table entry.

14. A computer program product comprising one or more stored sequences of instructions that are accessible to a processor and which, when executed by the processor, cause the processor to perform/to carry out the method of claim 2 .

15. A computer program product comprising one or more stored sequences of instructions that are accessible to a processor and which, when executed by the processor, cause the processor to perform/to carry out the method of claim 3 .

16. A computer program product comprising one or more stored sequences of instructions that are accessible to a processor and which, when executed by the processor, cause the processor to perform/to carry out the method of claim 4 .

Assignments (18)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2021
From: NXP B.V.
To: FUTURE LINK SYSTEMS, LLC
Reel/Frame 055115/0491 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 14/258,829 AND REPLACE ITWITH 14/258,629 PREVIOUSLY RECORDED ON REEL 037444 FRAME 0082. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OFSECURITY INTEREST IN PATENTS. Recorded Aug 10, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039639/0332 →
CORRECTIVE ASSIGNMENT OF INCORRECT APPLICATION 14/258,829 PREVIOUSLY RECORDED ON REEL 037444 FRAME 0109. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Aug 10, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039639/0208 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0109 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0082 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0903 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033462/0293 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033462/0267 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033460/0337 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2014
From: MOSCOVICI, AVISHAY; SILBERMINTZ, MICHAL
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 033118/0031 →
Continuity (1)
Related Publication 20150363448A1 · Dec 17, 2015