Source: http://www.google.com/patents/US7853578?dq=mirroring+data+in+a+remote+data+storage+system
Timestamp: 2014-09-02 21:45:19
Document Index: 539834422

Matched Legal Cases: ['art 11', 'art 11', 'art 11', 'art 11', 'art 11', 'art 11', 'art 11', 'art 11', 'art 16']

Patent US7853578 - High-performance pattern matching - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign in<nobr>Advanced Patent Search</nobr>PatentsApparatus having corresponding methods and computer programs, to detect a pattern in a string, comprises a memory circuit to store W-character segments of the pattern, where each segment comprises a fragment of the pattern; a key circuit to generate W-character keys each including a fragment of the string;...http://www.google.com/patents/US7853578?utm_source=gb-gplus-sharePatent US7853578 - High-performance pattern matchingAdvanced Patent SearchPublication numberUS7853578 B1Publication typeGrantApplication numberUS 11/607,116Publication dateDec 14, 2010Filing dateNov 30, 2006Priority dateDec 9, 2005Fee statusPaidAlso published asUS8301604Publication number11607116, 607116, US 7853578 B1, US 7853578B1, US-B1-7853578, US7853578 B1, US7853578B1InventorsTal Anker, Yaron Weinsberg, Shimrit Tzur-David, Danny DolevOriginal AssigneeMarvell International Ltd., Yissum Research Development Company Of The Hebrew University Of JerusalemExport CitationBiBTeX, EndNote, RefManPatent Citations (10), Non-Patent Citations (19), Referenced by (5), Classifications (13), Legal Events (3) External Links: USPTO, USPTO Assignment, EspacenetHigh-performance pattern matchingUS 7853578 B1Abstract Apparatus having corresponding methods and computer programs, to detect a pattern in a string, comprises a memory circuit to store W-character segments of the pattern, where each segment comprises a fragment of the pattern; a key circuit to generate W-character keys each including a fragment of the string; a comparison circuit to compare the keys and the segments; where, when a segment matches a key, the comparison circuit indicates an initial match between the pattern and the string; and where, when one of the segments matches only a L-character fragment of one of the keys, wherein L<W, the key circuit generates a new key including the L-character fragment and a K-character fragment of the string including K=W−L consecutive characters from the string that are adjacent to the L matching characters in the string.
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/748,922 filed Dec. 9, 2005, the disclosure thereof incorporated by reference herein in its entirety.
BACKGROUND The present invention relates generally to pattern matching. More particularly, the present invention relates to high-performance pattern matching.
SUMMARY In general, in one aspect, the invention features an apparatus for detecting a pattern in a string, wherein the pattern and the string each comprise one or more characters selected from a finite set of the characters, wherein the string is N characters in length and the pattern is M characters in length, wherein N>M, the apparatus comprising: a ternary content-addressable memory (TCAM) comprising a first plurality of rows each storing a segment comprising W−S consecutive ones of the characters in the pattern preceded by S don't-care characters, wherein 0≦S≦W; a random-access memory to store the value of S for each of the rows of the TCAM; and a controller to generate keys based on the string, wherein each of the keys includes the consecutive ones of the N characters in a window of W characters of the string, and to apply the keys to the TCAM; wherein, when the TCAM returns a matching row having a shift of S>0 in response to one of the keys, the controller shifts the window S places to the right and generates a new key including the consecutive ones of the N characters in the shifted window; and wherein, when the TCAM returns a matching row having a shift of S=0, the controller declares an initial match between the pattern and the string.
DESCRIPTION OF DRAWINGS FIG. 1 shows a pattern-matching apparatus according to a preferred embodiment of the present invention.
FIG. 4 shows the contents of a TCAM and RAM, where the TCAM is four characters wide, for matching a string having a value �wwabcdeftxyzabcdarp� with five patterns �abcdef�, �xyz�, �ab�, �filename�, and �abcdarp�.
DETAILED DESCRIPTION Embodiments of the present invention provide high-performance pattern-matching capable of matching multiple patterns in a single operation. When used in data communications networks, embodiments of the present invention provide line-rate speed several orders of magnitude faster than conventional solutions, while attaining a similar accuracy of detection. Embodiments of the present invention are fully compatible with Snort's rules syntax [Sno], which is the de facto standard for network intrusion prevention systems (NIPS). However, while embodiments of the present invention are discussed in terms of matching patterns with strings contained in packets of data, for example in NIPS systems, embodiments of the present invention can be employed in any pattern-matching system.
FIG. 4 shows the contents of a TCAM 306 and a RAM 310, where the TCAM 306 is four characters wide (W=4), for matching a string having a value �wwabcdeftxyzabcdarp� with five patterns �abcdef�, �xyz�, �ab�, �filename�, and �abcdarp�. In some embodiments, RAM 310 also stores a pattern list comprising a table of the patterns, and stores additional information for each pattern, for example, information concerning the pattern that has been extracted from matching rules such as Snort rules. For example, consider the following rules for the example of FIG. 4:
Rule 0: content:�abcdef�; content:�xyz�; within:5;
Rule 1: content:�ab�; offset:8; content:�filename�; distance:3; within:15;
Rule 2: content:�abcdarp�; depth:25;
Rule 0 indicates that the patterns �abcdef� and �xyz� must occur within 5 characters of each other. Rule 1 indicates that the pattern �ab� must occur after the 8th character of the string, and that the pattern �filename� must occur between 3 and 15 characters after the pattern �ab�. Rule 2 indicates that the pattern �abcdarp� must occur within the first 25 characters of the string. Table 1 shows the contents of the pattern list for the example of FIG. 4 according to a preferred embodiment of the present invention.
�xyz� �ab�
�abcdarp�
In the pattern list, each pattern is identified by a numeric identifier. Referring to Table 1, the patterns �abcdef�, �xyz�, �ab�, �filename�, and �abcdarp� are identified as patterns 0-4, respectively. The entry for each pattern lists the characters in the pattern, the length (len) of the pattern, whether the pattern is the root of a rule (that is, the first pattern in a rule), and the offset for the pattern, if any, which indicates the starting point in a string 318 for pattern matching. Each entry can list the distance for the pattern, if any, which indicates the minimum number of characters allowed between two successive matches. Each entry can list a �within� value, if any, which indicates the maximum number of characters allowed between two successive pattern matches. Each entry can list the depth, if any, which indicates how far into the string the algorithm should search for the pattern. Each entry also lists pointers TPtrs to the rows in TCAM 306 that store segments from the pattern when the length of the pattern exceeds the width W of TCAM 306. Null values are indicated by �null� or �−1�.
Each pattern is segmented and stored in TCAM 306, and corresponding shift values S are stored in RAM 310 (step 502), as described in detail below with reference to FIG. 6. Variations of the stored segments are stored in the following rows of TCAM 306, and corresponding shift values S are stored in RAM 310 (step 504), as described in detail below with reference to FIG. 7. A segment including don't-care characters is stored in TCAM 306 after the variations, and a shift value of S=W is stored in the corresponding row of RAM 310 (step 506). In the example of FIG. 4, W=4, so the segment �????� is stored in the last row shown for TCAM 306, and a shift value of S=4 is stored in the corresponding row of RAM 310. In some embodiments, the segments are stored in TCAM 306 according to the number of don't-care characters in the segments. For example, referring to FIG. 4, the segments are stored in order of increasing numbers of don't-care characters. In some embodiments, process 500 goes on to ensure no two or more rows of the TCAM store the same data (step 508).
If the length N of the pattern is less than the width W of TCAM 306, process 600 generates a segment comprising the pattern followed by a padding of don't-care characters (step 604), and stores the segment in a row of TCAM 306 (step 606). In the example of FIG. 4, for the pattern �xyz�, process 600 stores the segment �xyz?�, and for the pattern �ab�, process 600 stores the segment �ab??�, as shown in FIG. 4 at rows six and seven of TCAM 306, respectively.
In particular, process 600 generates a first segment including the first W characters of the pattern (step 610), and stores the segment in a row of TCAM 306 (step 606). For example, for the pattern �abcdef�, process 600 stores the segment �abed�, and for the pattern �filename�, process 600 stores the segment �file�, as shown in FIG. 4 at rows one and three of TCAM 306, respectively.
Regardless of how the segment is generated (step 604, 608, or 610), after storing the segment (step 606), process 600 sets the shift value S=0, and determines the association(s) and any inclusions for the segment (step 612). An association is a pattern that includes the segment. Of course, each segment is associated with the pattern from which it was taken. For example, the segments �abed�, �file�, �xyz�, and �ab??� are associated with patterns 0, 3, 1, and 2, respectively, as shown in FIG. 4 at rows 1, 3, 6 and 7, respectively. But each segment may also be associated with other patterns. For example, the segment �abed� is also associated with pattern 4 (�abcdarp�), as shown in the first row of FIG. 4 (�association:(0,4)�).
An inclusion is a pattern that is completely contained in a segment. For example, the segment �abed� contains pattern 2 (�ab�), as shown in the first row of FIG. 4 (�inclusion:(2)�). Process 600 stores the shift value S, the association(s), and any inclusions in the corresponding row of RAM 310 (step 614).
If W or more characters remain in the pattern (step 620), process 600 generates a segment including the next W characters in the pattern (step 622), and stores the segment in a row of TCAM 306 (step 624). For example, for the pattern �filename�, process 600 stores the segment �name�, as shown in FIG. 4 at row four of TCAM 306. Process 600 then increments shift value S and stores S in the corresponding row of RAM 310 (step 626). Process 600 then resumes at step 620.
However, when fewer than W characters remain in the pattern (returning to step 620), then process 600 generates a segment including the last W characters of the pattern (step 628), and stores the segment in a row of TCAM 306 (step 630). For example, for the pattern �abcdef�, process 600 stores the characters �cdef�, as shown in FIG. 4 at row two of TCAM 306. Process 600 then increments shift value S and stores S in the corresponding row of RAM 310 (step 632). Then process 600 is done (step 634).
First, a counter I is set to the value of W, which is the width in characters of TCAM 306 (step 702). In the example of FIG. 4, W=4. Then counter I is decremented (step 704). The segment is shifted right by one character (step 706), and prepended with one don't-care character (step 708). Process 700 stores the resulting segment in a row of TCAM 306 (step 710), and stores a shift value S=W−1 in the corresponding row of RAM 310 (step 712). If I=1 (step 714), process 700 is done (step 716). Otherwise, process 700 resumes at step 704. For example, process 700 generates and stores the following variations of the segment �abcd�: �?abc�, �??ab�, and �???a�, and stores the shift values S=1, S=2, and S=3 in the corresponding rows of RAM 310, as shown in FIG. 4.
But while the number of characters in string 318 to be searched is greater than, or equal to, the width of TCAM 306, that is, P≦N−W, (step 804), process 800 continues. Controller 304 generates a key 308 of W characters starting at position P (step 808). In the example of FIG. 4, P=0, so the key �wwab� is generated.
If S>0 (step 818), indicating an initial match, controller 304 increases the search position P by the shift value S, that is, P=P+S (step 820), and resumes process 800 at step 804. This operation serves to place the matching characters at the beginning of the next key 308 generated, thereby increasing the efficiency of the search operation. In the example of FIG. 4, the first row of TCAM 306 to match the key �wwab� is the ninth row, which contains the segment �??ab�, and which has a corresponding shift value of S=2. Therefore, the next key generated is �abcd�.
When the shift value S for a matched row in TCAM 306 is zero (step 818), controller 304 declares an initial match (step 822) between the pattern and string 318. In the example of FIG. 4, the key �abcd�, when applied to TCAM 306, matches the first row, which has a corresponding shift value of S=0. Therefore controller 304 declares an initial match, for example by asserting match signal 312. Controller 304 then increments position P by 1 (step 824), and resumes process 800 at step 804.
In some embodiments, controller 304 identifies the matching pattern when declaring an initial match. In these embodiments, RAM 310 includes associations for each pattern. In the example of FIG. 4, the segment �abcd� is associated with pattern 0=�abcdef� and pattern 4=�abcdarp�.
In some embodiments, after declaring an initial match for one or more of the patterns, controller 304 goes on to determine whether any of the patterns has a complete match in a string 318. FIG. 9 shows a process 900 for complete string matching following an initial match according to a preferred embodiment of the present invention. First, controller 304 selects one of the patterns for which an initial match has been declared (step 902). In the example of FIG. 4, pattern 0=�abcdef� is selected.
But if any unmatched characters remain in the selected pattern, then controller 304 determines whether W or more unmatched characters remain in the selected pattern (step 908). If W or more unmatched characters remaining in the selected pattern, controller 304 generates a key 308 including the next W unmatched characters in the pattern (step 910). But if fewer than W unmatched characters remain in the selected pattern, controller 304 generate a key 308 including the last W characters in the pattern (step 912). In the example of FIG. 4, the number of unmatched characters is 2<W=4, so controller 304 generates the key �cdef�, which are the last W characters pattern 0.
But if S=0 (step 922), indicating a match between key 308 and the pattern, controller 304 resumes process 900 at step 904. In the example of FIG. 4, the key �cdef� matches the second row of TCAM 306, which has a shift value of S=0. Because no unmatched characters remain in the pattern, controller 304 declares a complete match for the pattern.
Some embodiments also search for inclusions, that is, patterns that are included within other patterns. In the example of FIG. 4, pattern 2=�ab� is included within pattern 0=�abcdef� and pattern 4=�abcdarp�, and so the first row of TCAM 306, which contains the segment �abcd� has a corresponding entry in RAM 310 that indicates pattern 2 as an inclusion. Controller 304 therefore checks pattern 2 for a match. However, pattern 2 has an offset=8, and so does not match.
Continuing the example of FIG. 4 for embodiments implementing matching rules, controller 304 increments position P by 1 (FIG. 8, step 824), and generates the key �bcde� (step 808). When applied to TCAM 306, key �bcde� matches only the last row, which has a shift value of S=4. Therefore controller 304 increments position P by 4 (step 820), and generates the key �ftxy� (step 808). When applied to TCAM 306, key �ftxy� matches the 20th row containing the segment �??xy�, which has a shift value of S=2. Therefore controller 304 increments position P by 2 (step 820), and generates the key �xyza� (step 808). When applied to TCAM 306, key �xyza� matches the sixth row containing the segment �xyz?�, which has a shift value of S=0 and an association with pattern 1=�xyz�. Therefore, controller 304 declares an initial match (step 822). After declaring a complete match, controller 304 adds pattern 1 to the matched patterns list, which is shown below as Table 2B, then indicates a complete match for pattern 1 ending at position 11 in string 318.
Continuing the example of FIG. 4 for embodiments implementing matching rules, controller 304 increments position P by 1 (FIG. 8, step 824), and therefore generates the key �yzab� (step 808), which when applied to TCAM 306, matches the ninth row, which has a shift value of S=2. Therefore controller 304 increments position P by 2 (step 820), and generates the key �abcd� (step 808), which when applied to TCAM 306, matches the first row containing the segment �abcd�, which has a shift value of S=0 and associations with pattern 0=�abcdef� and pattern 4=�abcdarp�. Therefore, controller 304 declares partial matches for pattern 0 and pattern 4 (step 822).
For pattern 0, process 900 of FIG. 9 then generates the key �cdef� (step 912) which results in a shift value of S>0 (step 922), indicating the match is not complete. For pattern 4, process 900 of FIG. 9 then generates the key �darp� (step 912) which results in a shift value of S=0 (step 922), indicating a complete match, which controller 304 declares (step 906).
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS6081440 *Nov 5, 1998Jun 27, 2000Lara Technology, Inc.Ternary content addressable memory (CAM) having fast insertion and deletion of data valuesUS6874016 *Oct 14, 2003Mar 29, 2005Cisco Technology, Inc.Information searching deviceUS7134143 *Feb 4, 2003Nov 7, 2006Stellenberg Gerald SMethod and apparatus for data packet pattern matchingUS7185017 *Apr 10, 2002Feb 27, 2007Compuware CorporationSystem and method for selectively processing data sub-segments using a data maskUS7225188 *Feb 13, 2002May 29, 2007Cisco Technology, Inc.System and method for performing regular expression matching with high parallelismUS7492763 *Jul 16, 2004Feb 17, 2009Applied Micro Circuits CorporationUser-specified key creation from attributes independent of encapsulation typeUS7602785 *Feb 9, 2005Oct 13, 2009Washington UniversityMethod and system for performing longest prefix matching for network address lookup using bloom filtersUS7613822 *Jun 30, 2003Nov 3, 2009Microsoft CorporationNetwork load balancing with session informationUS20050021491 *Aug 28, 2003Jan 27, 2005Sandburst CorporationApparatus and method for classifier identificationUS20070115986 *Nov 1, 2005May 24, 2007Udaya ShankaraMethod to perform exact string match in the data plane of a network processor* Cited by examinerNon-Patent CitationsReference1802.11n; IEEE P802.11-04/0889r6; Wireless LANs, TGn Sync Proposal Technical Specification; 131 pages.2A Fast Generic Sequence Matching Algorithm; by David R. Musser and Gor V. Nishanov; Feb. 2, 2001; 64 pages.3A Fast String Searching Algorithm; by Robert S. Boyer (Stanford Research Institute) and J. Strother Moore; (Xerox Palo Research Center); Copyright 1977; pp. 762-772.4A Network Intrusion Prevention System (NIPS) for High-Speed Networks; by Shimrit Tzur-David; Sep. 2005; 89 pages.5A taxonomy of keyword pattern matching algorithms; by B.W. Watson and G. Zwaan; Computing Science Note 92/27; Eindhoven, Dec. 1992; 51 pages.6ANSI/IEEE Std 802.11, 1999 Edition; Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications; LAN/MAN Standards Committee of the IEEE Computer Society; 528 pages.7ANSI/IEEE Std 802.11, 1999 Edition; Information technology�Telecommunications and information exchange between systems�Local and metropolitan area networks�Specific requirements�Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications; LAN/MAN Standards Committee of the IEEE Computer Society; 528 pages.8IEEE 802.20-PD-06, IEEE p. 802.20 V14, Jul. 16, 2004, Draft 802.20 Permanent Document, System Requirements for IEEE 802.20 Mobile Broadband Wireless Access Systems-Version 14, 23 pages.9IEEE 802.20-PD-06, IEEE p. 802.20 V14, Jul. 16, 2004, Draft 802.20 Permanent Document, System Requirements for IEEE 802.20 Mobile Broadband Wireless Access Systems�Version 14, 23 pages.10IEEE P802.11g/D8.2, Apr. 2003 (Supplement to ANSI/IEEE Std 802.11-1999(Reaff 2003)); DRAFT Supplement to STANDARD [for] Information Technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Further Higher Data Rate Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 69 pages.11IEEE P802.11g/D8.2, Apr. 2003 (Supplement to ANSI/IEEE Std 802.11-1999(Reaff 2003)); DRAFT Supplement to STANDARD [for] Information Technology�Telecommunications and information exchange between systems�Local and metropolitan area networks�Specific requirements�Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Further Higher Data Rate Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 69 pages.12IEEE Std 802.11a-1999 (Supplement to IEEE Std 802.11-1999) [Adopted by ISO/IEC and redesignated as ISO/IEC 8802-11: 1999/Amd 1:2000(E)]; Supplement to IEEE Standard for Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications High-speed Physical Layer in the 5 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 91 pages.13IEEE Std 802.11a-1999 (Supplement to IEEE Std 802.11-1999) [Adopted by ISO/IEC and redesignated as ISO/IEC 8802-11: 1999/Amd 1:2000(E)]; Supplement to IEEE Standard for Information technology�Telecommunications and information exchange between systems�Local and metropolitan area networks�Specific requirements�Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications High-speed Physical Layer in the 5 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 91 pages.14IEEE Std 802.11b-1999 (Supplement to IEEE Std 802.11-1999 Edition); Supplement to IEEE Standard for Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; Sep. 16, 1999 IEEE-SA Standards Board; 96 pages.15IEEE Std 802.11b-1999 (Supplement to IEEE Std 802.11-1999 Edition); Supplement to IEEE Standard for Information technology�Telecommunications and information exchange between systems�Local and metropolitan area networks�Specific requirements�Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; Sep. 16, 1999 IEEE-SA Standards Board; 96 pages.16IEEE Std 802.16-2004 (Revision of IEEE Std 802.16-2001) IEE Standard for Local and metropolitan area networks; Part 16: Air Interface for Fixed Broadband Wireless Access Systems; IEEE Computer Society and the IEEE Microwave Theory and Techniquest Society; Oct. 1, 2004; 893 pages.17 *Long Bu, John A. Chandy, "A Keyword Match Processor Architecture using Content Addressable Memory" GLSVLSI'04 , Apr. 26-28, 2004, ACM, pp. 372-376.18 *Rong-Tai Liu; Nen-Fu Huang; Chih-Hao Chen and Chia-Nan Kao, "A Fast String-Matching Algorithm for Network Processor-Based Intrusion Detection System" ACM Transactions on Embedded Computing Systems, vol. 3, No. 3, Aug. 2004, p. 614-633.19 *Tatsuya Akutsu, "Approximate String Matching With Don't Care Characters", Jun. 19, 1995, Informarmation Processing Letters 55 (19950, pp. 235-239.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS8458796Mar 8, 2011Jun 4, 2013Hewlett-Packard Development Company, L.P.Methods and systems for full pattern matching in hardwareUS8630989 *May 27, 2011Jan 14, 2014International Business Machines CorporationSystems and methods for information extraction using contextual pattern discoveryUS20100306209 *Aug 13, 2010Dec 2, 2010Tien-Fu ChenPattern matcher and its matching methodUS20120303661 *May 27, 2011Nov 29, 2012International Business Machines CorporationSystems and methods for information extraction using contextual pattern discoveryWO2012121966A2 *Mar 1, 2012Sep 13, 2012Hewlett-Packard Development Company, L.P.Methods and systems for full pattern matching in hardware* Cited by examinerClassifications U.S. Classification707/706, 707/999.006, 711/108, 707/776International ClassificationG06F7/00, G06F17/30Cooperative ClassificationG06F7/02, H04L63/1416, Y10S707/99936, G06F17/30988, G06F2207/025European ClassificationG06F7/02, G06F17/30Z2P7Legal EventsDateCodeEventDescriptionJun 16, 2014FPAYFee paymentYear of fee payment: 4Oct 28, 2010ASAssignmentOwner name: MARVELL INTERNATIONAL LIMITED, BERMUDAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL SOFTWARE SOLUTIONS ISRAEL LTD.;REEL/FRAME:025211/0377Effective date: 20080618Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WEINSBERG, YARON;TZUR-DAVID, SHIMRIT;DOLEV, DANNY;SIGNING DATES FROM 20101017 TO 20101021;REEL/FRAME:025208/0241Owner name: YISSUM RESEARCH DEVELOPMENT COMPANY OF THE HEBREWFree format text: CHANGE OF NAME;ASSIGNOR:RADLAN COMPUTER COMMUNICATIONS LTD.;REEL/FRAME:025239/0785Owner name: MARVELL SOFTWARE SOLUTIONS ISRAEL LTD., ISRAELEffective date: 20070321Nov 30, 2006ASAssignmentFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ANKER, TAL;REEL/FRAME:018663/0102Effective date: 20061129Owner name: RADLAN COMPUTER COMMUNICATIONS, LTD., ISRAELRotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google