Lines Matching refs:mtcp

32 AddtoRTOList(mtcp_manager_t mtcp, tcp_stream *cur_stream)  in AddtoRTOList()  argument
34 if (!mtcp->rto_list_cnt) { in AddtoRTOList()
35 mtcp->rto_store->rto_now_idx = 0; in AddtoRTOList()
36 mtcp->rto_store->rto_now_ts = cur_stream->sndvar->ts_rto; in AddtoRTOList()
44 DumpStream(mtcp, cur_stream); in AddtoRTOList()
49 int diff = (int32_t)(cur_stream->sndvar->ts_rto - mtcp->rto_store->rto_now_ts); in AddtoRTOList()
53 int offset= ((diff + mtcp->rto_store->rto_now_idx) & (RTO_HASH - 1)); in AddtoRTOList()
55 TAILQ_INSERT_TAIL(&(mtcp->rto_store->rto_list[offset]), in AddtoRTOList()
61 TAILQ_INSERT_TAIL(&(mtcp->rto_store->rto_list[RTO_HASH]), in AddtoRTOList()
65 mtcp->rto_list_cnt++; in AddtoRTOList()
70 RemoveFromRTOList(mtcp_manager_t mtcp, tcp_stream *cur_stream) in RemoveFromRTOList() argument
77 TAILQ_REMOVE(&mtcp->rto_store->rto_list[cur_stream->on_rto_idx], in RemoveFromRTOList()
81 mtcp->rto_list_cnt--; in RemoveFromRTOList()
85 AddtoTimewaitList(mtcp_manager_t mtcp, tcp_stream *cur_stream, uint32_t cur_ts) in AddtoTimewaitList() argument
91 TAILQ_REMOVE(&mtcp->timewait_list, cur_stream, sndvar->timer_link); in AddtoTimewaitList()
92 TAILQ_INSERT_TAIL(&mtcp->timewait_list, cur_stream, sndvar->timer_link); in AddtoTimewaitList()
99 DumpStream(mtcp, cur_stream); in AddtoTimewaitList()
101 RemoveFromRTOList(mtcp, cur_stream); in AddtoTimewaitList()
105 TAILQ_INSERT_TAIL(&mtcp->timewait_list, cur_stream, sndvar->timer_link); in AddtoTimewaitList()
106 mtcp->timewait_list_cnt++; in AddtoTimewaitList()
111 RemoveFromTimewaitList(mtcp_manager_t mtcp, tcp_stream *cur_stream) in RemoveFromTimewaitList() argument
118 TAILQ_REMOVE(&mtcp->timewait_list, cur_stream, sndvar->timer_link); in RemoveFromTimewaitList()
120 mtcp->timewait_list_cnt--; in RemoveFromTimewaitList()
124 AddtoTimeoutList(mtcp_manager_t mtcp, tcp_stream *cur_stream) in AddtoTimeoutList() argument
132 TAILQ_INSERT_TAIL(&mtcp->timeout_list, cur_stream, sndvar->timeout_link); in AddtoTimeoutList()
133 mtcp->timeout_list_cnt++; in AddtoTimeoutList()
137 RemoveFromTimeoutList(mtcp_manager_t mtcp, tcp_stream *cur_stream) in RemoveFromTimeoutList() argument
141 TAILQ_REMOVE(&mtcp->timeout_list, cur_stream, sndvar->timeout_link); in RemoveFromTimeoutList()
142 mtcp->timeout_list_cnt--; in RemoveFromTimeoutList()
147 UpdateTimeoutList(mtcp_manager_t mtcp, tcp_stream *cur_stream) in UpdateTimeoutList() argument
150 TAILQ_REMOVE(&mtcp->timeout_list, cur_stream, sndvar->timeout_link); in UpdateTimeoutList()
151 TAILQ_INSERT_TAIL(&mtcp->timeout_list, cur_stream, sndvar->timeout_link); in UpdateTimeoutList()
156 UpdateRetransmissionTimer(mtcp_manager_t mtcp, in UpdateRetransmissionTimer() argument
165 RemoveFromRTOList(mtcp, cur_stream); in UpdateRetransmissionTimer()
173 AddtoRTOList(mtcp, cur_stream); in UpdateRetransmissionTimer()
183 HandleRTO(mtcp_manager_t mtcp, uint32_t cur_ts, tcp_stream *cur_stream) in HandleRTO() argument
202 DestroyTCPStream(mtcp, cur_stream); in HandleRTO()
208 RaiseErrorEvent(mtcp, cur_stream); in HandleRTO()
210 DestroyTCPStream(mtcp, cur_stream); in HandleRTO()
257 RemoveFromRTOList(mtcp, cur_stream); in HandleRTO()
269 RaiseErrorEvent(mtcp, cur_stream); in HandleRTO()
271 DestroyTCPStream(mtcp, cur_stream); in HandleRTO()
324 AddtoSendList(mtcp, cur_stream); in HandleRTO()
337 RemoveFromControlList(mtcp, cur_stream); in HandleRTO()
340 AddtoSendList(mtcp, cur_stream); in HandleRTO()
344 AddtoControlList(mtcp, cur_stream, cur_ts); in HandleRTO()
348 AddtoControlList(mtcp, cur_stream, cur_ts); in HandleRTO()
355 RearrangeRTOStore(mtcp_manager_t mtcp) { in RearrangeRTOStore() argument
357 struct rto_head* rto_list = &mtcp->rto_store->rto_list[RTO_HASH]; in RearrangeRTOStore()
364 int diff = (int32_t)(mtcp->rto_store->rto_now_ts - walk->sndvar->ts_rto); in RearrangeRTOStore()
367 int offset = ((diff + mtcp->rto_store->rto_now_idx) & (RTO_HASH - 1)); in RearrangeRTOStore()
368 if (!TAILQ_EMPTY(&mtcp->rto_store->rto_list[RTO_HASH])) { in RearrangeRTOStore()
369 TAILQ_REMOVE(&mtcp->rto_store->rto_list[RTO_HASH], in RearrangeRTOStore()
372 TAILQ_INSERT_TAIL(&(mtcp->rto_store->rto_list[offset]), in RearrangeRTOStore()
381 CheckRtmTimeout(mtcp_manager_t mtcp, uint32_t cur_ts, int thresh) in CheckRtmTimeout() argument
387 if (!mtcp->rto_list_cnt) { in CheckRtmTimeout()
391 STAT_COUNT(mtcp->runstat.rounds_rtocheck); in CheckRtmTimeout()
397 rto_list = &mtcp->rto_store->rto_list[mtcp->rto_store->rto_now_idx]; in CheckRtmTimeout()
398 if ((int32_t)(cur_ts - mtcp->rto_store->rto_now_ts) < 0) { in CheckRtmTimeout()
414 mtcp->rto_list_cnt--; in CheckRtmTimeout()
416 HandleRTO(mtcp, cur_ts, walk); in CheckRtmTimeout()
420 DumpStream(mtcp, walk); in CheckRtmTimeout()
428 mtcp->rto_store->rto_now_idx = ((mtcp->rto_store->rto_now_idx + 1) & (RTO_HASH - 1)); in CheckRtmTimeout()
429 mtcp->rto_store->rto_now_ts++; in CheckRtmTimeout()
430 if (!((mtcp->rto_store->rto_now_idx & (1024 - 1)))) { in CheckRtmTimeout()
431 RearrangeRTOStore(mtcp); in CheckRtmTimeout()
441 CheckTimewaitExpire(mtcp_manager_t mtcp, uint32_t cur_ts, int thresh) in CheckTimewaitExpire() argument
446 STAT_COUNT(mtcp->runstat.rounds_twcheck); in CheckTimewaitExpire()
450 for (walk = TAILQ_FIRST(&mtcp->timewait_list); in CheckTimewaitExpire()
469 TAILQ_REMOVE(&mtcp->timewait_list, walk, sndvar->timer_link); in CheckTimewaitExpire()
471 mtcp->timewait_list_cnt--; in CheckTimewaitExpire()
477 DestroyTCPStream(mtcp, walk); in CheckTimewaitExpire()
485 DumpStream(mtcp, walk); in CheckTimewaitExpire()
494 CheckConnectionTimeout(mtcp_manager_t mtcp, uint32_t cur_ts, int thresh) in CheckConnectionTimeout() argument
499 STAT_COUNT(mtcp->runstat.rounds_tocheck); in CheckConnectionTimeout()
502 for (walk = TAILQ_FIRST(&mtcp->timeout_list); in CheckConnectionTimeout()
516 TAILQ_REMOVE(&mtcp->timeout_list, walk, sndvar->timeout_link); in CheckConnectionTimeout()
517 mtcp->timeout_list_cnt--; in CheckConnectionTimeout()
522 RaiseErrorEvent(mtcp, walk); in CheckConnectionTimeout()
524 DestroyTCPStream(mtcp, walk); in CheckConnectionTimeout()
534 RegTimer(mtcp_manager_t mtcp, struct timer *timer) in RegTimer() argument
540 TAILQ_FOREACH_REVERSE(walk, &mtcp->timer_list, timer_head, timer_link) { in RegTimer()
542 TAILQ_INSERT_AFTER(&mtcp->timer_list, walk, timer, timer_link); in RegTimer()
549 TAILQ_INSERT_HEAD(&mtcp->timer_list, timer, timer_link); in RegTimer()
554 NewTimer(mtcp_manager_t mtcp, int id, struct timeval *timeout, callback_t cb) in NewTimer() argument
557 struct timer *t = MPAllocateChunk(mtcp->timer_pool); in NewTimer()
573 DelTimer(mtcp_manager_t mtcp, struct timer *timer) in DelTimer() argument
575 TAILQ_REMOVE(&mtcp->timer_list, timer, timer_link); in DelTimer()
577 MPFreeChunk(mtcp->timer_pool, timer); in DelTimer()
586 mtcp_manager_t mtcp = GetMTCPManager(mctx); in mtcp_settimer() local
587 if (!mtcp || !timeout || !cb) in mtcp_settimer()
590 struct timer *t = NewTimer(mtcp, id, timeout, cb); in mtcp_settimer()
594 RegTimer(mtcp, t); in mtcp_settimer()