IP Library Granted Patent US 9,954,795
Granted Patent B2
US 9,954,795 · App. 14/595,057 · Granted Apr 24, 2018

Resource allocation using CCN manifests

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,954,795
App. No.
14/595,057
Granted
Apr 24, 2018
Kind
B2
Abstract

A network forwarder can use a Manifest to allocate resources in a content centric network (CCN). Specifically, the forwarder can include a Manifest table which stores a Manifest state for a set of pending Manifests. Each Manifest can include a name associated with a data collection, and includes a list of references to Content Objects that make up the data collection. When the forwarder receives a Manifest for a data collection, the forwarder creates an entry for the Manifest in the Manifest table, and allocates one or more resources for processing the Manifest. When the forwarder receives an Interest, the forwarder performs a lookup in the Manifest table based on the Interest's name to determine whether the Interest is associated with a pending Manifest. If the Interest matches a Manifest state stored in the Manifest table, the forwarder processes the Interest and the Manifest based on the Manifest state.

Claims (44)

1. A computer-implemented method, comprising:

receiving, by a forwarder, a Manifest for a data collection, wherein the Manifest includes a name associated with the collection, and includes a list of references to one or more Content Objects that make up the data collection;

creating, by the forwarder, an entry for the Manifest in a Manifest table which stores a Manifest state for a set of pending Manifests;

allocating, by the forwarder prior to receiving an Interest from a device requesting the one or more Content Objects that make up the data collection, a resource for processing the Manifest; and

responsive to the forwarder receiving the Interest from the device, forwarding by the forwarder, the Manifest to the device.

2. The method of claim 1 , further comprising:

responsive to receiving the Interest, performing a lookup in the Manifest table based on the Interest's name; and

responsive to determining that the Interest matches a Manifest state of the Manifest table, processing the Interest and the Manifest based on the Manifest state.

3. The method of claim 1 , wherein allocating the resource involves evicting data from memory or a cache to make space for a set of Content Objects listed in the Manifest.

4. The method of claim 1 , wherein allocating the resource involves allocating memory or storage space for a set of Content Objects listed in the Manifest.

5. The method of claim 4 , further comprising:

disseminating Interests for one or more Content Objects listed in the Manifest; and responsive to receiving a Content Object for a respective Interest, caching the Content Object in the allocated memory or storage space.

6. The method of claim 1 , wherein allocating the resource involves allocating processing resources for processing a set of Content Objects listed in the Manifest.

7. The method of claim 1 , wherein allocating the resource involves allocating resources on a link for receiving a set of Content Objects listed in the Manifest.

8. The method of claim 1 , wherein allocating the resource involves:

determining an interface associated with the Manifest's name; and

creating a FIB entry that maps the Manifest's Content Objects to the determined interface.

9. The method of claim 1 , wherein allocating the resource involves transferring the Manifest's state to a remote network device, to prepare the remote network device for processing the Manifest.

10. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

receiving, by a forwarder, a Manifest for a data collection, wherein the Manifest includes a name associated with the collection, and includes a list of references to one or more Content Objects that make up the data collection;

creating, by the forwarder, an entry for the Manifest in a Manifest table which stores a Manifest state for a set of pending Manifests;

allocating, by the forwarder prior to receiving an Interest from a device requesting the one or more Content Objects that make up the data collection, a resource for processing the Manifest; and

responsive to the forwarder receiving the Interest from the device forwarding, by the forwarder, the Manifest to the device.

11. The storage medium of claim 10 , further comprising: responsive to receiving the Interest, performing a lookup in the Manifest table based on the Interest's name; and

responsive to determining that the Interest matches a Manifest state of the Manifest table, processing the Interest and the Manifest based on the Manifest state.

12. The storage medium of claim 10 , wherein allocating the resource involves evicting data from memory or a cache to make space for a set of Content Objects listed in the Manifest.

13. The storage medium of claim 10 , wherein allocating the resource involves allocating memory or storage space for a set of Content Objects listed in the Manifest.

14. The storage medium of claim 13 , further comprising:

disseminating Interests for the one or more Content Objects listed in the Manifest; and

responsive to receiving a Content Object for a respective Interest, caching the Content Object in the allocated memory or storage space.

15. The storage medium of claim 10 , wherein allocating the resource involves allocating processing resources for processing a set of Content Objects listed in the Manifest.

16. The storage medium of claim 10 , wherein allocating the resource involves allocating resources on a link for receiving a set of Content Objects listed in the Manifest.

17. The storage medium of claim 10 , wherein allocating the resource involves:

determining an interface associated with the Manifest's name; and

creating a FIB entry that maps the Manifest's Content Objects to the determined interface.

18. The storage medium of claim 10 , wherein allocating the resource involves transferring the Manifest's state to a remote network device, to prepare the remote network device for processing the Manifest.

19. An apparatus, comprising:

a communication module to receive a Manifest for a data collection, wherein the Manifest includes a name associated with the collection, and includes a list of references to one or more Content Objects that make up the data collection;

a Manifest-processing module to create an entry for the Manifest in a Manifest table which stores a Manifest state for a set of pending Manifests;

a resource-allocation module to allocate, prior to receiving an Interest from a device requesting the one or more Content Objects that make up the data collection, a resource for processing the Manifest; and

a packet-processing module to forward, responsive to receiving the Interest from the device, the Manifest to the device.

20. The apparatus of claim 19 , wherein the packet-processing module is further configured to:

perform a lookup in the Manifest table based on an Interest's name; and

responsive to determining that the Interest's name matches a Manifest state of the Manifest table, process the Interest and the Manifest based on the Manifest state.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: CISCO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 041715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: CISCO SYSTEMS, INC.
Reel/Frame 041384/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2015
From: SOLIS, IGNACIO; SCOTT, GLENN C.; WALENDOWSKI, ALAN
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 034701/0821 →