I have always read that statement as really meaning that, if a packet arrives with a Block Number less-than that expected - and we would only ever expect to see (block-num - 1) - then this is quietly dropped - it simply means that our last acknowledge was missed by the sender and we can safely move on.tofro wrote:With regards to the scatter/gather algorithm used by LBYTES, this small sentence from the TK2 docs might be of importance:
This doesn't look to me as if gather would actually work over the network with TK2.If the block number received in a header is not equal to the block number required, then the header
and data block are acknowledged but ignored.
Tobias
I don't think the fs.save equivalent will actually send the packets down the wire in the order they were physically pulled from the FS device, but will serialise them enroute.
If so, the fact that the packets will only arrive down the wire in serial fashion - albeit, with an occasional dupe - suggests that the scatter-load approach of fs.load would not be a problem in itself - it would just never be needed. The issue, if I am on the right lines at all, is that fs.load will AFAIK also disable interrupts before calling the NET driver, which could conceivably get messy if, as we see in Tk2, the interrupts are switched back-on before return, regardless of previous state.
As mentioned, Minerva aims instead to preserve the interrupt status (plus other SR flags) which seems more 'right'. Could also be completely irrelevant - I'll know more tonight