- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Is Software written on NIos Eclips have some speed limitation to handle incoming udp packets.
i mean if server send continuous UDP packet (around 150 of size 1400 bytes) toward nios, will it receive all the packets without loosing any one of them. As i have design my C-Code on nios for receiving around 178 packet and sometime it receive less then that even though my server says it sends all the UDP packet (i have cheque this on wireshark). don't know where remaining UDP packet lost....is this is software issue , i am using packet memory too to hold incoming UDP packets. regardsLink copiado
3 Respostas
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
You will loose some packets at one point.
The software TCP/Ip stack can only process a certain number of packets per second. If you send more than that, you will loose some. With the Interniche stack, the task actually receiving the UDP packet and putting it in a buffer has a higher priority than the application stack that processes the packet contents. So if you receive too many packets for the application to process, the stack will run out of buffers and you'll see "no free buffers for rx" (or something like that) messages in the console. Each time this message appears, you loose a packet. If you send packets even faster than the Interniche task can handle, then you'll fill up the SGDMA's hardware FIFO and will loose packets on the hardware level, without any messages on the console, as the software stack won't even see them.- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Thanking you for informative reply
And what is that number "certain number of packets per second" for NicheStack ? Can i have 1024 UDP packet of size 1024?- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
This number depends a lot on your system, the clock frequency, memory interface, CPU load etc... It's impossible to give a figure, you must run some tests.
The total number of packets isn't really the problem, it's the number of packets per second that counts. You can receive 1024 UDP packets if you wait a bit between each one of them. If you send all of them in a big bunch you'll most probably loose some.
Responder
Opções do tópico
- Subscrever fonte RSS
- Marcar tópico como novo
- Marcar tópico como lido
- Flutuar este Tópico para o utilizador atual
- Marcador
- Subscrever
- Página amigável para impressora