A method and system for performing data integrity process is provided. The
method includes selecting a cyclic redundancy code ("CRC") mode from
amongst append, validate and keep, and validate and remove mode. If the
append mode is selected, then CRC is appended after each data block
boundary. A CRC seed value is incremented for each data block providing a
unique CRC value for each data block. If validate and keep mode is
selected, then CRC accompanying any data is compared to CRC that may have
been accumulated. If validate and remove mode is selected, then CRC is
first validated and then CRC is removed before data is sent out. The
system includes CRC logic that allows firmware running on an adapter to
select one of plural CRC modes including append, validate and keep, and
validate and remove mode.