Patent ID: 7805629

Claim:
A method comprising: initiating communication between a remote management module and an agent within a network storage system, wherein the remote management module and the agent cooperatively implement an abstraction layer through which protected data is communicated over an integrated circuit bus to allow the remote management module to be platform independent and compatible with a plurality of different network storage systems, and wherein the agent is positioned between control circuitry of the network storage system and the remote management module within the network storage system, and wherein the agent is configured to monitor system events in the network storage system and act as an intermediary between the remote management module and the control circuitry of the network storage system, wherein the agent includes a buffer to implement the abstraction layer using a packet protocol in which data is queued in the buffer upon a system event and de-queued upon request by the Remote Management Module in response to an interrupt asserted by the agent, the network storage system for servicing a plurality of storage clients over a network; wherein the remote management module is coupled with a remote administrative console connected to a communications port of the network storage system to allow communication between the remote administrative console and the remote management module over a network to permit a user of the remote administrative console to access and manage the network storage system from a remote location, communicating protected data between the remote management module and the agent, wherein the remote management module and the agent are configured to prevent errors by communicating protected data over the integrated circuit bus, wherein the protected data includes a first data chunk and a second data chunk, the second data chunk being a complement of the first data chunk, the second data chunk for use in verification of the protected data; and detecting an error by comparing data in the first data chunk with data in the second data chunk after concurrently storing the first data chunk and the second data chunk in a buffer.