[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] Comments about "low_level_output"
From: |
Frédéric BERNON |
Subject: |
[lwip-devel] Comments about "low_level_output" |
Date: |
Thu, 24 May 2007 17:39:41 +0200 |
Before one of last
commits (for bug #3168), "sendto" on udp or raw didn't return any error if the
netif's low_level_output return something different than ERR_OK. It wasn't so
good, but now, it's fixed. But during one of my unit tests to measure
performance (a "hot" subject), I have note that the test failed (and of course,
always succes before): in fact, because I had fill all my device MAC
"descriptors", my low_level_output return a ERR_IF error (/* Low-level netif
error */). And because this error is now return until conn->err, API stop to
send, and even application got the error. All these errors checkings are good,
but functionally, it's not correct. So, my questions:
1/ What do you
think that a "low_level_output" function should return when all "buffers" are
full?
2/ Is it
something you do in your ports to "block" inside low_level_output to wait some
space to send? (I don't think, but...)
3/ Isn't it
something to document anywhere? I think, but where? I thought to
rawpi.txt...
4/ Should we have to
"filter" such "temporary errors" inside do_xxx functions? (It will add some
code, and increase footprint, so, I don't like that)
My current
workaround is to return ERR_OK in the place of ERR_IF in this case (it's just
affect my port, and, after all, a packet could always be lost in the
network...)
Thank you for your
comments...
====================================
Frédéric
BERNON
HYMATOM SA
Chef de projet informatique
Microsoft
Certified Professional
Tél. : +33
(0)4-67-87-61-10
Fax. : +33
(0)4-67-70-85-44
Email : address@hiddenr
Web Site : http://www.hymatom.fr
====================================
P
Avant
d'imprimer, penser à l'environnement
Frédéric BERNON.vcf
Description: Frédéric BERNON.vcf
- [lwip-devel] Comments about "low_level_output",
Frédéric BERNON <=