WO2000010302A1 - Programmable packet header processor - Google Patents

Programmable packet header processor Download PDF

Info

Publication number
WO2000010302A1
WO2000010302A1 PCT/GB1999/002554 GB9902554W WO0010302A1 WO 2000010302 A1 WO2000010302 A1 WO 2000010302A1 GB 9902554 W GB9902554 W GB 9902554W WO 0010302 A1 WO0010302 A1 WO 0010302A1
Authority
WO
WIPO (PCT)
Prior art keywords
header
processor
processing
logic blocks
microcode
Prior art date
Application number
PCT/GB1999/002554
Other languages
French (fr)
Inventor
Neil Lawton
Paul David Rushton
Original Assignee
Roke Manor Research Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Roke Manor Research Limited filed Critical Roke Manor Research Limited
Publication of WO2000010302A1 publication Critical patent/WO2000010302A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the present invention relates to the field of microprocessors. More specifically, the present invention relates to a microprocessor designed to read, process and reformat data created within the header portion of a data packet.
  • IP protocol defined by Internet Engineering Task Force (IETF) rfc791.
  • Network nodes are required to check, process and route the control information contained in each packet, usually in the leading header fields, in accordance with the supported protocol definitions.
  • the present invention overcomes these drawback by using a Programmable Header Translator that employs parallel processing logic blocks to achieve high throughput and downloaded microcode to give flexibility for changing functionality.
  • a programmable packet header processor apparatus arranged to read, process and reformat fields within the header of a data packet, wherein said processor comprises a Programmable Header Translator device which employs a plurality of parallel processing logic blocks which operate with a downloaded microcode to flexibly reconfigure processing algorithms.
  • the processor may further comprise an address look-up engine which functions to facilitate the read, process and reformat of the fields within the header of the data pocket.
  • the processing algorithms may be obtained from the downloadable microcode which is contained in an external source.
  • Said Programmable Header Translator is intended to operate closely with an address look-up engine to form a packet header switching engine.
  • the main requirements of said packet header switching engine are:
  • the instruction set referred to above includes:
  • the processing algorithms are run from downloadable microcode to allow simple modification of the processing algorithms.
  • Figure 1 shows the functional block structure of the Programmable Header Translator according to a first aspect of the present invention
  • Figure 2 shows the functional block structure of the Programmable Header Translator according to a second aspect of the present invention.
  • the Programmable Header Translator 1 is shown. From start-up, microcode is downloaded from an external source 2 and written firstly to internal RAM 6 disposed proximate the Header Processor Selector 8 and then to a plurality of parallel processing logic blocks, referred to in this preferred embodiment as Header Processing Engines 10.
  • the external source 2 may be RAM/TIOM or a microprocessor.
  • the microcode is downloaded from external source 2 and written directly to the Header Processing Engines 10.
  • the number of Header Processing Engines may vary according to the specific requirements of the microprocessor. In this preferred embodiment three Header Processing Engines 10a, 10b, and 10c are shown.
  • Configuration data is also downloaded from an external source 2, which may be RAM/'ROM or a microprocessor, and is written to various configuration registers 4.
  • the Programmable Header Translator 1 is then enabled and ready for processing.
  • An external system (not shown) extracts a programmable number of octets from the front of a data packet, ensuring that enough data has been extracted to contain all relevant header fields. This can be concatenated with level 2 fields if required, for example with VPI/VCI for ATM networks, and then stored in the Unresolved Header Record 20 along with the packet length and various control information, such as a local packet identifier. The Unresolved Header Record 20 is then transferred to the Programmable Header Translator 1.
  • a Header Buffer 22 provides a buffer to absorb temporary peaks of traffic that exceed the sustained processing rate of the Programmable Header Translator 1 and also store the Unresolved Header Record 20 until a Header Processing Engine 10a, 10b or 10c becomes available.
  • HPE Header Processing Engine
  • This step may be controlled by a simple 'next free HPE' algorithm or alternatively, there may be a more intelligent selection method which pre-processes the Unresolved Header Record and directs known protocols to certain Header Processing Engines.
  • specific microcode may be downloaded to the Header Processor Selector 8 from the external source 2.
  • the Header Processor Selector 8 may communicate directly with the Header Output Selection 30, via connector 25, to maintain data packet sequence integrity.
  • the Header Processing Engines 10 then performs the necessary protocol dependent algorithms from the microcode stored in an internal RAM. A number of configurations are possible, depending upon performance and silicon utilisation tradeoffs.
  • each Header Processing Engine 10a, 10b, 10c has its own integral internal RAM 32a, 32b, 32c.
  • a separate copy of the microcode is held in the internal RAM 32a, 32b, 32c dedicated for that engine. This is the most flexible arrangement allowing for each different Header Processing Engine to perform different functions and also gives the highest throughput since no RAM contention will exist.
  • each Header Processor Engine is equipped with its own set of registers and comparators (not shown).
  • each Header Processor Engine may have access to a shared external RAM 40 and an address look-up engine 34.
  • the shared external RAM 40 is necessary if common state information, such as packet sequence numbering for IETF L2TP is required by all Header Processor Engines. In this case, the shared external RAM 40 requires access scheduling and semaphore mechanisms to prevent stored data from getting out of date. In an alternative embodiment, the shared external RAM 40 may be implemented internal to the Programmable Header Translator 1.
  • the Header Processor Engines return a Resolved Header Record 45 to an external system (not shown) via a Header Output Selector 30.
  • the Header Output Selector 30 may select the Header Processor Engines 10 in the same order as the Header Processor Selector 8.
  • the Header Processor Engines 10 send information directly to an external processor (not shown) to provided a 'flow detection' feature.

Abstract

A programmable packet header processor apparatus arranged to read, process and reformat fields within a header of a data packet. The processor comprises a Programmable Header Translator device which employs a plurality of parallel processing logic blocks which operate with a downloaded microcode to flexibly reconfigure processing algorithms, thus achieving a high processor throughout and greater flexibility for changing processor functionality.

Description

PROGRAMMABLEPACKETHEADERPROCESSSOR
The present invention relates to the field of microprocessors. More specifically, the present invention relates to a microprocessor designed to read, process and reformat data created within the header portion of a data packet.
Presently, most data communication networks rely on packet transmission of data, such as the IP protocol defined by Internet Engineering Task Force (IETF) rfc791. Network nodes are required to check, process and route the control information contained in each packet, usually in the leading header fields, in accordance with the supported protocol definitions.
Current methods of obtaining higher performance and throughput include using hardware logic to implement these functions. However, this has the drawback that new hardware has to be installed if the current protocol definitions change or if new protocols are to be supported.
The present invention overcomes these drawback by using a Programmable Header Translator that employs parallel processing logic blocks to achieve high throughput and downloaded microcode to give flexibility for changing functionality.
According to the present invention there is provided a programmable packet header processor apparatus arranged to read, process and reformat fields within the header of a data packet, wherein said processor comprises a Programmable Header Translator device which employs a plurality of parallel processing logic blocks which operate with a downloaded microcode to flexibly reconfigure processing algorithms. The processor may further comprise an address look-up engine which functions to facilitate the read, process and reformat of the fields within the header of the data pocket. Furthermore, the processing algorithms may be obtained from the downloadable microcode which is contained in an external source.
Said Programmable Header Translator is intended to operate closely with an address look-up engine to form a packet header switching engine.
The main requirements of said packet header switching engine are:
- read in a programmable number of packet bytes and port address if required and a length field, referred to as the Unresolved Header Record,
- extract appropriate fields from the Unresolved Header Record, depending on the supported protocols,
- perform exact match or longest best match searches on the extracted information via said address look-up engine,
- maintain a high header processing throughput,
- allow offline update of programming information,
- run the field processing algorithms from downloadable microcode using an instruction set, and
- return pre-programmed information, including modified header, output queue control and status information, referred to as the Resolved Header Record.
The instruction set referred to above includes:
- extracting any contiguous bit string from the header as indexed by bit positions,
- forming a concatenated set of fields to present to said address look-up engine, - comparing (<, =, > etc.) registers with other register or code constants,
- branching to allow multiple paths through the microcode,
- performing a longest match algorithm via said address look-up engine operating in a best longest match mode,
- performing addition and subtraction operations,
- bit shifting,
- performing checksums over a range of packet header data, and
- performing an exact match algorithm via said address look-up engine operating in an exact match mode.
The processing algorithms are run from downloadable microcode to allow simple modification of the processing algorithms.
By using a small set of highly optimised instructions located in tightly coupled RAM it may be possible for the Programmable Header Translator, in conjunction with the address look-up engine, to perform look-up on virtually any combination of layer 2, 3, and 4 protocol fields.
While the principle advantages and features of the invention have been described above, a greater understanding and appreciation of the invention may be obtained by referring to the following drawing and detailed description of a preferred embodiment, presented by way of example only, in which;
Figure 1 shows the functional block structure of the Programmable Header Translator according to a first aspect of the present invention, and
Figure 2 shows the functional block structure of the Programmable Header Translator according to a second aspect of the present invention.
In figure 1, the Programmable Header Translator 1 is shown. From start-up, microcode is downloaded from an external source 2 and written firstly to internal RAM 6 disposed proximate the Header Processor Selector 8 and then to a plurality of parallel processing logic blocks, referred to in this preferred embodiment as Header Processing Engines 10. The external source 2 may be RAM/TIOM or a microprocessor. Alternatively, the microcode is downloaded from external source 2 and written directly to the Header Processing Engines 10. The number of Header Processing Engines may vary according to the specific requirements of the microprocessor. In this preferred embodiment three Header Processing Engines 10a, 10b, and 10c are shown.
Configuration data is also downloaded from an external source 2, which may be RAM/'ROM or a microprocessor, and is written to various configuration registers 4. The Programmable Header Translator 1 is then enabled and ready for processing.
An external system (not shown) extracts a programmable number of octets from the front of a data packet, ensuring that enough data has been extracted to contain all relevant header fields. This can be concatenated with level 2 fields if required, for example with VPI/VCI for ATM networks, and then stored in the Unresolved Header Record 20 along with the packet length and various control information, such as a local packet identifier. The Unresolved Header Record 20 is then transferred to the Programmable Header Translator 1. A Header Buffer 22 provides a buffer to absorb temporary peaks of traffic that exceed the sustained processing rate of the Programmable Header Translator 1 and also store the Unresolved Header Record 20 until a Header Processing Engine 10a, 10b or 10c becomes available. As each Unresolved Header Record 20 is removed from the Header Buffer 22 it is loaded into a Header Processing Engine (HPE) 10 by the Header Processor Selector 8. This step may be controlled by a simple 'next free HPE' algorithm or alternatively, there may be a more intelligent selection method which pre-processes the Unresolved Header Record and directs known protocols to certain Header Processing Engines. For this feature, specific microcode may be downloaded to the Header Processor Selector 8 from the external source 2. The Header Processor Selector 8 may communicate directly with the Header Output Selection 30, via connector 25, to maintain data packet sequence integrity.
The Header Processing Engines 10 then performs the necessary protocol dependent algorithms from the microcode stored in an internal RAM. A number of configurations are possible, depending upon performance and silicon utilisation tradeoffs.
In a first configuration, as shown in figure 1 , each Header Processing Engine 10a, 10b, 10c has its own integral internal RAM 32a, 32b, 32c. A separate copy of the microcode is held in the internal RAM 32a, 32b, 32c dedicated for that engine. This is the most flexible arrangement allowing for each different Header Processing Engine to perform different functions and also gives the highest throughput since no RAM contention will exist.
In a second configuration, as shown in figure 2 with parts also appearing in figure 1 bearing identical designation, all Header Processing Engines 10a, 10b, 10c access a single microcode held in an internal RAM 32. In this configuration the internal RAM 32 is located external to the Header Processing Engines 10a, 10b, 10c, but is still internal to the Programmable Header Translator 1. Thus, in this second configuration all Header Processing Engines run the same microcode and suffer from memory access hold off due to contention.
In both of the above mentioned configurations, each Header Processor Engine is equipped with its own set of registers and comparators (not shown). In addition, each Header Processor Engine may have access to a shared external RAM 40 and an address look-up engine 34.
The shared external RAM 40 is necessary if common state information, such as packet sequence numbering for IETF L2TP is required by all Header Processor Engines. In this case, the shared external RAM 40 requires access scheduling and semaphore mechanisms to prevent stored data from getting out of date. In an alternative embodiment, the shared external RAM 40 may be implemented internal to the Programmable Header Translator 1.
Following processing, the Header Processor Engines return a Resolved Header Record 45 to an external system (not shown) via a Header Output Selector 30. In an alternative embodiment, the Header Output Selector 30 may select the Header Processor Engines 10 in the same order as the Header Processor Selector 8. In yet a further embodiment, the Header Processor Engines 10 send information directly to an external processor (not shown) to provided a 'flow detection' feature.
As will be appreciated by those skilled in the art, various modifications may be made to the embodiment hereinbefore described without departing from the scope of the present invention.

Claims

1. A programmable packet header processor apparatus arranged to read, process and reformat fields within a header of a data packet, wherein said processor comprises a Programmable Header Translator device which employs a plurality of parallel processing logic blocks which operate with a downloaded microcode to flexibly reconfigure processing algorithms.
2. Processor apparatus as claimed in Claim 1, wherein said processor further comprises an address look-up engine which functions to facilitate said read, process, and reformat of said fields within said header of said data packet.
3. Processor apparatus as claimed in Claims 1 or 2, wherein said processing algorithms are obtained from said downloadable microcode contained in an external source.
4. Processor apparatus as claimed in Claim 3, wherein said external source is a RAM/ROM.
5. Processor apparatus as claimed in Claim 3, wherein said external sources is a microprocessor.
6. Processor apparatus as claimed in any of the preceding Claims, wherein said downloadable microcode comprises configuration data, which is downloaded to at least one configuration register for establishing a plurality of processing configurations.
7. Processor apparatus as claimed in Claim 6, wherein said apparatus further comprises a header buffer means for storage of unresolved header records, and a header processor selector means which facilitates communication of said unresolved header record stored in said header buffer to said plurality of parallel processing logic blocks, whereby said plurality of parallel processing logic blocks operate in conjunction with said downloadable microcode to resolve said unresolved header record.
8. Processor apparatus as claimed in Claim 7, wherein said downloadable microcode is stored in an internal RAM.
9. Processor apparatus as claimed in Claim 8, wherein a first of said plurality of processing configurations operates such that each of said plurality of parallel processing logic blocks has as a separate and dedicated copy of said downloadable microcode.
10. Processor apparatus as claimed in Claim 8, wherein a second of said plurality of processing configurations operates such that all of said plurality of parallel processing logic blocks access a single copy of said downloadable microcode.
11. Processor apparatus as claimed in any of the preceding Claims wherein each of said plurality of parallel processing logic blocks comprises at least registers and comparitors.
12. Processing apparatus as claimed in any of the preceding Claims, wherein said plurality of parallel processing logic blocks have access to a shared RAM for accessing common information.
13. Processing apparatus as claimed in Claim 12, wherein said shared RAM is disposed external to said processing apparatus.
14. Processing apparatus as claimed in Claim 12, wherein said shared RAM is disposed internal to said processing apparatus.
15. Processing apparatus as claimed in any of the preceding Claims, wherein said plurality of parallel processing logic blocks communicate said resolved header record directly to an external system.
16. Processing apparatus as claimed in any of the preceding Claims 1 to 14, wherein said apparatus further comprises a header output selector which operates to facilitate communication of said resolved header record to an external system.
17. Processing apparatus as claimed in any of the preceding claims, wherein said plurality of parallel processing logic blocks are Header Processing Engines.
18. Processing apparatus as here and before described with reference to the accompanying drawings.
PCT/GB1999/002554 1998-08-15 1999-08-13 Programmable packet header processor WO2000010302A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9817725.6 1998-08-15
GB9817725A GB2340701B (en) 1998-08-15 1998-08-15 Programmable packet header processor

Publications (1)

Publication Number Publication Date
WO2000010302A1 true WO2000010302A1 (en) 2000-02-24

Family

ID=10837252

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1999/002554 WO2000010302A1 (en) 1998-08-15 1999-08-13 Programmable packet header processor

Country Status (2)

Country Link
GB (1) GB2340701B (en)
WO (1) WO2000010302A1 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002010995A2 (en) * 2000-08-01 2002-02-07 Telecom Italia Lab S.P.A Module for generating circuits for analysing bit strings inside data cells, method for generating this type of circuit and relative circuit
EP1267543A2 (en) * 2001-06-14 2002-12-18 Cypress Semiconductor Corporation Programmable protocol processing engine for network packet devices
WO2003034670A1 (en) * 2001-10-19 2003-04-24 Operax Ab A method and apparatus for transferring data packets in ip routers
WO2003049385A3 (en) * 2001-12-05 2003-08-21 Ipwireless Inc Method and arrangement for data processing in a communication system
US6678746B1 (en) 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
WO2004019587A1 (en) * 2002-08-23 2004-03-04 Koninklijke Philips Electronics N.V. Hardware-based packet filtering accelerator
EP1463262A1 (en) * 2003-03-26 2004-09-29 Microsoft Corporation Reducing buffer requirements in a messaging system
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US9357376B2 (en) 2013-07-31 2016-05-31 Ip.Access Limited Network elements, wireless communication system and methods therefor
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US10944559B2 (en) 2005-01-27 2021-03-09 The Chamberlain Group, Inc. Transmission of data including conversion of ternary data to binary data
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
US11423717B2 (en) 2018-08-01 2022-08-23 The Chamberlain Group Llc Movable barrier operator and transmitter pairing over a network

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620050B2 (en) * 2004-09-10 2009-11-17 Canon Kabushiki Kaisha Communication control device and communication control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0289248A2 (en) * 1987-05-01 1988-11-02 AT&T Corp. Programmable protocol engine
US5249292A (en) * 1989-03-31 1993-09-28 Chiappa J Noel Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream
WO1995018497A1 (en) * 1993-12-24 1995-07-06 Newbridge Networks Corporation Look-up engine for packet-based network
US5684954A (en) * 1993-03-20 1997-11-04 International Business Machine Corp. Method and apparatus for providing connection identifier by concatenating CAM's addresses at which containing matched protocol information extracted from multiple protocol header

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0742677A3 (en) * 1995-05-08 1999-09-15 Fujitsu Limited Header converting method
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0289248A2 (en) * 1987-05-01 1988-11-02 AT&T Corp. Programmable protocol engine
US5249292A (en) * 1989-03-31 1993-09-28 Chiappa J Noel Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream
US5684954A (en) * 1993-03-20 1997-11-04 International Business Machine Corp. Method and apparatus for providing connection identifier by concatenating CAM's addresses at which containing matched protocol information extracted from multiple protocol header
WO1995018497A1 (en) * 1993-12-24 1995-07-06 Newbridge Networks Corporation Look-up engine for packet-based network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RUTSCHE E ET AL: "ARCHITECTURE OF MULTIMEDIA COMMUNICATION SUBSYSTEMS", PROCEEDINGS OF THE IFIP TC6 INTERNATIONAL CONFERENCE ON INFORMATION NETWORKS AND DATA COMMUNICATION,NL,AMSTERDAM, NORTH HOLLAND, vol. CONF. 5, 18 April 1994 (1994-04-18) - 21 April 1994 (1994-04-21), pages 217 - 230, XP000593294, ISBN: 0-444-81869-3 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002010995A3 (en) * 2000-08-01 2002-12-27 Telecom Italia Lab Spa Module for generating circuits for analysing bit strings inside data cells, method for generating this type of circuit and relative circuit
WO2002010995A2 (en) * 2000-08-01 2002-02-07 Telecom Italia Lab S.P.A Module for generating circuits for analysing bit strings inside data cells, method for generating this type of circuit and relative circuit
US6678746B1 (en) 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
EP1267543A3 (en) * 2001-06-14 2004-09-08 Cypress Semiconductor Corporation Programmable protocol processing engine for network packet devices
EP1267543A2 (en) * 2001-06-14 2002-12-18 Cypress Semiconductor Corporation Programmable protocol processing engine for network packet devices
WO2003034670A1 (en) * 2001-10-19 2003-04-24 Operax Ab A method and apparatus for transferring data packets in ip routers
USRE43926E1 (en) 2001-12-05 2013-01-15 Sony Corporation Method and arrangement for data processing in a communication system
EP2309697A1 (en) * 2001-12-05 2011-04-13 Sony Corporation Method and apparatus for data processing by a user terminal in a wireless communication system
WO2003049385A3 (en) * 2001-12-05 2003-08-21 Ipwireless Inc Method and arrangement for data processing in a communication system
EP2276208A1 (en) * 2001-12-05 2011-01-19 Sony Corporation Method and apparatuses for data processing in a communication system
US7480276B2 (en) 2001-12-05 2009-01-20 Ipwireless, Inc. Method and arrangement for data processing in a communication system
WO2004019587A1 (en) * 2002-08-23 2004-03-04 Koninklijke Philips Electronics N.V. Hardware-based packet filtering accelerator
AU2004200727B2 (en) * 2003-03-26 2010-01-28 Microsoft Technology Licensing, Llc Message processing pipeline for streams
US7185060B2 (en) 2003-03-26 2007-02-27 Microsoft Corporation Message processing pipeline for streams
EP1463262A1 (en) * 2003-03-26 2004-09-29 Microsoft Corporation Reducing buffer requirements in a messaging system
US11799648B2 (en) 2005-01-27 2023-10-24 The Chamberlain Group Llc Method and apparatus to facilitate transmission of an encrypted rolling code
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US10944559B2 (en) 2005-01-27 2021-03-09 The Chamberlain Group, Inc. Transmission of data including conversion of ternary data to binary data
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US10862924B2 (en) 2005-06-30 2020-12-08 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US9357376B2 (en) 2013-07-31 2016-05-31 Ip.Access Limited Network elements, wireless communication system and methods therefor
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
US11122430B2 (en) 2017-12-21 2021-09-14 The Chamberlain Group, Inc. Security system for a moveable barrier operator
US11778464B2 (en) 2017-12-21 2023-10-03 The Chamberlain Group Llc Security system for a moveable barrier operator
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
US11763616B1 (en) 2018-06-27 2023-09-19 The Chamberlain Group Llc Network-based control of movable barrier operators for autonomous vehicles
US11423717B2 (en) 2018-08-01 2022-08-23 The Chamberlain Group Llc Movable barrier operator and transmitter pairing over a network
US11869289B2 (en) 2018-08-01 2024-01-09 The Chamberlain Group Llc Movable barrier operator and transmitter pairing over a network
US11462067B2 (en) 2019-05-16 2022-10-04 The Chamberlain Group Llc In-vehicle transmitter training
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training

Also Published As

Publication number Publication date
GB2340701B (en) 2003-06-25
GB9817725D0 (en) 1998-10-14
GB2340701A (en) 2000-02-23

Similar Documents

Publication Publication Date Title
WO2000010302A1 (en) Programmable packet header processor
US6683885B1 (en) Network relaying apparatus and network relaying method
US6650642B1 (en) Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer
US7012890B2 (en) Packet forwarding apparatus with packet controlling functions
EP2643938B1 (en) Method for optimizing a network prefix-list search
US6137797A (en) Process definition for source route switching
US8630294B1 (en) Dynamic bypass mechanism to alleviate bloom filter bank contention
US5452296A (en) Asynchronous transfer mode communication system
US8654772B2 (en) Programmable packet switching device
EP0736236B1 (en) Look-up engine for packet-based network
CA2326928C (en) Route lookup engine
US7567561B2 (en) Packet communication node apparatus with extension modules
US7764672B2 (en) Packet communication device
US6996663B1 (en) Method and apparatus for performing address translation using a CAM
US20040160958A1 (en) Label switching router having internal channel share function over ATM, and method for sharing internal channel using the same
US20030007489A1 (en) Data extraction system for packet analysis
JP2007525883A (en) Processing usage management in network nodes
EP0993638A2 (en) Fast-forwarding and filtering of network packets in a computer system
WO2004054203A1 (en) Method and apparatus to perform translation in a modular system comprising network nodes and a switching fabric
US6658003B1 (en) Network relaying apparatus and network relaying method capable of high-speed flow detection
US20070242603A1 (en) Sampling to a next hop
US5914956A (en) Cache for improving the connection capacity of a communications switch
US20070121616A1 (en) Methods and systems for routing packets with a hardware forwarding engine and a software forwarding engine
US6671277B1 (en) Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control
JP4209186B2 (en) A processor configured to reduce memory requirements for fast routing and switching of packets

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase