IP Library Granted Patent US 9,503,552
Granted Patent B2
US 9,503,552 · App. 14/273,953 · Granted Nov 22, 2016

System and method for adapting to network protocol updates

Inventor: Yuhong Mao (Fremont, CA)
Assignee: Google Inc.
H04L69/22H04L45/50H04L69/08
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 9,503,552
App. No.
14/273,953
Granted
Nov 22, 2016
Kind
B2
Abstract

A system and method are provided for updating network protocols. A new ASIC is designed to adapt to future network protocols, the ASIC including at least one packet editing program. The ASIC is configured to classify a received packet to determine new protocols to which the packet is to be updated, delete selected existing headers of the packet, insert new headers in the packet based on the classification, and modify selected headers based on the classification.

Claims (25)

1. A method, comprising: receiving, with one or more processors, a packet; classifying the packet, the classification comprising: determining, with a user logic unit, a newly developed protocol to which the packet is to be updated, wherein the newly developed protocol is a protocol which was not yet defined at the time the one or more processors were developed; and determining, with the user logic unit, which of a number of packet editing programs to operate on the packet to update the packet to the newly developed protocol; updating, with a central editing unit, the packet, the updating comprising: deleting, with a deletion unit, an existing header of the packet; inserting, with an insertion unit, a new header in the packet according to the determined packet editing program based on the classification, the new header being related to the newly developed protocol; and modifying, with a modification unit, the new header according to the determined packet editing program based on the classification.

2. The method of claim 1 , wherein determining the newly developed protocol to which the packet is to be updated comprises identifying pointers to the packet editing program to update the packet.

3. The method of claim 1 , wherein deleting the existing packet header comprises deleting selected portions of the existing header that are not used by the newly developed protocol.

4. The method of claim 3 , wherein inserting the new packet header comprises inserting portions of the new packet header based on the newly developed protocol and portions remaining from a previous packet header.

5. The method of claim 1 , wherein modifying the new packet header comprises executing at least one of an overwrite or a read-modify-write operation.

6. The method of claim 1 , further comprising transmitting the packet including the new header through a network based on the new header.

7. A system, comprising: at least one memory including a number of packet editing programs; and at least one processor in communication with the at least one memory, the at least processor to: receive a packet; classify the packet, the classification comprising: determining, with a user logic unit, a newly developed protocol to which the packet is to be updated, wherein the newly developed protocol is a protocol which was not yet defined at the time the one or more processors were developed; and determining, with the user logic unit, which of a number of packet editing programs to operate on the packet to update the packet to the newly developed protocol; update, with a central editing unit, the packet, the central editing unit configured to: delete an existing header of the packet; insert a new header in the packet according to the determined packet editing program based on the classification; and modify the new header according to the determined packet editing program based on the classification.

8. The system of claim 7 , wherein each packet editing program includes pointers to its editing instructions and pointers to sets of static data, shared data, and dynamic data.

9. The system of claim 8 , wherein the at least one memory further includes meta data and register data accessible by the editing instructions.

10. The system of claim 7 , wherein:

the at least one memory and the at least one processor reside on an application specific integrated circuit (ASIC); and

the newly developed protocol is developed after design or manufacture of the ASIC.

11. The system of claim 7 , wherein determining the newly developed protocol to which the packet is to be updated comprises identifying pointers to the packet editing program to update the packet.

12. The system of claim 7 , wherein deleting the existing packet header comprises deleting selected portions of the existing header that are not used by the newly developed protocol.

13. The system of claim 12 , wherein inserting the new packet header comprises inserting portions of the new packet header based on the newly developed protocol and portions remaining from a previous packet header.

14. The system of claim 7 , wherein modifying the new packet header comprises executing at least one of an overwrite or a read-modify-write operation.

15. The system of claim 7 , wherein the at least one processor is further configured to transmit the packet including the new header through a network based on the new header.

16. A non-transitory computer-readable medium storing instructions executable by one or more processors for performing a method, the method comprising: receiving, with the one or more processors, a packet; classifying, with a user logic unit, the packet, the classification comprising: determining a newly developed protocol to which the packet is to be updated, wherein the newly developed protocol is a protocol which was not yet defined at the time the one or more processors were developed; and determining which of a number of packet editing programs to operate on the packet to update the packet to the newly developed protocol; updating, with a central editing unit, the packet, the updating comprising: deleting, with a deletion unit, an existing header of the packet; inserting, with an insertion unit, a new header in the packet according to the determined packet editing program based on the classification; and modifying, with a modification unit, the new header according to the determined packet editing program based on the classification.

17. The non-transitory computer-readable medium of claim 16 , wherein determining the newly developed protocol to which the packet is to be updated comprises identifying pointers to the packet editing program to update the packet.

18. The non-transitory computer-readable medium of claim 16 , wherein:

deleting the existing packet header comprises deleting selected portions of the existing header that are not used by the newly developed protocol; and

inserting the new packet header comprises inserting portions of the new packet header based on the newly developed protocol and portions remaining from a previous packet header.

19. The non-transitory computer-readable medium of claim 16 , wherein modifying the new packet header comprises executing at least one of an overwrite or a read-modify-write operation.

20. The non-transitory computer-readable medium of claim 16 , further comprising transmitting the packet including the new header through a network based on the new header.

21. The method of claim 1 , wherein the determining which of a number of packet editing programs to operate on the packet is based on editing capabilities necessary to update the packet to the newly developed protocol.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2014
From: MAO, YUHONG
To: GOOGLE INC.
Reel/Frame 033034/0704 →
Continuity (1)
Related Publication 20150326696A1 · Nov 12, 2015