Patents by Inventor John Keen
John Keen has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9391958Abstract: A firewall device may include a forwarding component that includes a filter block. The filter block may obtain a first hardware-implemented filter, where a hardware implementation limits the first hardware-implemented filter to a maximum quantity of rules; determine whether a last rule associated with the accessed hardware-implemented filter includes a split-filter action, where the split-filter action identifies a second hardware-implemented filter; and link the second hardware-implemented filter to the first hardware-implemented filter to make the second hardware-implemented filter a logical continuation of the first hardware-implemented filter, in response to determining that the last rule includes the split-filter action.Type: GrantFiled: June 30, 2014Date of Patent: July 12, 2016Assignee: Juniper Networks, Inc.Inventors: Venkatasubramanian Swaminathan, Deepak Goel, Jianhui Huang, John Keen, Jean-Marc Frailong, Srinivasan Jagannadhan, Srilakshmi Adusumalli
-
Patent number: 9098262Abstract: A processor may include a conditional arithmetic logic unit and a main arithmetic logic unit. The conditional arithmetic logic unit may perform a first arithmetic logic operation to generate a first result, and output the result. The main arithmetic logic unit may select input buses among a plurality of data buses that carry the first result from the conditional arithmetic logic unit, perform a second arithmetic logic operation on data provided by the selected input buses to generate a second result, and write the second result in a storage component.Type: GrantFiled: October 31, 2014Date of Patent: August 4, 2015Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Pradeep S. Sindhu, Jeffrey G. Libby, Jian Hui Huang, Rajesh Nair, John Keen
-
Patent number: 9026424Abstract: A device may emulate target instructions by executing a first set of microinstructions, and may store a base address of a table that includes a microinstruction provided in a second set of microinstructions for emulating the target instructions. The device may also locate the microinstruction based on the stored base address, and emulate one of the target instructions by executing the microinstruction.Type: GrantFiled: October 27, 2008Date of Patent: May 5, 2015Assignee: Juniper Networks, Inc.Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Sharada Yeluri, Jianhui Huang, John Keen, Rajesh Nair
-
Publication number: 20150058599Abstract: A processor may include a conditional arithmetic logic unit and a main arithmetic logic unit. The conditional arithmetic logic unit may perform a first arithmetic logic operation to generate a first result, and output the result. The main arithmetic logic unit may select input buses among a plurality of data buses that carry the first result from the conditional arithmetic logic unit, perform a second arithmetic logic operation on data provided by the selected input buses to generate a second result, and write the second result in a storage component.Type: ApplicationFiled: October 31, 2014Publication date: February 26, 2015Inventors: Jean-Marc FRAILONG, Pradeep S. SINDHU, Jeffrey G. LIBBY, Jian Hui HUANG, Rajesh NAIR, John KEEN
-
Patent number: 8938469Abstract: An example hashing unit includes a plurality of hardware-based hash tables, wherein each of the hash tables comprises a plurality of buckets, and wherein the plurality of hash tables comprise a set of zero or more active hash tables and a set of one or more inactive hash tables. An example hashing unit controller is configured to receive a key value to be stored in the hashing unit, determine that one of the inactive hash tables should be activated, and, based on the determination, activate the one of the set of inactive hash tables as a recently activated hash table, determine one of the buckets of the recently activated hash table to which a hash function associated with the recently activated hash table maps the received key value, and store the key value in the determined one of the buckets of the recently activated hash table.Type: GrantFiled: September 22, 2011Date of Patent: January 20, 2015Assignee: Juniper Networks, Inc.Inventors: John Keen, Jean-Marc Frailong, Deepak Goel
-
Patent number: 8886827Abstract: An example network device includes a network interface configured to receive a packet of a packet flow, wherein the packet flow is one of a plurality of packet flows processed by the network device, a flow cache configured to receive a lookup key associated with the packet flow, and a Bloom filter configured to process the lookup key. The flow cache is further configured to store information about a portion of the plurality of packet flows processed by the network device, and determine whether to store information about the packet flow by at least applying a selection criterion to processing of the lookup key by the Bloom filter. The flow cache is configured to determine whether the lookup key is stored in the flow cache, and, when the lookup key is stored in the flow cache, retrieve a stored result associated with the lookup key and output the stored result.Type: GrantFiled: February 13, 2012Date of Patent: November 11, 2014Assignee: Juniper Networks, Inc.Inventors: Deepak Goel, John Keen, Venkatasubramanian Swaminathan
-
Patent number: 8880856Abstract: A processor may include a conditional arithmetic logic unit and a main arithmetic logic unit. The conditional arithmetic logic unit may perform a first arithmetic logic operation to generate a first result, and output the result. The main arithmetic logic unit may select input buses among a plurality of data buses that carry the first result from the conditional arithmetic logic unit, perform a second arithmetic logic operation on data provided by the selected input buses to generate a second result, and write the second result in a storage component.Type: GrantFiled: June 17, 2009Date of Patent: November 4, 2014Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Pradeep Sindhu, Jeffrey G. Libby, Jian Hui Huang, Rajesh Nair, John Keen
-
Publication number: 20140325635Abstract: A firewall device may include a forwarding component that includes a filter block. The filter block may obtain a first hardware-implemented filter, where a hardware implementation limits the first hardware-implemented filter to a maximum quantity of rules; determine whether a last rule associated with the accessed hardware-implemented filter includes a split-filter action, where the split-filter action identifies a second hardware-implemented filter; and link the second hardware-implemented filter to the first hardware-implemented filter to make the second hardware-implemented filter a logical continuation of the first hardware-implemented filter, in response to determining that the last rule includes the split-filter action.Type: ApplicationFiled: June 30, 2014Publication date: October 30, 2014Inventors: Venkatasubramanian SWAMINATHAN, Deepak GOEL, Jianhui HUANG, John KEEN, Jean-Marc FRAILONG, Srinivasan JAGANNADHAN, Srilakshmi ADUSUMALLI
-
Patent number: 8799507Abstract: An example network device includes a control plane and a filter lookup module that includes a Bloom filter that supports parallel lookup of a maximum number of different prefix lengths. The filter lookup module accesses the Bloom filter to determine a longest length prefix that matches an entry in a set of prefixes. The control plane receives prefix lengths that include more than the maximum number of different prefix lengths supported by the Bloom filter, wherein the set of prefix lengths is associated with one application, generates, based on the received set of prefix lengths, two or more groups of different prefix lengths, wherein each of the two or more groups of different prefix lengths includes no more than the maximum number of different prefix lengths, and programs the filter lookup module with the two or more groups of different prefix lengths associated with the one application.Type: GrantFiled: March 13, 2012Date of Patent: August 5, 2014Assignee: Juniper Networks, Inc.Inventors: John Keen, Jean-Marc Frailong, Deepak Goel, Srinivasan Jagannadhan, Srilakshmi Adusumalli
-
Patent number: 8800021Abstract: A firewall device may include a forwarding component that includes a filter block. The filter block may obtain a first hardware-implemented filter, where a hardware implementation limits the first hardware-implemented filter to a maximum quantity of rules; determine whether a last rule associated with the accessed hardware-implemented filter includes a split-filter action, where the split-filter action identifies a second hardware-implemented filter; and link the second hardware-implemented filter to the first hardware-implemented filter to make the second hardware-implemented filter a logical continuation of the first hardware-implemented filter, in response to determining that the last rule includes the split-filter action.Type: GrantFiled: June 29, 2011Date of Patent: August 5, 2014Assignee: Juniper Networks, Inc.Inventors: Venkatasubramanian Swaminathan, Deepak Goel, Jianhui Huang, John Keen, Jean-Marc Frailong, Srinivasan Jagannadhan, Srilakshmi Adusumalli
-
Patent number: 8799909Abstract: Systems and methods of various embodiments provide mechanisms to support synchronous and asynchronous transactions. Distinct encodings allow an instruction to choose whether to perform any operation synchronously or asynchronously. Separate synchronous and asynchronous result registers hold the data returned in the most recent replies received for synchronous and asynchronous transaction requests, respectively. A status bit indicates whether an asynchronous transaction request is currently outstanding.Type: GrantFiled: December 23, 2008Date of Patent: August 5, 2014Assignee: Juniper Networks, Inc.Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri, Anurag P. Gupta, John Keen
-
Patent number: 8630294Abstract: An example computing device includes a prefix lookup module, and a Bloom filter that includes a set of queues. The prefix lookup module is configured to receive policy configuration information, examine a state of a queue of the set of queues, and determine whether to bypass the first Bloom filter based on the policy configuration information and the state of the queue. In one example, the prefix lookup module may be configured to, using the policy configuration information, determine to bypass the Bloom filter when the queue is full. In another example, the prefix lookup module may be configured to, using the policy configuration information, determine not to bypass the Bloom filter and send a lookup request to the Bloom filter upon determining that the queue is no longer full.Type: GrantFiled: September 22, 2011Date of Patent: January 14, 2014Assignee: Juniper Networks, Inc.Inventors: John Keen, Jianhui Huang, Deepak Goel, David R. Skinner, Venkatasubramanian Swaminathan
-
Patent number: 8583851Abstract: A device may receive a request to read data from or write data to a memory that includes a number of memory banks. The request may include an address. The device may perform a mapping operation on the address to map the address from a first address space to a second address space, identify one of the memory banks based on the address in the second address space, and send the request to the identified memory bank.Type: GrantFiled: February 25, 2013Date of Patent: November 12, 2013Assignee: Juniper Networks, Inc.Inventors: Anjan Venkatramani, Srinivas Perla, John Keen
-
Publication number: 20130246651Abstract: An example network device includes a control plane and a filter lookup module that includes a Bloom filter that supports parallel lookup of a maximum number of different prefix lengths. The filter lookup module accesses the Bloom filter to determine a longest length prefix that matches an entry in a set of prefixes. The control plane receives prefix lengths that include more than the maximum number of different prefix lengths supported by the Bloom filter, wherein the set of prefix lengths is associated with one application, generates, based on the received set of prefix lengths, two or more groups of different prefix lengths, wherein each of the two or more groups of different prefix lengths includes no more than the maximum number of different prefix lengths, and programs the filter lookup module with the two or more groups of different prefix lengths associated with the one application.Type: ApplicationFiled: March 13, 2012Publication date: September 19, 2013Applicant: JUNIPER NETWORKS, INC.Inventors: John Keen, Jean-Marc Frailong, Deepak Goel, Srinivasan Jagannadhan, Srilakshmi Adusumalli
-
Patent number: 8520675Abstract: Methods and systems consistent with the present invention provide efficient packet replication in a router in order to multicast a stream of data. Packets are replicated and processed in a multithreaded environment. Embodiments consistent with the present invention implement a two-stage process for packet replication. The first stage thread will recirculate the packet to multiple second-stage threads. These second-stage threads will then create one or more outgoing copies of the packet. In this way, the copies are handled by multiple threads running in parallel.Type: GrantFiled: December 23, 2008Date of Patent: August 27, 2013Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Jeffrey G. Libby, Anurag P. Gupta, John Keen, Rajesh Nair, Avanindra Godbole, Sharada Yeluri
-
Publication number: 20130212296Abstract: An example network device includes a network interface configured to receive a packet of a packet flow, wherein the packet flow is one of a plurality of packet flows processed by the network device, a flow cache configured to receive a lookup key associated with the packet flow, and a Bloom filter configured to process the lookup key. The flow cache is further configured to store information about a portion of the plurality of packet flows processed by the network device, and determine whether to store information about the packet flow by at least applying a selection criterion to processing of the lookup key by the Bloom filter. The flow cache is configured to determine whether the lookup key is stored in the flow cache, and, when the lookup key is stored in the flow cache, retrieve a stored result associated with the lookup key and output the stored result.Type: ApplicationFiled: February 13, 2012Publication date: August 15, 2013Applicant: JUNIPER NETWORKS, INC.Inventors: Deepak Goel, John Keen, Venkatasubramanian Swaminathan
-
Patent number: 8397010Abstract: A device may receive a request to read data from or write data to a memory that includes a number of memory banks. The request may include an address. The device may perform a mapping operation on the address to map the address from a first address space to a second address space, identify one of the memory banks based on the address in the second address space, and send the request to the identified memory bank.Type: GrantFiled: July 27, 2007Date of Patent: March 12, 2013Assignee: Juniper Networks, Inc.Inventors: Anjan Venkatramani, Srinivas Perla, John Keen
-
Patent number: 8332622Abstract: Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the condition codes, and can choose a particular branching function. When the processor executes the instruction, the processor's arithmetic/logical functional units evaluate the conditional expressions and then the processor performs the branch operation, according to the specified branching function.Type: GrantFiled: December 12, 2011Date of Patent: December 11, 2012Assignee: Juniper Networks, Inc.Inventors: Anurag P Gupta, John Keen, Jeffrey G Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri
-
Patent number: 8327057Abstract: A device may receive requests intended for a memory that includes a number of banks, determine a number of the requests intended for each of the banks, determine an order for the requests based on the determined number of the requests intended for each of the banks, and send one of the requests to the memory based on the determined order.Type: GrantFiled: July 27, 2007Date of Patent: December 4, 2012Assignee: Juniper Networks, Inc.Inventors: Anjan Venkatramani, Srinivas Perla, John Keen
-
Patent number: 8285914Abstract: A device includes a memory that includes a number of banks. The device receives requests for accessing the memory, determines the banks to which the requests are intended, determines one or more of the banks that are available, selects one or more of the requests to send to the memory based on the one or more of the banks that are available and have a request to be serviced, and sends the selected one or more requests to the memory.Type: GrantFiled: July 27, 2007Date of Patent: October 9, 2012Assignee: Juniper Networks, Inc.Inventors: Anjan Venkatramani, Srinivas Perla, John Keen