Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Nov 2016 19:16:46 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r308383 - head/sys/net80211
Message-ID:  <201611061916.uA6JGk5V019563@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sun Nov  6 19:16:46 2016
New Revision: 308383
URL: https://svnweb.freebsd.org/changeset/base/308383

Log:
  [net80211] add a method to also explicitly tear down RX A-MPDU.
  
  The ath10k firmware API doesn't pass up the ADDBA/DELBA frames, only
  WMI firmware notifications.
  
  Tested:
  
  * ath10k (QCA9880), doing actual (ha!) 11n!

Modified:
  head/sys/net80211/ieee80211_ht.c
  head/sys/net80211/ieee80211_ht.h

Modified: head/sys/net80211/ieee80211_ht.c
==============================================================================
--- head/sys/net80211/ieee80211_ht.c	Sun Nov  6 18:40:12 2016	(r308382)
+++ head/sys/net80211/ieee80211_ht.c	Sun Nov  6 19:16:46 2016	(r308383)
@@ -597,6 +597,19 @@ ieee80211_ampdu_rx_start_ext(struct ieee
 }
 
 /*
+ * Public function; manually stop the RX AMPDU state.
+ */
+void
+ieee80211_ampdu_rx_stop_ext(struct ieee80211_node *ni, int tid)
+{
+	struct ieee80211_rx_ampdu *rap;
+
+	/* XXX TODO: sanity check tid, seq, baw */
+	rap = &ni->ni_rx_ampdu[tid];
+	ampdu_rx_stop(ni, rap);
+}
+
+/*
  * Stop A-MPDU rx processing for the specified TID.
  */
 static void

Modified: head/sys/net80211/ieee80211_ht.h
==============================================================================
--- head/sys/net80211/ieee80211_ht.h	Sun Nov  6 18:40:12 2016	(r308382)
+++ head/sys/net80211/ieee80211_ht.h	Sun Nov  6 19:16:46 2016	(r308383)
@@ -220,6 +220,7 @@ void	ieee80211_ht_update_beacon(struct i
 		struct ieee80211_beacon_offsets *);
 int	ieee80211_ampdu_rx_start_ext(struct ieee80211_node *ni, int tid,
 	    int seq, int baw);
+void	ieee80211_ampdu_rx_stop_ext(struct ieee80211_node *ni, int tid);
 int	ieee80211_ampdu_tx_request_ext(struct ieee80211_node *ni, int tid);
 int	ieee80211_ampdu_tx_request_active_ext(struct ieee80211_node *ni,
 	    int tid, int status);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611061916.uA6JGk5V019563>