[ipxe-devel] [PATCH] [tcp] Send keepalive packets to prevent TCP stalls

Michael Brown mcb30 at ipxe.org
Mon Jun 13 09:04:13 UTC 2016


On 13/06/16 08:33, Ladi Prosek wrote:
>> Could you try out
>>
>>    http://git.ipxe.org/people/mcb30/ipxe.git/shortlog/refs/heads/keepalive
>>
>> and let me know if it has any issues?
>
> Thanks! This branch seems to have an unrelated issue, imgfetch fails
> with "No space left on device" so I tested your commit on top of
> ipxe/master.

That's bizarre, since that branch _was_ only a single commit on top of 
the current ipxe/master.

> +       /* Hold off (or start) the keepalive timer, if applicable */
> +       if ( ! ( tcp->tcp_state & TCP_STATE_SENT ( TCP_FIN ) ) )
> +               start_timer_fixed ( &tcp->keepalive, TCP_KEEPALIVE_DELAY );
> +
>
> I'm curious if it's intentional that this is done only for ack_len >
> 0. With this logic a keepalive packet is sent every 15 seconds during
> long-running downloads even if the download is progressing just fine.

No, that was an accident.  Now (hopefully) fixed and pushed to master:

   http://git.ipxe.org/ipxe.git/commitdiff/188789e

Thanks,

Michael



More information about the ipxe-devel mailing list