In one embodiment, a method includes receiving a scrambled message over a network connection. The method further includes detecting one or more embedded responses in the scrambled message. In addition, the method includes discovering any streamed embedded responses of the one or more embedded responses. Further, the method includes, responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate. Moreover, the method includes, responsive to a determination that fewer than all of the one or more embedded responses validate, discovering any interleaved embedded responses of the one or more embedded responses. The method also includes, responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate. Additionally, the method includes, responsive to a determination that all of the one or more embedded responses validate, retaining the one or more responses.
|
12. An information handling system, comprising:
a processing unit, wherein the processing unit is operable to implement a method comprising:
receiving a scrambled message over a network connection;
detecting one or more embedded responses in the scrambled message;
discovering any streamed embedded responses of the one or more embedded responses;
responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate;
responsive to a determination that fewer than all of the one or more embedded responses validate, discovering any interleaved embedded responses of the one or more embedded responses;
responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate; and
responsive to a determination that all of the one or more embedded responses validate, retaining the one or more responses.
1. A method comprising:
on an information handling system, receiving a scrambled message over a network connection;
detecting, by the information handling system, one or more embedded responses in the scrambled message;
discovering, by the information handling system, any streamed embedded responses of the one or more embedded responses;
responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate;
responsive to a determination that fewer than all of the one or more embedded responses validate, discovering, by the information handling system, any interleaved embedded responses of the one or more embedded responses;
responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate; and
responsive to a determination that all of the one or more embedded responses validate, the information handling system retaining the one or more responses.
20. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:
receiving a scrambled message over a network connection;
detecting one or more embedded responses in the scrambled message;
discovering any streamed embedded responses of the one or more embedded responses;
responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate;
responsive to a determination that fewer than all of the one or more embedded responses validate, discovering any interleaved embedded responses of the one or more embedded responses;
responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate; and
responsive to a determination that all of the one or more embedded responses validate, retaining the one or more responses.
2. The method of
3. The method of
4. The method of
responsive to the filtering, determining whether the filtered scrambled message is structurally sound;
retaining the filtered scrambled message as a response if the filtered scrambled message is determined to be structurally sound; and
wherein the detecting is only performed responsive to a determination that the filtered scrambled message is not structurally sound.
5. The method of
6. The method of
searching the scrambled message for one or more complete sets of valid and contiguous fields;
considering each complete set to be a streamed embedded response; and
responsive to a determination that a remainder of the scrambled message constitutes a complete set of valid fields, considering the remainder to constitute one of the one or more embedded responses.
7. The method of
attempting to locate in the scrambled message each field of the at least one embedded response in an order specified by a message format; and
responsive to a determination that a complete set of valid fields has been found, considering the complete set to be the at least one embedded response.
8. The method of
9. The method of
10. The method of
11. The method of
locating in the scrambled message a response-start indicator;
locating in the scrambled message a valid device identifier following the response-start indicator;
locating a valid command following the valid device identifier;
locating a valid payload length following the command;
locating a valid payload following the payload length; and
considering the response-start indicator, the valid device identifier, the valid command, the valid payload length, and the valid payload to constitute an interleaved embedded response.
13. The information handling system of
14. The information handling system of
responsive to the filtering, determining whether the filtered scrambled message is structurally sound;
retaining the filtered scrambled message as a response if the filtered scrambled message is determined to be structurally sound; and
wherein the detecting is only performed responsive to a determination that the filtered scrambled message is not structurally sound.
15. The information handling system of
16. The information handling system of
searching the scrambled message for one or more complete sets of valid and contiguous fields;
considering each complete set to be a streamed embedded response; and
responsive to a determination that a remainder of the scrambled message constitutes a complete set of valid fields, considering the remainder to constitute one of the one or more embedded responses.
17. The information handling system of
attempting to locate in the scrambled message each field of the at least one embedded response in an order specified by a message format;
responsive to a determination that a complete set of valid fields has been found, considering the complete set to be the at least one embedded response; and
responsive to a determination that a remainder of the scrambled message constitutes a complete set of valid fields, considering the remainder to constitute another of the one or more embedded responses.
18. The information handling system of
19. The information handling system of
locating in the scrambled message a response-start indicator;
locating in the scrambled message a valid device identifier following the response-start indicator;
locating a valid command following the valid device identifier;
locating a valid payload length following the command;
locating a valid payload following the payload length; and
considering the response-start indicator, the valid device identifier, the valid command, the valid payload length, and the valid payload to constitute an interleaved embedded response.
|
1. Technical Field
The present invention relates generally to network error correction and more particularly, but not by way of limitation, to systems and methods for correcting scrambled messages.
2. History of Related Art
On a communications network, a monitoring node may periodically issue commands to monitored devices. The commands typically request certain data such as, for example, a firmware version, a status, or other information. In response, the monitored devices typically transmit messages (i.e., responses) that provide the requested data. Oftentimes, particularly in communications networks such as radio networks and serial-communication networks, network unreliability and/or environmental conditions can cause the messages to arrive scrambled. That is, the messages may no longer conform to a sequence of fields required by a message format. For example, a single scrambled message may contain noise, have multiple distinct messages randomly interleaved therein, etc. Traditionally, scrambled messages are handled utilizing a combination of checksums and retransmissions. For the most part, scrambled messages must be discarded.
Moreover, as the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
In one embodiment, a method comprises, on an information handling system, receiving a scrambled message over a network connection, detecting, by the information handling system, one or more embedded responses in the scrambled message. The method further includes discovering, by the information handling system, any streamed embedded responses of the one or more embedded responses. In addition, the method includes, responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate. The method also includes, responsive to a determination that fewer than all of the one or more embedded responses validate, discovering, by the information handling system, any interleaved embedded responses of the one or more embedded responses. The method additionally includes, responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate. Furthermore, the method includes, responsive to a determination that all of the one or more embedded responses validate, the information handling system retaining the one or more responses.
In one embodiment, an information handling system includes a processing unit. The processing unit is operable to implement a method. The method includes receiving a scrambled message over a network connection. The method further includes detecting one or more embedded responses in the scrambled message. In addition, the method includes discovering any streamed embedded responses of the one or more embedded responses. Further, the method includes, responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate. Moreover, the method includes, responsive to a determination that fewer than all of the one or more embedded responses validate, discovering any interleaved embedded responses of the one or more embedded responses. The method also includes, responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate. Additionally, the method includes, responsive to a determination that all of the one or more embedded responses validate, retaining the one or more responses.
In one embodiment, a computer-program product includes a computer-usable medium having computer-readable program code embodied therein. The computer-readable program code is adapted to be executed to implement a method. The method includes receiving a scrambled message over a network connection. The method further includes detecting one or more embedded responses in the scrambled message. In addition, the method includes discovering any streamed embedded responses of the one or more embedded responses. Further, the method includes, responsive to the discovering of any streamed embedded responses, determining whether all of the one or more embedded responses validate. Moreover, the method includes, responsive to a determination that fewer than all of the one or more embedded responses validate, discovering any interleaved embedded responses of the one or more embedded responses. The method also includes, responsive to the discovering of any interleaved embedded responses, determining whether all of the one or more embedded responses validate. Additionally, the method includes, responsive to a determination that all of the one or more embedded responses validate, retaining the one or more responses.
A more complete understanding of the method and apparatus of the present invention may be obtained by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:
In various embodiments, scrambled messages can better detected and corrected via principles described herein. A scrambled message, as used herein, refers to a message that does not conform to a message format. A message format, as used herein, refers to predetermined spatial or time-sequential arrangements of parts of a message. The parts of a message may be referred to herein as fields.
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer (e.g., desktop or laptop), tablet computer, mobile device (e.g., personal digital assistant (PDA) or smart phone), server (e.g., blade server or rack server), a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, touchscreen and/or a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
It should be appreciated that the network 108 is intended to abstract a plurality of networks over which the monitoring system 102 may be operable to communicate. In particular, the network 108 logically represents all communication infrastructure for connecting the monitoring system 102 to each of the monitored information handling systems 110. The network 108 can include any number of wired and/or wireless communications networks such as, for example, public or private intranets, the Internet, public switched telephone networks (PSTNs), cellular networks, satellite communication, and the like. To the extent a particular information handling system of the monitored information handling systems 110 connects to the monitoring system 102 through others of the monitored information handling systems 110, for purposes of communication between the monitoring system 102 and the particular information handling system, the network 108 can be considered to include those other information handling systems.
The monitored information handling systems 110 can include, for example, field devices (e.g., programmable logic controllers (PLCs)) that control or monitor local operations such as opening and closing valves and breakers, sensor systems, remote terminal units (RTUs) that connect to and gather data from sensor systems, and the like. The monitored information handling systems 110 can also include, for example, server computers, desktop computers, laptop computers, tablet computers, and smartphones. The monitored information handling systems 110 can also include networking equipment such as, for example, routers, switches, wireless access points, and the like. In various embodiments, subsets of the monitored information handling systems 110 may be interconnected. Each interconnected subset may be arranged into a network topology that has, for example, a tree structure. In this manner, some of the monitored information handling systems 110 may be effectively dependent upon others of the monitored information handling systems 110. The monitored information handling systems 110 may also be geographically dispersed on a global level.
The monitoring system 102 is operable to periodically issue commands to the monitored information handling systems 110 over the communications network 108. The commands may request certain data such as, for example, a status, a firmware version, or other information. The monitored information handling systems 110, in turn, are operable to transmit responses, often asynchronously, over the network 108. In a typical embodiment, the monitoring system 102 is operable to detect and correct when one or more of the responses arrive as scrambled messages. Examples will be described with respect to
At step 204, the monitoring system optionally filters the scrambled message to remove extraneous characters. What constitutes extraneous characters can vary depending on a particular implementation. For example, if a message format specifies that only a predefined set of characters be used, any characters that are not part of the predefined set may be considered noise and removed. For instance, some message formats may specify that hexadecimal characters be exclusively used. In these embodiments, any characters that are not hexadecimal characters may be removed at step 204. From step 204, the process 200 proceeds to step 206.
At step 206, the monitoring system determines whether the scrambled message is structurally sound. In a typical embodiment, the scrambled message is considered structurally sound if, after any filtering at step 202, the scrambled message conforms to a sequence of fields specified by the message format (i.e., is no longer scrambled). If it is determined at step 208 that the scrambled message is structurally sound, the process 200 proceeds to step 210. At step 210, the scrambled message is retained. From step 210, the process 200 proceeds to step 226 and ends.
If it is determined at step 208 that the scrambled message is not structurally sound, the process 200 proceeds to step 212. At step 212, the monitoring system detects one or more embedded responses in the scrambled message. The detection typically involves determining how many responses are embedded within the scrambled message. In certain embodiments, responses can be detected by scanning for response indicators. In a typical embodiment, response indicators are codes, characters, or other types of values that only occur once per response. The response indicators may be, for example, response-start indicators or response-end indicators. Response-start indicators may be, for example, a control code or character that indicates a beginning of a response. Response-end indicators may be, for example, a control code or character that indicates an end of a response. From step 212, the process 200 proceeds to step 214.
At step 214, the monitoring system attempts to discover any streamed embedded responses. A streamed embedded response is a valid response that appears contiguously in the scrambled message without interruption by noise or other characters such as, for example, portions of another response. More particularly, a streamed embedded response generally includes a complete, contiguous set of fields in an order specified by the message format. For example, suppose the scrambled message contained “aaabbbbbbaaa.” If “bbbbbb” were a valid, intended response, “bbbbbb” would be considered a streamed embedded response. Additionally, identification of “bbbbbb” as a streamed embedded response would enable identification of “aaaaaa” as an embedded response. An example of discovering streamed embedded responses will be described in more detail with respect to
From step 214, the process 200 proceeds to step 216. At step 216, the monitoring system determines whether all responses embedded within the scrambled message successfully validate following the discovery at step 214. In a typical embodiment, all responses are determined to successfully validate if a total number of discovered embedded responses equals a total number of embedded responses that were detected at step 212. If it is determined at step 216 that all responses embedded within the scrambled message successfully validate, the process 200 proceeds to step 224. At step 224, all embedded responses are retained. From step 224, the process 200 proceeds to step 226 and ends.
If it is determined at step 216 that fewer than all responses within the scrambled message successfully validate, the process 200 proceeds to step 218. At step 218, the monitoring system attempts to discover any interleaved embedded responses. An interleaved embedded response is a response that is entirely contained within the scrambled message but is not contiguous. For example, suppose the scramble message contained “aabbaabbaabb.” If “aaaaaa” and “bbbbbb” were intended responses, each intended response would be considered an interleaved embedded message. In some embodiments, the discovery at step 218 is performed with respect to an entirety of the scrambled message and ignores any embedded messages discovered at step 214. In other embodiments, the discovery at step 218 leverages any embedded responses already discovered at step 214 and only conducts discovery with respect to a remainder of the scrambled message. Examples of discovering interleaved embedded responses will be described with respect to
From step 218, the process 200 proceeds to step 220. At step 220, the monitoring system determines whether all embedded responses successfully validate following the discovery at step 218. In a typical embodiment, all responses are determined to successfully validate if a total number of discovered embedded responses equals a total number of embedded responses that were detected at step 212. If it is determined at step 220 that all embedded responses successfully validate, the process 200 proceeds to step 224. At step 224, all embedded responses are retained as described above. From step 224, the process 200 proceeds to step 226 and ends.
If it is determined at step 220 that fewer than all responses within the scrambled message successfully validate, the process 200 proceeds to step 222. At step 222, all embedded responses are discarded. Although the process 200 describes the embedded responses as being discarded for purposes of illustration, in some embodiments, a higher error tolerance may enable some of the embedded responses to be retained and used. From step 222, the process 200 proceeds to step 226 and ends.
It should be appreciated that the order and arrangement of steps in the process 200 is presented as an example of inventive principles. In various embodiments, various steps may be omitted, modified, or rearranged. For example, in some embodiments, the discovery of streamed embedded responses at step 212 may be omitted. Rather, the discovery described with respect to step 214 may be relied upon for both streamed embedded responses and interleaved embedded responses. Other modifications and optimizations will be apparent to one of ordinary skill in the art after reviewing the inventive principles described herein.
At step 302, the monitoring system searches for complete sets of valid, contiguous fields. In a typical embodiment, the monitoring system checks each embedded response detected, for example, at step 212 of the process 200, beginning with the embedded response's response-start indicator. An example of how a set of fields may be considered valid will be described relative to interleaved embedded responses with respect to
At step 306, each complete set is considered to be a streamed embedded response. From step 306, the process 300 proceeds to step 308. At step 308, the monitoring system determines whether a remainder of the scrambled message constitutes a complete set of valid fields. The remainder generally encompasses the scrambled message without any streamed embedded responses. If it is determined at step 308 that that the remainder of the scrambled message constitutes a complete set of valid fields, the process 300 proceeds to step 310. At step 310, the remainder of the scrambled message is considered to be an embedded response. From step 310, the process 300 proceeds to step 312 and ends. If it is determined at step 308 that the remainder of the scrambled message does not constitute a complete set of valid fields, the process 300 proceeds to step 312 and ends.
At step 402, the monitoring system selects an embedded response. From step 402, the process 400 proceeds to step 404. At step 404, the monitoring system attempts to validly locate each field of the embedded response in an order specified by the message format. Typically, the monitoring system looks for a complete set of fields that is internally consistent, conforms to a format and sequence specified by the message format, complies with the monitoring system's expectations for each field's value, corresponds to an original command issued by the monitoring system, and/or meets other requirements. An example will be described with respect to
At step 406, the monitoring system determines whether a complete set of valid fields was located at step 404. If it is determined at step 406 that a complete set of valid fields was not found, the process 400 proceeds directly to step 408 (described below). If it is determined at step 406 that a complete set of valid fields was found, the process 400 proceeds to step 410. At step 410, the complete set is deemed to constitute the embedded response. From step 410, the process 400 proceeds to step 412.
At step 412, the monitoring system determines whether a remainder of the scrambled message constitutes a complete set of valid fields. The remainder generally encompasses the scrambled message without any interleaved embedded responses. If it is determined at step 412 that that the remainder of the scrambled message constitutes a complete set of valid fields, the process 400 proceeds to step 414. At step 414, the remainder of the scrambled message is considered to be another embedded response. From step 414, the process 400 proceeds to step 416 and ends. If it is determined at step 412 that the remainder of the scrambled message does not constitute a complete set of valid fields, the process 400 proceeds to step 408.
At step 408, the monitoring system determines whether there are additional embedded responses through which the process 400 has not yet iterated. If so, the process 400 returns to step 402 for selection of another embedded response. If it is determined at step 410 that there are no additional embedded responses through which the process 400 has not yet iterated, the process 400 proceeds to step 412. At step 412, the process 400 ends.
As described above, a message format can take numerous forms. For illustrative purposes, an example of a message format will now be described. It should be appreciated that this example is being described solely for purposes of explaining various inventive principles to one of ordinary skill in the art. Table 1 below lists fields of an exemplary message format. The exemplary message format specifies a length of each field and a field sequence (i.e., the order in which the fields are listed in Table 1). Message formats can take numerous other forms without deviating from the principles described herein. For example, in place of a payload-length field, various embodiments may rely on a control code or character that signifies an end of a message. In these embodiments, the control code or character could indicate an end of an applicable payload, thereby eliminating a need for the payload-length field.
TABLE 1
FIELD
LENGTH
DESCRIPTION
Control
1 byte
Indicates a start of a response and
Code
may indicate a message type. For
example, the control code can be one
of the following set: m, n, o, p, q.
Device
2 bytes
Identifies a device that sent a
Identifier
response (e.g., in hexadecimal
format).
Command
2 bytes
Identifies a command (e.g., in
Code
hexadecimal format).
Payload
2 byte
A length of the payload (e.g., in
Length
hexadecimal format).
Payload
Variable
Data such as, for example, data
responsive to a command from a
monitoring system (e.g., in
hexadecimal format).
At step 502, the monitoring system locates a control character In a typical embodiment, the control character is a response-start indicator that served as the basis for detecting embedded responses as described, for example, with respect to step 212 of the process 200 of
At step 504, the monitoring system attempts to locate a valid device identifier following the control character. For purposes of the process 500, a valid device identifier is considered an address or other series of numbers and/or characters that identifies a device from which a response is expected. For example, a response may be expected due to a command issued by the monitoring system to the device. From step 504, the process 500 proceeds to step 506. At step 506, it is determined whether the monitoring system has successfully identified a valid device identifier. If not, the process 500 proceeds to step 522 and ends. Alternatively, if it is determined at step 506 that the monitoring system has successfully identified a valid device identifier, the process 500 proceeds to step 508.
At step 508, the monitoring system attempts to locate in the scrambled message a valid command following the valid device identifier. A valid command typically must correspond to, and be responsive to, an original command that was issued by the monitoring system to whatever device is identified by the valid device identifier. From step 508, the process 500 proceeds to step 510. At step 510, it is determined whether the monitoring system has successfully identified a valid command. If not, the process 500 proceeds to step 522 and ends. Alternatively, if it is determined at step 510 that the monitoring system has successfully identified a valid command, the process 500 proceeds to step 512.
At step 512, the monitoring system attempts to locate in the scrambled message a valid payload length following the valid command. In a typical embodiment, a valid payload length specifies a length such as, for example, a number of bytes, that makes sense given the valid command. For example, as long as a payload of a given length could be considered valid, the given length may be considered a valid payload length. From step 512, the process 500 proceeds to step 514. At step 514, it is determined whether the monitoring system has successfully identified a valid payload length. If not, the process 500 proceeds to step 522 and ends. Alternatively, if it is determined at step 514 that the monitoring system has successfully identified a valid command, the process 500 proceeds to step 516.
At step 516, the monitoring system attempts to locate in the scrambled message a valid payload following the valid payload length. In a typical embodiment, a payload is considered a valid payload if it is of the valid payload length and has a value that is appropriate given the valid command and/or given the original command issued by the monitoring system. For example, given the valid command, the payload may be expected to satisfy certain criteria such as, for example, having a particular value, having a value selected from a particular set of values, falling within a particular range of values, and/or the like. From step 516, the process 500 proceeds to step 518.
At step 518, it is determined whether the monitoring system has successfully identified a valid payload. If not, the process 500 proceeds to step 522 and ends. Alternatively, if it is determined at step 518 that the monitoring system has successfully identified a valid payload, the process 500 proceeds to step 520. At step 520, a set of fields defined by the valid device identifier, the valid command, the valid payload length, and the valid payload is considered to be an interleaved embedded response. From step 520, the process 500 proceeds to step 522. At step 522, the process 500 ends.
In a typical embodiment, the process 500 may be performed for each embedded response as described with respect to the process 400. For example, suppose a particular scrambled message is defined by “mFEm00FD02007E02625D33.” According to this example, each ‘m’ is a control code that serves as a response-start indicator (i.e., at index zero and index three). When performing the process 500 with respect to the particular scrambled message, the monitoring system may identify “FD,” “00,” “02” and “5D33” as a valid device identifier, a valid command, a valid payload length, and a valid payload, respectively. Therefore, “FD00025D33” may be considered to be an interleaved embedded response. As result of the discovery of the interleaved embedded response, the monitoring system may identify “FE,” “00,” “02” and “7E62” as a valid device identifier, a valid command, a valid payload length, and a valid payload, respectively. Therefore, “FE00027E62” may be considered to be another embedded response as described with respect to step 414 of
Although various embodiments of the method and apparatus of the present invention have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth herein.
Patent | Priority | Assignee | Title |
10956259, | Jan 18 2019 | Winbond Electronics Corp.; Winbond Electronics Corp | Error correction code memory device and codeword accessing method thereof |
9747434, | Sep 17 2015 | EMC IP HOLDING COMPANY LLC | Authenticating with an external device by providing a message having message fields arranged in a particular message field order |
Patent | Priority | Assignee | Title |
6934873, | Feb 28 2002 | Dell Products L.P. | Automatic BIOS recovery in a multi-node computer system |
6993677, | Jun 14 2001 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | System and method for data verification in a RAID system |
7281169, | Jan 30 2004 | Dell Products L.P. | Method, software and system for multi-path fail-over recovery in sequential storage systems |
7389462, | Feb 14 2003 | Promise Technology, Inc | System and methods for high rate hardware-accelerated network protocol processing |
7489977, | Dec 20 2005 | Fieldbus Foundation | System and method for implementing time synchronization monitoring and detection in a safety instrumented system |
7725804, | Sep 25 2007 | Google Technology Holdings LLC | Error correction management based on message type determination |
8351861, | Sep 30 2010 | Deutsche Telekom AG | Opportunistic spectrum access in mobile cognitive radio networks |
8359055, | Aug 24 2005 | NTT DoCoMo, Inc | Transmission power control method, and radio network controller |
8397120, | Dec 15 2009 | HONG KONG APPLIED SCIENCE AND TECHNOLOGY RESEARCH INSTITUTE CO LTD | Method of error correction for a multicast message |
20130042162, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 30 2013 | DELL SOFTWARE INC. | (assignment on the face of the patent) | / | |||
May 30 2013 | MCALEER, DAVID | Quest Software, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030572 | /0862 | |
Jul 01 2013 | Quest Software, Inc | DELL SOFTWARE INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 031035 | /0914 | |
Sep 07 2016 | Aventail LLC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | SECURITY AGREEMENT | 040030 | /0187 | |
Sep 07 2016 | DELL PRODUCTS, L P | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | SECURITY AGREEMENT | 040030 | /0187 | |
Sep 07 2016 | DELL SOFTWARE INC | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A , AS NOTES COLLATERAL AGENT | SECURITY AGREEMENT | 040039 | /0642 | |
Sep 07 2016 | Dell Products L P | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A , AS NOTES COLLATERAL AGENT | SECURITY AGREEMENT | 040039 | /0642 | |
Sep 07 2016 | Aventail LLC | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A , AS NOTES COLLATERAL AGENT | SECURITY AGREEMENT | 040039 | /0642 | |
Sep 07 2016 | DELL SOFTWARE INC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | SECURITY AGREEMENT | 040030 | /0187 | |
Oct 31 2016 | DELL SOFTWARE INC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | SECOND LIEN PATENT SECURITY AGREEMENT | 040587 | /0624 | |
Oct 31 2016 | DELL SOFTWARE INC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | FIRST LIEN PATENT SECURITY AGREEMENT | 040581 | /0850 | |
Oct 31 2016 | Credit Suisse AG, Cayman Islands Branch | DELL SOFTWARE INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040521 | /0467 | |
Oct 31 2016 | Credit Suisse AG, Cayman Islands Branch | DELL PRODUCTS, L P | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040521 | /0467 | |
Oct 31 2016 | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A | DELL SOFTWARE INC | RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL FRAME 040039 0642 | 040521 | /0016 | |
Oct 31 2016 | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A | Dell Products L P | RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL FRAME 040039 0642 | 040521 | /0016 | |
Oct 31 2016 | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A | Aventail LLC | RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL FRAME 040039 0642 | 040521 | /0016 | |
Oct 31 2016 | Credit Suisse AG, Cayman Islands Branch | Aventail LLC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040521 | /0467 | |
Nov 01 2016 | DELL SOFTWARE INC | QUEST SOFTWARE INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 044800 | /0848 | |
Nov 14 2017 | Credit Suisse AG, Cayman Islands Branch | QUEST SOFTWARE INC F K A DELL SOFTWARE INC | CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 044811 | /0598 | |
Nov 14 2017 | Credit Suisse AG, Cayman Islands Branch | Aventail LLC | CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 044811 | /0598 | |
May 18 2018 | QUEST SOFTWARE INC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | SECOND LIEN PATENT SECURITY AGREEMENT | 046327 | /0486 | |
May 18 2018 | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | QUEST SOFTWARE INC F K A DELL SOFTWARE INC | RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R F 040581 0850 | 046211 | /0735 | |
May 18 2018 | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | Aventail LLC | RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R F 040581 0850 | 046211 | /0735 | |
May 18 2018 | QUEST SOFTWARE INC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | FIRST LIEN PATENT SECURITY AGREEMENT | 046327 | /0347 | |
Feb 01 2022 | QUEST SOFTWARE INC | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | QUEST SOFTWARE INC | RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS | 059096 | /0683 | |
Feb 01 2022 | ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | ONELOGIN, INC | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | One Identity LLC | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | ERWIN, INC | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | BINARYTREE COM LLC | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | ANALYTIX DATA SERVICES INC | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | QUEST SOFTWARE INC | Goldman Sachs Bank USA | FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058945 | /0778 | |
Feb 01 2022 | ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | ONELOGIN, INC | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | One Identity LLC | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | ERWIN, INC | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | BINARYTREE COM LLC | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | ANALYTIX DATA SERVICES INC | MORGAN STANLEY SENIOR FUNDING, INC | SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT | 058952 | /0279 | |
Feb 01 2022 | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | QUEST SOFTWARE INC | RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS | 059105 | /0479 |
Date | Maintenance Fee Events |
Sep 17 2015 | ASPN: Payor Number Assigned. |
Mar 25 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 20 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 20 2018 | 4 years fee payment window open |
Apr 20 2019 | 6 months grace period start (w surcharge) |
Oct 20 2019 | patent expiry (for year 4) |
Oct 20 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 20 2022 | 8 years fee payment window open |
Apr 20 2023 | 6 months grace period start (w surcharge) |
Oct 20 2023 | patent expiry (for year 8) |
Oct 20 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 20 2026 | 12 years fee payment window open |
Apr 20 2027 | 6 months grace period start (w surcharge) |
Oct 20 2027 | patent expiry (for year 12) |
Oct 20 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |