EP1547342A1 - A method and apparatus for deep packet processing - Google Patents
A method and apparatus for deep packet processingInfo
- Publication number
- EP1547342A1 EP1547342A1 EP03794840A EP03794840A EP1547342A1 EP 1547342 A1 EP1547342 A1 EP 1547342A1 EP 03794840 A EP03794840 A EP 03794840A EP 03794840 A EP03794840 A EP 03794840A EP 1547342 A1 EP1547342 A1 EP 1547342A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- state
- input
- current
- index
- bit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 title claims abstract description 11
- 230000007704 transition Effects 0.000 claims abstract description 59
- 238000012360 testing method Methods 0.000 claims abstract description 50
- 239000013598 vector Substances 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006835 compression Effects 0.000 abstract description 9
- 238000007906 compression Methods 0.000 abstract description 9
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 3
- 241000712062 Patricia Species 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- 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/12—Protocol engines
-
- 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 generally relates to telecommunication packet processing and particularly relates to a method for flexible parsing and searching of information in the packet including the packet payload.
- Packet classification is a function implemented in networking equipment such as routers and switches, that extracts information from an incoming packet (this is called parsing) and uses this to search a data base with rules. If a matching rule is found, then the processing of that packet will be based on data associated with that rule.
- the parsed information, the rules, and the way the rules are searched are dependent on the application.
- the packet classification consists of parsing the IP destination address from the IP header, which is then used to search a routing table according to a longest-matching prefix search.
- the routing table entry that results from this search provides the address of the next hop to which the packet will be forwarded.
- Another example is a firewall application, in which several fields (e.g., IP source and destination addresses, TCP port numbers, PROT byte) are parsed from the packet header, and are then used to search the highest-priority matching rule from a set of firewall rules. Data associated with this firewall rule will then indicate whether the packet will be permitted or denied access through the firewall.
- the information is parsed from well-known fields at fixed locations within the packet headers (up to layer 4) , which have fixed and relatively small sizes (typically up to 32 bits) .
- the classification can be performed in two distinct phases: First the information is parsed from the packet header. Next, the parsed information is used to search a data base.
- Web-server load balancing, intrusion detection and virus scanning are examples of important emerging applications that require more advanced packet classification capabilities, than as required by "conventional" applications as described above. These more advanced capabilities relate specifically to the following aspects:
- the location and the amount of information that has to be inspected within the payload is not always known in advance and can for several applications only be determined during the classification operation. Some applications require the use of pattern-matching and regular-expression-based searches for locating information within the payload.
- the amount of information involved in the packet classification can consist of up to multiple hundreds of bytes .
- URLs, cookies, and SSL identifiers Another example is a set of known character strings related to viruses that are checked for by a virus-scan application. From the above it can be understood that the packet classification now becomes more complex in the following two respects :
- packet classification must be performed on the fly on incoming packets (this is called wire-speed packet classification) for typical link speeds between lGb/sec and 10Gb/sec today.
- wire-speed packet classification this is called wire-speed packet classification
- a second requirement is that the data structures used for the packet classification should be organized such that a minimum amount of memory is needed for storing them, in order to minize the costs.
- a third requirement is the support for fast updates of the rule set, as required by the dynamic nature of several new applications (e.g., web-server load balancing).
- Fig.l shows a state diagram for parsing two patterns "121h” (h means hexadecimal) and "ABh” from an input stream of 4-bit characters.
- Nodes S3 and S5 are end states.
- Fig. 2 shows a prior-art implementation of a programmable state machine for the state diagram of Fig. 1, which requires one memory access per state transition.
- the states are assigned the following 3 -bit state vectors :
- Disadvantages of this approach are (1) the inefficient use of storage (e.g., there are 128 table entries in Fig. 2 of which many contain the same next state) and (2) the large number of table entries that have to be written while "programming" the table for the given state diagram, resulting in a long construction (update) time.
- a prior-art solution for realizing a flexible search function suitable for advanced packet classification as described above is a tree structure.
- One example is a Patricia tree as described in D. R. Morrison original paper "Patricia - Practical Algorithm to Retrieve Information Coded in Alphanumeric", Journal of the ACM, Vol. 15, 1968.
- a disadvantage of the prior-art is that no solutions exist that can support both efficient parsing and efficient searching.
- a programmable state machine cannot efficiently implement a search since the state space is typically too large, resulting in significant memory requirements and/or complex logic to determine the next state.
- a tree structure cannot implement parsing as efficiently as a programmable state machine, especially because the latter can more efficiently handle typical state transitions that are more complex than the branch functions which occur in a typical tree search. Therefore, implementing parsing using a tree structure, would require many nodes and therefore results in significant memory requirements.
- a disadvantage of the prior-art is that different hardware has to be used to implement the parsing and searching.
- a second disadvantage is that this makes it more difficult to realize a more advanced packet classification function, that supports the alternating use of parsing and searching or the combination of parsing and searching as described above.
- the data structure comprises state-transition rules of a programmable state machine for parsing. Storage requirements are reduced by use of an algorithm known as BaRT and by distributing states over multiple state space implemented using separate state-transition rule tables.
- the parsing method of claim 4 takes advantage of the data structure and can be performed at wire-speed.
- the searching method of claim 5 usse the same data structure and can be performed at wire-speed as well.
- the parsing and searching methods can be performed alternatively or combined, still at wire-speed, according to claim 6 and 7.
- the same hardware, according to claim 8, can be used for parsing and searching. Because of the reduced memory requirements, examples of hardware solutions embodying the invention can be implemented in on-chip memory according to claim 9.
- a computer program can advantageously implement examples of the present invention according to claim 10.
- a preferred embodiment of the invention provides a powerful data structure allowing a combination of an efficient programmable state machine for parsing and an efficient tree based searching mechanism.
- the same hardware can be used for parsing and searching.
- FIG. 1 illustrates a state diagram for parsing patterns from an input stream of 4-bit characters
- FIG. 2 shows a prior art programmable state machine implementation for the state diagram of Fig. 1 ;
- Fig. 3 illustrates 6 transition rule entries according to a first preferred embodiment, which implement the state diagram of Fig. 1, and are stored in one register or one memory location;
- Fig. 5 illustrates the fields within a transition rule entry according to a second preferred embodiment
- Fig. 7 is the flow chart describing the creation of the data structure according to the second preferred embodiment
- Fig. 8 is the flow chart describing the creation of the compressed state-transition rule table which is one step of the creation of the data structure as described in Fig. 7 ;
- Fig. 9 is the flow chart describing the calculation of an index mask for distributing transition rule entries over a minimum number of entry-blocks, which is one step of the creation of the compressed state-transition rule table as described in Fig. 8;
- Fig. 10 illustrates a data structure consisting of three
- BaRT-compressed tables according to the second preferred embodiment, which implement a prefix-match search on three input characters, and are organized such that a maximum of
- N 2 entries are stored in each memory location.
- Fig. 11 illustrates a flow chart for ' the process of searching and parsing according to the second preferred embodiment
- Fig. 12 illustrates a flow chart for deriving a prioritized list of state-transition rules according to the first and second preferred embodiment, each involving a ternary match condition on the current state and input value, for a given state diagram.
- a method to perform deep packet processing comprises the creation of a data structure which improves the programmable state machine of the prior art .
- state transitions are represented as a list of so called state-transition rules, each containing a ternary match condition for the combination of the current state and input value, and a next state.
- the matching patterns comprise bits having three possible states 0, 1 or X, X being a wild-card symbol for the "don't care" condition. If a state-transition rule contains a ternary match condition that matches a given current state and input, then this state-transition rule is said to be matching. If multiple state-transition rules can all match the same current state and input, then these state-transition rules are assigned different priorities.
- next state is now determined by the highest-priority state-transition rule, matching the current state and input value .
- the next state is now determined by searching the highest-priority state-transition rule that matches the current state S and input I. For example, if the current state is S2 and the input equals 1 then state-transition rule 1 will match, indicating that the next state will be S3. For any other current state in combination with an input equal to 1, state-transition rule 2 will match, resulting in a transition to state SI. All state transitions in Fig. 1 are described with only 6 state-transition rules.
- state-transition rule entries abbreviated to transition rule entries, in a register or in one memory location. This is shown in Fig. 3 for the above 6 state-transition rules.
- the ternary match condition of each transition rule entry is stored as a combination of a
- the ternary match condition will match if the bits of the current state and input value equal the bits at the bit positions corresponding to the set bits in the test mask. The remaining bit positions are don't care.
- the ternary match condition "xxxOOOl" of state-transition rule 2 is stored as a test value 0000001b and a test mask 0001111b in the corresponding transition rule entry.
- the next state is determined by performing a parallel comparison of the current state and input character, against the ternary match conditions, stored as test values and test masks, in the corresponding transition rule entries.
- the matching transition rule entry with the highest priority will be selected (in Fig. 3 the entries are stored in order of decreasing priority from left to right) . This operation is performed for each new 4-bit input character until one of the two end states (S3 or S5) is reached.
- the preferred embodiment uses the BaRT compression scheme to distribute the transition rule entries over multiple memory locations.
- the BaRT compression scheme has been disclosed in a conference paper by Jan Van Lunteren, published in the proceedings of IEEE Globecom, volume 3, pages 1615-1619, November 2001, under the title 'Searching Very Large Routing Tables in Wide Embedded Memory' .
- the BaRT compression scheme is based on a special hash function for exact-, prefix- and ternary-match searches.
- the test value and the test mask fields of the transition rule entries are combined into one ternary test vector field, in order to make the figure more compact and understandable.
- the ternary vectors consisting of ⁇ 0', '1', and ⁇ x' are stored in the state-transition rule table 400 wherein, for instance, a ternary "xxx 0001" corresponds to a test value/test mask combination "000 0001/000 1111".
- transition rule entries can match the current state and input character. For example, if the second bit of the current state and the most significant bit of the input character would both equal zero, then only the three transition rule entries that are contained within the block corresponding to a compressed index value 00b can possibly match the current state and input character. All state-transition rule entries, the same ones as shown in Fig. 3, are distributed in this way over the various compressed index values (note that certain transition rule entries can be matching for multiple compressed index values and are therefore stored in more than one block) . The bits of the ternary vectors, that are part of the compressed index, are underlined within the transition rule entries in Fig. 4 for illustrative purposes.
- the next state can now be determined in the following way.
- the compressed index bits are extracted from the current state and input character, based on the index mask 420.
- this compressed index is then used to select a block within the compressed state-transition rule table that is referred to by the pointer 410.
- the entire block is then read using one memory access. All transition rule entries in one block are then compared in parallel as described before. Also in this case, the entries are ordered within a block according to decreasing priorities: the next state is taken from the first matching transition rule entry (from left to right) .
- the state register is then loaded with the next state from the selected matching entry.
- the process of extracting the compressed index, finding the highest priority matching entry, and updating the state register, is performed for each new input character until one of the two end states (S3 or S5) has been reached.
- the bits that comprise the compressed index are selected in the following way. This will also be called index-mask calculation because the index mask uniquely defines the bits that are part of the compressed index.
- the current state and input character consist together of a total of m bits
- there exist a total of 2 ra different possible index masks that each cover all possible ways of extracting 0, 1, 2, .., and m bits from the current state and input character.
- index masks are processed in the given order. For each index mask the maximum number of collisions is determined that occurs for all possible compressed index values corresponding to that index mask, for a given set of transition rule entries.
- the corresponding compressed index will consist of a total of k bits, and the corresponding compressed state-transition rule table will contain 2 k blocks of (at most) N entries.
- the first index mask found will have a minimum number of set bits, resulting in the smallest compressed state-transition rule table (i.e., in the highest compression).
- index mask calculation is a brute-force approach that tests all possible index masks.
- each transition rule entry as illustrated in Fig. 4 is extended with an index mask and pointer field. Such an entry is shown in Fig. 5.
- This table entry can be used to implement a programmable state machine for parsing as well as to implement a tree-like structure for searching.
- a state register comprising of at least log(s) bits to implement a programmable state machine with s states .
- the extended transition rule entry allows to support programmable state machines using a smaller state register that has a fixed number of bits independent of the number of states. This allows a more efficient support of state machines with large numbers of states. This will now be illustrated using the example of the state machine in Fig. 1 in order to obtain the data structure shown in Fig. 6. The various steps are described by the flow chart illustrated in Fig. 7.
- all states are distributed over smaller state spaces and assigned state vectors that are unique within each state space.
- the 6 states in Fig. 1 are distributed over 2 state spaces in the following way with the following state-vector assignment:
- State space 1 State space 2 :
- this distribution can be done in any arbitrary way. However, a typical objective of the distribution results from the size of the state register. If, for example, implementation issues or other reasons, result in a state register consisting of k bits, then the states should be distributed over multiple state spaces such that each state space contains at most 2 k . In this situation, unique state-vectors of at most k bits can be assigned to each state within a state space, which will fit in the state register.
- State space 1 transition state input [ state input ] next state 1 * 1 [ xx 0001 ] -> Si [ 01b state space 1 ]
- State space 2 transition state input [ state input] next state
- each state space is implemented using a compressed state-transition rule table in the same way as with the first preferred embodiment.
- the difference with the first preferred embodiment is that now the index mask and pointer "associated" with the state space of which the next state is part of, are stored together with the next state in the extended transition rule entries.
- Fig. 6 shows the resulting structure for an implementation in which the memory width allows to store 4 transition rule entries in one location and compare those in parallel.
- the compressed state-transition rule table 610 corresponding to state space 1, consists of one block of four entries.
- the compressed state-transition rule table 600 corresponding to state space 2, consists of two entry-blocks, which are selected using a one-bit compressed index 620 which is extracted from the current state register 630 and 4 -bit input character 640.
- the two base pointers 650 and 660 corresponding to the two compressed tables are denoted as SPl and SP2, respectively.
- Fig. 8 and Fig. 9 show the flow charts describing the creation of a compressed state-transition rule table for each state space 720. This will now be explained for the second state space, which involves 5 entries with the following test vectors : entry 1 00 0001 entry 2 xx 0001 entry 3 10 1011 entry 4 xx 1010 entry 5 xx xxxx
- the number of transition rules equals 5, which is larger than the maximum number of entries per entry-block (answer Yes to test 810) , therefore the compressed table will contain multiple entry-blocks, that have to be indexed by a compressed index.
- an index mask must be calculated 830 in the following way. First all possible index masks are determined and ordered by an increasing number of set bits 910. Fewer set bits correspond to a smaller compressed index, fewer entry blocks and therefore a better compression. There exist a total of 63 (2 ⁇ -l) possible non-zero values of a 6-bit vector (2 bits state + 4 bits input) , which are, ordered according to an increasing number of set bits:
- the first index mask is 100000b 920.
- To this index mask correspond two possible compressed index values, namely 0b and lb 930.
- For this index mask the entries will be mapped on the two compressed index values in the following way 940:
- this mapping is obtained by taking the left-most bit of the test vector: in case of a 0b, the entry is mapped on index
- the index mask equals 000000b 820 and the compressed table consists of only one entry block 840, 850, 860. After both tables have been constructed, the index mask/pointer combination for each table can be written in the corresponding fields within the entries involving next states in the corresponding state spaces 870, 730.
- the number of entries is typically much greater than with the state diagram used to illustrate those various embodiments of the present invention presented herein.
- Fig. 10 illustrates an example of a data structure according to the aforementioned second preferred embodiment, that can be used for searching.
- the state register and the next state fields in the transition rule entries within the compressed tables are not used in this search, and the two left-most bits within the test vectors that correspond to the state register equal xxb (don't care).
- the data structure implements a prefix search on a 12-bit vector consisting of a first 1000, second 1010, and third 1020 4-bit input value as shown in Fig. 10.
- the prefixes and corresponding search results are:
- the data structure for this example consists of three compressed tables, that are each "indexed" by one of the input values.
- the compressed table that is indexed by the first input value is used to determine whether the above prefixes might match the input, based on the first 4 bits of those prefixes, which are OOOlb (prefix 1) , 0101b (prefix 2) , and 1010b (prefix 3) .
- the test vectors corresponding to those prefixes are: xx OOOlb (prefix 1) xx 0101b (prefix 2) xx 1010b (prefix 3) (the bit positions related to the state register (1030) contain xxb as mentioned above) .
- the compressed index computed according to the BaRT algorithm consists of one bit 1070, and the entries related to prefix 1 and prefix 2 are mapped on a compressed index value of 0b, and the entry related to prefix 3 is mapped on a compressed index value lb.
- Both prefix 2 and prefix 3 have a length equal to 4. Consequently, if the test vector stored in the entry corresponding to each of those prefixes, would match the first 4 -bit input value, then this means that the corresponding prefix matches the input character. In that case the search result can be retrieved from the pointer field of the matching entry. If the first input value equals 5'h, then the result will be Q. If the first input value equals A'h, then the result will be R.
- Prefix 1 has a length equal to 12. This implies that all three input values 1000, 1010, 1020 have to be tested in order to determine whether this prefix is matching. This is implemented in the following way in the data structure in Fig. 10.
- the first input value 1000 is tested by the compressed table 1040. If the first input value would match the test vector xx OOOlb that is stored in the entry related to prefix 1, the left-most entry in the entry-block corresponding to a compressed index value 0b, then the index mask and pointer fields of this entry are retrieved and used to access a second compressed table 1050, which tests the second input value 1010.
- the only valid entry in this table contains a test vector starting with xxb (for the state register) followed by the second group of four bits of prefix 1, resulting in xx 0010b. If this test vector matches the second input value 1010, then the index mask and pointer fields of this entry are retrieved and used to access a third compressed table 1060, which tests the third input value 1020.
- the only valid entry in this table contains a test vector starting with xxb (for the state register) followed by the third group of four bits of prefix 1, resulting in xx 0011b. If this test vector matches the third input value 1020, this means that prefix 1 is matching the given set of three input values. In that case, the search result can be retrieved from the pointer field of the matching entry. If the three 4 -bit input characters equal ⁇ 123'h, then the result will be P.
- the flow chart of Fig. 11 illustrates an example of a method for parsing and searching according to the second preferred embodiment.
- the first step 1100 is to initialize the state register, the current index mask and the current base pointer with values that correspond to the first compressed table involved in the parse or search operation.
- Next step 1110 is to select the first input character to be analyzed.
- the next step 1120 is to extract the compressed index value from the input data and state register, based on the current index mask, and to use this to select an entry-block within the compressed table that is referred to by the current base pointer.
- a matching entry is searched within the selected entry-block, by comparing the test vector in each entry against the state register and input character. The first matching entry found is selected.
- Fig. 12 shows a flow chart describing an example of a method for deriving a prioritized list with state-transition rules, which each involve a ternary match condition on the current state and input value .
- This method may be used for building the data structure supporting the programmable state machine of the embodiments of the invention. This algorithm will be explained using the example of the state diagram shown in Figure 1.
- the state transitions for this state diagram are :
- An input value i that has not been processed is selected 1200.
- the most frequently occurring next state s is determined 1210, and all transitions with input value i to that next state s are replaced 1220 by one transition rule " * i -> s " with a priority 1. All transitions that involve the same input i but a different next state than s, are assigned a priority 2, 1230. These steps are repeated, answer No to test 1240, until all the input values are processed: answer yes to test 1240.
- the next step 1250 is now to determine the most frequently occurring next state s within transition rules with priority 1, that does not occur in any transition rule with priority 2. If such a state does not exist the transition rule list is completed: answer No to test 1260, the method ends. Such a state exists in the example, namely SO: answer Yes to test 1260. All transition rules with priority 1 involving a next state SO are now replaced by a default transition rule * * -> SO with priority 0, 1270. This results in:
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03794840.3A EP1547342B1 (en) | 2002-09-12 | 2003-06-26 | A method and apparatus for deep packet processing |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02368098 | 2002-09-12 | ||
EP02368098 | 2002-12-09 | ||
PCT/EP2003/008210 WO2004025920A1 (en) | 2002-09-12 | 2003-06-26 | A method and apparatus for deep packet processing |
EP03794840.3A EP1547342B1 (en) | 2002-09-12 | 2003-06-26 | A method and apparatus for deep packet processing |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1547342A1 true EP1547342A1 (en) | 2005-06-29 |
EP1547342B1 EP1547342B1 (en) | 2014-07-23 |
Family
ID=31985157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP03794840.3A Expired - Lifetime EP1547342B1 (en) | 2002-09-12 | 2003-06-26 | A method and apparatus for deep packet processing |
Country Status (6)
Country | Link |
---|---|
US (2) | US7519070B2 (en) |
EP (1) | EP1547342B1 (en) |
JP (1) | JP4452183B2 (en) |
AU (1) | AU2003255288A1 (en) |
TW (1) | TWI283974B (en) |
WO (1) | WO2004025920A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2830260A4 (en) * | 2012-08-07 | 2015-07-01 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR MATCHING RULES |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7921285B2 (en) * | 2002-12-27 | 2011-04-05 | Verizon Corporate Services Group Inc. | Means of mitigating denial of service attacks on IP fragmentation in high performance IPsec gateways |
US7586851B2 (en) * | 2004-04-26 | 2009-09-08 | Cisco Technology, Inc. | Programmable packet parsing processor |
WO2005109788A2 (en) | 2004-04-26 | 2005-11-17 | Cisco Technologies, Inc. | Programmable packet parsing processor |
US8665868B2 (en) * | 2005-08-19 | 2014-03-04 | Cpacket Networks, Inc. | Apparatus and method for enhancing forwarding and classification of network traffic with prioritized matching and categorization |
US8346918B2 (en) * | 2005-08-19 | 2013-01-01 | Cpacket Networks, Inc. | Apparatus and method for biased and weighted sampling of network traffic to facilitate network monitoring |
US8296846B2 (en) * | 2005-08-19 | 2012-10-23 | Cpacket Networks, Inc. | Apparatus and method for associating categorization information with network traffic to facilitate application level processing |
US8024799B2 (en) * | 2005-08-19 | 2011-09-20 | Cpacket Networks, Inc. | Apparatus and method for facilitating network security with granular traffic modifications |
GB2432933B (en) * | 2006-03-14 | 2008-07-09 | Streamshield Networks Ltd | A method and apparatus for providing network security |
GB2432934B (en) * | 2006-03-14 | 2007-12-19 | Streamshield Networks Ltd | A method and apparatus for providing network security |
CN101563908B (en) * | 2006-12-19 | 2013-01-09 | 国际商业机器公司 | Apparatus and method for analysing a network flow |
US7460038B2 (en) * | 2007-03-12 | 2008-12-02 | Citrix Systems, Inc. | Systems and methods of clustered sharing of compression histories |
US7532134B2 (en) * | 2007-03-12 | 2009-05-12 | Citrix Systems, Inc. | Systems and methods for sharing compression histories between multiple devices |
US7827237B2 (en) * | 2007-03-12 | 2010-11-02 | Citrix Systems, Inc. | Systems and methods for identifying long matches of data in a compression history |
US7619545B2 (en) * | 2007-03-12 | 2009-11-17 | Citrix Systems, Inc. | Systems and methods of using application and protocol specific parsing for compression |
US7865585B2 (en) * | 2007-03-12 | 2011-01-04 | Citrix Systems, Inc. | Systems and methods for providing dynamic ad hoc proxy-cache hierarchies |
US8255570B2 (en) * | 2007-03-12 | 2012-08-28 | Citrix Systems, Inc. | Systems and methods of compression history expiration and synchronization |
US20080313708A1 (en) * | 2007-06-12 | 2008-12-18 | Alcatel Lucent | Data content matching |
US8046496B1 (en) * | 2007-12-12 | 2011-10-25 | Narus, Inc. | System and method for network data compression |
US8762553B2 (en) * | 2008-01-11 | 2014-06-24 | Telefonaktiebolaget L M Ericsson (Publ) | Message handling in an IP multimedia subsystem |
US8798057B1 (en) | 2008-09-30 | 2014-08-05 | Juniper Networks, Inc. | Methods and apparatus to implement except condition during data packet classification |
US7738454B1 (en) * | 2008-09-30 | 2010-06-15 | Juniper Networks, Inc. | Methods and apparatus related to packet classification based on range values |
US7835357B2 (en) | 2008-09-30 | 2010-11-16 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on policy vectors |
US7796541B1 (en) | 2008-09-30 | 2010-09-14 | Juniper Networks, Inc. | Methods and apparatus for range matching during packet classification based on a linked-node structure |
US8804950B1 (en) | 2008-09-30 | 2014-08-12 | Juniper Networks, Inc. | Methods and apparatus for producing a hash value based on a hash function |
US8675648B1 (en) | 2008-09-30 | 2014-03-18 | Juniper Networks, Inc. | Methods and apparatus for compression in packet classification |
US7961734B2 (en) | 2008-09-30 | 2011-06-14 | Juniper Networks, Inc. | Methods and apparatus related to packet classification associated with a multi-stage switch |
US8488588B1 (en) | 2008-12-31 | 2013-07-16 | Juniper Networks, Inc. | Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric |
US8111697B1 (en) | 2008-12-31 | 2012-02-07 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on multiple conditions |
US7889741B1 (en) | 2008-12-31 | 2011-02-15 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on multiple conditions |
WO2011006117A2 (en) * | 2009-07-09 | 2011-01-13 | Cpacket Networks, Inc. | Apparatus and method for enhancing forwarding, classification, and monitoring of network traffic |
US9613292B1 (en) | 2012-01-26 | 2017-04-04 | Hrl Laboratories, Llc | Secure multi-dimensional pattern matching for secure search and recognition |
US8818923B1 (en) | 2011-06-27 | 2014-08-26 | Hrl Laboratories, Llc | Neural network device with engineered delays for pattern storage and matching |
US10346617B1 (en) | 2010-01-25 | 2019-07-09 | Hrl Laboratories, Llc | Protocol for securely searching streaming data with constant bandwidth |
CN102143148B (en) * | 2010-11-29 | 2014-04-02 | 华为技术有限公司 | Parameter acquiring and general protocol analyzing method and device |
US9282060B2 (en) | 2010-12-15 | 2016-03-08 | Juniper Networks, Inc. | Methods and apparatus for dynamic resource management within a distributed control plane of a switch |
US8681819B2 (en) | 2011-01-31 | 2014-03-25 | International Business Machines Corporation | Programmable multifield parser packet |
US9110703B2 (en) * | 2011-06-07 | 2015-08-18 | Hewlett-Packard Development Company, L.P. | Virtual machine packet processing |
US9171247B1 (en) | 2011-06-27 | 2015-10-27 | Hrl Laboratories, Llc | System and method for fast template matching in 3D |
US9336239B1 (en) | 2011-06-27 | 2016-05-10 | Hrl Laboratories, Llc | System and method for deep packet inspection and intrusion detection |
US9009089B1 (en) | 2011-06-27 | 2015-04-14 | Hrl Laboratories, Llc | Secure pattern matching |
US8806174B2 (en) * | 2011-12-16 | 2014-08-12 | Stec, Inc. | Method and system for hash key memory footprint reduction |
US10181049B1 (en) | 2012-01-26 | 2019-01-15 | Hrl Laboratories, Llc | Method and apparatus for secure and privacy-preserving querying and interest announcement in content push and pull protocols |
US10621364B1 (en) | 2012-01-26 | 2020-04-14 | Hrl Laboratories, Llc | Generic pattern matching system |
US9043264B2 (en) * | 2012-12-14 | 2015-05-26 | International Business Machines Corporation | Scanning data streams in real-time against large pattern collections |
US9602129B2 (en) * | 2013-03-15 | 2017-03-21 | International Business Machines Corporation | Compactly storing geodetic points |
US9719790B2 (en) | 2013-03-15 | 2017-08-01 | International Business Machines Corporation | Mapping uncertain geometries to graticules |
US9578141B2 (en) | 2013-11-03 | 2017-02-21 | Ixia | Packet flow modification |
US9543980B2 (en) | 2014-10-10 | 2017-01-10 | Massachusettes Institute Of Technology | Systems and methods for model-free compression and model-based decompression |
US9886783B2 (en) | 2015-01-07 | 2018-02-06 | International Business Machines Corporation | Indexing and querying spatial graphs |
KR20170028825A (en) * | 2015-09-04 | 2017-03-14 | 퓨어 스토리지, 아이앤씨. | Memory-efficient storage and searching in hash tables using compressed indexes |
CN106919501A (en) * | 2015-12-25 | 2017-07-04 | 北京计算机技术及应用研究所 | Static Analysis Method and instrument based on defect mode |
US10033750B1 (en) | 2017-12-05 | 2018-07-24 | Redberry Systems, Inc. | Real-time regular expression search engine |
US9967272B1 (en) | 2017-12-05 | 2018-05-08 | Redberry Systems, Inc. | Real-time regular expression search engine |
CN112350947B (en) * | 2020-10-23 | 2022-07-29 | 杭州迪普信息技术有限公司 | Message matching decision tree updating method and device |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067041A (en) * | 1998-10-15 | 2000-05-23 | Northrop Grumman Corporation | Moving target simulator |
US6947430B2 (en) * | 2000-03-24 | 2005-09-20 | International Business Machines Corporation | Network adapter with embedded deep packet processing |
TW484282B (en) | 2000-04-10 | 2002-04-21 | D Link Corp | Monitoring management method of network exchange system to the online frame |
WO2001086433A1 (en) * | 2000-05-11 | 2001-11-15 | Solidum Systems Corp. | Packet classification state machine |
US7327759B2 (en) * | 2001-07-25 | 2008-02-05 | International Business Machines Corporation | Sequence-preserving deep-packet processing in a multiprocessor system |
US7054311B2 (en) * | 2001-07-27 | 2006-05-30 | 4198638 Canada Inc. | Methods and apparatus for storage and processing of routing information |
US7065086B2 (en) * | 2001-08-16 | 2006-06-20 | International Business Machines Corporation | Method and system for efficient layer 3-layer 7 routing of internet protocol (“IP”) fragments |
US7376125B1 (en) * | 2002-06-04 | 2008-05-20 | Fortinet, Inc. | Service processing switch |
US7266120B2 (en) * | 2002-11-18 | 2007-09-04 | Fortinet, Inc. | System and method for hardware accelerated packet multicast in a virtual routing system |
US7784094B2 (en) * | 2005-06-30 | 2010-08-24 | Intel Corporation | Stateful packet content matching mechanisms |
-
2003
- 2003-06-26 EP EP03794840.3A patent/EP1547342B1/en not_active Expired - Lifetime
- 2003-06-26 US US10/527,493 patent/US7519070B2/en not_active Expired - Fee Related
- 2003-06-26 WO PCT/EP2003/008210 patent/WO2004025920A1/en active Application Filing
- 2003-06-26 AU AU2003255288A patent/AU2003255288A1/en not_active Abandoned
- 2003-06-26 JP JP2004535053A patent/JP4452183B2/en not_active Expired - Fee Related
- 2003-09-09 TW TW092124894A patent/TWI283974B/en not_active IP Right Cessation
-
2008
- 2008-05-19 US US12/123,183 patent/US7787474B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
See references of WO2004025920A1 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2830260A4 (en) * | 2012-08-07 | 2015-07-01 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR MATCHING RULES |
US9811777B2 (en) | 2012-08-07 | 2017-11-07 | Huawei Technologies Co., Ltd. | Rule matching method and apparatus for deep packet inspection |
Also Published As
Publication number | Publication date |
---|---|
US20080228798A1 (en) | 2008-09-18 |
WO2004025920A1 (en) | 2004-03-25 |
TWI283974B (en) | 2007-07-11 |
JP2005538624A (en) | 2005-12-15 |
US20060095588A1 (en) | 2006-05-04 |
US7519070B2 (en) | 2009-04-14 |
EP1547342B1 (en) | 2014-07-23 |
AU2003255288A1 (en) | 2004-04-30 |
US7787474B2 (en) | 2010-08-31 |
JP4452183B2 (en) | 2010-04-21 |
TW200415878A (en) | 2004-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1547342B1 (en) | A method and apparatus for deep packet processing | |
US7535906B2 (en) | Packet classification | |
US7545809B2 (en) | Packet classification | |
US8018944B1 (en) | Apparatus and method for efficient longest prefix match lookup | |
EP1168723B1 (en) | Method and apparatus for longest matching prefix determination in a communication network | |
US7251651B2 (en) | Packet classification | |
US6792423B1 (en) | Hybrid longest prefix match and fixed match searches | |
US6560610B1 (en) | Data structure using a tree bitmap and method for rapid classification of data in a database | |
US6778984B1 (en) | Flexible and high-performance packet classification algorithm | |
US6775737B1 (en) | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories | |
EP1358739B1 (en) | Method and apparatus for routing table management | |
US6594655B2 (en) | Wildcards in radix- search tree structures | |
US6862281B1 (en) | L4 lookup implementation using efficient CAM organization | |
US7315547B2 (en) | Packet forwarding device | |
US7415472B2 (en) | Comparison tree data structures of particular use in performing lookup operations | |
US6782382B2 (en) | Prefix search method and data structure using compressed search tables | |
US7249149B1 (en) | Tree bitmap data structures and their use in performing lookup operations | |
CA2365395C (en) | Default route coding | |
EP1485827A2 (en) | Efficient ipv4/ipv6 best matching prefix method and apparatus | |
US11327974B2 (en) | Field variability based TCAM splitting | |
US20030009474A1 (en) | Binary search trees and methods for establishing and operating them | |
Tzeng | Longest prefix search using compressed trees | |
WO2002058340A1 (en) | A method for using a balanced tree as a base for a routing table | |
US6895442B1 (en) | Technique for fast and efficient internet protocol (IP) address lookup | |
JP4726310B2 (en) | Information retrieval apparatus, information retrieval multiprocessor and router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20050408 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK |
|
DAX | Request for extension of the european patent (deleted) | ||
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION Owner name: COMPAGNIE IBM FRANCE |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: COMPAGNIE IBM FRANCE Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: VAN LUNTEREN, JAN |
|
17Q | First examination report despatched |
Effective date: 20090213 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 12/743 20130101ALI20140123BHEP Ipc: H04L 29/06 20060101AFI20140123BHEP |
|
INTG | Intention to grant announced |
Effective date: 20140207 |
|
INTG | Intention to grant announced |
Effective date: 20140213 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP Ref country code: CH Ref legal event code: NV Representative=s name: IBM RESEARCH GMBH ZURICH RESEARCH LABORATORY I, CH |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R084 Ref document number: 60346539 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 679396 Country of ref document: AT Kind code of ref document: T Effective date: 20140815 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 60346539 Country of ref document: DE Effective date: 20140904 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R084 Ref document number: 60346539 Country of ref document: DE Effective date: 20140801 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 746 Effective date: 20140901 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 679396 Country of ref document: AT Kind code of ref document: T Effective date: 20140723 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: VDEP Effective date: 20140723 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20141024 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20141124 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20141023 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 60346539 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20150424 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20150626 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20160229 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20150630 Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20150626 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20150630 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20150630 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20030626 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20140723 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20180601 Year of fee payment: 16 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20180405 Year of fee payment: 16 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 60346539 Country of ref document: DE |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20190626 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200101 Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190626 |