* [PATCH v4 0/2] wifi: ath12k: drop failed transmitted frames from metric calculation @ 2024-04-30 7:43 Karthikeyan Kathirvel 2024-04-30 7:43 ` [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case Karthikeyan Kathirvel 2024-04-30 7:43 ` [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel 0 siblings, 2 replies; 7+ messages in thread From: Karthikeyan Kathirvel @ 2024-04-30 7:43 UTC (permalink / raw) To: ath12k; +Cc: linux-wireless, Karthikeyan Kathirvel - Use ieee80211_free_txskb() instead of dev_kfree_skb_any(). - Drop failed transmitted frames from mesh metric calculation to avoid false link metric averaging. Karthikeyan Kathirvel (1): wifi: ath12k: drop failed transmitted frames from metric calculation. Sven Eckelmann (1): wifi: ath12k: Don't drop tx_status in failure case --- v4: - Removed an invalid patch uploaded in v3 - Replaced a dev_kfree_skb_any() by ieee80211_free_txskb() in ath12k_dp_tx_free_txbuf() v3: Addressed Nicolas Escande's comment v2: Addressed Jeff's comment --- drivers/net/wireless/ath/ath12k/dp_tx.c | 47 +++++++++++++++------- drivers/net/wireless/ath/ath12k/hal_desc.h | 22 +++++++++- 2 files changed, 54 insertions(+), 15 deletions(-) base-commit: 363e7193eaf258fe7f04e8db560bd8a282a12cd9 -- 2.34.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case 2024-04-30 7:43 [PATCH v4 0/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel @ 2024-04-30 7:43 ` Karthikeyan Kathirvel 2024-04-30 17:50 ` Jeff Johnson 2024-05-03 13:21 ` Kalle Valo 2024-04-30 7:43 ` [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel 1 sibling, 2 replies; 7+ messages in thread From: Karthikeyan Kathirvel @ 2024-04-30 7:43 UTC (permalink / raw) To: ath12k; +Cc: linux-wireless, Sven Eckelmann, Sarika Sharma, Karthikeyan Kathirvel From: Sven Eckelmann <sven@narfation.org> When a station idles for a long time, hostapd will try to send a QoS Null frame to the station as "poll". NL80211_CMD_PROBE_CLIENT is used for this purpose. And the skb will be added to ack_status_frame - waiting for a completion via ieee80211_report_ack_skb(). But when the peer was already removed before the tx_complete arrives, the peer will be missing. And when using dev_kfree_skb_any (instead of going through mac80211), the entry will stay inside ack_status_frames thus not clean up related information in its internal data structures. This IDR will therefore run full after 8K request were generated for such clients. At this point, the access point will then just stall and not allow any new clients because idr_alloc() for ack_status_frame will fail. ieee80211_free_txskb() on the other hand will (when required) call ieee80211_report_ack_skb() and make sure that (when required) remove the entry from the ack_status_frame and clean up related information in its internal data structures. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com> Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com> Link: https://lore.kernel.org/r/20230802-ath11k-ack_status_leak-v2-1-c0af729d6229@narfation.org --- drivers/net/wireless/ath/ath12k/dp_tx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/dp_tx.c b/drivers/net/wireless/ath/ath12k/dp_tx.c index 9b6d7d72f57c..81a85d5946f5 100644 --- a/drivers/net/wireless/ath/ath12k/dp_tx.c +++ b/drivers/net/wireless/ath/ath12k/dp_tx.c @@ -352,15 +352,15 @@ static void ath12k_dp_tx_free_txbuf(struct ath12k_base *ab, u8 pdev_id = ath12k_hw_mac_id_to_pdev_id(ab->hw_params, mac_id); skb_cb = ATH12K_SKB_CB(msdu); + ar = ab->pdevs[pdev_id].ar; dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE); if (skb_cb->paddr_ext_desc) dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, sizeof(struct hal_tx_msdu_ext_desc), DMA_TO_DEVICE); - dev_kfree_skb_any(msdu); + ieee80211_free_txskb(ar->ah->hw, msdu); - ar = ab->pdevs[pdev_id].ar; if (atomic_dec_and_test(&ar->dp.num_tx_pending)) wake_up(&ar->dp.tx_empty_waitq); } @@ -448,6 +448,7 @@ static void ath12k_dp_tx_complete_msdu(struct ath12k *ar, struct hal_tx_status *ts) { struct ath12k_base *ab = ar->ab; + struct ath12k_hw *ah = ar->ah; struct ieee80211_tx_info *info; struct ath12k_skb_cb *skb_cb; @@ -466,12 +467,12 @@ static void ath12k_dp_tx_complete_msdu(struct ath12k *ar, rcu_read_lock(); if (!rcu_dereference(ab->pdevs_active[ar->pdev_idx])) { - dev_kfree_skb_any(msdu); + ieee80211_free_txskb(ah->hw, msdu); goto exit; } if (!skb_cb->vif) { - dev_kfree_skb_any(msdu); + ieee80211_free_txskb(ah->hw, msdu); goto exit; } -- 2.34.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case 2024-04-30 7:43 ` [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case Karthikeyan Kathirvel @ 2024-04-30 17:50 ` Jeff Johnson 2024-05-03 13:21 ` Kalle Valo 1 sibling, 0 replies; 7+ messages in thread From: Jeff Johnson @ 2024-04-30 17:50 UTC (permalink / raw) To: Karthikeyan Kathirvel, ath12k Cc: linux-wireless, Sven Eckelmann, Sarika Sharma On 4/30/2024 12:43 AM, Karthikeyan Kathirvel wrote: > From: Sven Eckelmann <sven@narfation.org> > > When a station idles for a long time, hostapd will try to send > a QoS Null frame to the station as "poll". NL80211_CMD_PROBE_CLIENT > is used for this purpose. > And the skb will be added to ack_status_frame - waiting for a > completion via ieee80211_report_ack_skb(). > > But when the peer was already removed before the tx_complete arrives, > the peer will be missing. And when using dev_kfree_skb_any (instead > of going through mac80211), the entry will stay inside > ack_status_frames thus not clean up related information in its > internal data structures. This IDR will therefore run full after > 8K request were generated for such clients. > At this point, the access point will then just stall and not allow > any new clients because idr_alloc() for ack_status_frame will fail. > > ieee80211_free_txskb() on the other hand will (when required) call > ieee80211_report_ack_skb() and make sure that (when required) remove > the entry from the ack_status_frame and clean up related > information in its internal data structures. > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 > > Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") > Signed-off-by: Sven Eckelmann <sven@narfation.org> > Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com> > Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com> > Link: https://lore.kernel.org/r/20230802-ath11k-ack_status_leak-v2-1-c0af729d6229@narfation.org Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case 2024-04-30 7:43 ` [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case Karthikeyan Kathirvel 2024-04-30 17:50 ` Jeff Johnson @ 2024-05-03 13:21 ` Kalle Valo 1 sibling, 0 replies; 7+ messages in thread From: Kalle Valo @ 2024-05-03 13:21 UTC (permalink / raw) To: Karthikeyan Kathirvel Cc: ath12k, linux-wireless, Sven Eckelmann, Sarika Sharma, Karthikeyan Kathirvel Karthikeyan Kathirvel <quic_kathirve@quicinc.com> wrote: > When a station idles for a long time, hostapd will try to send > a QoS Null frame to the station as "poll". NL80211_CMD_PROBE_CLIENT > is used for this purpose. > And the skb will be added to ack_status_frame - waiting for a > completion via ieee80211_report_ack_skb(). > > But when the peer was already removed before the tx_complete arrives, > the peer will be missing. And when using dev_kfree_skb_any (instead > of going through mac80211), the entry will stay inside > ack_status_frames thus not clean up related information in its > internal data structures. This IDR will therefore run full after > 8K request were generated for such clients. > At this point, the access point will then just stall and not allow > any new clients because idr_alloc() for ack_status_frame will fail. > > ieee80211_free_txskb() on the other hand will (when required) call > ieee80211_report_ack_skb() and make sure that (when required) remove > the entry from the ack_status_frame and clean up related > information in its internal data structures. > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 > > Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") > Signed-off-by: Sven Eckelmann <sven@narfation.org> > Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com> > Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com> > Link: https://lore.kernel.org/r/20230802-ath11k-ack_status_leak-v2-1-c0af729d6229@narfation.org > Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> 2 patches applied to ath-next branch of ath.git, thanks. 5453bbd6fef4 wifi: ath12k: Don't drop tx_status in failure case 50971dc6694c wifi: ath12k: drop failed transmitted frames from metric calculation. -- https://patchwork.kernel.org/project/linux-wireless/patch/20240430074313.885807-2-quic_kathirve@quicinc.com/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation. 2024-04-30 7:43 [PATCH v4 0/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel 2024-04-30 7:43 ` [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case Karthikeyan Kathirvel @ 2024-04-30 7:43 ` Karthikeyan Kathirvel 2024-04-30 17:50 ` Jeff Johnson 1 sibling, 1 reply; 7+ messages in thread From: Karthikeyan Kathirvel @ 2024-04-30 7:43 UTC (permalink / raw) To: ath12k; +Cc: linux-wireless, Karthikeyan Kathirvel In mesh node traffic, internal firmware-transmitted failures are reported as transmitted failures in mesh metric calculation, leading to the breakage of the mesh link. Fix the issue by dropping the internal firmware-transmitted failures before updating the TX completion status to mac80211, in order to prevent false failure averaging in mesh metric calculation. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com> --- drivers/net/wireless/ath/ath12k/dp_tx.c | 38 ++++++++++++++++------ drivers/net/wireless/ath/ath12k/hal_desc.h | 22 ++++++++++++- 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/dp_tx.c b/drivers/net/wireless/ath/ath12k/dp_tx.c index 81a85d5946f5..a7c7a868c14c 100644 --- a/drivers/net/wireless/ath/ath12k/dp_tx.c +++ b/drivers/net/wireless/ath/ath12k/dp_tx.c @@ -482,18 +482,36 @@ static void ath12k_dp_tx_complete_msdu(struct ath12k *ar, /* skip tx rate update from ieee80211_status*/ info->status.rates[0].idx = -1; - if (ts->status == HAL_WBM_TQM_REL_REASON_FRAME_ACKED && - !(info->flags & IEEE80211_TX_CTL_NO_ACK)) { - info->flags |= IEEE80211_TX_STAT_ACK; - info->status.ack_signal = ATH12K_DEFAULT_NOISE_FLOOR + - ts->ack_rssi; - info->status.flags = IEEE80211_TX_STATUS_ACK_SIGNAL_VALID; + switch (ts->status) { + case HAL_WBM_TQM_REL_REASON_FRAME_ACKED: + if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) { + info->flags |= IEEE80211_TX_STAT_ACK; + info->status.ack_signal = ATH12K_DEFAULT_NOISE_FLOOR + + ts->ack_rssi; + info->status.flags = IEEE80211_TX_STATUS_ACK_SIGNAL_VALID; + } + break; + case HAL_WBM_TQM_REL_REASON_CMD_REMOVE_TX: + if (info->flags & IEEE80211_TX_CTL_NO_ACK) { + info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED; + break; + } + fallthrough; + case HAL_WBM_TQM_REL_REASON_CMD_REMOVE_MPDU: + case HAL_WBM_TQM_REL_REASON_DROP_THRESHOLD: + case HAL_WBM_TQM_REL_REASON_CMD_REMOVE_AGED_FRAMES: + /* The failure status is due to internal firmware tx failure + * hence drop the frame; do not update the status of frame to + * the upper layer + */ + ieee80211_free_txskb(ah->hw, msdu); + goto exit; + default: + ath12k_dbg(ab, ATH12K_DBG_DP_TX, "tx frame is not acked status %d\n", + ts->status); + break; } - if (ts->status == HAL_WBM_TQM_REL_REASON_CMD_REMOVE_TX && - (info->flags & IEEE80211_TX_CTL_NO_ACK)) - info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED; - /* NOTE: Tx rate status reporting. Tx completion status does not have * necessary information (for example nss) to build the tx rate. * Might end up reporting it out-of-band from HTT stats. diff --git a/drivers/net/wireless/ath/ath12k/hal_desc.h b/drivers/net/wireless/ath/ath12k/hal_desc.h index 63340256d3f6..71e8c8a091ae 100644 --- a/drivers/net/wireless/ath/ath12k/hal_desc.h +++ b/drivers/net/wireless/ath/ath12k/hal_desc.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #include "core.h" @@ -2048,6 +2048,19 @@ struct hal_wbm_release_ring { * fw with fw_reason2. * @HAL_WBM_TQM_REL_REASON_CMD_REMOVE_RESEAON3: Remove command initiated by * fw with fw_reason3. + * @HAL_WBM_TQM_REL_REASON_CMD_DISABLE_QUEUE: Remove command initiated by + * fw with disable queue. + * @HAL_WBM_TQM_REL_REASON_CMD_TILL_NONMATCHING: Remove command initiated by + * fw to remove all mpdu until 1st non-match. + * @HAL_WBM_TQM_REL_REASON_DROP_THRESHOLD: Dropped due to drop threshold + * criteria + * @HAL_WBM_TQM_REL_REASON_DROP_LINK_DESC_UNAVAIL: Dropped due to link desc + * not available + * @HAL_WBM_TQM_REL_REASON_DROP_OR_INVALID_MSDU: Dropped due drop bit set or + * null flow + * @HAL_WBM_TQM_REL_REASON_MULTICAST_DROP: Dropped due mcast drop set for VDEV + * @HAL_WBM_TQM_REL_REASON_VDEV_MISMATCH_DROP: Dropped due to being set with + * 'TCL_drop_reason' */ enum hal_wbm_tqm_rel_reason { HAL_WBM_TQM_REL_REASON_FRAME_ACKED, @@ -2058,6 +2071,13 @@ enum hal_wbm_tqm_rel_reason { HAL_WBM_TQM_REL_REASON_CMD_REMOVE_RESEAON1, HAL_WBM_TQM_REL_REASON_CMD_REMOVE_RESEAON2, HAL_WBM_TQM_REL_REASON_CMD_REMOVE_RESEAON3, + HAL_WBM_TQM_REL_REASON_CMD_DISABLE_QUEUE, + HAL_WBM_TQM_REL_REASON_CMD_TILL_NONMATCHING, + HAL_WBM_TQM_REL_REASON_DROP_THRESHOLD, + HAL_WBM_TQM_REL_REASON_DROP_LINK_DESC_UNAVAIL, + HAL_WBM_TQM_REL_REASON_DROP_OR_INVALID_MSDU, + HAL_WBM_TQM_REL_REASON_MULTICAST_DROP, + HAL_WBM_TQM_REL_REASON_VDEV_MISMATCH_DROP, }; struct hal_wbm_buffer_ring { -- 2.34.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation. 2024-04-30 7:43 ` [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel @ 2024-04-30 17:50 ` Jeff Johnson 2024-05-02 10:39 ` Kalle Valo 0 siblings, 1 reply; 7+ messages in thread From: Jeff Johnson @ 2024-04-30 17:50 UTC (permalink / raw) To: Karthikeyan Kathirvel, ath12k; +Cc: linux-wireless On 4/30/2024 12:43 AM, Karthikeyan Kathirvel wrote: > In mesh node traffic, internal firmware-transmitted failures are > reported as transmitted failures in mesh metric calculation, leading > to the breakage of the mesh link. > > Fix the issue by dropping the internal firmware-transmitted failures > before updating the TX completion status to mac80211, in order to > prevent false failure averaging in mesh metric calculation. > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 > > Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") > Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com> With one caveat noted below, Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> [...] > diff --git a/drivers/net/wireless/ath/ath12k/hal_desc.h b/drivers/net/wireless/ath/ath12k/hal_desc.h > index 63340256d3f6..71e8c8a091ae 100644 > --- a/drivers/net/wireless/ath/ath12k/hal_desc.h > +++ b/drivers/net/wireless/ath/ath12k/hal_desc.h > @@ -1,7 +1,7 @@ > /* SPDX-License-Identifier: BSD-3-Clause-Clear */ > /* > * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. > - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. > + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. should be 2021-2022, 2024 per current guidance Kalle can probably fix this in the pending branch ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation. 2024-04-30 17:50 ` Jeff Johnson @ 2024-05-02 10:39 ` Kalle Valo 0 siblings, 0 replies; 7+ messages in thread From: Kalle Valo @ 2024-05-02 10:39 UTC (permalink / raw) To: Jeff Johnson; +Cc: Karthikeyan Kathirvel, ath12k, linux-wireless Jeff Johnson <quic_jjohnson@quicinc.com> writes: > On 4/30/2024 12:43 AM, Karthikeyan Kathirvel wrote: >> In mesh node traffic, internal firmware-transmitted failures are >> reported as transmitted failures in mesh metric calculation, leading >> to the breakage of the mesh link. >> >> Fix the issue by dropping the internal firmware-transmitted failures >> before updating the TX completion status to mac80211, in order to >> prevent false failure averaging in mesh metric calculation. >> >> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 >> >> Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") >> Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com> > With one caveat noted below, > Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> > > [...] >> diff --git a/drivers/net/wireless/ath/ath12k/hal_desc.h b/drivers/net/wireless/ath/ath12k/hal_desc.h >> index 63340256d3f6..71e8c8a091ae 100644 >> --- a/drivers/net/wireless/ath/ath12k/hal_desc.h >> +++ b/drivers/net/wireless/ath/ath12k/hal_desc.h >> @@ -1,7 +1,7 @@ >> /* SPDX-License-Identifier: BSD-3-Clause-Clear */ >> /* >> * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. >> - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. >> + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. > > should be 2021-2022, 2024 per current guidance > > Kalle can probably fix this in the pending branch Fixed to this: --- a/drivers/net/wireless/ath/ath12k/hal_desc.h +++ b/drivers/net/wireless/ath/ath12k/hal_desc.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause-Clear */ /* * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-05-03 13:21 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-30 7:43 [PATCH v4 0/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel 2024-04-30 7:43 ` [PATCH v4 1/2] wifi: ath12k: Don't drop tx_status in failure case Karthikeyan Kathirvel 2024-04-30 17:50 ` Jeff Johnson 2024-05-03 13:21 ` Kalle Valo 2024-04-30 7:43 ` [PATCH v4 2/2] wifi: ath12k: drop failed transmitted frames from metric calculation Karthikeyan Kathirvel 2024-04-30 17:50 ` Jeff Johnson 2024-05-02 10:39 ` Kalle Valo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox