IP Library Granted Patent US 9,832,291
Granted Patent B2
US 9,832,291 · App. 14/595,060 · Granted Nov 28, 2017

Auto-configurable transport stack

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,832,291
App. No.
14/595,060
Granted
Nov 28, 2017
Kind
B2
Abstract

A transport-framework system facilitates instantiating a custom transport stack. During operation, the system can obtain a stack requirement for a custom stack. The stack requirement can specify component attributes and a policy for one or more components to instantiate in the custom stack. The system can select a stack component that satisfies the stack requirement for the custom stack, and can instantiate the stack component in the custom stack. For example, the system can select a stack component by analyzing the stack requirement to determine a component requirement for a component that needs to be instantiated in the custom stack. The system determines, from a component repository, a set of matching components that satisfies the component requirement. If multiple matching components exist, the system selects a matching component which is most compatible with other components in the custom stack.

Claims (73)

1. A computer-implemented method, comprising:

receiving an interest of a Content Object in an Information Centric Networking architecture;

obtaining a stack requirement for a stack, wherein the stack requirement specifies at least a functionality for a stack component, and the stack requirement is obtained from a transport library component, a transport application programming interface (API) component, a network packet, or a component in the stack;

selecting the stack component, based on the functionality and at least a name prefix of the interest or the Content Object; and

instantiating the stack component in the stack.

2. The method of claim 1 , wherein the selecting involves:

determining, from the stack requirement, a component requirement;

determining, from a component repository, a set of components that satisfies the component requirement; and

selecting, from the set of components, the stack component, which is compatible with other components in the stack.

3. The method of claim 1 , further comprising:

obtaining the stack component from a local repository.

4. The method of claim 1 , further comprising:

searching for the stack component in a local repository; and

responsive to determining that the stack component is not available in the local repository, obtaining the stack component from a remote repository.

5. The method of claim 4 , wherein the remote repository includes one or more of:

a component cache;

a component storage server; and

a component marketplace.

6. The method of claim 1 , further comprising:

determining that an updated version of the stack component exists;

determining a stack in which the stack component is instantiated; and

replacing an instantiation of the stack component with an instantiation of the updated version of the stack component.

7. The method of claim 6 , further comprising:

analyzing the updated version of the stack component to obtain a stack requirement; and

responsive to determining that the stack requirement of the stack component has changed, updating the stack's implementation to satisfy a new stack requirement.

8. The method of claim 1 , wherein the functionality is a video encoding, a video decoding, security, a flow controller, restricting traffic to within a bandwidth quota, or implementing a firewall.

9. The method of claim 1 , wherein the functionality is an encoding, a decoding, an encapsulating, a decapsulating, a transcoding, a compression, a decompression, data storage, a data retrieval from storage, a deduplication, a segmentation, a versioning, a flow control, an in-order delivery, a retransmission, a packet rewriting, an external-service discovery, an external-service access, a data search, a data indexing, or a component search.

10. The method of claim 1 , wherein the stack component is selected, based on a name of the interest or the Content Object.

11. 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 an interest of a Content Object in an Information Centric Networking architecture;

obtaining a stack requirement for a stack, wherein the stack requirement specifies at least a functionality for a stack component, and the stack requirement is obtained from a transport library component, a transport application programming interface (API) component, a network packet, or a component in the stack;

selecting the stack component, based on the functionality and at least a name prefix of the interest or the Content Object; and

instantiating the stack component in the stack.

12. The storage medium of claim 11 , wherein the selecting involves:

determining, from the stack requirement, a component requirement;

determining, from a component repository, a set of components that satisfies the component requirement; and

selecting, from the set of components, the stack component, which is compatible with other components in the stack.

13. The storage medium of claim 11 , wherein the method further comprises:

obtaining the stack component from a local repository.

14. The storage medium of claim 11 , wherein the method further comprises:

searching for the stack component in a local repository; and

responsive to determining that the stack component is not available in the local repository, obtaining the stack component from a remote repository.

15. The storage medium of claim 11 , wherein the method further comprises:

determining that an updated version of the stack component exists;

determining a stack in which the stack component is instantiated; and

replacing an instantiation of the stack component with an instantiation of the updated version of the stack component.

16. The storage medium of claim 15 , wherein the method further comprises:

analyzing the updated version of the stack component to obtain a stack requirement; and

responsive to determining that the stack requirement of the stack component has changed, updating the stack's implementation to satisfy a new stack requirement.

17. The storage medium of claim 11 , wherein the stack component is selected, based on a name of the interest or the Content Object.

18. An apparatus, comprising:

a communication module to receive an interest of a Content Object in an Information Centric Networking architecture;

a stack-updating module to obtain a stack requirement for a stack, wherein the stack requirement specifies at least a functionality for a stack component, and the stack requirement is obtained from a transport library component, a transport application programming interface (API) component, a network packet, or a component in the stack; and

a stack-selecting module to select the stack component, based on the functionality and at least a name prefix of the interest or the Content Object;

wherein the stack-updating module is further configured to instantiate the stack component in the stack.

19. The apparatus of claim 18 , wherein the stack-selecting module is further configured to:

determine, from the stack requirement, a component requirement;

determine, from a component repository, a set of components that satisfies the component requirement; and

select, from the set of components, the stack component, which is compatible with other components in the stack.

20. The apparatus of claim 18 , further comprising:

a stack-obtaining module to obtain the stack component from a local repository.

21. The apparatus of claim 20 , wherein the stack-obtaining module is further configured to:

search for the stack component in a local repository; and

responsive to determining that the stack component is not available in the local repository, obtain the stack component from a remote repository.

22. The apparatus of claim 18 , further comprising:

a component-updating module to:

determine that an updated version of the stack component exists;

determine a stack in which the stack component is instantiated; and

replace an instantiation of the stack component with an instantiation of the updated version of the stack component.

23. The apparatus of claim 22 , wherein the component-updating module is further configured to:

analyze the updated version of the stack component to obtain a stack requirement; and

responsive to determining that the stack requirement of the stack component has changed, update the stack's implementation to satisfy a new stack requirement.

24. The apparatus of claim 18 , wherein the stack component is selected, based on a name of the interest or the Content Object.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: CISCO SYSTEMS, INC.
Reel/Frame 041714/0373 →
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 13, 2015
From: SOLIS, IGNACIO; SCOTT, GLENN C.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 034701/0816 →