
On Mon 27 Jul 2009 01:08, Ben Warren pondered:
Hi Guys,
This is great work. Thanks! If you follow these guidelines, I'll pull it into the net repo:
- Configurable block size (via a well-named CONFIG). Choose a good default value.
- Handle out-of-order fragments, and some test results showing that it works.
Are you OK with something that only has been tested with TFTP?
Looks like nfs.h also has:
/* Block size used for NFS read accesses. A RPC reply packet (including all * headers) must fit within a single Ethernet frame to avoid fragmentation. * Chosen to be a power of two, as most NFS servers are optimized for this. */ #define NFS_READ_SIZE 1024
- Make the feature configurable
- Test with a TFTP server that doesn't have blksize feature enabled
It looks like the logic to do this is already there today - U-Boot uses a non-standard Block size (1468), and then falls back to 512 if it fails, or if the server doesn't ACK the option...
I'm not sure about how to handle the configurability of this feature.
I think there are two issues: - core networks stuff (CONFIG_NET_FRAG_SIZE defines the size of a reassembled packet, if it is not set, no reassembly code..) - default block size (if CONFIG_NET_FRAG_SIZE is defined, just read it from an env var?) or do you want a separate fixed CONFIG (and checks to make sure it is going to fit?)
I can see this being the default configuration in the future, but for now it should probably be opt-in. Let's see how it goes.