qcacmn: Cleanup rssi and snr used interchangeably
Cleanup rssi and snr used interchangeably Change-Id: Idc78ca1ceb62af766aaf69e42ab5d6e8990a6f0b
This commit is contained in:
@@ -120,18 +120,18 @@
|
|||||||
#define CDP_FC_IS_RETRY_SET(_fc) \
|
#define CDP_FC_IS_RETRY_SET(_fc) \
|
||||||
((_fc) & qdf_cpu_to_le16(CDP_FCTL_RETRY))
|
((_fc) & qdf_cpu_to_le16(CDP_FCTL_RETRY))
|
||||||
|
|
||||||
#define INVALID_RSSI 255
|
#define CDP_INVALID_SNR 255
|
||||||
|
|
||||||
#define CDP_RSSI_MULTIPLIER BIT(8)
|
#define CDP_SNR_MULTIPLIER BIT(8)
|
||||||
#define CDP_RSSI_MUL(x, mul) ((x) * (mul))
|
#define CDP_SNR_MUL(x, mul) ((x) * (mul))
|
||||||
#define CDP_RSSI_RND(x, mul) ((((x) % (mul)) >= ((mul) / 2)) ?\
|
#define CDP_SNR_RND(x, mul) ((((x) % (mul)) >= ((mul) / 2)) ?\
|
||||||
((x) + ((mul) - 1)) / (mul) : (x) / (mul))
|
((x) + ((mul) - 1)) / (mul) : (x) / (mul))
|
||||||
|
|
||||||
#define CDP_RSSI_OUT(x) (CDP_RSSI_RND((x), CDP_RSSI_MULTIPLIER))
|
#define CDP_SNR_OUT(x) (CDP_SNR_RND((x), CDP_SNR_MULTIPLIER))
|
||||||
#define CDP_RSSI_IN(x) (CDP_RSSI_MUL((x), CDP_RSSI_MULTIPLIER))
|
#define CDP_SNR_IN(x) (CDP_SNR_MUL((x), CDP_SNR_MULTIPLIER))
|
||||||
#define CDP_RSSI_AVG(x, y) ((((x) << 2) + (y) - (x)) >> 2)
|
#define CDP_SNR_AVG(x, y) ((((x) << 2) + (y) - (x)) >> 2)
|
||||||
|
|
||||||
#define CDP_RSSI_UPDATE_AVG(x, y) x = CDP_RSSI_AVG((x), CDP_RSSI_IN((y)))
|
#define CDP_SNR_UPDATE_AVG(x, y) x = CDP_SNR_AVG((x), CDP_SNR_IN((y)))
|
||||||
|
|
||||||
/*Max SU EVM count */
|
/*Max SU EVM count */
|
||||||
#define DP_RX_MAX_SU_EVM_COUNT 32
|
#define DP_RX_MAX_SU_EVM_COUNT 32
|
||||||
@@ -803,7 +803,7 @@ enum cdp_peer_stats_type {
|
|||||||
cdp_peer_rx_ratecode,
|
cdp_peer_rx_ratecode,
|
||||||
cdp_peer_rx_ucast,
|
cdp_peer_rx_ucast,
|
||||||
cdp_peer_rx_flags,
|
cdp_peer_rx_flags,
|
||||||
cdp_peer_rx_avg_rssi,
|
cdp_peer_rx_avg_snr,
|
||||||
cdp_peer_stats_max,
|
cdp_peer_stats_max,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -829,7 +829,7 @@ typedef union cdp_peer_stats_buf {
|
|||||||
uint32_t last_rx_rate;
|
uint32_t last_rx_rate;
|
||||||
uint32_t rx_ratecode;
|
uint32_t rx_ratecode;
|
||||||
uint32_t rx_flags;
|
uint32_t rx_flags;
|
||||||
uint32_t rx_avg_rssi;
|
uint32_t rx_avg_snr;
|
||||||
} cdp_peer_stats_param_t; /* Max union size 16 bytes */
|
} cdp_peer_stats_param_t; /* Max union size 16 bytes */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1063,7 +1063,7 @@ struct cdp_tx_stats {
|
|||||||
* @non_amsdu_cnt: Number of MSDUs with no MSDU level aggregation
|
* @non_amsdu_cnt: Number of MSDUs with no MSDU level aggregation
|
||||||
* @amsdu_cnt: Number of MSDUs part of AMSDU
|
* @amsdu_cnt: Number of MSDUs part of AMSDU
|
||||||
* @bar_recv_cnt: Number of bar received
|
* @bar_recv_cnt: Number of bar received
|
||||||
* @avg_rssi: Average rssi
|
* @avg_snr: Average snr
|
||||||
* @rx_rate: Rx rate
|
* @rx_rate: Rx rate
|
||||||
* @last_rx_rate: Previous rx rate
|
* @last_rx_rate: Previous rx rate
|
||||||
* @rnd_avg_rx_rate: Rounded average rx rate
|
* @rnd_avg_rx_rate: Rounded average rx rate
|
||||||
@@ -1087,9 +1087,9 @@ struct cdp_tx_stats {
|
|||||||
* @rx_discard: packets discard in rx
|
* @rx_discard: packets discard in rx
|
||||||
* @rx_ratecode: Rx rate code of last frame
|
* @rx_ratecode: Rx rate code of last frame
|
||||||
* @rx_flags: rx flags
|
* @rx_flags: rx flags
|
||||||
* @rx_rssi_measured_time: Time at which rssi is measured
|
* @rx_snr_measured_time: Time at which snr is measured
|
||||||
* @rssi: RSSI of received signal
|
* @snr: SNR of received signal
|
||||||
* @last_rssi: Previous rssi
|
* @last_snr: Previous snr
|
||||||
* @multipass_rx_pkt_drop: Dropped multipass rx pkt
|
* @multipass_rx_pkt_drop: Dropped multipass rx pkt
|
||||||
* @rx_mpdu_cnt: rx mpdu count per MCS rate
|
* @rx_mpdu_cnt: rx mpdu count per MCS rate
|
||||||
* @to_stack_twt: Total packets sent up the stack in TWT session
|
* @to_stack_twt: Total packets sent up the stack in TWT session
|
||||||
@@ -1135,7 +1135,7 @@ struct cdp_rx_stats {
|
|||||||
uint32_t non_amsdu_cnt;
|
uint32_t non_amsdu_cnt;
|
||||||
uint32_t amsdu_cnt;
|
uint32_t amsdu_cnt;
|
||||||
uint32_t bar_recv_cnt;
|
uint32_t bar_recv_cnt;
|
||||||
uint32_t avg_rssi;
|
uint32_t avg_snr;
|
||||||
uint32_t rx_rate;
|
uint32_t rx_rate;
|
||||||
uint32_t last_rx_rate;
|
uint32_t last_rx_rate;
|
||||||
uint32_t rnd_avg_rx_rate;
|
uint32_t rnd_avg_rx_rate;
|
||||||
@@ -1156,9 +1156,9 @@ struct cdp_rx_stats {
|
|||||||
uint32_t rx_discard;
|
uint32_t rx_discard;
|
||||||
uint32_t rx_ratecode;
|
uint32_t rx_ratecode;
|
||||||
uint32_t rx_flags;
|
uint32_t rx_flags;
|
||||||
uint32_t rx_rssi_measured_time;
|
uint32_t rx_snr_measured_time;
|
||||||
uint8_t rssi;
|
uint8_t snr;
|
||||||
uint8_t last_rssi;
|
uint8_t last_snr;
|
||||||
uint32_t multipass_rx_pkt_drop;
|
uint32_t multipass_rx_pkt_drop;
|
||||||
uint32_t rx_mpdu_cnt[MAX_MCS];
|
uint32_t rx_mpdu_cnt[MAX_MCS];
|
||||||
struct cdp_pkt_info to_stack_twt;
|
struct cdp_pkt_info to_stack_twt;
|
||||||
|
@@ -652,8 +652,8 @@ static inline void dp_update_pdev_stats(struct dp_pdev *tgtobj,
|
|||||||
srcobj->tx.dropped.fw_reason3;
|
srcobj->tx.dropped.fw_reason3;
|
||||||
tgtobj->stats.tx.dropped.age_out += srcobj->tx.dropped.age_out;
|
tgtobj->stats.tx.dropped.age_out += srcobj->tx.dropped.age_out;
|
||||||
tgtobj->stats.rx.err.mic_err += srcobj->rx.err.mic_err;
|
tgtobj->stats.rx.err.mic_err += srcobj->rx.err.mic_err;
|
||||||
if (srcobj->rx.rssi != 0)
|
if (srcobj->rx.snr != 0)
|
||||||
tgtobj->stats.rx.rssi = srcobj->rx.rssi;
|
tgtobj->stats.rx.snr = srcobj->rx.snr;
|
||||||
tgtobj->stats.rx.rx_rate = srcobj->rx.rx_rate;
|
tgtobj->stats.rx.rx_rate = srcobj->rx.rx_rate;
|
||||||
tgtobj->stats.rx.err.decrypt_err += srcobj->rx.err.decrypt_err;
|
tgtobj->stats.rx.err.decrypt_err += srcobj->rx.err.decrypt_err;
|
||||||
tgtobj->stats.rx.non_ampdu_cnt += srcobj->rx.non_ampdu_cnt;
|
tgtobj->stats.rx.non_ampdu_cnt += srcobj->rx.non_ampdu_cnt;
|
||||||
@@ -871,8 +871,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc,
|
|||||||
srcobj->stats.tx.dropped.fw_reason3;
|
srcobj->stats.tx.dropped.fw_reason3;
|
||||||
tgtobj->tx.dropped.age_out += srcobj->stats.tx.dropped.age_out;
|
tgtobj->tx.dropped.age_out += srcobj->stats.tx.dropped.age_out;
|
||||||
tgtobj->rx.err.mic_err += srcobj->stats.rx.err.mic_err;
|
tgtobj->rx.err.mic_err += srcobj->stats.rx.err.mic_err;
|
||||||
if (srcobj->stats.rx.rssi != 0)
|
if (srcobj->stats.rx.snr != 0)
|
||||||
tgtobj->rx.rssi = srcobj->stats.rx.rssi;
|
tgtobj->rx.snr = srcobj->stats.rx.snr;
|
||||||
tgtobj->rx.rx_rate = srcobj->stats.rx.rx_rate;
|
tgtobj->rx.rx_rate = srcobj->stats.rx.rx_rate;
|
||||||
tgtobj->rx.err.decrypt_err += srcobj->stats.rx.err.decrypt_err;
|
tgtobj->rx.err.decrypt_err += srcobj->stats.rx.err.decrypt_err;
|
||||||
tgtobj->rx.non_ampdu_cnt += srcobj->stats.rx.non_ampdu_cnt;
|
tgtobj->rx.non_ampdu_cnt += srcobj->stats.rx.non_ampdu_cnt;
|
||||||
@@ -983,8 +983,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc,
|
|||||||
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.age_out); \
|
DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.age_out); \
|
||||||
\
|
\
|
||||||
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.mic_err); \
|
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.mic_err); \
|
||||||
if (_srcobj->stats.rx.rssi != 0) \
|
if (_srcobj->stats.rx.snr != 0) \
|
||||||
DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.rssi); \
|
DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.snr); \
|
||||||
DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.rx_rate); \
|
DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.rx_rate); \
|
||||||
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.decrypt_err); \
|
DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.decrypt_err); \
|
||||||
DP_STATS_AGGR(_tgtobj, _srcobj, rx.non_ampdu_cnt); \
|
DP_STATS_AGGR(_tgtobj, _srcobj, rx.non_ampdu_cnt); \
|
||||||
|
@@ -6022,7 +6022,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
dp_peer_rx_bufq_resources_init(peer);
|
dp_peer_rx_bufq_resources_init(peer);
|
||||||
|
|
||||||
DP_STATS_INIT(peer);
|
DP_STATS_INIT(peer);
|
||||||
DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
|
DP_STATS_UPD(peer, rx.avg_snr, CDP_INVALID_SNR);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In tx_monitor mode, filter may be set for unassociated peer
|
* In tx_monitor mode, filter may be set for unassociated peer
|
||||||
@@ -6137,7 +6137,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
peer->valid = 1;
|
peer->valid = 1;
|
||||||
dp_local_peer_id_alloc(pdev, peer);
|
dp_local_peer_id_alloc(pdev, peer);
|
||||||
DP_STATS_INIT(peer);
|
DP_STATS_INIT(peer);
|
||||||
DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
|
DP_STATS_UPD(peer, rx.avg_snr, CDP_INVALID_SNR);
|
||||||
|
|
||||||
qdf_mem_copy(peer_cookie.mac_addr, peer->mac_addr.raw,
|
qdf_mem_copy(peer_cookie.mac_addr, peer->mac_addr.raw,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
@@ -9647,8 +9647,8 @@ dp_txrx_get_peer_stats_param(struct cdp_soc_t *soc, uint8_t vdev_id,
|
|||||||
case cdp_peer_rx_flags:
|
case cdp_peer_rx_flags:
|
||||||
buf->rx_flags = peer->stats.rx.rx_flags;
|
buf->rx_flags = peer->stats.rx.rx_flags;
|
||||||
break;
|
break;
|
||||||
case cdp_peer_rx_avg_rssi:
|
case cdp_peer_rx_avg_snr:
|
||||||
buf->rx_avg_rssi = peer->stats.rx.avg_rssi;
|
buf->rx_avg_snr = peer->stats.rx.avg_snr;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dp_peer_err("%pK: Invalid value", soc);
|
dp_peer_err("%pK: Invalid value", soc);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -716,7 +716,8 @@ void dp_rx_fill_mesh_stats(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||||||
rx_info->rs_keyix);
|
rx_info->rs_keyix);
|
||||||
}
|
}
|
||||||
|
|
||||||
rx_info->rs_rssi = peer->stats.rx.rssi;
|
rx_info->rs_snr = peer->stats.rx.snr;
|
||||||
|
rx_info->rs_rssi = rx_info->rs_snr + DP_DEFAULT_NOISEFLOOR;
|
||||||
|
|
||||||
soc = vdev->pdev->soc;
|
soc = vdev->pdev->soc;
|
||||||
primary_chan_num = hal_rx_msdu_start_get_freq(rx_tlv_hdr);
|
primary_chan_num = hal_rx_msdu_start_get_freq(rx_tlv_hdr);
|
||||||
@@ -739,12 +740,13 @@ void dp_rx_fill_mesh_stats(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||||||
qdf_nbuf_set_rx_fctx_type(nbuf, (void *)rx_info, CB_FTYPE_MESH_RX_INFO);
|
qdf_nbuf_set_rx_fctx_type(nbuf, (void *)rx_info, CB_FTYPE_MESH_RX_INFO);
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_MED,
|
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_MED,
|
||||||
FL("Mesh rx stats: flags %x, rssi %x, chn %x, rate %x, kix %x"),
|
FL("Mesh rx stats: flags %x, rssi %x, chn %x, rate %x, kix %x, snr %x"),
|
||||||
rx_info->rs_flags,
|
rx_info->rs_flags,
|
||||||
rx_info->rs_rssi,
|
rx_info->rs_rssi,
|
||||||
rx_info->rs_channel,
|
rx_info->rs_channel,
|
||||||
rx_info->rs_ratephy1,
|
rx_info->rs_ratephy1,
|
||||||
rx_info->rs_keyix);
|
rx_info->rs_keyix,
|
||||||
|
rx_info->rs_snr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -52,6 +52,8 @@
|
|||||||
#define DP_PEER_METADATA_VDEV_ID_MASK 0x003f0000
|
#define DP_PEER_METADATA_VDEV_ID_MASK 0x003f0000
|
||||||
#define DP_PEER_METADATA_VDEV_ID_SHIFT 16
|
#define DP_PEER_METADATA_VDEV_ID_SHIFT 16
|
||||||
|
|
||||||
|
#define DP_DEFAULT_NOISEFLOOR (-96)
|
||||||
|
|
||||||
#define DP_PEER_METADATA_PEER_ID_GET(_peer_metadata) \
|
#define DP_PEER_METADATA_PEER_ID_GET(_peer_metadata) \
|
||||||
(((_peer_metadata) & DP_PEER_METADATA_PEER_ID_MASK) \
|
(((_peer_metadata) & DP_PEER_METADATA_PEER_ID_MASK) \
|
||||||
>> DP_PEER_METADATA_PEER_ID_SHIFT)
|
>> DP_PEER_METADATA_PEER_ID_SHIFT)
|
||||||
|
@@ -652,14 +652,14 @@ static void dp_rx_stats_update(struct dp_pdev *pdev,
|
|||||||
soc, ppdu->u.bw);
|
soc, ppdu->u.bw);
|
||||||
}
|
}
|
||||||
|
|
||||||
DP_STATS_UPD(peer, rx.rssi, (ppdu->rssi + pkt_bw_offset));
|
DP_STATS_UPD(peer, rx.snr, (ppdu->rssi + pkt_bw_offset));
|
||||||
|
|
||||||
if (peer->stats.rx.avg_rssi == INVALID_RSSI)
|
if (peer->stats.rx.avg_snr == CDP_INVALID_SNR)
|
||||||
peer->stats.rx.avg_rssi =
|
peer->stats.rx.avg_snr =
|
||||||
CDP_RSSI_IN(peer->stats.rx.rssi);
|
CDP_SNR_IN(peer->stats.rx.snr);
|
||||||
else
|
else
|
||||||
CDP_RSSI_UPDATE_AVG(peer->stats.rx.avg_rssi,
|
CDP_SNR_UPDATE_AVG(peer->stats.rx.avg_snr,
|
||||||
peer->stats.rx.rssi);
|
peer->stats.rx.snr);
|
||||||
|
|
||||||
if ((preamble == DOT11_A) || (preamble == DOT11_B))
|
if ((preamble == DOT11_A) || (preamble == DOT11_B))
|
||||||
nss = 1;
|
nss = 1;
|
||||||
@@ -776,7 +776,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev,
|
|||||||
if (ppdu->tid != HAL_TID_INVALID)
|
if (ppdu->tid != HAL_TID_INVALID)
|
||||||
DP_STATS_INC(peer, rx.wme_ac_type[ac], num_msdu);
|
DP_STATS_INC(peer, rx.wme_ac_type[ac], num_msdu);
|
||||||
dp_peer_stats_notify(pdev, peer);
|
dp_peer_stats_notify(pdev, peer);
|
||||||
DP_STATS_UPD(peer, rx.last_rssi, ppdu->rssi);
|
DP_STATS_UPD(peer, rx.last_snr, ppdu->rssi);
|
||||||
|
|
||||||
dp_peer_qos_stats_notify(pdev, ppdu_user);
|
dp_peer_qos_stats_notify(pdev, ppdu_user);
|
||||||
if (peer == pdev->invalid_peer)
|
if (peer == pdev->invalid_peer)
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -4355,10 +4355,10 @@ QDF_STATUS dp_peer_stats_notify(struct dp_pdev *dp_pdev, struct dp_peer *peer)
|
|||||||
return QDF_STATUS_E_FAULT;
|
return QDF_STATUS_E_FAULT;
|
||||||
|
|
||||||
qdf_mem_zero(&peer_stats_intf, sizeof(peer_stats_intf));
|
qdf_mem_zero(&peer_stats_intf, sizeof(peer_stats_intf));
|
||||||
if (peer_stats->rx.last_rssi != peer_stats->rx.rssi)
|
if (peer_stats->rx.last_snr != peer_stats->rx.snr)
|
||||||
peer_stats_intf.rssi_changed = true;
|
peer_stats_intf.rssi_changed = true;
|
||||||
|
|
||||||
if ((peer_stats->rx.rssi && peer_stats_intf.rssi_changed) ||
|
if ((peer_stats->rx.snr && peer_stats_intf.rssi_changed) ||
|
||||||
(peer_stats->tx.tx_rate &&
|
(peer_stats->tx.tx_rate &&
|
||||||
peer_stats->tx.tx_rate != peer_stats->tx.last_tx_rate)) {
|
peer_stats->tx.tx_rate != peer_stats->tx.last_tx_rate)) {
|
||||||
qdf_mem_copy(peer_stats_intf.peer_mac, peer->mac_addr.raw,
|
qdf_mem_copy(peer_stats_intf.peer_mac, peer->mac_addr.raw,
|
||||||
@@ -4366,7 +4366,7 @@ QDF_STATUS dp_peer_stats_notify(struct dp_pdev *dp_pdev, struct dp_peer *peer)
|
|||||||
peer_stats_intf.vdev_id = peer->vdev->vdev_id;
|
peer_stats_intf.vdev_id = peer->vdev->vdev_id;
|
||||||
peer_stats_intf.last_peer_tx_rate = peer_stats->tx.last_tx_rate;
|
peer_stats_intf.last_peer_tx_rate = peer_stats->tx.last_tx_rate;
|
||||||
peer_stats_intf.peer_tx_rate = peer_stats->tx.tx_rate;
|
peer_stats_intf.peer_tx_rate = peer_stats->tx.tx_rate;
|
||||||
peer_stats_intf.peer_rssi = peer_stats->rx.rssi;
|
peer_stats_intf.peer_rssi = peer_stats->rx.snr;
|
||||||
peer_stats_intf.tx_packet_count = peer_stats->tx.ucast.num;
|
peer_stats_intf.tx_packet_count = peer_stats->tx.ucast.num;
|
||||||
peer_stats_intf.rx_packet_count = peer_stats->rx.to_stack.num;
|
peer_stats_intf.rx_packet_count = peer_stats->rx.to_stack.num;
|
||||||
peer_stats_intf.tx_byte_count = peer_stats->tx.tx_success.bytes;
|
peer_stats_intf.tx_byte_count = peer_stats->tx.tx_success.bytes;
|
||||||
|
Reference in New Issue
Block a user