WO2000010302A1 - Programmable packet header processor - Google Patents
Programmable packet header processor Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
- H04L49/309—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing 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.
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)
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)
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)
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)
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 |
-
1998
- 1998-08-15 GB GB9817725A patent/GB2340701B/en not_active Expired - Fee Related
-
1999
- 1999-08-13 WO PCT/GB1999/002554 patent/WO2000010302A1/en active Application Filing
Patent Citations (4)
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)
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)
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 |