Triggered Modification of Data Traffic

Information

  • Patent Application
  • 20070226419
  • Publication Number
    20070226419
  • Date Filed
    March 02, 2007
    17 years ago
  • Date Published
    September 27, 2007
    16 years ago
Abstract
Apparatus and associated systems and methods may relate to a data traffic modification system that may modify a data stream as a function of a selected data value in the data stream, where the data value is selected from among values received into a buffer before the occurrence of a trigger condition. In an illustrative example, a buffer in a data traffic modification device may receive and temporarily store multiple data values being transferred between a source device (e.g., server) and a target device (e.g., storage area network). In some embodiments, the buffered data may contain data to be captured in response to detecting a trigger condition. The captured data, for example, may be used to generate a substitution value for another location in the data stream. Accordingly, some implementations may provide for capture of data values that precede a trigger data value within a data stream.
Description

DESCRIPTION OF DRAWINGS


FIG. 1 illustrates a block diagram of an exemplary configuration capable of modifying data traffic.



FIG. 2 is a block diagram of an exemplary data traffic modification device.



FIGS. 3
a-c are block diagrams depicting exemplary configurations for using a data traffic modification device.



FIG. 4 is a flow diagram of an exemplary state machine for data traffic modification.



FIG. 5 is a table that illustrates an exemplary communication session among a SATA initiator, a data traffic modification device, and a SATA target, when the SATA target requests a hold.



FIG. 6 is a table that that illustrates an exemplary communication session among a SATA initiator, a data traffic modification device, and a SATA target, when the SATA initiator requests a hold.



FIG. 7 is a block diagram depicting an exemplary method for processing a pause request from a SATA target coupled to a data traffic modification device.



FIG. 8 is a block diagram depicting an exemplary process for handling a context using in a data traffic modification device.



FIGS. 9
a-c illustrate two exemplary data substitution processes being performed upon the data stream.



FIGS. 10
a-d illustrate an exemplary graphical user interface for viewing and editing data modification scenarios.


Claims
  • 1. A method of selectively modifying data traffic, the method comprising: receiving data traffic into a buffer of a data traffic modification device, the data traffic being conveyed between a source device and a target device;receiving a trigger signal in response to the occurrence of a trigger condition;in response to the trigger signal, selecting a first portion of the data traffic that was received into the buffer before the trigger signal was received, wherein the selection is made according to a predetermined rule;storing a copy of the first portion of the data traffic into a data store in the data traffic modification device; andselectively modifying a second portion of the data traffic using data contained in the first portion of the data traffic.
  • 2. The method of claim 1, wherein the second portion of the data traffic exits the buffer before the first portion of the data traffic exits the buffer.
  • 3. The method of claim 1, wherein selectively modifying the second portion of the data traffic comprises adding the copy of the first portion of the data traffic to the data traffic.
  • 4. The method of claim 1, wherein selectively modifying the second portion of the data traffic comprises identifying a second data value in the data traffic, and modifying the second data value based on a predetermined function of the first portion of the data traffic.
  • 5. The method of claim 4, wherein the predetermined function comprises a bit mask.
  • 6. The method of claim 4, wherein the predetermined function comprises computing a value as a mathematical function of the first portion of the data traffic
  • 7. The method of claim 6, wherein the predetermined function further comprises computing a value as a mathematical function of the second data value.
  • 8. The method of claim 1, wherein selectively modifying the second portion of the data traffic comprises modifying the data traffic by modifying the data contained in the first portion of the data traffic.
  • 9. The method of claim 1, wherein the data traffic modification device comprises a data store containing a set of instructions that, when executed by a processor, cause the processor to perform operations to detect the occurrence of the trigger condition.
  • 10. The method of claim 10, wherein the processor comprises an electrically programmable gate array.
  • 11. The method of claim 9, wherein the set of instructions further comprises at least one event instruction to define the trigger condition, and an action instruction associated with an action to be performed upon the occurrence of the trigger condition.
  • 12. The method of claim 9, wherein the set of instructions was developed by receiving user input through a graphical user interface (GUI) editor in which the user is permitted during an editing session to edit a source code for the set of instructions such that the edits render the source code invalid for the data traffic modification device.
  • 13. The method of claim 12, further comprising compressing data containing the source code for storage in a data store on the data traffic modification device.
  • 14. The method of claim 12, further comprising synchronizing a plurality of versions of an executable code on a corresponding plurality of data traffic modification devices, each version of the executable code corresponding to the a version of the source code.
  • 15. The method of claim 12, wherein the GUI comprises a region to display both an error message associated with a determined error in the invalid source code and at least a portion of the source code during an editing session.
  • 16. The method of claim 15, wherein the error message indicates a type of an error identified by a validity determination.
  • 17. The method of claim 15, wherein the error message indicates a location of an error within the source code.
  • 18. The method of claim 1, wherein selectively modifying the second portion of the data traffic comprises introducing a data error into the data traffic.
  • 19. The method of claim 1, wherein selectively modifying the second portion of the data traffic further comprises updating an error correction value in the data traffic such that the updated error correction data corresponds to the selectively modified data with the introduced data error.
  • 20. The method of claim 1, wherein the trigger condition comprises a user-specified data value in the data traffic.
  • 21. The method of claim 1, wherein the trigger condition comprises an external signal received by the data traffic modification device.
  • 22. The method of claim 1, wherein the trigger condition comprises an offset relative to a portion of a specified data frame.
  • 23. The method of claim 1, wherein the trigger condition comprises a timed offset from a specified event.
  • 24. The method of claim 1, wherein the trigger condition comprises a predetermined sequence of multiple events.
  • 25. The method of claim 1, wherein the data traffic comprises one or more frames of data.
  • 26. The method of claim 1, further comprising buffering the data traffic after receiving a Serial Advanced Technology Attachment (SATA)-compliant pause request.
  • 27. The method of claim 1, further comprising restoring a context of the data traffic (a) in response to receiving a signal to resume transmission of the data traffic, and (b) before resuming transmission of the data traffic.
  • 28. A data traffic processing system comprising: a buffer to receive a data stream that propagates between a source device and a target device during a data transfer;an event detection module to detect an occurrence of a user-specified condition;a substitution module to selectively modify the data stream in the buffer in response to signals from the event detection module; anda memory containing instructions that, when executed, cause operations to be performed to: (a) capture a value received into the buffer before the event detection module detects the occurrence of the user-specified condition; and(b) operate the substitution module to modify the data stream as a function of the captured value.
  • 29. The system of claim 28, wherein the event detection module monitors at least one direction of the data stream.
  • 30. The system of claim 28, wherein the captured value is at a first position in the data stream, and the substitution module operates to modify a data value at a second position in the data stream, wherein the first and second positions in the data stream are different.
  • 31. The system of claim 30, wherein the data value at the second position is received into the buffer before the captured value at the first position is received into the buffer.
Provisional Applications (8)
Number Date Country
60779039 Mar 2006 US
60779179 Mar 2006 US
60778834 Mar 2006 US
60779084 Mar 2006 US
60779180 Mar 2006 US
60779085 Mar 2006 US
60779264 Mar 2006 US
60892093 Feb 2007 US