Lines Matching refs:size_bin

317     int size_bin, int require_acked_before)
337 tt = sn->stats[size_bin][rix].average_tx_time;
340 !sn->stats[size_bin][rix].packets_acked))
344 if (sn->stats[size_bin][rix].total_packets > 0) {
345 pct = sn->stats[size_bin][rix].ewma_pct;
351 if (sn->stats[size_bin][rix].successive_failures > 3)
371 bin_to_size(size_bin),
373 sn->stats[size_bin][best_rate_rix].total_packets,
377 sn->stats[size_bin][rix].total_packets,
417 const HAL_RATE_TABLE *rt, int size_bin)
426 current_rix = sn->current_rix[size_bin];
433 current_tt = sn->stats[size_bin][current_rix].average_tx_time;
435 rix = sn->last_sample_rix[size_bin]+1; /* next sample rate */
470 if (sn->stats[size_bin][rix].perfect_tx_time > current_tt) {
476 if (sn->stats[size_bin][rix].successive_failures > ssc->max_successive_failures &&
477 ticks - sn->stats[size_bin][rix].last_tx < ssc->stale_failure_timeout) {
514 sn->last_sample_rix[size_bin] = rix;
582 const int size_bin = size_to_bin(frameLen);
598 sn->stats[size_bin][rix].successive_failures == 0) {
623 const int size_bin = size_to_bin(frameLen);
645 sn->stats[size_bin][rix].successive_failures == 0) {
673 int size_bin = size_to_bin(frameLen);
709 size_bin = size_to_bin(frameLen);
720 best_rix = pick_best_rate(an, rt, size_bin, !mrr);
725 * and size_bin if we're doing 11n rates.
736 size_bin = size_to_bin(frameLen);
740 average_tx_time = sn->stats[size_bin][best_rix].average_tx_time;
749 if (sn->sample_tt[size_bin] <
751 (sn->packets_since_sample[size_bin]*ssc->sample_rate/100)) {
752 rix = pick_sample_rate(ssc, an, rt, size_bin);
757 sn->sample_tt[size_bin],
758 bin_to_size(size_bin),
761 dot11rate(rt, sn->current_rix[size_bin]),
762 dot11rate_label(rt, sn->current_rix[size_bin]));
763 if (rix != sn->current_rix[size_bin]) {
764 sn->current_sample_rix[size_bin] = rix;
766 sn->current_sample_rix[size_bin] = -1;
768 sn->packets_since_sample[size_bin] = 0;
771 if (!sn->packets_sent[size_bin] || best_rix == -1) {
780 } else if (sn->packets_sent[size_bin] < 20) {
786 } else if (ticks - ssc->min_switch > sn->ticks_since_switch[size_bin]) {
791 __func__, ticks - ssc->min_switch, sn->ticks_since_switch[size_bin]);
794 (2*average_tx_time < sn->stats[size_bin][sn->current_rix[size_bin]].average_tx_time)) {
800 2 * average_tx_time, sn->stats[size_bin][sn->current_rix[size_bin]].average_tx_time);
803 int cur_rix = sn->current_rix[size_bin];
804 int cur_att = sn->stats[size_bin][cur_rix].average_tx_time;
823 __func__, bin_to_size(size_bin),
830 sn->packets_since_sample[size_bin]++;
833 if (best_rix != sn->current_rix[size_bin]) {
839 bin_to_size(size_bin),
840 dot11rate(rt, sn->current_rix[size_bin]),
841 dot11rate_label(rt, sn->current_rix[size_bin]),
842 sn->stats[size_bin][sn->current_rix[size_bin]].average_tx_time,
843 sn->stats[size_bin][sn->current_rix[size_bin]].perfect_tx_time,
844 sn->stats[size_bin][sn->current_rix[size_bin]].ewma_pct,
847 sn->stats[size_bin][best_rix].average_tx_time,
848 sn->stats[size_bin][best_rix].perfect_tx_time,
849 sn->stats[size_bin][best_rix].ewma_pct,
850 sn->packets_since_switch[size_bin],
853 sn->packets_since_switch[size_bin] = 0;
854 sn->current_rix[size_bin] = best_rix;
855 sn->ticks_since_switch[size_bin] = ticks;
863 rix = sn->current_rix[size_bin];
864 sn->packets_since_switch[size_bin]++;
887 sn->packets_sent[size_bin]++;
975 const int size_bin = size_to_bin(frame_size);
976 const int size = bin_to_size(size_bin);
1011 if (sn->stats[size_bin][rix0].total_packets < ssc->smoothing_minpackets) {
1013 int avg_tx = sn->stats[size_bin][rix0].average_tx_time;
1014 int packets = sn->stats[size_bin][rix0].total_packets;
1015 sn->stats[size_bin][rix0].average_tx_time = (tt+(avg_tx*packets))/(packets+nframes);
1018 sn->stats[size_bin][rix0].average_tx_time =
1019 ((sn->stats[size_bin][rix0].average_tx_time * ssc->smoothing_rate) +
1024 sn->stats[size_bin][rix0].successive_failures += nbad;
1026 sn->stats[size_bin][rix0].packets_acked += (nframes - nbad);
1027 sn->stats[size_bin][rix0].successive_failures = 0;
1029 sn->stats[size_bin][rix0].tries += tries;
1030 sn->stats[size_bin][rix0].last_tx = ticks;
1031 sn->stats[size_bin][rix0].total_packets += nframes;
1040 if (sn->stats[size_bin][rix0].total_packets <
1043 int a_pct = (sn->stats[size_bin][rix0].packets_acked * 1000) /
1044 (sn->stats[size_bin][rix0].total_packets);
1045 sn->stats[size_bin][rix0].ewma_pct = a_pct;
1048 sn->stats[size_bin][rix0].ewma_pct =
1049 ((sn->stats[size_bin][rix0].ewma_pct * ssc->smoothing_rate) +
1069 rix0 == sn->current_sample_rix[size_bin] ? "sample" : "mrr",
1073 sn->stats[size_bin][rix0].average_tx_time,
1074 sn->stats[size_bin][rix0].perfect_tx_time,
1077 if (rix0 == sn->current_sample_rix[size_bin]) {
1078 sn->sample_tt[size_bin] = tt;
1079 sn->current_sample_rix[size_bin] = -1;
1123 * The eternal question here is - which size_bin should it go in?