Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Aug 2014 08:35:42 +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: r269778 - head/sys/net80211
Message-ID:  <53e72ede.2247.6354488c@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sun Aug 10 08:35:42 2014
New Revision: 269778
URL: http://svnweb.freebsd.org/changeset/base/269778

Log:
  Undo r195846 for now - allow raw frame transmit in monitor mode.
  
  The original commit was supposed to stop the ability to do raw frame
  injection in monitor mode to arbitrary channels (whether supported
  by regulatory or not) however it doesn't seem to have been followed
  by any useful way of doing it.
  
  Apparently AHDEMO is supposed to be that way, but it seems to require
  too much fiddly things (disable scanning, set a garbage SSID, etc)
  for it to actually be useful for spoofing things.
  
  So for now let's just disable it and instead look to filter transmit
  in the output path if the channel isn't allowed by regulatory.
  That way monitor RX works fine but TX will be blocked.
  
  I don't plan on MFC'ing this to -10 until the regulatory enforcement
  bits are written.

Modified:
  head/sys/net80211/ieee80211.c

Modified: head/sys/net80211/ieee80211.c
==============================================================================
--- head/sys/net80211/ieee80211.c	Sun Aug 10 07:51:55 2014	(r269777)
+++ head/sys/net80211/ieee80211.c	Sun Aug 10 08:35:42 2014	(r269778)
@@ -570,15 +570,9 @@ ieee80211_vap_attach(struct ieee80211vap
 		ifp->if_baudrate = IF_Mbps(maxrate);
 
 	ether_ifattach(ifp, vap->iv_myaddr);
-	if (vap->iv_opmode == IEEE80211_M_MONITOR) {
-		/* NB: disallow transmit */
-		ifp->if_transmit = null_transmit;
-		ifp->if_output = null_output;
-	} else {
-		/* hook output method setup by ether_ifattach */
-		vap->iv_output = ifp->if_output;
-		ifp->if_output = ieee80211_output;
-	}
+	/* hook output method setup by ether_ifattach */
+	vap->iv_output = ifp->if_output;
+	ifp->if_output = ieee80211_output;
 	/* NB: if_mtu set by ether_ifattach to ETHERMTU */
 
 	IEEE80211_LOCK(ic);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53e72ede.2247.6354488c>