From owner-freebsd-wireless@freebsd.org Mon Feb 22 00:34:32 2016 Return-Path: Delivered-To: freebsd-wireless@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51AEAAB0791 for ; Mon, 22 Feb 2016 00:34:32 +0000 (UTC) (envelope-from andriyvos@gmail.com) Received: from mail-lb0-f172.google.com (mail-lb0-f172.google.com [209.85.217.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DD996181A for ; Mon, 22 Feb 2016 00:34:31 +0000 (UTC) (envelope-from andriyvos@gmail.com) Received: by mail-lb0-f172.google.com with SMTP id x4so74180764lbm.0 for ; Sun, 21 Feb 2016 16:34:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:to:date:subject:mime-version :content-transfer-encoding:from:message-id:user-agent; bh=hluGSNe6QtlKOTqYGRUGvOBHQsj8pVvf66PLh9NcJt4=; b=BbOy/rB7xbm1h73pgK4xe2FhQU8ut4Vi384LQhT7Gr8N/jK6KXwyGznma5Sxgiiip9 3IzieTGfPKfU2uLWX3QEElIkUW/AujJh+hpwqqPLDU/BsLi4mneWQUxiP7+LIsWBnMGt MAnj7ZLnsbTRGZYcg2o4FYaWrk+l4z6N325JhKy6q+QNBjSQXBCcJR3rAtDvXkX4sUMp AcvKLq7WJhY7rbVyADFnugnRCBY4ngptJ9F1AQOLZWrrFG3jd/mbNwbskzwFjQrqv+ve NQmktOfG0lImoDv3NDKEHX4gy7UDnDDzjkLR4EkKMbj7GOsPcD8EGky8nAg8Suu++pMh 7IuA== X-Gm-Message-State: AG10YOToM9FsqFXIVfnR4VprN7xPOe/e/GFKKQ5+0N1vbq91Gq1ZCZYs/JmVAfFgpujYug== X-Received: by 10.112.201.105 with SMTP id jz9mr7602220lbc.139.1456101264006; Sun, 21 Feb 2016 16:34:24 -0800 (PST) Received: from localhost (host-176-37-109-22.la.net.ua. [176.37.109.22]) by smtp.gmail.com with ESMTPSA id s5sm2232049lbr.12.2016.02.21.16.34.23 for (version=TLS1 cipher=AES128-SHA bits=128/128); Sun, 21 Feb 2016 16:34:23 -0800 (PST) Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "freebsd-wireless@freebsd.org" Date: Mon, 22 Feb 2016 02:34:23 +0200 Subject: net80211 inactivity processing MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Andriy Voskoboinyk" Message-ID: User-Agent: Opera Mail/12.16 (FreeBSD) X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Feb 2016 00:34:32 -0000 Hi, What is the purpose of the following code? (especially in HOSTAP mode) (ieee80211_node.c): static void ieee80211_timeout_stations(struct ieee80211com *ic) { struct ieee80211_node_table *nt = &ic->ic_sta; struct ieee80211vap *vap; struct ieee80211_node *ni; int gen = 0; IEEE80211_NODE_ITERATE_LOCK(nt); gen = ++nt->nt_scangen; restart: IEEE80211_NODE_LOCK(nt); TAILQ_FOREACH(ni, &nt->nt_node, ni_list) { ... if ((vap->iv_flags_ext & IEEE80211_FEXT_INACT) && (0 < ni->ni_inact && ni->ni_inact <= vap->iv_inact_probe) && ni->ni_rates.rs_nrates != 0) { IEEE80211_NOTE(vap, IEEE80211_MSG_INACT | IEEE80211_MSG_NODE, ni, "%s", "probe station due to inactivity"); /* * Grab a reference before unlocking the table * so the node cannot be reclaimed before we * send the frame. ieee80211_send_nulldata * understands we've done this and reclaims the * ref for us as needed. */ ieee80211_ref_node(ni); IEEE80211_NODE_UNLOCK(nt); ieee80211_send_nulldata(ni); <<< here /* XXX stat? */ goto restart; } ... } IEEE80211_NODE_UNLOCK(nt); IEEE80211_NODE_ITERATE_UNLOCK(nt); } As for me, ieee80211_send_nulldata() will not refresh ni->ni_inact, nor will trigger any data transmission from the STA (so, it does nothing?).