The branch main has been updated by adrian:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=e76e631bb0e9d338f48f6208e7f8df9d76980abd

commit e76e631bb0e9d338f48f6208e7f8df9d76980abd
Author:     Adrian Chadd <[email protected]>
AuthorDate: 2025-06-08 22:01:05 +0000
Commit:     Adrian Chadd <[email protected]>
CommitDate: 2025-09-09 01:46:09 +0000

    run: enable seqno offload
    
    Enable sequence number offload.
    
    This should both enable the sequence number offloading and disable
    the net80211 TX lock from being acquired/released/checked.
    
    Differential Revision:  https://reviews.freebsd.org/D50747
    Okayed by: bz
---
 sys/dev/usb/wlan/if_run.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/sys/dev/usb/wlan/if_run.c b/sys/dev/usb/wlan/if_run.c
index 97c790dd5b81..147aa4044057 100644
--- a/sys/dev/usb/wlan/if_run.c
+++ b/sys/dev/usb/wlan/if_run.c
@@ -882,6 +882,7 @@ run_attach(device_t self)
 
        ic->ic_flags |= IEEE80211_F_DATAPAD;
        ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS;
+       ic->ic_flags_ext |= IEEE80211_FEXT_SEQNO_OFFLOAD;
 
        run_getradiocaps(ic, IEEE80211_CHAN_MAX, &ic->ic_nchans,
            ic->ic_channels);
@@ -3522,6 +3523,9 @@ run_tx(struct run_softc *sc, struct mbuf *m, struct 
ieee80211_node *ni)
        data->ni = ni;
        data->ridx = ridx;
 
+       /* Assign sequence number now, regardless of A-MPDU TX or otherwise 
(for now) */
+       ieee80211_output_seqno_assign(ni, -1, m);
+
        run_set_tx_desc(sc, data);
 
        /*
@@ -3627,6 +3631,9 @@ run_tx_mgt(struct run_softc *sc, struct mbuf *m, struct 
ieee80211_node *ni)
        data->ni = ni;
        data->ridx = ridx;
 
+       /* Assign sequence number now, regardless of A-MPDU TX or otherwise 
(for now) */
+       ieee80211_output_seqno_assign(ni, -1, m);
+
        run_set_tx_desc(sc, data);
 
        RUN_DPRINTF(sc, RUN_DEBUG_XMIT, "sending mgt frame len=%d rate=%d\n",
@@ -3771,6 +3778,9 @@ run_tx_param(struct run_softc *sc, struct mbuf *m, struct 
ieee80211_node *ni,
                        break;
        data->ridx = ridx;
 
+       /* Assign sequence number now, regardless of A-MPDU TX or otherwise 
(for now) */
+       ieee80211_output_seqno_assign(ni, -1, m);
+
         run_set_tx_desc(sc, data);
 
         RUN_DPRINTF(sc, RUN_DEBUG_XMIT, "sending raw frame len=%u rate=%u\n",
@@ -6416,6 +6426,10 @@ run_ampdu_enable(struct ieee80211_node *ni, struct 
ieee80211_tx_ampdu *tap)
 {
 
        /* For now, no A-MPDU TX support in the driver */
+       /*
+        * TODO: maybe we needed to enable seqno generation too?
+        * What other TX desc bits are missing/needed?
+        */
        return (0);
 }
 

Reply via email to