US 12,445,541 B1
Network device with database for accelerating packet processing
Zvi Shmilovici Leib, Tel Aviv (IL)
Assigned to Marvell Israel (M.I.S.L) Ltd., Yokneam (IL)
Filed by Marvell Israel (M.I.S.L) Ltd., Yokneam (IL)
Filed on Apr. 18, 2023, as Appl. No. 18/136,300.
Claims priority of provisional application 63/331,991, filed on Apr. 18, 2022.
Int. Cl. H04L 69/22 (2022.01); H04L 45/745 (2022.01); H04L 49/00 (2022.01)
CPC H04L 69/22 (2013.01) [H04L 45/745 (2013.01); H04L 49/3063 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A network device for processing packets, the network device comprising:
a plurality of network interfaces; and
a packet processor coupled to the plurality of network interfaces, the packet processor configured to process packet headers of packets received via the plurality of network interfaces to determine network interfaces via which the packets are to be transmitted, the packet processor comprising:
a header parser engine configured to, for each of at least some of the packets, parse a header portion of the packet to identify header fields in the packet that are defined by one or more network communication protocols,
a first lookup engine coupled to a first database, the first lookup engine configured to, for each of at least some of the packets: i) generate a first lookup key using a plurality of header fields identified by the header parser engine, ii) perform a first lookup in the first database for the packet using the first lookup key, and iii) in response to finding a match of the first lookup key in the first database, determine a plurality of processing actions to be performed by the packet processor in connection with the packet,
a plurality of second lookup engines, each second lookup engine configured to, for each of at least some of the packets: i) selectively perform a respective second lookup in a respective second database for the packet using a respective second lookup key that includes a respective set of one or more header fields identified by the header parser engine, and ii) selectively determine, based on the second lookup, one or more processing actions to be performed by the packet processor in connection with the packet, and
a controller configured to cause the plurality of second lookup engines to skip performing the second lookups for the packet in response to the first lookup engine finding the match of the first lookup key in the first database.