Patents Assigned to NETRONOME SYSTEMS INC.
  • Patent number: 9146920
    Abstract: A transactional memory (TM) receives an Atomic Look-up, Add and Lock (ALAL) command across a bus from a client. The command includes a first value. The TM pulls a second value. The TM uses the first value to read a set of memory locations, and determines if any of the locations contains the second value. If no location contains the second value, then the TM locks a vacant location, adds the second value to the vacant location, and sends a result to the client. If a location contains the second value and it is not locked, then the TM locks the location and returns a result to the client. If a location contains the second value and it is locked, then the TM returns a result to the client. Each location has an associated data structure. Setting the lock field of a location locks access to its associated data structure.
    Type: Grant
    Filed: September 10, 2012
    Date of Patent: September 29, 2015
    Assignee: NETRONOME SYSTEMS, INC.
    Inventors: Gavin J. Stark, Johann Heinrich Tönsing
  • Patent number: 9124644
    Abstract: An egress packet modifier includes a script parser and a pipeline of processing stages. Rather than performing egress modifications using a processor that fetches and decodes and executes instructions in a classic processor fashion, and rather than storing a packet in memory and reading it out and modifying it and writing it back, the packet modifier pipeline processes the packet by passing parts of the packet through the pipeline. A processor identifies particular egress modifications to be performed by placing a script code at the beginning of the packet. The script parser then uses the code to identify a specific script of opcodes, where each opcode defines a modification. As a part passes through a stage, the stage can carry out the modification of such an opcode. As realized using current semiconductor fabrication process, the packet modifier can modify 200M packets/second at a sustained rate of up to 100 gigabits/second.
    Type: Grant
    Filed: July 14, 2013
    Date of Patent: September 1, 2015
    Assignee: NETRONOME SYSTEMS, INC.
    Inventors: Chirag P. Patel, Gavin J. Stark
  • Patent number: 9100212
    Abstract: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a base address, a starting bit position, and a mask size. In response to the lookup command, the TM pulls an input value (IV). The TM uses the starting bit position and the mask size to select a portion of the IV. A first sub-portion of the portion of the IV and the base address are summed to generate a memory address. The memory address is used to read a word containing multiple result values (RVs) from memory. One RV from the word is selected using a multiplexing circuit and a second sub-portion of the portion of the IV. If the selected RV is a final value, then lookup operation is complete and the TM sends the RV to the processor, otherwise the TM performs another lookup operation based upon the selected RV.
    Type: Grant
    Filed: July 18, 2012
    Date of Patent: August 4, 2015
    Assignee: NETRONOME SYSTEMS, INC.
    Inventors: Gavin J. Stark, Ron L. Swartzentruber
  • Patent number: 9098353
    Abstract: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a memory address, a starting bit position, and a mask size. In response to the command, the TM pulls an input value (IV). The memory address is used to read a word containing multiple result values (RVs) and multiple threshold values (TVs) from memory. A selecting circuit within the TM uses the starting bit position and mask size to select a portion of the IV. The portion of the IV is a lookup key value (LKV). The multiple TVs define multiple lookup key ranges. The TM determines which lookup key range includes the LKV. A RV is selected based upon the lookup key range determined to include the LKV. The lookup key range is determined by a lookup key range identifier circuit. The selected RV is selected by a result value selection circuit.
    Type: Grant
    Filed: November 13, 2012
    Date of Patent: August 4, 2015
    Assignee: NETRONOME SYSTEMS, INC.
    Inventor: Gavin J. Stark
  • Patent number: 9098264
    Abstract: A transactional memory (TM) receives a lookup command across a bus from a processor. Only final result values are stored in memory. The command includes a base address, a starting bit position, and mask size. In response to the lookup command, the TM pulls an input value (IV). A selecting circuit within the TM uses the starting bit position and mask size to select a portion of the IV. The portion of the IV and the base address are used to generate a memory address. The memory address is used to read a word containing multiple result values (RVs) from memory. One RV from the word is selected using a multiplexing circuit and a result location value (RLV) generated from the portion of the IV. A word selector circuit and arithmetic circuits are used to generate the memory address and RLV. The TM sends the selected RV to the processor.
    Type: Grant
    Filed: July 18, 2012
    Date of Patent: August 4, 2015
    Assignee: NETRONOME SYSTEMS, INC.
    Inventors: Gavin J. Stark, Hetal Sanket Borad
  • Patent number: 9092284
    Abstract: An entropy storage ring includes an input node, a plurality of serial-connected stages, and an output node. Each stage includes an XOR (or XNOR) circuit, a delay element having an input coupled to the XOR output, and a combinatorial circuit having an output coupled to a second input of the XOR. The combinatorial circuit may be a NAND, NOR, AND or OR gate. A first input of the XOR is the data input of the stage. The output of the delay element is the data output of the stage. A first input of the combinatorial circuit is coupled to receive an enable bit from a configuration register. A second input of the combinatorial circuit is coupled to the ring output node. In operation, a bit stream is supplied onto the ring input node. Feedback of multiple stages are enabled so that the bit stream undergoes complex permutation as it circulates.
    Type: Grant
    Filed: September 25, 2013
    Date of Patent: July 28, 2015
    Assignee: NETRONOME SYSTEMS, INC.
    Inventor: Gavin J. Stark
  • Publication number: 20150194215
    Abstract: A first packet of a flow received onto an OpenFlow switch causes a flow entry to be added to a flow table, but the associated action is to perform a TCAM lookup. A request is sent to an OpenFlow controller. A response OpenFlow message indicates an action. The response passes through a special dedicated egress fast-path such that the action is applied and the first packet is injected into the main data output path of the switch. A TCAM entry is also added that indicates the action. A second packet of the flow is then received and a flow table lookup causes a TCAM lookup, which indicates the action. The action is applied to the second packet, the packet is output from the switch, and the lookup table is updated so the flow entry will thereafter directly indicate the action. Subsequent packets of the flow do not involve TCAM lookups.
    Type: Application
    Filed: January 9, 2014
    Publication date: July 9, 2015
    Applicant: NETRONOME SYSTEMS, INC.
    Inventors: Gareth R. Douglas, Ciaran J. Toal, Sandra Scott-Hayward
  • Publication number: 20150193374
    Abstract: An automaton hardware engine employs a transition table organized into 2n rows, where each row comprises a plurality of n-bit storage locations, and where each storage location can store at most one n-bit entry value. Each row corresponds to an automaton state. In one example, at least two NFAs are encoded into the table. The first NFA is indexed into the rows of the transition table in a first way, and the second NFA is indexed in to the rows of the transition table in a second way. Due to this indexing, all rows are usable to store entry values that point to other rows.
    Type: Application
    Filed: January 9, 2014
    Publication date: July 9, 2015
    Applicant: NETRONOME SYSTEMS, INC.
    Inventors: Gavin J. Stark, Steven W. Zagorianakos
  • Publication number: 20150089165
    Abstract: A transactional memory (TM) includes a control circuit pipeline and an associated memory unit. The memory unit stores a plurality of rings. The pipeline maintains, for each ring, a head pointer and a tail pointer. A ring operation stage of the pipeline maintains the pointers as values are put onto and are taken off the rings. A put command causes the TM to put a value into a ring, provided the ring is not full. A get command causes the TM to take a value off a ring, provided the ring is not empty. A put with low priority command causes the TM to put a value into a ring, provided the ring has at least a predetermined amount of free buffer space. A get from a set of rings command causes the TM to get a value from the highest priority non-empty ring (of a specified set of rings).
    Type: Application
    Filed: September 25, 2013
    Publication date: March 26, 2015
    Applicant: NETRONOME SYSTEMS, INC.
    Inventor: Gavin J. Stark
  • Publication number: 20150058551
    Abstract: A transactional memory (TM) includes a selectable bank of hardware algorithm prework engines, a selectable bank of hardware lookup engines, and a memory unit. The memory unit stores result values (RVs), instructions, and lookup data operands. The transactional memory receives a lookup command across a bus from one of a plurality of processors. The lookup command includes a source identification value, data, a table number value, and a table set value. In response to the lookup command, the transactional memory selects one hardware algorithm prework engine and one hardware lookup engine to perform the lookup operation. The selected hardware algorithm prework engine modifies data included in the lookup command. The selected hardware lookup engine performs a lookup operation using the modified data and lookup operands provided by the memory unit. In response to performing the lookup operation, the transactional memory returns a result value and optionally an instruction.
    Type: Application
    Filed: August 20, 2013
    Publication date: February 26, 2015
    Applicant: NETRONOME SYSTEMS, INC.
    Inventor: Gavin J. Stark
  • Publication number: 20150054547
    Abstract: A hardware prefix reduction circuit includes a plurality of levels. Each level includes an input conductor, an output conductor, and a plurality of nodes. Each node includes a buffer and a storage device that stores a digital logic level. One node further includes an inverter. Another node further includes an AND gate with two non-inverting inputs. Another node further includes an AND gate with an inverting input and a non-inverting input. One bit of an input value, such as an internet protocol address, is communicated on the input conductor. The first level of the prefix reduction circuit includes two nodes and each subsequent level includes twice as many nodes as is included in the preceding level. A digital logic level is individually programmed into each storage device. The digital logic levels stored in the storage devices determines the prefix reduction algorithm implemented by the hardware prefix reduction circuit.
    Type: Application
    Filed: August 20, 2013
    Publication date: February 26, 2015
    Applicant: NETRONOME SYSTEMS, INC.
    Inventor: Gavin J. Stark
  • Publication number: 20150003237
    Abstract: A network appliance includes a first and second compliance checker and an action identifier. Each compliance checker includes a first and second lookup operator. Traffic data is received by the network appliance. A field within the traffic data is separated into a first and second subfield. The first lookup operator performs a lookup operation on the first subfield of the traffic data and generates a first lookup result. The second lookup operator performs a lookup operation on the second subfield of the traffic data and generates a second lookup result. A compliance result is generated by a lookup result analyzer based on the first and second lookup results. An action is generated by an action identifier based at least in part on the compliance result. The action indicates whether or not additional inspection of the traffic data is required. The first and second lookup operators may perform different lookup methodologies.
    Type: Application
    Filed: June 28, 2013
    Publication date: January 1, 2015
    Applicant: NETRONOME SYSTEMS, INC.
    Inventors: Keissy Guerra, Sandra Scott-Hayward, Sakir Sezer, Xin Yang
  • Publication number: 20140233394
    Abstract: A first switch in a MPLS network receives a plurality of packets. The plurality of packets are part of a pair of flows. The first switch performs a packet prediction learning algorithm on the first plurality of packets and generates packet prediction information. The first switch communicates the packet prediction information to a Network Operation Center (NOC). In response, the NOC communicates the packet prediction information to a second switch within the MPLS network utilizing OpenFlow messaging. In a first example, the NOC communicates a packet prediction control signal to the second switch. In a second example, a packet prediction control signal is not communicated. In the first example, based on the packet prediction control signal, the second switch determines if it will utilize the packet prediction information. In the second example, the second switch independently determines if the packet prediction information is to be used.
    Type: Application
    Filed: April 28, 2014
    Publication date: August 21, 2014
    Applicant: NETRONOME SYSTEMS, INC.
    Inventors: Nicolaas J. Viljoen, Sandra Scott-Hayward
  • Publication number: 20140201728
    Abstract: Software update information is communicated to a network appliance either across a network or from a local memory device. The software update information includes kernel data, application data, or indicator data. The network appliance includes a first storage device, a second storage device, an operating memory, a central processing unit (CPU), and a network adapter. First and second storage devices are persistent storage devices. In a first example, both kernel data and application data are updated in the network appliance in response to receiving the software update information. In a second example, only the kernel data is updated in the network appliance in response to receiving the software update information. In a third example, only the application data is updated in the network appliance in response to receiving the software update information. Indicator data included in the software update information determines the data to be updated in the network appliance.
    Type: Application
    Filed: January 14, 2013
    Publication date: July 17, 2014
    Applicant: NETRONOME SYSTEMS, INC.
    Inventors: ROELOF NICO DU TOIT, NOAH ZEV ROBBIN, JASON SCOTT MCMULLAN
  • Publication number: 20110093663
    Abstract: A microcontroller system may include a microcontroller having a processor and a first memory, a memory bus and a second memory in communication with the microcontroller via the memory bus. The first memory may include instructions for accessing a first data set from a contiguous memory block in the second memory. The first data set may include a first word having a first value and a plurality of first other words. The first memory may include instructions for receiving a write instruction including a second data set to be written to the contiguous memory block. The first memory may include instructions for determining whether the first value equals the second value. If so, the first memory may include instructions for writing the second data set to the contiguous memory block and updating the first value.
    Type: Application
    Filed: October 15, 2009
    Publication date: April 21, 2011
    Applicant: NETRONOME SYSTEMS, INC.
    Inventors: Derek McAuley, Gavin Stark
  • Publication number: 20090204723
    Abstract: A system and method for handling a digital electronic flow between a first and second entity in which a flow policy is determined that is to be applied to the flow and the flow is then directed along a path in accordance with the policy. An ID is supplied for each flow and a tag associated with each flow which indicates the policy to be applied to its associated flow. Flows are also associated with one another, with associated flows having associated policies. In particular the flow may be processed or forwarded. The path may include a graph structure and virtual applications.
    Type: Application
    Filed: August 23, 2006
    Publication date: August 13, 2009
    Applicant: NETRONOME SYSTEMS INC.
    Inventors: Johann Heinrich Tonsing, Roelof Nico DuToit, Gysbert Floris van Beek Van Leeuwen, Jan Niel Viljoen, David Wells, Leon Johannes Brits, Jan Christoffel DuToit
  • Publication number: 20090201978
    Abstract: A method and apparatus for improving channel estimation within an OFDM communication system. Channel estimation in OFDM is usually performed with the aid of pilot symbols. The pilot symbols are typically spaced in time and frequency. The set of frequencies and times at which pilot symbols are inserted is referred to as a pilot pattern. In some cases, the pilot pattern is a diagonal-shaped lattice, either regular or irregular. The method first interpolates in the direction of larger coherence (time or frequency). Using these measurements, the density of pilot symbols in the direction of faster change will be increased thereby improving channel estimation without increasing overhead. As such, the results of the first interpolating step can then be used to assist the interpolation in the dimension of smaller coherence (time or frequency).
    Type: Application
    Filed: August 23, 2006
    Publication date: August 13, 2009
    Applicant: NETRONOME SYSTEMS INC.
    Inventors: Johann Heinrich Tönsing, Roelof Nico DuToit, Gysbert Floris van Beek Van Leeuwen