Patent ID: 7107359

Claim:
A host-fabric adapter installed at a host system for connecting to a switched fabric of a data network, comprising: a Micro-Engine (ME) arranged to establish connections and support data transfers via said switched fabric; a serial interface arranged to receive and transmit data packets from said switched fabric for data transfers; a host interface arranged to receive and transmit host data transfer requests, in the form of descriptors, from said host system for data transfers; a first-in/first-out (FIFO) interface arranged to receive and transmit data packets to/from said switched fabric via said serial interface, and incorporated therein a Receiver Header Hardware Assist (HWA) Mechanism configured to check header information of incoming data packets host descriptors for header errors so as to offload said Micro-Engine (ME) from having to check for said header errors, wherein said Receiver Header Hardware Assist (HWA) mechanism comprises: context registers loaded with context information pertaining to an incoming data packet; header registers loaded with header information of the incoming data packet; and a processor arranged to execute header checks and comparisons of the header information and the context information and determine whether the incoming data packet is good, and wherein said header checks and comparisons include (1) Version Compare which is a comparison of the context version and the packet version; (2) Priority Compare which is a comparison of the context priority and the packet priority; (3) Source Address Compare which is a comparison of the context destination address and the source address; (4) Source Work Queue Compare which is a comparison of the context destination work queue (WQ) and the source work queue (WQ) number; (5) Port Compare which is a comparison of the context port value and the port the packet was received on; (6) Channel Configuration Check which is a comparison of the OpCode and the context channel configuration type; (7) OpCode Consistency Check which is a comparison of the OpCode with context information; (8) Length Consistency Check which is a comparison of the OpCode with the Length to ensure the length is in the acceptable range for that OpCode; (9) Read Permission Check which is a comparison of the OpCode with the context read permission bit; (10) Write Permission Check which is a comparison of the OpCode with the context write permission bit; (11) Cell Sequence Number Check (CSN) which is a comparison of the received CSN and the context expected CSN; and (12) Packet Sequence Number (PSN) Check which is a comparison of the received PSN with the context expected PSN based to find the relative position of the PSN.