A method and apparatus is presented for performing a sequence-level CRC calculation on fiber channel communications within a switching platform domain. Specifically, the disclosed invention utilizes a CRC generator to monitor data communication between an external interface and a fiber channel controller. The CRC generator searches the data communication for frames that contain the type of data for which a sequence-level CRC is desired, such as for a sequence containing SCSI data. When found, the CRC generator performs an 8B/10B decode, strips off any fill bytes, and performs a CRC calculation on the data payload. If the found frame is the first frame in the sequence, the CRC is done starting with a reset value. If the frame is not the first, an intermediate value containing the previous CRC calculation results for this sequence is retrieved and used to perform the CRC calculations. Upon completion of the calculation for the frame, a determination is made whether the sequence is complete. If so, the calculated value is the sequence-level CRC. If not, the calculated value is stored in memory for use with the next frame in that sequence. With inbound data, the calculated sequence-level CRC is appended to the end of the data comprising that sequence. With outbound data, the calculated value is compared with the appended, expected value, and a CRC error is generated if the values do not match. The sequence-level CRC value appended to the sequence data is typically removed before the data exits the switching platform domain.

Um método e um instrumento são apresentados executando um cálculo do CRC do seqüência-nível em comunicações de canaleta da fibra dentro de um domínio da plataforma do switching. Especificamente, a invenção divulgada utiliza um gerador do CRC para monitorar a transmissão de dados de entre uma relação externa e um controlador de canaleta da fibra. O gerador do CRC procurara a transmissão de dados de pelos frames que contêm o tipo de dados para que um seqüência-nível CRC é desejado, como para uma seqüência que contem dados de SCSI. Quando encontrado, o gerador do CRC executa um 8B/10B descodifica, descasca fora todos os bytes da suficiência, e executa um cálculo do CRC no payload dos dados. Se o frame encontrado for o primeiro frame na seqüência, o CRC é começar feita com um valor da restauração. Se o frame não for o primeiro, um valor intermediário que contem o cálculo precedente do CRC resulta para esta seqüência está recuperado e usado executar os cálculos do CRC. Em cima da conclusão do cálculo para o frame, uma determinação é feita se a seqüência está completa. Se assim, o valor calculado é o seqüência-nível CRC. If.not, o valor calculado é armazenado na memória para o uso com o frame seguinte nessa seqüência. Com dados inbound, o seqüência-nível calculado CRC é adicionado ao fim dos dados que compreendem essa seqüência. Com os dados outbound, o valor calculado é comparado com o valor adicionado, previsto, e um erro do CRC é gerado se os valores não combinarem. O valor do CRC do seqüência-nível adicionado aos dados da seqüência é removido tipicamente antes das saídas dos dados o domínio da plataforma do switching.

 
Web www.patentalert.com

< Software controlled cache line ownership affinity enhancements in a multiprocessor environment

< Storing and using the history of data transmission errors to assure data integrity

> Cache management using a buffer for invalidation requests

> Hot swapping

~ 00090