US Patent No. 10,541,946

PROGRAMMABLE VISIBILITY ENGINES


Patent No. 10,541,946
Issue Date January 21, 2020
Title Programmable Visibility Engines
Inventorship William Brad Matthews, San Jose, CA (US)
Puneet Agarwal, Cupertino, CA (US)
Assignee Innovium, Inc., San Jose, CA (US)

Claim of US Patent No. 10,541,946

1. A networking apparatus comprising:communication interfaces configured to receive and send packets over one or more networks;
forwarding logic configured to process the packets before forwarding the packets out the communication interfaces to destinations of the packets;
one or more traffic managers configured to manage flows of the packets to the forwarding logic;
one or more memories storing one or more statistics related to operations of the forwarding logic, the one or more traffic managers, and/or the communication interfaces;
at least one or more hardware programmable visibility engines, each programmable visibility engine of the one or more hardware programmable visibility engines comprising function logic implementing a defined set of functions, each of the functions configured to perform one or more calculations on one or more inputs to produce one or more outputs, the programmable visibility engine executing, in a given execution cycle, a set of functions, from them the defined set of functions, that are indicated to be active by a function selector bitmap that was inputted into the programmable visibility engine for the given execution cycle, a given active function operating on one or more data value inputs bound dynamically to the given active function, the one or more data value inputs including a particular address of the one or more memories or an input signal from one of the forwarding logic or one or more traffic managers;
for each programmable visibility engine of the one or more hardware programmable visibility engines, a dynamically configurable address map that maps specific memory locations in the one or more memories to specific outputs of the functions of the programmable visibility engine, a given active function of the defined set of functions configured to write a result value to a particular memory location, of the memory locations, that the address map mapped to the given active function.