US2017237661A1PendingUtilityA1
Processing packets by a network device
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-modified1 - 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.