/** * struct iwl_mld_low_latency_packets_counters - Packets counters * @lock: synchronize the counting in data path against the worker * @vo_vi: per-mac, counts the number of TX and RX voice and video packets
*/ struct iwl_mld_low_latency_packets_counters {
spinlock_t lock;
u32 vo_vi[NUM_MAC_INDEX_DRIVER];
} ____cacheline_aligned_in_smp;
/** * enum iwl_mld_low_latency_cause - low-latency set causes * * @LOW_LATENCY_TRAFFIC: indicates low-latency traffic was detected * @LOW_LATENCY_DEBUGFS: low-latency mode set from debugfs * @LOW_LATENCY_VIF_TYPE: low-latency mode set because of vif type (AP)
*/ enum iwl_mld_low_latency_cause {
LOW_LATENCY_TRAFFIC = BIT(0),
LOW_LATENCY_DEBUGFS = BIT(1),
LOW_LATENCY_VIF_TYPE = BIT(2),
};
/** * struct iwl_mld_low_latency - Manage low-latency detection and activation. * @work: this work is used to detect low-latency by monitoring the number of * voice and video packets transmitted in a period of time. If the * threshold is reached, low-latency is activated. When active, * it is deactivated if the threshold is not reached within a * 10-second period. * @timestamp: timestamp of the last update. * @window_start: per-mac, timestamp of the start of the current window. when * the window is over, the counters are reset. * @pkts_counters: per-queue array voice/video packet counters * @result: per-mac latest low-latency result * @stopped: if true, ignore the requests to update the counters
*/ struct iwl_mld_low_latency { struct wiphy_delayed_work work; unsignedlong timestamp; unsignedlong window_start[NUM_MAC_INDEX_DRIVER]; struct iwl_mld_low_latency_packets_counters *pkts_counters; bool result[NUM_MAC_INDEX_DRIVER]; bool stopped;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.