On Friday 23 Jul 2010 06:59:56 Guo-Fu Tseng wrote: > BTW, do you think it's reasonable to do something like: > "[tcp] Cleanup TCP closing actions" patch which it sumbitted > on gpxe-devel list?[2] > > I think it might be useful for following reasons: > 1. We don't have to think of what would tcp_close() do if we call it > somewhere. The behavior of calling tcp_close() would be always the same. > 2. Reduced some duplicate code. > 3. We don't have to separate tcp_close() from tcp_rx_fin(). And have the > same behavior. Seems a little more neat to me. > > Above results are accomplished by: > 1. Separate terminate action. > 2. Separate terminate action. > 3. Separate nullify xfer interface. > (Which is part of "[tcp] Receive and Close flow adjustment"[1]) > > [1]: > http://git.etherboot.org/?p=people/cooldavid/gpxe.git;a=commitdiff;h=8fc73d > 18c8528cbcc1b1c3849b51d3ee3682c937 [2]: > http://git.etherboot.org/?p=people/cooldavid/gpxe.git;a=commitdiff;h=660e96 > 200f67c981e7397eb05fbb4e91ed253f50
Simplifying the closing actions would be good, though I'm not immediately clear on what the patch would look like. How about putting together a patch for [tcp] Deliver data only after updating TCP state i.e. the "struct list_head received ..." code I described, which *doesn't* require tcp_xfer_shutdown() to be split out of tcp_close(), and then adding the support for active/passive close and any cleanup of closing actions on top of that? (It's up to you, but that's how I would approach it.) Michael

