From owner-svn-src-all@freebsd.org Tue Apr 26 01:30:30 2016 Return-Path: Delivered-To: svn-src-all@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 736BDB1DC5E; Tue, 26 Apr 2016 01:30:30 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C1EF195C; Tue, 26 Apr 2016 01:30:30 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3Q1UTwS088386; Tue, 26 Apr 2016 01:30:29 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3Q1UT1v088385; Tue, 26 Apr 2016 01:30:29 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201604260130.u3Q1UT1v088385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Tue, 26 Apr 2016 01:30:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r298606 - head/sbin/ifconfig X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2016 01:30:30 -0000 Author: adrian Date: Tue Apr 26 01:30:29 2016 New Revision: 298606 URL: https://svnweb.freebsd.org/changeset/base/298606 Log: [ifconfig] add STBC TX/RX configuration This adds the ability to view and configure the STBC parameter for both transmit and receive. Whilst here, fix a typo for AMSDU. TODO: * manpage update Modified: head/sbin/ifconfig/ifieee80211.c Modified: head/sbin/ifconfig/ifieee80211.c ============================================================================== --- head/sbin/ifconfig/ifieee80211.c Tue Apr 26 01:29:26 2016 (r298605) +++ head/sbin/ifconfig/ifieee80211.c Tue Apr 26 01:30:29 2016 (r298606) @@ -1697,7 +1697,7 @@ set80211ampdu(const char *val, int d, in int ampdu; if (get80211val(s, IEEE80211_IOC_AMPDU, &du) < 0) - errx(-1, "cannot get AMPDU setting"); + errx(-1, "cannot set AMPDU setting"); if (d < 0) { d = -d; ampdu &= ~d; @@ -1706,6 +1706,21 @@ set80211ampdu(const char *val, int d, in set80211(s, IEEE80211_IOC_AMPDU, ampdu, 0, NULL); } +static void +set80211stbc(const char *val, int d, int s, const struct afswtch *rafp) +{ + int stbc; + + if (get80211val(s, IEEE80211_IOC_STBC, &stbc) < 0) + errx(-1, "cannot set STBC setting"); + if (d < 0) { + d = -d; + stbc &= ~d; + } else + stbc |= d; + set80211(s, IEEE80211_IOC_STBC, stbc, 0, NULL); +} + static DECL_CMD_FUNC(set80211ampdulimit, val, d) { @@ -4828,6 +4843,23 @@ end: else if (verbose) LINE_CHECK("-rifs"); } + if (get80211val(s, IEEE80211_IOC_STBC, &val) != -1) { + switch (val) { + case 0: + LINE_CHECK("-stbc"); + break; + case 1: + LINE_CHECK("stbctx -stbcrx"); + break; + case 2: + LINE_CHECK("-stbctx stbcrx"); + break; + case 3: + if (verbose) + LINE_CHECK("stbc"); + break; + } + } } if (get80211val(s, IEEE80211_IOC_WME, &wme) != -1) { @@ -5324,6 +5356,12 @@ static struct cmd ieee80211_cmds[] = { DEF_CMD("amsdu", 3, set80211amsdu), /* NB: tx+rx */ DEF_CMD("-amsdu", -3, set80211amsdu), DEF_CMD_ARG("amsdulimit", set80211amsdulimit), + DEF_CMD("stbcrx", 2, set80211stbc), + DEF_CMD("-stbcrx", -2, set80211stbc), + DEF_CMD("stbctx", 1, set80211stbc), + DEF_CMD("-stbctx", -1, set80211stbc), + DEF_CMD("stbc", 3, set80211stbc), /* NB: tx+rx */ + DEF_CMD("-ampdu", -3, set80211stbc), DEF_CMD("puren", 1, set80211puren), DEF_CMD("-puren", 0, set80211puren), DEF_CMD("doth", 1, set80211doth),