IP Library Granted Patent US 10,956,412
Granted Patent B2
US 10,956,412 · App. 15/232,674 · Granted Mar 23, 2021

Method and system for conjunctive normal form attribute matching in a content centric network

Inventors: Christopher A. Wood (San Francisco, CA); Ignacio Solis (Scotts Valley, CA); Marc E. Mosko (Santa Cruz, CA)
Assignee: CISCO TECHNOLOGY, INC.
G06F16/245G06F16/22G06F16/901G06F16/9017H04L12/00H04L29/00H04L67/1097
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,956,412
App. No.
15/232,674
Granted
Mar 23, 2021
Kind
B2
Abstract

One embodiment provides a system that facilitates a flexible strategy for matching content objects and interests. During operation, the system receives, by a computing device, an interest which includes a set of attributes, wherein a respective attribute has one or more values. In response to not obtaining a matching entry for the interest in a pending interest table, the system adds to the pending interest table a first entry which indicates the interest based on the attributes and their values. The system determines whether a received content object satisfies the interest indicated in the first entry based on the attributes of the first entry and attributes of the content object. In response to determining that the content object satisfies the interest, the system forwards the content object, thereby facilitating a flexible strategy for matching content objects to interests.

Claims (74)

1. A computer system, comprising:

a processor; and

a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

receiving an interest which includes a set of attributes, wherein an attribute from among the set of attributes is a restrictive attribute that is related to a content object and has a plurality of values;

obtaining or not obtaining a matching entry for the interest in a pending interest table;

based on not obtaining the matching entry for the interest in the pending interest table, adding to the pending interest table a first entry which indicates the interest based on the attributes and respective values thereof;

determining whether the content object satisfies the interest indicated in the first entry based on the attributes of the first entry and attributes of the content object such that the content object satisfies the restrictive attribute from among the set of attributes of the interest based on the content object matching one value from among the plurality of values of the restrictive attribute; and

based on the determining that the content object satisfies the interest, forwarding the content object.

2. The computer system of claim 1 , wherein the interest has a name and wherein obtaining or not obtaining the matching entry in the pending interest table is based on the name for the interest, wherein the content object has a same name as the name for the interest, and wherein the method further comprises:

receiving the content object; and

performing a lookup in the pending interest table based on the name for the content object to obtain the first entry.

3. The computer system of claim 2 , wherein in response to the obtaining the matching entry for the interest in the pending interest table based on the name for the interest, the method further comprises:

in response to the determining, for each attribute indicated in the matching entry, that the values of a respective attribute indicated in the matching entry exactly match all of the values of the attribute of the interest, adding an arrival interface associated with the interest to a list of arrival interfaces for the matching entry; and

in response to the determining, that the values of the respective attribute indicated in the matching entry do not exactly match all of the values of the set of attributes of the interest, adding to the pending interest table the first entry.

4. The computer system of claim 1 , wherein the determining that the content object satisfies the interest further comprises:

determining, for each attribute indicated in the first entry, that a value of a first attribute of the content object matches one of the values of a respective first attribute indicated in the first entry.

5. The computer system of claim 1 , wherein the determining that the content object satisfies the interest further comprises:

performing a calculation based on a conjunctive normal form, wherein the attribute comprises an AND clause, and wherein the values for the attribute comprise predicates of an OR clause.

6. The computer system of claim 1 , wherein in response to the determining that the content object does not satisfy the interest, the method further comprises one or more of:

storing the content object in a local cache or content store;

refraining from forwarding the content object to a downstream node;

discarding the content object; and

performing an action based on a policy of the computer system.

7. The computer system of claim 1 , wherein the set of attributes includes at least two of:

a name for the interest or the content object, wherein the name is a hierarchically structured variable length identifier that includes contiguous name components ordered from a most general level to a most specific level;

a key identifier restriction associated with the interest and applicable to a responsive content object;

a key identifier associated with the content object;

a content object hash restriction associated with the interest and applicable to the responsive content object;

a hash of the content object;

a hop count or limit associated with the interest or the content object; and

any field of the interest, the content object, or a message in a content centric network.

8. The computer system of claim 1 , wherein the method further comprises:

in response to receiving the interest, performing a lookup in a content store or local cache of a computing device for a matching content object; and

in response to determining, for each respective attribute indicated in the interest, that a value of the attribute of the matching content object matches one of the values of the respective attribute of the interest, forwarding the content object.

9. The computer system of claim 1 , wherein the processor determines whether the content object satisfies the interest indicated in the first entry by determining whether a key identifier value or an object hash value of the content object matches the one value from among the plurality of values of the restrictive attribute of the interest.

10. The computer system of claim 1 , wherein the restrictive attribute is one of:

a key identifier restriction associated with the interest and applicable to a responsive content object;

a key identifier associated with the content object;

a content object hash restriction associated with the interest and applicable to the responsive content object; or

a hash of the content object.

11. A computer-implemented method, comprising:

receiving an interest which includes a set of attributes, wherein an attribute from among the set of attributes is a restrictive attribute that is related to a content object and has a plurality of values;

obtaining or not obtaining a matching entry for the interest in a pending interest table;

based on not obtaining the matching entry for the interest in the pending interest table, adding to the pending interest table a first entry which indicates the interest based on the attributes and respective values;

determining whether the content object satisfies the interest indicated in the first entry based on the attributes of the first entry and attributes of the content object such that the content object satisfies the restrictive attribute from among the attributes of the interest based on the content object matching one value from among the plurality of values of the restrictive attribute of the interest; and

based on the determining that the content object satisfies the interest, forwarding the content object.

12. The computer-implemented method of claim 11 , wherein the interest has a name, wherein obtaining or not obtaining the matching entry in the pending interest table is further based on the name for the interest, wherein the content object has a same name as the name for the interest, and wherein the method further comprises:

receiving the content object; and

performing a lookup in the pending interest table based on the name for the content object to obtain the first entry.

13. The computer-implemented method of claim 12 , wherein in response to the obtaining the matching entry for the interest in the pending interest table based on the name for the interest, the method further comprises:

in response to the determining, for each attribute indicated in the matching entry, that the values of a respective attribute indicated in the matching entry exactly match all of the values of the respective attribute of the interest, adding an arrival interface associated with the interest to a list of arrival interfaces for the matching entry; and

in response to the determining, that the values of the respective attribute indicated in the matching entry do not exactly match all of the values of the set of attributes of the interest, adding to the pending interest table the first entry.

14. The computer-implemented method of claim 11 , wherein the determining that the content object satisfies the interest further comprises:

determining, for each attribute indicated in the first entry, that a value of a first attribute of the content object matches one of the values of a respective first attribute indicated in the first entry.

15. The computer-implemented method of claim 11 , wherein the determining that the content object satisfies the interest further comprises:

performing a calculation based on a conjunctive normal form, wherein the attribute comprises an AND clause, and wherein the values for the attribute comprise predicates of an OR clause.

16. The computer-implemented method of claim 11 , wherein in response to the determining that the content object does not satisfy the interest, the method further comprises one or more of:

storing the content object in a local cache or content store;

refraining from forwarding the content object to a downstream node;

discarding the content object; and

performing an action based on a policy.

17. A computer system, comprising:

a processor; and

a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

generating an interest which includes a set of attributes, wherein an attribute from among the set of attributes is a restrictive attribute that is related to a content object and has a plurality of values;

determining that the content object satisfies the interest based on a matching entry in a pending interest table and further based on attributes of the matching entry and attributes of the content object such that the content object satisfies the restrictive attribute from among the attributes of the interest based on the content object matching one value from among the plurality of values of the restrictive attribute of the interest; and

removing the matching entry from the pending interest table.

18. The computer system of claim 17 , wherein the method further comprises:

creating the matching entry in the pending interest table, wherein the matching entry indicates the interest based on the attributes and respective values thereof.

19. The computer system of claim 17 , wherein the interest has a name that is a hierarchically structured variable length identifier comprised of contiguous name components ordered from a most general level to a most specific level.

20. The computer system of claim 17 , wherein the method further comprises:

in response to transmitting the interest, receiving the content object,

wherein the determining that the content object satisfies the interest based on the matching entry further comprises:

determining, for each attribute indicated in the matching entry, that a value of a corresponding attribute of the content object matches one of the values of the corresponding attribute indicated in the matching entry.

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 Aug 25, 2016
From: WOOD, CHRISTOPHER A.; SOLIS, IGNACIO; MOSKO, MARC E.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 039544/0130 →
Continuity (1)
Related Publication 20180046667A1 · Feb 15, 2018