diff --git a/src/algo_rr.c b/src/algo_rr.c index a17a4cb..65ad259 100644 --- a/src/algo_rr.c +++ b/src/algo_rr.c @@ -67,7 +67,7 @@ void rr_pkt_register(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo, } printf("] - could be replaced by drop\n"); exit(EXIT_FAILURE); - } else if (!rr->real[real_idx].on) { + } else if (!rr->real[real_idx].on && ring_gt(bp->ip.ap.fmt.content.clear.id, rr->content_id)) { rr->real[real_idx].on = 1; rr->real[real_idx].id = bp->ip.ap.fmt.content.clear.id; rr->real[real_idx].idx = real_idx; @@ -75,7 +75,7 @@ void rr_pkt_register(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo, rr->real[real_idx].algo = app_ctx; mv_buffer_rtoa(app_ctx, fdinfo, &rr->real[real_idx].idx); } else { - fprintf(stdout, "Packet %d already received (current: %d)\n", bp->ip.ap.fmt.content.clear.id, rr->content_id); + if (ctx->verbose) fprintf(stdout, "Packet %d already received (current: %d)\n", bp->ip.ap.fmt.content.clear.id, rr->content_id); mv_buffer_rtof (app_ctx, fdinfo); } } @@ -301,6 +301,7 @@ void on_timeout_health (struct evt_core_ctx* ctx, void* raw) { } // 3. Deliver blocked packets + //printf("t->min_blocked_pkt=%d, rr->content_id=%d\n", t->min_blocked_pkt, rr->content_id); while (ring_gt(t->min_blocked_pkt, rr->content_id)) { rr->content_id++; rr_pkt_unroll (ctx, app_ctx);