US2016277544A1PendingUtilityA1

Protocol data unit interface

Assignee: NETAPP INCPriority: Sep 26, 2013Filed: Jun 2, 2016Published: Sep 22, 2016
Est. expirySep 26, 2033(~7.2 yrs left)· nominal 20-yr term from priority
H04L 49/9047H04L 69/322H04L 41/0226H04L 49/9057H04L 69/321H04L 69/18
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An interface can be designed that efficiently constructs descriptors for streams of protocol data units (PDUs) and provides coherent views of the PDUs and the PDU stream for a requesting application regardless of location within a buffer pool for PDUs. The interface creates a descriptor for each PDU written into the buffer pool and links the descriptors in accordance with the appropriate order of the corresponding PDUs. The interface can create PDU descriptors hierarchically. For instance, a PDU descriptor for a PDU of a layer N protocol can refer to one or more PDU descriptors of a layer N−1 protocol.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A non-transitory computer readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to:
 create a plurality of descriptors linking a plurality of protocol data units together in sequential order, wherein each of the plurality of descriptors comprises a respective data structure;   create one or more higher-level descriptors, wherein each higher level descriptor of the one or more higher-level descriptors comprises a respective data structure, wherein each higher-level descriptor of the one or more higher-level descriptors comprises one or more references to one or more descriptors of the plurality of descriptors; and   receive one or more requests for data, wherein the requests for data specify at least one of data from one or more protocol data units of the plurality of protocol data units or the data representing one or more higher-level protocol data units.   
     
     
         2 . The non-transitory computer-readable medium of  claim 1 , further storing instructions configured to cause the one or more processors to:
 in response to receiving the one or more requests for data, send at least one of:   a descriptor of the plurality of descriptors,   a reference to a descriptor of the plurality of descriptors,   a message descriptor of the one or more message descriptors,   a reference to a higher-level descriptor of the one or more higher-level descriptors, and   data representing one or more protocol data units of the plurality of protocol data units.   
     
     
         3 . The non-transitory computer-readable medium of  claim 1 , wherein the instructions to create a plurality of descriptors linking a plurality of protocol data units together in sequential order comprises instructions to:
 determine that a protocol data unit has been written into a buffer;   create a protocol data unit descriptor, wherein the protocol data unit descriptor comprises a data structure; and   extract a set of values from the protocol data unit; and populate the protocol data unit descriptor with the set of values from the protocol data unit and a reference to the protocol data unit.   
     
     
         4 . The non-transitory computer-readable medium of  claim 1 , wherein the protocol data unit comprises one of a frame, a packet, and a message. 
     
     
         5 . The non-transitory computer-readable medium of  claim 1 , wherein the instructions to create one or more higher-level descriptors comprise instructions to:
 create a first higher-level descriptor of the plurality of higher-level descriptors;   locate a first descriptor of the plurality of descriptors associated with a protocol data unit of the plurality protocol data units that includes the start of a higher-level protocol data unit;   locate a second descriptor of the plurality of descriptors associated with a protocol data unit of the plurality of protocol data units that includes the end of a higher-level protocol data unit; and   write an indication of the first descriptor and an indication of the second descriptor into the first higher-level descriptor.   
     
     
         6 . The non-transitory computer-readable medium of  claim 5 , further storing instructions configured to cause the one or more processors to:
 write an indication for each descriptor of the plurality of descriptors that link the first descriptor to the second descriptor.   
     
     
         7 . The non-transitory computer-readable medium of  claim 1 , further storing instructions configured to cause the one or more processors to:
 in response to receipt of one or more requests for data, traverse a reference from a first higher-level descriptor of the one or more higher-level descriptors to a first descriptor of the plurality of descriptors, wherein the first descriptor is associated with a beginning of a higher-level protocol data unit;   traverse a series of one or more references from the first descriptor of the plurality of descriptors to a second descriptor of the plurality of descriptors, wherein the second descriptor is associated with an end of the higher-level protocol data unit; and   for each traversed descriptor of the plurality of descriptors from the first descriptor to the second descriptor, traverse a reference from the current descriptor to a protocol data unit; and read the protocol data unit.   
     
     
         8 . A computer-implemented method comprising:
 creating a plurality of descriptors linking a plurality of protocol data units together in sequential order, wherein each of the plurality of descriptors comprises a respective data structure;   creating one or more higher-level descriptors, wherein each higher level descriptor of the one or more higher-level descriptors comprises a respective data structure, wherein each higher-level descriptor of the one or more higher-level descriptors comprises one or more references to one or more descriptors of the plurality of descriptors; and   receiving one or more requests for data, wherein the requests for data specify at least one of data from one or more protocol data units of the plurality of protocol data units or the data representing one or more higher-level protocol data units.   
     
     
         9 . The method of  claim 8 , further comprising:
 in response to receiving the one or more requests for data, sending at least one of:   a descriptor of the plurality of descriptors,   a reference to a descriptor of the plurality of descriptors,   a message descriptor of the one or more message descriptors,   a reference to a higher-level descriptor of the one or more higher-level descriptors, and   data representing one or more protocol data units of the plurality of protocol data units.   
     
     
         10 . The method of  claim 8 , wherein creating a plurality of descriptors linking a plurality of protocol data units together in sequential order comprises:
 determining that a protocol data unit has been written into a buffer;   creating a protocol data unit descriptor, wherein the protocol data unit descriptor comprises a data structure; and   extracting a set of values from the protocol data unit; and populate the protocol data unit descriptor with the set of values from the protocol data unit and a reference to the protocol data unit.   
     
     
         11 . The method of  claim 8 , wherein the protocol data unit comprises one of a frame, a packet, and a message. 
     
     
         12 . The method of  claim 8 , further comprising:
 creating a first higher-level descriptor of the plurality of higher-level descriptors;   locating a first descriptor of the plurality of descriptors associated with a protocol data unit of the plurality protocol data units that includes the start of a higher-level protocol data unit;   locating a second descriptor of the plurality of descriptors associated with a protocol data unit of the plurality of protocol data units that includes the end of a higher-level protocol data unit; and   writing an indication of the first descriptor and an indication of the second descriptor into the first higher-level descriptor.   
     
     
         13 . The method of  claim 12 , further comprising writing an indication for each descriptor of the plurality of descriptors that link the first descriptor to the second descriptor. 
     
     
         14 . The method of  claim 8 , further comprising:
 in response to receipt of one or more requests for data, traversing a reference from a first higher-level descriptor of the one or more higher-level descriptors to a first descriptor of the plurality of descriptors, wherein the first descriptor is associated with a beginning of a higher-level protocol data unit;   traversing a series of one or more references from the first descriptor of the plurality of descriptors to a second descriptor of the plurality of descriptors, wherein the second descriptor is associated with an end of the higher-level protocol data unit; and   for each traversed descriptor of the plurality of descriptors from the first descriptor to the second descriptor, traversing a reference from the current descriptor to a protocol data unit; and read the protocol data unit.   
     
     
         15 . An apparatus comprising:
 a non-transitory computer-readable medium storing:
 a plurality of descriptors linking a plurality of protocol data units together in sequential order, wherein each of the plurality of descriptors comprises a respective data structure, and 
 one or more higher-level descriptors, wherein each higher level descriptor of the one or more higher-level descriptors comprises a respective data structure, wherein each higher-level descriptor of the one or more higher-level descriptors comprises one or more references to one or more descriptors of the plurality of descriptors; and 
   a processor configured to receive one or more requests for data, wherein the requests for data specify at least one of data from one or more protocol data units of the plurality of protocol data units or the data representing one or more higher-level protocol data units.   
     
     
         16 . The apparatus of  claim 15 , wherein the processor is further configured to:
 in response to receiving the one or more requests for data, send at least one of:   a descriptor of the plurality of descriptors,   a reference to a descriptor of the plurality of descriptors,   a message descriptor of the one or more message descriptors,   a reference to a higher-level descriptor of the one or more higher-level descriptors, and   data representing one or more protocol data units of the plurality of protocol data units.   
     
     
         17 . The apparatus of  claim 15 , wherein creating a plurality of descriptors linking a plurality of protocol data units together in sequential order comprises:
 determining that a protocol data unit has been written into a buffer;   creating a protocol data unit descriptor, wherein the protocol data unit descriptor comprises a data structure; and   extracting a set of values from the protocol data unit; and populate the protocol data unit descriptor with the set of values from the protocol data unit and a reference to the protocol data unit.   
     
     
         18 . The apparatus of  claim 15 , wherein the protocol data unit comprises one of a frame, a packet, and a message. 
     
     
         19 . The apparatus of  claim 15 , wherein the processor is further configured to:
 create a first higher-level descriptor of the plurality of higher-level descriptors;   locate a first descriptor of the plurality of descriptors associated with a protocol data unit of the plurality protocol data units that includes the start of a higher-level protocol data unit;   locate a second descriptor of the plurality of descriptors associated with a protocol data unit of the plurality of protocol data units that includes the end of a higher-level protocol data unit; and   write an indication of the first descriptor and an indication of the second descriptor into the first higher-level descriptor.   
     
     
         20 . The apparatus of  claim 15 , wherein the processor is further configured to:
 in response to receipt of one or more requests for data, traverse a reference from a first higher-level descriptor of the one or more higher-level descriptors to a first descriptor of the plurality of descriptors, wherein the first descriptor is associated with a beginning of a higher-level protocol data unit;   traverse a series of one or more references from the first descriptor of the plurality of descriptors to a second descriptor of the plurality of descriptors, wherein the second descriptor is associated with an end of the higher-level protocol data unit; and   for each traversed descriptor of the plurality of descriptors from the first descriptor to the second descriptor, traverse a reference from the current descriptor to a protocol data unit; and read the protocol data unit.

Join the waitlist — get patent alerts

Track US2016277544A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.