Forum Discussion
Altera_Forum
Honored Contributor
15 years ago --- Quote Start --- 1518 being the amount of payload bytes for one MAC-Frame. How can I execute a transmit operation with the TSE?? So far I've used the send() function with my socket which sends a buffer of data. I have to get access to any place the DMA writes data to if I wanted to use the send() function. --- Quote End --- The payload depends on the protocol you will use. 1518 is the max length of a raw Ethernet frame, but your payload is generally at least 14 bytes shorter because of Ethernet II header (6 bytes for destination MAC, 6 for source MAC and 2 for eth type). Morteover, if you use IP, UDP or TCP you have extra protocol header bytes and your payload shrinks. Since you talk about sockets and a send() function, I believe you intend to use UDP or TCP for data transport. With UDP the total protocol bytes are 42, so you spare 1476 for your data payload. Regarding the dma buffer, you can pass the same pointer to the send function. You can't transfer directly with dma to tse if your communication involves some higher layer protocol (at least, I don't think this is an easy task).