Patents Assigned to Innovium, Inc.
  • Patent number: 10735337
    Abstract: A network traffic manager receives, from an ingress port, a cell of a packet destined for an egress port. Upon determining that a number of cells of the packet stored in a buffer queue meets a threshold value, the manager checks whether the ingress port has been assigned a token corresponding to the queue. Upon determining that the ingress port has been assigned the token, the manager determines whether other cells of the packet are stored in the buffer, in response to which the manager stores the received cell in the buffer, and stores linking information for the received cell in a receive context for the packet. When all cells of the packet have been received, the manager copies linking information for the packet cells from the receive context to the buffer queue or a copy generator queue, and releases the token from the ingress port.
    Type: Grant
    Filed: December 28, 2018
    Date of Patent: August 4, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal, Bruce H. Kwan, Ajit K. Jain
  • Patent number: 10735339
    Abstract: A network device organizes packets into various queues, in which the packets await processing. Queue management logic tracks how long certain packet(s), such as a designated marker packet, remain in a queue. Based thereon, the logic produces a measure of delay for the queue, referred to herein as the “queue delay.” Based on a comparison of the current queue delay to one or more thresholds, various associated delay-based actions may be performed, such as tagging and/or dropping packets departing from the queue, or preventing addition enqueues to the queue. In an embodiment, a queue may be expired based on the queue delay, and all packets dropped. In other embodiments, when a packet is dropped prior to enqueue into an assigned queue, copies of some or all of the packets already within the queue at the time the packet was dropped may be forwarded to a visibility component for analysis.
    Type: Grant
    Filed: January 16, 2017
    Date of Patent: August 4, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal, Ajit Kumar Jain
  • Patent number: 10716207
    Abstract: An apparatus comprising a printed circuit board (PCB) that includes: a multilayer lamination of layers; vias on a surface of the PCB; and bonding pads that couple a ball grid array of an integrated circuit (IC) package to layers through the vias, wherein the bonding pads includes: first bonding pads in a first area of the PCB, each first bonding pad being coupled to a via of the vias in the first area, second bonding pads arranged in a second area of the PCB, each second bonding pad being coupled to a via of the vias in the second area, and third bonding pads arranged in a third area of the PCB, each third bonding pad being coupled to two or more vias of the vias in the third area, wherein the third area is located between the first area and the second area is disclosed.
    Type: Grant
    Filed: August 24, 2018
    Date of Patent: July 14, 2020
    Assignee: Innovium, Inc.
    Inventor: Yongming Xiong
  • Patent number: 10673770
    Abstract: A network device organizes packets into various queues, in which the packets await processing. Queue management logic tracks how long certain packet(s), such as a designated marker packet, remain in a queue. Based thereon, the logic produces a measure of delay for the queue, referred to herein as the “queue delay.” Based on a comparison of the current queue delay to one or more thresholds, various associated delay-based actions may be performed, such as tagging and/or dropping packets departing from the queue, or preventing addition enqueues to the queue. In an embodiment, a queue may be expired based on the queue delay, and all packets dropped. In other embodiments, when a packet is dropped prior to enqueue into an assigned queue, copies of some or all of the packets already within the queue at the time the packet was dropped may be forwarded to a visibility component for analysis.
    Type: Grant
    Filed: February 28, 2019
    Date of Patent: June 2, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal, Ajit Kumar Jain
  • Patent number: 10652154
    Abstract: Approaches, techniques, and mechanisms facilitate actionable reporting of network state information and real-time, autonomous network engineering directly in-network at a switch or other network device. A data collector within the network device collects state information and/or data unit information from various device components, such as traffic managers and packet processors. The data collector, which may optionally generate additional state information by performing various calculations on the information it receives, is configured to then provide at least some of the state information to an analyzer device connected to an analyzer interface. The analyzer device, which may be a separate device, performs various analyses on the state information, depending on how it is configured. The analyzer device outputs reports that identify statuses, errors, misconfigurations, and/or suggested actions to take to improve operation of the network device.
    Type: Grant
    Filed: November 9, 2018
    Date of Patent: May 12, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Bruce Hui Kwan
  • Patent number: 10601711
    Abstract: Certain hash-based operations in network devices and other devices, such as mapping and/or lookup operations, are improved by manipulating a hash key prior to executing a hash function on the hash key and/or by manipulating outputs of a hash function. A device may be configured to manipulate hash keys and/or outputs using manipulation logic based on one or more predefined manipulation values. A similar hash-based operation may be performed by multiple devices within a network of computing devices. Different devices may utilize different predefined manipulation values for their respective implementations of the manipulation logic. For instance, each device may assign itself a random mask value for key transformation logic as part of an initialization process when the device powers up and/or each time the device reboots. In an embodiment, described techniques may increase the entropy of hashing function outputs in certain contexts, thereby increasing the effectiveness of certain hashing functions.
    Type: Grant
    Filed: November 22, 2016
    Date of Patent: March 24, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal
  • Patent number: 10587536
    Abstract: Techniques for improved handling of queues of data units are described, such as queues of buffered data units of differing types and/or sources within a switch or other network device. When the size of a queue surpasses the state entry threshold for a certain state, the queue is said to be in the certain state. While in the certain state, data units assigned to the queue may be handled differently in some respect, such as being marked or being dropped without further processing. The queue remains in this certain state until its size falls below the state release threshold for the state. The state release threshold is adjusted over time in, for example, a random or pseudo-random manner. Among other aspects, in some embodiments, this adjustment of the state release threshold addresses fairness issues that may arise with respect to the treatment of different types or sources of data units.
    Type: Grant
    Filed: June 1, 2018
    Date of Patent: March 10, 2020
    Assignee: Innovium, Inc.
    Inventors: Bruce Hui Kwan, Puneet Agarwal
  • Patent number: 10581759
    Abstract: The efficiency of the network device is improved by sharing a packet processor across two or more control paths. Data unit sources send the first portion of each data unit that passes through the sources to the shared packet processor via their respective control paths. The packet processor generates control information for each of the data units, and sends the control information to a merger component that corresponds to the source of the data unit. The merger component merges the control information with a payload portion of the data unit that the data unit source sent along a separate data path. To better facilitate the sharing of the packet processor, the control paths may converge at an adaptive distributor, which uses a policy-based mechanism to select which data unit portion to forward to the packet processor in a given time slot. The policy may change based on various demand measures.
    Type: Grant
    Filed: July 12, 2018
    Date of Patent: March 3, 2020
    Assignee: Innovium, Inc.
    Inventors: Bruce Hui Kwan, William Brad Matthews, Puneet Agarwal
  • Patent number: 10574577
    Abstract: Approaches, techniques, and mechanisms are disclosed for assigning paths to network packets. The path assignment techniques utilize path state information and/or other criteria to determine whether to route a packet along a primary candidate path selected for the packet, or one or more alternative candidate paths selected for the packet. According to an embodiment, network traffic is at least partially balanced by redistributing only a portion of the traffic that would have been assigned to a given primary path. Move-eligibility criteria are applied to traffic to determine whether a given packet is eligible for reassignment from a primary path to an alternative path. The move-eligibility criteria determine which portion of the network traffic to move and which portion to allow to proceed as normal. In an embodiment, the criteria and functions used to determine whether a packet is redistributable are adjusted over time based on path state information.
    Type: Grant
    Filed: March 1, 2017
    Date of Patent: February 25, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal, Meg Lin, Rupa Budhia
  • Patent number: 10554572
    Abstract: Approaches, techniques, and mechanisms are disclosed for improving the efficiency with which data units are handled within a device, such as a networking device. Received data units, or portions thereof, are temporarily stored within one or more memories of a merging component, while the merging component waits to receive control information for the data units. Once received, the merging component merges the control information with the associated data units. The merging component dispatches the merged data units, or portions thereof, to an interconnect component, which forwards the merged data units to destinations indicated by the control information. The device is configured to intelligently schedule the dispatching of merged data units to the interconnect component. To this end, the device includes a scheduler configured to select which merged data units to dispatch at which times based on a variety of factors described herein.
    Type: Grant
    Filed: February 15, 2017
    Date of Patent: February 4, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Paul Roy Kim, Puneet Agarwal
  • Patent number: 10540867
    Abstract: Approaches, techniques, and mechanisms are disclosed for monitoring and reporting status information in a computing device. According to one embodiment, status messages are generated with respect to a subsystem of a computing system, such as a computer chip configured to perform network switching and routing functions in a network device. The status messages convey status information, such as configuration and/or operational states, metrics, or other statistics. A message decoder within the system may be configured to receive and analyze the status messages. Based thereon, the message decoder generates output data in a specific format that controls an output device, such as an LED array. The message decoder then sends the output data to the output device. Enabling the reporting of status information through LED indicators and other typically custom and proprietary output devices is thus greatly simplified. A status chain for collecting and reporting status information is also described.
    Type: Grant
    Filed: October 10, 2017
    Date of Patent: January 21, 2020
    Assignee: Innovium, Inc.
    Inventors: Kapil Vishwas Shrikhande, David Alan Jarosh, William Brad Matthews
  • Patent number: 10540101
    Abstract: Methods and apparatus for transmit buffers for network devices. One apparatus includes a packing unit, a buffer manager and a plurality of aggregated port buffers, each coupled to receive output from the packing unit. The packing unit is configured to receive packet data as input segments of a first size; generate storage units of a second size; and write each storage unit to a particular aggregated port buffer identified by the buffer manager. The buffer manager is configured to: select a particular aggregated port buffer for each storage unit, and send information to the buffer manager about the selected particular aggregated port buffer; monitor availability of storage space in the aggregated port buffers; control reception of input segments based on storage space availability; and manage transmission of the storage units from the aggregated port buffers to one or more external destinations as output segments of a third size.
    Type: Grant
    Filed: August 2, 2017
    Date of Patent: January 21, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Patrick James Bourke, Puneet Agarwal, Michael John Filardo, Mohammad Kamel Issa, Avinash Gyanendra Mani
  • Patent number: 10541946
    Abstract: Nodes within a network are configured to adapt to changing path states, due to congestion, node failures, and/or other factors. A node may selectively convey path information and/or other state information to another node by annotating the information into packets it receives from the other node. A node may selectively reflect these annotated packets back to the other node, or other nodes that subsequently receive these annotated packets may reflect them. A weighted cost multipathing selection technique is improved by dynamically adjusting weights of paths in response to feedback indicating the current state of the network topology, such as collected through these reflected packets. In an embodiment, certain packets that would have been dropped may instead be transformed into “special visibility” packets that may be stored and/or sent for analysis. In an embodiment, insight into the performance of a network device is enhanced through the use of programmable visibility engines.
    Type: Grant
    Filed: January 19, 2017
    Date of Patent: January 21, 2020
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal
  • Patent number: 10523576
    Abstract: Efficient garbage collection techniques for network packets and other units of data are described. Constituent portions of a data unit are stored in buffer entries spread out across multiple distinct banks. Linking data is generated and stored on a per-bank basis. The linking data defines, for each bank in which data for the data unit is stored, a chain of all entries in that bank that store data for the data unit. When the data unit is dropped or otherwise disposed of, a chain's head entry address may be placed in a garbage collection list for the corresponding bank. A garbage collector uses the linking data to gradually follow the chain of entries for the given bank, and frees each entry in the chain along the way. Optionally, certain addresses in the chain, including each chain's tail address, are immediately freed for the corresponding bank, without waiting to follow the chain.
    Type: Grant
    Filed: July 6, 2018
    Date of Patent: December 31, 2019
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal, Ajit Kumar Jain
  • Patent number: 10516613
    Abstract: Prefix entries are efficiently stored at a networking device for performance of a longest prefix match against the stored entries. A prefix entry generally refers to a data entry which maps a particular prefix to one or more actions to be performed by a networking device with respect to network packets or other data structures associated with a network packet that matches the particular prefix. In the context of a router networking device handling a data packet, the one or more actions may include, for example, forwarding a received network packet to a particular “next hop” networking device in order to progress the network packet towards its final destination, applying firewall rule(s), manipulating the packet, and so forth. To reduce a total amount of space occupied by a prefix tree in storage, each of the nodes of a prefix tree may be configured to store only an incremental portion of a prefix relative to its parent node.
    Type: Grant
    Filed: October 11, 2016
    Date of Patent: December 24, 2019
    Assignee: Innovium, Inc.
    Inventors: Puneet Agarwal, Rupa Budhia, Meg Lin
  • Patent number: 10511531
    Abstract: Input values for various computations in a computing device are transformed to increase the entropy of results thereof. A key value is inputted into one or more folding units, each of which folds sub-elements of the key value together to form a folded key value. Each folding unit is linked to a corresponding addend constructor, which generates an addend value by modifying each field in a corresponding predefined manipulation value with an operation between the field and the corresponding folded key value, or a value derived therefrom. A first value is then transformed using addition between it and each addend value, or an addend-based value derived therefrom. The transformed first value may be utilized in place of the first value in various computations. In an embodiment, hash-based operations in a network device are improved by so transforming a hash key or hash output of a hashing function.
    Type: Grant
    Filed: June 12, 2018
    Date of Patent: December 17, 2019
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal
  • Patent number: 10511538
    Abstract: Described techniques enable resource accounting and tracking in high access rate systems using low cost memories. A first set of counters is maintained in relatively lower cost memory. The first counters generally indicate the amount of resources used for each object in a set of objects, but on a potentially delayed basis. A second set of counters of smaller size is stored in a relatively higher cost memory that supports high arrival and departure rates for accurate accounting. Each second counter indicates the amount of resources assigned (or unassigned) to an object since the object's first counter was last updated, and is incremented or decremented whenever this amount changes. A background process is configured to update individual first counters from the corresponding second counters on a recurring basis. The exact times at which a given first counter is updated may vary in accordance with a variety of approaches.
    Type: Grant
    Filed: February 22, 2018
    Date of Patent: December 17, 2019
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal
  • Patent number: 10505851
    Abstract: Incoming data units within a network apparatus are temporarily buffered before being released to downstream components of the apparatus, such as a traffic manager or packet processor. A congestion detection component monitors for congestion with respect to particular subsets of the data units, such as data units that arrived over a same port or port group. When a metric, such as overutilization of the one or more buffers, indicates a state of congestion with respect to one of one of these subsets, various actions may be taken with respect to the subset to reduce the risk of complications from the congestion. In an embodiment, contrary to the expectation that a state of congestion would demand accelerating the release of data units from the buffer(s), a burst control mechanism is enabled. In an embodiment, the actions may further include temporarily pausing a lossless data stream and/or disabling features such as cut-through switching.
    Type: Grant
    Filed: November 29, 2017
    Date of Patent: December 10, 2019
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Bruce Hui Kwan
  • Patent number: 10469345
    Abstract: Described techniques enable the tracking and reporting of resource utilization at multiple levels of granularity, the highest of which involves tracking resource usage by a particular object in aggregate. When aggregate usage for the particular object is within certain parameters, actual resource usage is not reported at the lower level of granularity, but is replaced by placeholder values. When aggregate usage for the particular object exceeds a threshold, the particular object is considered to be a “hot spot.” Resource usage for the particular object can then be reported (and tracked, if not already) at the lower level of granularity until the particular object is no longer a “hot spot.” The efficiency of the tracking may be further enhanced by leveraging a bifurcated counting mechanism in which a full count is updated only at selected sample times, with intermediate counters used to store changes in between sample times.
    Type: Grant
    Filed: December 31, 2015
    Date of Patent: November 5, 2019
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal
  • Patent number: 10447578
    Abstract: Approaches, techniques, and mechanisms are disclosed for assigning paths to network packets. The path assignment techniques utilize path state information and/or other criteria to determine whether to route a packet along a primary candidate path selected for the packet, or one or more alternative candidate paths selected for the packet. According to an embodiment, network traffic is at least partially balanced by redistributing only a portion of the traffic that would have been assigned to a given primary path. Move-eligibility criteria are applied to traffic to determine whether a given packet is eligible for reassignment from a primary path to an alternative path. The move-eligibility criteria determine which portion of the network traffic to move and which portion to allow to proceed as normal. In an embodiment, the criteria and functions used to determine whether a packet is redistributable are adjusted over time based on path state information.
    Type: Grant
    Filed: March 1, 2017
    Date of Patent: October 15, 2019
    Assignee: Innovium, Inc.
    Inventors: William Brad Matthews, Puneet Agarwal, Meg Lin, Rupa Budhia