Forum Discussion
Altera_Forum
Honored Contributor
13 years agoTSE Header Checksum and CRC
(1) Does the TSE (Triple Speed Ethernet) calculate the header checksum when transmitting, or does the avalon stream need to already have this embedded?
(2) Does the TSE calculate the packet CRC when transmitting, or does the avalon stream need to already have this embedded? Similarly, are these automatically checked by the receiver? Thanks.4 Replies
- Altera_Forum
Honored Contributor
(1) No
(2) No If the receiver is just the TSE, no again. I'm guessing these aren't the answers you were hoping for. - Altera_Forum
Honored Contributor
Actually the TSE by default automatically adds and checks the Ethernet CRR. You can disable this if you want to do it yourself on the Avalon stream. When you let the TSE check the CRC, you will always receive the frame, but an error bit will indicate if there was a CRC error. It is up to you to decide what you want to do to the frame.
The header checksum isn't handled by the TSE though, this one you have to do yourself. - Altera_Forum
Honored Contributor
--- Quote Start --- Actually the TSE by default automatically adds and checks the Ethernet CRR. You can disable this if you want to do it yourself on the Avalon stream. When you let the TSE check the CRC, you will always receive the frame, but an error bit will indicate if there was a CRC error. It is up to you to decide what you want to do to the frame. The header checksum isn't handled by the TSE though, this one you have to do yourself. --- Quote End --- is there a way to read the data generated by TSE reference design Ethernet Packet generator and store in memory or text file or array - Altera_Forum
Honored Contributor
I don't know what you mean by "reference design Ethernet Packet generator" but if you are talking about the offload example, it's aim is to handle packet generation or reception in hardware, and it's not that easy to get hold of the data.
If you use a standard TSE design example with the Nios CPU and a network stack then you can do this in software, using the standard BSD sockets API.