This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RedBoot: discarding Ethernet frames when out of pktbufs?
- To: ecos-discuss at sources dot redhat dot com
- Subject: [ECOS] RedBoot: discarding Ethernet frames when out of pktbufs?
- From: Grant Edwards <grante at visi dot com>
- Date: Wed, 20 Jun 2001 11:41:15 -0500
I'm once again trying to get RedBoot to do things far above and
beyond what it was originally designed to do. ;)
My latest problem:
1) RedBoot advertises a TCP window of something like 1460 bytes.
2) If an interface with a small MTU decides to send a block of
data, it feels free to send five 300 byte packets without
waiting for an ACK.
3) If there are only 4 pktbufs, RedBoot does a
while(1)
;
I'd like to change RedBoot to discard Ethernet frames if it's
out of packet buffers rather than locking up (resulting in a WD
timeout).
What I'm thinking about is not calling eth_drv_read() unless
there's a pktbuf available. I can make sure that my Ethernet
driver does what I want when the Rx frame FIFO overflows, but
I'm curious: would this approach will cause problems with other
Ethernet drivers?
I think I've got my Ethernet controller set up to buffer up to
16 frames, so that should be plenty of time for RedBoot to
catch up without actually overflowing the FIFO. If the Rx FIFO
_does_ overflow, a frame gets discarded, and the TCP retry
mechanism kicks in.
--
Grant Edwards
grante@visi.com