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: 8078849
    Abstract: 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: Grant
    Filed: December 23, 2008
    Date of Patent: December 13, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Jeffrey G. Libby, Jean-Marc Frailong, Anurag P. Gupta, John Keen, Avanindra Godbole, Sharada Yeluri
  • Patent number: 8069023
    Abstract: 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: Grant
    Filed: September 2, 2008
    Date of Patent: November 29, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Jean-Marc Frailong, Jeffrey G. Libby, Jianhui Huang, Sharada Yeluri, Rajesh Nair, John Keen
  • Publication number: 20110170546
    Abstract: 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: Application
    Filed: March 25, 2011
    Publication date: July 14, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
  • Publication number: 20110158124
    Abstract: 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: Application
    Filed: March 10, 2011
    Publication date: June 30, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Jean-Marc FRAILONG, Sharada Yeluri, Anurag P. Gupta, Jeffrey G. Libby, Edwin Su
  • Publication number: 20110142070
    Abstract: 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: Application
    Filed: February 18, 2011
    Publication date: June 16, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Raymond Marcelino Manese LIM, Jeffrey G. Libby
  • Patent number: 7936758
    Abstract: 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: Grant
    Filed: May 4, 2010
    Date of Patent: May 3, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
  • Patent number: 7924860
    Abstract: 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: Grant
    Filed: December 23, 2008
    Date of Patent: April 12, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Jean-Marc Frailong, Sharada Yeluri, Anurag P. Gupta, Jeffrey G. Libby, Edwin Su
  • Patent number: 7916632
    Abstract: 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: Grant
    Filed: September 29, 2009
    Date of Patent: March 29, 2011
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
  • Patent number: 7859999
    Abstract: 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: Grant
    Filed: September 20, 2007
    Date of Patent: December 28, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Debashis Basu, Avanindra Godbole, Raymond M. Lim, Jeffrey G. Libby
  • Publication number: 20100265967
    Abstract: 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: Application
    Filed: July 1, 2010
    Publication date: October 21, 2010
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Raymond Marcelino Manese LIM, Jeffrey G. LIBBY
  • Publication number: 20100215046
    Abstract: 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: Application
    Filed: May 4, 2010
    Publication date: August 26, 2010
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Raymond Marcelino Manese LIM, Jeffrey G. LIBBY
  • Patent number: 7782857
    Abstract: 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: Grant
    Filed: April 3, 2007
    Date of Patent: August 24, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
  • Patent number: 7773599
    Abstract: 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: Grant
    Filed: September 11, 2007
    Date of Patent: August 10, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby
  • Publication number: 20100165990
    Abstract: 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: Application
    Filed: March 12, 2010
    Publication date: July 1, 2010
    Applicant: 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: 20100161949
    Abstract: 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: Application
    Filed: December 23, 2008
    Publication date: June 24, 2010
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Anurag P. Gupta, John Keen, Jeffrey G. Libby, Jean-Marc Frailong, Avanindra Godbole, Sharada Yeluri
  • Patent number: 7710994
    Abstract: 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: Grant
    Filed: September 12, 2007
    Date of Patent: May 4, 2010
    Assignee: 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: 7680116
    Abstract: 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: Grant
    Filed: March 27, 2007
    Date of Patent: March 16, 2010
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond M. Lim, Jeffrey G. Libby
  • Patent number: 7616562
    Abstract: 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: Grant
    Filed: May 22, 2007
    Date of Patent: November 10, 2009
    Assignee: Juniper Networks, Inc.
    Inventors: Raymond M. Lim, Jeffrey G. Libby
  • Patent number: 7289503
    Abstract: 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: Grant
    Filed: July 30, 2002
    Date of Patent: October 30, 2007
    Assignee: 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: 7283528
    Abstract: 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: Grant
    Filed: March 22, 2002
    Date of Patent: October 16, 2007
    Inventors: Raymond Marcelino Manese Lim, Jeffrey G. Libby