Lines Matching refs:ssc
415 pick_sample_rate(struct sample_softc *ssc , struct ath_node *an, in pick_sample_rate() argument
475 if (sn->stats[size_bin][rix].successive_failures > ssc->max_successive_failures && in pick_sample_rate()
476 ticks - sn->stats[size_bin][rix].last_tx < ssc->stale_failure_timeout) { in pick_sample_rate()
669 struct sample_softc *ssc = ATH_SOFTC_SAMPLE(sc); in ath_rate_findrate() local
750 (sn->packets_since_sample[size_bin]*ssc->sample_rate/100)) { in ath_rate_findrate()
751 rix = pick_sample_rate(ssc, an, rt, size_bin); in ath_rate_findrate()
785 } else if (ticks - ssc->min_switch > sn->ticks_since_switch[size_bin]) { in ath_rate_findrate()
790 __func__, ticks - ssc->min_switch, sn->ticks_since_switch[size_bin]); in ath_rate_findrate()
975 struct sample_softc *ssc = ATH_SOFTC_SAMPLE(sc); in update_stats() local
1015 if (sn->stats[size_bin][rix0].total_packets < ssc->smoothing_minpackets) { in update_stats()
1023 ((sn->stats[size_bin][rix0].average_tx_time * ssc->smoothing_rate) + in update_stats()
1024 (tt * (100 - ssc->smoothing_rate))) / 100; in update_stats()
1045 ssc->smoothing_minpackets) { in update_stats()
1053 ((sn->stats[size_bin][rix0].ewma_pct * ssc->smoothing_rate) + in update_stats()
1054 (pct * (100 - ssc->smoothing_rate))) / 100; in update_stats()
1594 struct sample_softc *ssc = arg1; in ath_rate_sysctl_smoothing_rate() local
1597 rate = ssc->smoothing_rate; in ath_rate_sysctl_smoothing_rate()
1603 ssc->smoothing_rate = rate; in ath_rate_sysctl_smoothing_rate()
1604 ssc->smoothing_minpackets = 100 / (100 - rate); in ath_rate_sysctl_smoothing_rate()
1611 struct sample_softc *ssc = arg1; in ath_rate_sysctl_sample_rate() local
1614 rate = ssc->sample_rate; in ath_rate_sysctl_sample_rate()
1620 ssc->sample_rate = rate; in ath_rate_sysctl_sample_rate()
1625 ath_rate_sysctlattach(struct ath_softc *sc, struct sample_softc *ssc) in ath_rate_sysctlattach() argument
1632 ssc, 0, ath_rate_sysctl_smoothing_rate, "I", in ath_rate_sysctlattach()
1636 ssc, 0, ath_rate_sysctl_sample_rate, "I", in ath_rate_sysctlattach()
1647 struct sample_softc *ssc; in ath_rate_attach() local
1649 ssc = malloc(sizeof(struct sample_softc), M_DEVBUF, M_NOWAIT|M_ZERO); in ath_rate_attach()
1650 if (ssc == NULL) in ath_rate_attach()
1652 ssc->arc.arc_space = sizeof(struct sample_node); in ath_rate_attach()
1653 ssc->smoothing_rate = 75; /* ewma percentage ([0..99]) */ in ath_rate_attach()
1654 ssc->smoothing_minpackets = 100 / (100 - ssc->smoothing_rate); in ath_rate_attach()
1655 ssc->sample_rate = 10; /* %time to try diff tx rates */ in ath_rate_attach()
1656 ssc->max_successive_failures = 3; /* threshold for rate sampling*/ in ath_rate_attach()
1657 ssc->stale_failure_timeout = 10 * hz; /* 10 seconds */ in ath_rate_attach()
1658 ssc->min_switch = hz; /* 1 second */ in ath_rate_attach()
1659 ath_rate_sysctlattach(sc, ssc); in ath_rate_attach()
1660 return &ssc->arc; in ath_rate_attach()
1666 struct sample_softc *ssc = (struct sample_softc *) arc; in ath_rate_detach() local
1668 free(ssc, M_DEVBUF); in ath_rate_detach()