[802.11] Expose channel-changing functionality
authorJoshua Oreman <oremanj@xenon.get-linux.org>
Fri, 19 Jun 2009 19:33:08 +0000 (12:33 -0700)
committerJoshua Oreman <oremanj@xenon.get-linux.org>
Fri, 19 Jun 2009 19:33:08 +0000 (12:33 -0700)
This is needed to make sure `iwlist' doesn't destroy an existing
association. Also renamed set_channel_nr to change_channel.

src/include/gpxe/net80211.h
src/net/net80211.c

index 85d8a6d..b719db9 100644 (file)
@@ -896,6 +896,9 @@ struct net80211_wlan
 /* Associate with the best or user-specified network: */
 void net80211_autoassociate ( struct net80211_device *dev );
 
+/* Change channel: */
+int net80211_change_channel ( struct net80211_device *dev, int channel );
+
 /* Find networks: */
 struct net80211_probe_ctx * net80211_probe_start ( struct net80211_device *dev,
                                                   const char *essid,
index 4e97688..88bdd55 100644 (file)
@@ -184,7 +184,6 @@ net80211_marshal_request_info ( struct net80211_device *dev,
 static void net80211_step_associate ( struct process *proc );
 static void net80211_set_rtscts_rate ( struct net80211_device *dev );
 static void net80211_set_rate_intelligently ( struct net80211_device *dev );
-static int net80211_set_channel_nr ( struct net80211_device *dev, int channel );
 static void net80211_handle_auth ( struct net80211_device *dev,
                                   struct io_buffer *iob );
 static void net80211_handle_assoc_reply ( struct net80211_device *dev,
@@ -977,7 +976,7 @@ static int net80211_process_ie ( struct net80211_device *dev,
                             dev->channels[dev->channel].channel_nr )
                                break;
                        ds_channel = ie->ds_param.current_channel;
-                       net80211_set_channel_nr ( dev, ds_channel );
+                       net80211_change_channel ( dev, ds_channel );
                        break;
 
                case IEEE80211_IE_COUNTRY:
@@ -1791,7 +1790,7 @@ static void net80211_set_rate_intelligently ( struct net80211_device *dev )
  * @v dev      802.11 device
  * @v channel  Channel number (1-11 for 2.4GHz) to transmit on
  */
-int net80211_set_channel_nr ( struct net80211_device *dev, int channel )
+int net80211_change_channel ( struct net80211_device *dev, int channel )
 {
        int i, oldchan = dev->channel;
 
@@ -1882,7 +1881,7 @@ int net80211_prepare_assoc ( struct net80211_device *dev,
        /* Barring an IE that tells us the channel outright, assume
           the channel we heard this AP best on is the channel it's
           communicating on. */
-       net80211_set_channel_nr ( dev, wlan->channel );
+       net80211_change_channel ( dev, wlan->channel );
 
        rc = net80211_process_capab ( dev, beacon->capability );
        if ( rc )