Patents by Inventor Jeffrey G. Libby
Jeffrey G. Libby 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: 8078849Abstract: 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 23, 2008Date of Patent: December 13, 2011Assignee: Juniper Networks, Inc.Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Anurag P. Gupta, John Keen, Avanindra Godbole, Sharada Yeluri
-
Patent number: 8069023Abstract: A method for emulating a nexthop instruction in microcode with the assistance of dedicated hardware to extract read and write addressing from the nexthop instruction instead of performing this operation in microcode. A method for emulating a nexthop instruction in microcode with the assistance of dedicated hardware to compare a nexthop read address to a special value and to indicate whether the nexthop read address matches the special value, instead of performing this operation in microcode. A method for determining a network address by performing a single extraction of bit fields of a tree instruction to allow multiple tree search processes to be performed.Type: GrantFiled: September 2, 2008Date of Patent: November 29, 2011Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Jeffrey G. Libby, Jianhui Huang, Sharada Yeluri, Rajesh Nair, John Keen
-
Publication number: 20110170546Abstract: A packet header processing engine includes a memory having a number of distinct portions for respectively storing different types of descriptor information for a header of a packet. A packet header processing unit includes a number of pointers corresponding to the number of distinct memory portions. The packet header processing unit is configured to retrieve the different types of descriptor information from the number of distinct memory portions and to generate header information from the different types of descriptor information.Type: ApplicationFiled: March 25, 2011Publication date: July 14, 2011Applicant: JUNIPER NETWORKS, INC.Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
-
Publication number: 20110158124Abstract: Data units received by a network device may be classified into traffic flow classes in which the determined traffic flow class for a data unit may be dynamically refined as the data unit is processed by the network device. A dispatch component of the network device may receive data units associated with traffic flow classes. Parallel processing engines of the network device may receive the data units from the dispatch component and may generate, for a least one of the data units, a plurality of dynamically refined indications of the traffic flow class to which the data unit belongs. Additionally, an ordering component of the network device may include a plurality of re-order queues, where the at least one data unit successively progresses through at least two of the re-order queues in an order defined by the plurality of dynamically refined indications of the traffic flow class.Type: ApplicationFiled: March 10, 2011Publication date: June 30, 2011Applicant: JUNIPER NETWORKS, INC.Inventors: Jean-Marc FRAILONG, Sharada Yeluri, Anurag P. Gupta, Jeffrey G. Libby, Edwin Su
-
Publication number: 20110142070Abstract: A packet header processing engine receives a header of a packet. The received header includes a size of the packet. A maximum transfer unit size of a destination interface of the packet may be determined. The packet header processing engine determines whether the size of the packet exceeds the maximum transfer unit size of the destination interface. If the size of the packet does not exceed the maximum transfer unit size of the destination interface, the packet header processing engine generates a new header from the received header. If the size of the packet exceeds the maximum transfer unit size of the destination interface, the packet header processing engine generates a fragment header from the received header. The packet header processing engine may recycle the fragment header for further processing in addition to forming a first fragment packet from the fragment header.Type: ApplicationFiled: February 18, 2011Publication date: June 16, 2011Applicant: JUNIPER NETWORKS, INC.Inventors: Raymond Marcelino Manese LIM, Jeffrey G. Libby
-
Patent number: 7936758Abstract: A packet header processing engine includes a memory having a number of distinct portions for respectively storing different types of descriptor information for a header of a packet. A packet header processing unit includes a number of pointers corresponding to the number of distinct memory portions. The packet header processing unit is configured to retrieve the different types of descriptor information from the number of distinct memory portions and to generate header information from the different types of descriptor information.Type: GrantFiled: May 4, 2010Date of Patent: May 3, 2011Assignee: Juniper Networks, Inc.Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
-
Patent number: 7924860Abstract: Data units received by a network device may be classified into traffic flow classes in which the determined traffic flow class for a data unit may be dynamically refined as the data unit is processed by the network device. A dispatch component of the network device may receive data units associated with traffic flow classes. Parallel processing engines of the network device may receive the data units from the dispatch component and may generate, for a least one of the data units, a plurality of dynamically refined indications of the traffic flow class to which the data unit belongs. Additionally, an ordering component of the network device may include a plurality of re-order queues, where the at least one data unit successively progresses through at least two of the re-order queues in an order defined by the plurality of dynamically refined indications of the traffic flow class.Type: GrantFiled: December 23, 2008Date of Patent: April 12, 2011Assignee: Juniper Networks, Inc.Inventors: Jean-Marc Frailong, Sharada Yeluri, Anurag P. Gupta, Jeffrey G. Libby, Edwin Su
-
Patent number: 7916632Abstract: A packet header processing engine receives a header of a packet. The received header includes a size of the packet. A maximum transfer unit size of a destination interface of the packet may be determined. The packet header processing engine determines whether the size of the packet exceeds the maximum transfer unit size of the destination interface. If the size of the packet does not exceed the maximum transfer unit size of the destination interface, the packet header processing engine generates a new header from the received header. If the size of the packet exceeds the maximum transfer unit size of the destination interface, the packet header processing engine generates a fragment header from the received header. The packet header processing engine may recycle the fragment header for further processing in addition to forming a first fragment packet from the fragment header.Type: GrantFiled: September 29, 2009Date of Patent: March 29, 2011Assignee: Juniper Networks, Inc.Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
-
Patent number: 7859999Abstract: A system for multicasting a packet of data to a single data stream is provided. The system may determine a size of the packet and may send a single copy of the packet if the size of the packet exceeds a threshold value. A number of copies of the packet yet to be multicast may be ascertained if the size of the packet of data does not exceed the threshold value. Copies of the packet may be transmitted based on the number of copies of the packet yet to be multicast.Type: GrantFiled: September 20, 2007Date of Patent: December 28, 2010Assignee: Juniper Networks, Inc.Inventors: Debashis Basu, Avanindra Godbole, Raymond M. Lim, Jeffrey G. Libby
-
Publication number: 20100265967Abstract: A packet header processing engine includes a packet processing unit that is configured to generate the packet header information based on the packet header data. A checksum generating unit is connected to the packet processing unit. The checksum generating unit is configured to compute and store a partial checksum for a packet header being processed by the packet processing unit. After all packet header information for a packet is stored in the buffer, the checksum generating unit contains a complete checksum for the packet header.Type: ApplicationFiled: July 1, 2010Publication date: October 21, 2010Applicant: JUNIPER NETWORKS, INC.Inventors: Raymond Marcelino Manese LIM, Jeffrey G. LIBBY
-
Publication number: 20100215046Abstract: A packet header processing engine includes a memory having a number of distinct portions for respectively storing different types of descriptor information for a header of a packet. A packet header processing unit includes a number of pointers corresponding to the number of distinct memory portions. The packet header processing unit is configured to retrieve the different types of descriptor information from the number of distinct memory portions and to generate header information from the different types of descriptor information.Type: ApplicationFiled: May 4, 2010Publication date: August 26, 2010Applicant: JUNIPER NETWORKS, INC.Inventors: Raymond Marcelino Manese LIM, Jeffrey G. LIBBY
-
Patent number: 7782857Abstract: A packet header processing engine includes a memory having a number of distinct portions for respectively storing different types of descriptor information for a header of a packet. A packet header processing unit includes a number of pointers corresponding to the number of distinct memory portions. The packet header processing unit is configured to retrieve the different types of descriptor information from the number of distinct memory portions and to generate header information from the different types of descriptor information.Type: GrantFiled: April 3, 2007Date of Patent: August 24, 2010Assignee: Juniper Networks, Inc.Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
-
Patent number: 7773599Abstract: A network device may include a packet header processing engine configured to receive a packet containing packet header information that includes a maximum transfer unit size and a packet length, and determine whether the packet length is greater than the maximum transfer unit size. The packet header processing engine may also be configured to generate and transmit new packet header information when the packet length is less than the maximum transfer unit size, and generate a first fragment header when the packet length is greater than the maximum transfer unit size. The packet header processing engine may further be configured to transmit the first fragment header for generation of a first packet fragment when the packet length is greater than the maximum transfer unit size.Type: GrantFiled: September 11, 2007Date of Patent: August 10, 2010Assignee: Juniper Networks, Inc.Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
-
Publication number: 20100165990Abstract: A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit for each of replicated notifications. The network device forwards each copy of the multicast data unit towards a multicast destination.Type: ApplicationFiled: March 12, 2010Publication date: July 1, 2010Applicant: Juniper Networks, Inc.Inventors: Pradeep SINDHU, Debashis BASU, Pankaj PATEL, Raymond LIM, Avanindra GODBOLE, Tatao CHUANG, Chi-Chung K. CHEN, Jeffrey G. LIBBY, Dennis FERGUSON, Philippe LACROUTE, Gerald CHEUNG
-
Publication number: 20100161949Abstract: 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: ApplicationFiled: December 23, 2008Publication date: June 24, 2010Applicant: JUNIPER NETWORKS, INC.Inventors: Anurag P. Gupta, John Keen, Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri
-
Patent number: 7710994Abstract: A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit for each of replicated notifications. The network device forwards each copy of the multicast data unit towards a multicast destination.Type: GrantFiled: September 12, 2007Date of Patent: May 4, 2010Assignee: Juniper Networks, Inc.Inventors: Pradeep Sindhu, Debashis Basu, Pankaj Patel, Raymond Lim, Avanindra Godbole, Tatao Chuang, Chi-Chung K. Chen, Jeffrey G. Libby, Dennis Fersuson, Philippe Lacroute, Gerald Cheung
-
Patent number: 7680116Abstract: A processing engine for processing header data includes a level 2 (L2) header generation unit and a level 3 (L3) header generation unit. The L2 and L3 header generation units are implemented in parallel with one another. The L2 generation unit writes L2 header information to a first buffer and the L3 generation unit writes L3 header information to a second buffer. When the L2 and L3 header generation units finish processing a data unit, the data unit may be unloaded from the first and second buffer while a new data unit is simultaneously loaded to the header processing engine.Type: GrantFiled: March 27, 2007Date of Patent: March 16, 2010Assignee: Juniper Networks, Inc.Inventors: Raymond M. Lim, Jeffrey G. Libby
-
Patent number: 7616562Abstract: A packet header processing engine receives a header of a packet. The received header includes a size of the packet. A maximum transfer unit size of a destination interface of the packet may be determined. The packet header processing engine determines whether the size of the packet exceeds the maximum transfer unit size of the destination interface. If the size of the packet does not exceed the maximum transfer unit size of the destination interface, the packet header processing engine generates a new header from the received header. If the size of the packet exceeds the maximum transfer unit size of the destination interface, the packet header processing engine generates a fragment header from the received header. The packet header processing engine may recycle the fragment header for further processing in addition to forming a first fragment packet from the fragment header.Type: GrantFiled: May 22, 2007Date of Patent: November 10, 2009Assignee: Juniper Networks, Inc.Inventors: Raymond M. Lim, Jeffrey G. Libby
-
Patent number: 7289503Abstract: A network device includes an interface and packet processing logic. The interface receives a multicast packet. The packet processing logic determines identifier data corresponding to the received multicast packet and replicates the identifier data to multiple outgoing packet forward engines at a first point in a processing path. The packet processing logic further replicates the identifier data to multiple data streams at a second point in the processing path and replicates the identifier data to multiple logical interfaces in the same stream at a third point in the processing path.Type: GrantFiled: July 30, 2002Date of Patent: October 30, 2007Assignee: Juniper Networks, Inc.Inventors: Pradeep Sindhu, Debashis Basu, Pankaj Patel, Raymond Lim, Avanindra Godbole, Tatao Chuang, Chi-Chung K. Chen, Jeffrey G. Libby, Dennis Ferguson, Philippe Lacroute, Gerald Cheung
-
Patent number: 7283528Abstract: A packet header processing engine includes a packet processing unit that is configured to generate the packet header information based on the packet header data. A checksum generating unit is connected to the packet processing unit. The checksum generating unit is configured to compute and store a partial checksum for a packet header being processed by the packet processing unit. After all packet header information for a packet is stored in the buffer, the checksum generating unit contains a complete checksum for the packet header.Type: GrantFiled: March 22, 2002Date of Patent: October 16, 2007Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby