US2017237661A1PendingUtilityA1

Processing packets by a network device

57
Assignee: JUNIPER NETWORKS INCPriority: Apr 17, 2000Filed: May 3, 2017Published: Aug 17, 2017
Est. expiryApr 17, 2020(expired)· nominal 20-yr term from priority
H04L 47/10H04L 45/745H04L 69/22H04L 45/7452H04L 69/16H04L 49/3009H04L 49/309H04L 45/74
57
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method and apparatus for performing a lookup in a switching device of a packet switched network where the lookup includes a plurality of distinct operations each of which returns a result that includes a pointer to a next operation in a sequence of operations for the lookup. The method includes determining a first lookup operation to be executed, executing the first lookup operation including returning a result and determining if the result includes a pointer to another lookup operation in the sequence of operations. If the result includes a pointer to another lookup operation, the lookup operation indicated by the result is executed. Else, the lookup is terminated.

Claims

exact text as granted — not AI-modified
1 - 24 . (canceled) 
     
     
         25 . A method, comprising:
 receiving, by a network device, a packet;   dividing, by the network device, the packet into fixed-length quantities of data;   transferring, by the network device, the fixed-length quantities of data to an input switch of the network device,
 the fixed-length quantities of data being stored in a memory of the network device, 
 an address of a first quantity of data, of the fixed-length quantities of data, being stored by the input switch, and 
 offset information regarding other quantities of data, of the fixed-length quantities of data, being computed by the input switch; 
   transferring, by the network device, the address and the offset information as a lookup request to a controller of the network device;   receiving, by the network device, a result of a lookup operation based on the lookup request;   transferring, by the network device, the result to an output switch of the network device;   generating, by the network device, read requests a quantity of data at a time for data associated with the packet;   transferring, by the network device and based on the read requests, the data associated with the packet from the memory to the output switch;   coupling, by the network device, the data associated with the packet; and   streaming, by the network device and based on coupling the data associated with the packet, to a destination.   
     
     
         26 . The method of  claim 25 , further comprising:
 removing key information from the first quantity of data; and   storing the key information in a key buffer.   
     
     
         27 . The method of  claim 25 , where the fixed-length quantities of data are stored in the memory in a time division, multiplexed manner. 
     
     
         28 . The method of  claim 25 , where the offset information indicates offsets in the memory for each additional quantity of data after the first quantity of data. 
     
     
         29 . The method of  claim 25 , further comprising:
 creating indirect quantities of data to store linking information for the packet based on a length of the packet exceeding a particular number of quantities of data.   
     
     
         30 . The method of  claim 25 , further comprising:
 determining whether a number of the fixed-length quantities of data exceeds a number of available offsets in an indirect quantity of data;   storing a first indirect quantity of data in the memory based on the number of the fixed-length quantities of data exceeding the number of available offsets in the indirect quantity of data;   creating a second indirect quantity of data; and   loading the second indirect quantity of data based on offsets calculated for each new quantity of data received at the input switch.   
     
     
         31 . The method of  claim 25 , where the lookup operation includes a plurality of chained lookup operations. 
     
     
         32 . A network device comprising:
 one or more processors to:
 receive a packet; 
 divide the packet into fixed-length quantities of data; 
 transfer the fixed-length quantities of data into an input switch of the network device,
 the fixed-length quantities of data being stored in a memory of the network device, 
 an address of a first quantity of data, of the fixed-length quantities of data, being stored by the input switch, and 
 offset information regarding other quantities of data, of the fixed-length quantities of data, being computed by the input switch; 
 
 transfer the address and the offset information as a lookup request to a controller of the network device; 
 receive a result of a lookup operation based on the lookup request; 
 transfer the result to an output switch of the network device; 
 generate read requests a quantity of data at a time for data associated with the packet; 
 transfer, based on the read requests, the data associated with the packet from the memory to the output switch; 
 couple the data associated with the packet; and 
 stream, based on coupling the data associated with the packet, to a destination. 
   
     
     
         33 . The network device of  claim 32 , where the result includes a destination port, the address, the offset information, and a next hop index. 
     
     
         34 . The network device of  claim 32 , where the read requests are issued in a time division multiplexed fashion. 
     
     
         35 . The network device of  claim 32 , where a single read request of the read requests are generated for each memory bank per slot. 
     
     
         36 . The network device of  claim 32 , where the one or more processors, when transferring the data associated with the packet from the memory to the output switch, are to:
 transfer the data associated with the packet and a multiport identifier associated with a read request of the read requests from the memory to the output switch.   
     
     
         37 . The network device of  claim 32 , where the one or more processors are further to:
 transfer a single quantity of data, of the data associated with the packet, from the output switch to each of a plurality of multiports.   
     
     
         38 . The network device of  claim 32 , where the one or more processors, when coupling the data associated with the packet, are to:
 couple the data associated with the packet with media header information.   
     
     
         39 . A non-transitory computer-readable medium storing instructions, the instructions comprising:
 one or more instructions which, when executed by one or more processors of a network device, cause the one or more processors to:
 receive a packet; 
 divide the packet into fixed-length quantities of data; 
 transfer the fixed-length quantities of data into an input switch of the network device,
 the fixed-length quantities of data being stored in a memory of the network device, 
 an address of a first quantity of data, of the fixed-length quantities of data, being stored by the input switch, and 
 offset information regarding other quantities of data, of the fixed-length quantities of data, being computed by the input switch; 
 
 transfer the address and the offset information as a lookup request to a controller of the network device; 
 receive a result of a lookup operation based on the lookup request; 
 transfer the result to an output switch of the network device; 
 generate read requests a quantity of data at a time for data associated with the packet; 
 transfer, based on the read requests, the data associated with the packet from the memory to the output switch; 
 couple the data associated with the packet; and 
 stream, based on coupling the data associated with the packet, to a destination. 
   
     
     
         40 . The non-transitory computer-readable medium of  claim 39 , where each of the fixed-length quantities of data comprises a header that includes at least one of:
 a type field,   a stream field, or   a packet header field.   
     
     
         41 . The non-transitory computer-readable medium of  claim 40 , where the type field indicates a type of data to be transferred. 
     
     
         42 . The non-transitory computer-readable medium of  claim 40 , where the stream field indicates a stream to which the data associated with the packet belongs. 
     
     
         43 . The non-transitory computer-readable medium of  claim 40 , where the packet header field includes at least one of:
 start offset information,   packet length information, or   interface index information.   
     
     
         44 . The non-transitory computer-readable medium of  claim 39 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
 mark each quantity of data of the fixed-length quantities of data as one of:
 a first quantity of data, 
 an intermediate quantity of data, 
 a last quantity of data, or 
 a first quantity of data that is also a last quantity of data.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.