xprt_adjust_cwnd — adjust transport congestion window


void xprt_adjust_cwnd (struct rpc_xprt * xprt,
 struct rpc_task * task,
 int result);


struct rpc_xprt * xprt

pointer to xprt

struct rpc_task * task

recently completed RPC request used to adjust window

int result

result code of completed RPC request


The transport code maintains an estimate on the maximum number of out- standing RPC requests, using a smoothed version of the congestion avoidance implemented in 44BSD. This is basically the Van Jacobson congestion algorithm: If a retransmit occurs, the congestion window is halved; otherwise, it is incremented by 1/cwnd when

- a reply is received and - a full number of requests are outstanding and - the congestion window hasn't been updated recently.