// Here we will switch based on the router private void SetupAccessPoints() { bool bSameSSID = false; APConfigs = new List <APConfig>(); APConfigs.Add(WlanAccessPointHelper.CreateWirelessAccessPoint( m_AP1Config24GHz.Auth, m_AP1Config24GHz.Cipher, m_AP1Config24GHz.Phy, "TestPassphrase2", m_AP1Config5GHz.Auth, m_AP1Config5GHz.Cipher, m_AP1Config5GHz.Phy, "TestPassphrase1")); if (m_ScanTestOptions.HasFlag(SCAN_TEST_OPTIONS.DuplicateSSIDs)) { // Both APs should have same SSID APConfigs.Add(WlanAccessPointHelper.DuplicateAPForRoaming(APConfigs[0])); bSameSSID = true; } else { APConfigs.Add(WlanAccessPointHelper.CreateWirelessAccessPoint( m_AP2Config24GHz.Auth, m_AP2Config24GHz.Cipher, m_AP2Config24GHz.Phy, "TestPassphrase2", m_AP2Config5GHz.Auth, m_AP2Config5GHz.Cipher, m_AP2Config5GHz.Phy, "TestPassphrase1")); } APConfigs[1].BSSID_24GHZ = WlanAccessPointHelper.GenerateBSSID(); APConfigs[1].BSSID_5GHZ = WlanAccessPointHelper.GenerateBSSID(); APConfigs[0].RadioChannel24Ghz = m_AP1Config24GHz.Channel; APConfigs[0].RadioChannel5Ghz = m_AP1Config5GHz.Channel; APConfigs[1].RadioChannel24Ghz = m_AP2Config24GHz.Channel; APConfigs[1].RadioChannel5Ghz = m_AP2Config5GHz.Channel; APConfigs[0].BeaconEnabled_24GHZ = !m_AP1Config24GHz.IsHidden; APConfigs[0].BeaconEnabled_5GHZ = !m_AP1Config5GHz.IsHidden; APConfigs[1].BeaconEnabled_24GHZ = !m_AP2Config24GHz.IsHidden; APConfigs[1].BeaconEnabled_5GHZ = !m_AP2Config5GHz.IsHidden; // For the same SSID case, we want the APs to be configured with the specific SSID if (bSameSSID) { APConfigs[0].SmartCompare = false; APConfigs[1].SmartCompare = false; } Guid[] routerList = new Guid[2]; routerList[0] = routers[0]; routerList[1] = routers[1]; Collection <ConfiguredSSIDs> configuredSSIDs = new Collection <ConfiguredSSIDs>(); LogMajor("Configuring Router0"); LogMajor("Configuring Router1"); APConfig[] apConfigArray = new APConfig[APConfigs.Count]; for (int index = 0; index < APConfigs.Count; index++) { apConfigArray[index] = APConfigs[index]; } AC.ApplyConfigurationParallel(routerList, apConfigArray, out configuredSSIDs); if (!bSameSSID) { APConfigs[0].SSID_24GHZ = configuredSSIDs[0].TwoPoint4GhzSSID; APConfigs[0].SSID_5GHZ = configuredSSIDs[0].FiveghzSSID; APConfigs[1].SSID_24GHZ = configuredSSIDs[1].TwoPoint4GhzSSID; APConfigs[1].SSID_5GHZ = configuredSSIDs[1].FiveghzSSID; } LogMajor("Configured Router0 SSID:" + APConfigs[0].SSID_24GHZ + "/" + APConfigs[0].SSID_5GHZ); LogMajor("Configured Router1 SSID:" + APConfigs[1].SSID_24GHZ + "/" + APConfigs[1].SSID_5GHZ); Log("Reading the BSSIDs configured on router for validation when connected"); for (int i = 0; i < 2; i++) { APConfigs[i].BSSID_24GHZ = AC.GetAccessPointBSSID(routers[i], false); LogMajor("BSSID(" + APConfigs[i].SSID_24GHZ + ") = " + APConfigs[i].BSSID_24GHZ); LogMajor("Authentication(" + APConfigs[i].SSID_24GHZ + ") = " + APConfigs[i].Authentication_24GHZ.ProfileValue); LogMajor("Encryption(" + APConfigs[i].SSID_24GHZ + ") = " + APConfigs[i].Encryption_24GHZ.ProfileValue); LogMajor("Phy(" + APConfigs[i].SSID_24GHZ + ") = " + APConfigs[i].PhyType_24GHZ.ProfileValue); LogMajor("Channel(" + APConfigs[i].SSID_24GHZ + ") = " + APConfigs[i].RadioChannel24Ghz); LogMajor("Hidden(" + APConfigs[i].SSID_24GHZ + ") = " + ((APConfigs[i].BeaconEnabled_24GHZ == false) ? "Yes" : "No")); APConfigs[i].BSSID_5GHZ = AC.GetAccessPointBSSID(routers[i], true); LogMajor("BSSID(" + APConfigs[i].SSID_5GHZ + ")= " + APConfigs[i].BSSID_5GHZ); LogMajor("AuthenticationMethod(" + APConfigs[i].SSID_5GHZ + ") = " + APConfigs[i].Authentication_5GHZ.ProfileValue); LogMajor("Encryption(" + APConfigs[i].SSID_5GHZ + ") = " + APConfigs[i].Encryption_5GHZ.ProfileValue); LogMajor("Phy(" + APConfigs[i].SSID_5GHZ + ") = " + APConfigs[i].PhyType_5GHZ.ProfileValue); LogMajor("Channel(" + APConfigs[i].SSID_5GHZ + ") = " + APConfigs[i].RadioChannel5Ghz); LogMajor("Hidden(" + APConfigs[i].SSID_5GHZ + ") = " + ((APConfigs[i].BeaconEnabled_5GHZ == false) ? "Yes" : "No")); } }
public void BasicAssociationTest() { string variationName = "Basic Association test"; string variationDescription = "Associate to first AP with manual profile - Turn Off Radio - Associate to second AP with manual profile"; Helpers.LogVariationStart(variationName, variationDescription); Log("Deleting all wlan profiles"); DeleteProfiles(); Log("Starting Echo Services"); CreateEchoServer(); //Radios of all APs are turned on by the SetupRoutersIfNeeded(); Log("Setting up Routers"); SetupRoutersIfNeeded(); string Profile; APConfig ap1Config = m_APConfigs[0]; APConfig ap2Config = m_APConfigs[1]; string ap1_ssid = ap1Config.SSID_24GHZ; string ap2_ssid = (m_DeviceSupports5GHz) ? ap2Config.SSID_5GHZ : ap2Config.SSID_24GHZ; //In general the typical usage pattern of radio states for APs should be that they are only turned on when needed // as this best matches the scenario where the user moves from location A to location B. //Turn off AP1 5 GHz (never used) SetRadioState(0, false, true); //Turn off AP2 (both 2.4 and 5, will be used later) SetRadioState(1, false, false); SetRadioState(1, false, true); LogMajor("Associate with manual profile to " + ap1_ssid + " - Turn AP off - Associate with manual profile to " + ap2_ssid); // Create a 2.4 GHz profile for first router. Log("Creating a manual profile for SSID " + ap1_ssid); Profile = CreateProfile(0, ConnectionMode.Manual, false); LogMajor("Connecting to " + ap1_ssid); if (!ConnectToAP(ap1_ssid)) { return; } LogMajor("Validating association bssid"); if (!ValidateRadioAssociation(0, false)) { return; } LogMajor("Validating connection by connecting to echo services and performing echo"); if (!PerformEcho(0, false)) { return; } //Turn off AP1 2.4 GHz (not needed anymore) SetRadioState(0, false, false); m_WlanApi.DeleteProfile(m_TestInterface.Id, ap1_ssid); //AP2 next //Turn on AP2 SetRadioState(1, true, m_DeviceSupports5GHz); // Create a profile for second router. Log("Creating a manual profile for SSID " + ap2_ssid); Profile = CreateProfile(1, ConnectionMode.Manual, m_DeviceSupports5GHz); LogMajor("Connecting to " + ap2_ssid); if (!ConnectToAP(ap2_ssid)) { return; } LogMajor("Validating association bssid"); if (!ValidateRadioAssociation(1, m_DeviceSupports5GHz)) { return; } LogMajor("Validating connection by connecting to echo services and performing echo"); if (!PerformEcho(1, m_DeviceSupports5GHz)) { return; } m_WlanApi.DeleteProfile(m_TestInterface.Id, ap2_ssid); Helpers.LogVariationStop(variationName); }
private void AssociateDifferentAP(int firstRouterIndex, int secondRouterIndex, bool b5GhzFirstRouter, bool b5GhzSecondRouter, bool bHibernate) { Log("Deleting all wlan profiles"); DeleteProfiles(); Log("Starting Echo Services"); CreateEchoServer(); //Radios of all APs are turned on by the SetupRoutersIfNeeded(); Log("Setting up Routers"); SetupRoutersIfNeeded(); string Profile; APConfig ap1Config = m_APConfigs[firstRouterIndex]; APConfig ap2Config = m_APConfigs[secondRouterIndex]; string ap1_ssid = (b5GhzFirstRouter) ? ap1Config.SSID_5GHZ : ap1Config.SSID_24GHZ; string ap2_ssid = (b5GhzSecondRouter) ? ap2Config.SSID_5GHZ : ap2Config.SSID_24GHZ; string ap2_bssid = (b5GhzSecondRouter) ? ap2Config.BSSID_5GHZ : ap2Config.BSSID_24GHZ; //Turn off all APs SetRadioState(0, false, false); SetRadioState(0, false, true); SetRadioState(1, false, false); SetRadioState(1, false, true); //Turn on AP used for this run SetRadioState(firstRouterIndex, true, b5GhzFirstRouter); LogMajor("Associate with manual profile to " + ap1_ssid + " - Enter lower powerstate turn off first AP and turn on second AP - Wake - Connect with manual profile to " + ap2_ssid); Log("Creating a manual profile for SSID " + ap1_ssid); Profile = CreateProfile(firstRouterIndex, ConnectionMode.Manual, b5GhzFirstRouter); LogMajor("Connecting to " + ap1_ssid); if (!ConnectToAP(ap1_ssid)) { return; } LogMajor("Validating association bssid"); if (!ValidateRadioAssociation(firstRouterIndex, b5GhzFirstRouter)) { return; } LogMajor("Validating connection by connecting to echo services and performing echo"); if (!PerformEcho(firstRouterIndex, b5GhzFirstRouter)) { return; } int delayInSeconds = 30; int ScenarioToRun = 1; //switch LogMajor("Putting machine into lower power state for 2 minutes. " + ap1_ssid + " will turn off and " + ap2_ssid + "will turn on"); m_ApConfigClient.StartApScenarioAssoc(m_Routers[secondRouterIndex], m_Routers[firstRouterIndex], ScenarioToRun, delayInSeconds, b5GhzSecondRouter, b5GhzFirstRouter); m_ApConfigClient.Disconnect(); //must disconnect from ap controller before going to sleep if (bHibernate) { LogMajor("Entering hibernate"); m_PowerManager.Sleep(120 * 1000, SleepState.S4); } else { LogMajor("Entering deepest supported sleep"); m_PowerManager.DeepestSleep(120 * 1000); } LogMajor("Sleeping for 30 seconds after wake up"); Wlan.Sleep(30 * 1000); // 30s m_ApConfigClient.Connect(); //must reconnect to ap controller after waking up //scan for new AP Helpers.IssueScanWaitForSSIDToAppearInScanList(m_WlanApi, m_TestInterface, ap2_ssid, ap2_bssid, 60, 500); //connect to next AP. Log("Creating a manual profile for SSID " + ap2_ssid); Profile = CreateProfile(secondRouterIndex, ConnectionMode.Manual, b5GhzSecondRouter); LogMajor("Connecting to " + ap2_ssid); if (!ConnectToAP(ap2_ssid)) { return; } LogMajor("Validating association bssid"); if (!ValidateRadioAssociation(secondRouterIndex, b5GhzSecondRouter)) { return; } LogMajor("Validating connection by connecting to echo services and performing echo"); if (!PerformEcho(secondRouterIndex, b5GhzSecondRouter)) { return; } m_WlanApi.DeleteAllProfiles(m_TestInterface.Id); }
private void AssociateSameAP(int routerIndex, bool b5Ghz, bool bHibernate) { Log("Deleting all wlan profiles"); DeleteProfiles(); Log("Starting Echo Services"); CreateEchoServer(); //Radios of all APs are turned on by the SetupRoutersIfNeeded(); Log("Setting up Routers"); SetupRoutersIfNeeded(); string Profile; APConfig apConfig = m_APConfigs[routerIndex]; string ap_ssid = (b5Ghz) ? apConfig.SSID_5GHZ : apConfig.SSID_24GHZ; //Turn off all APs SetRadioState(0, false, false); SetRadioState(0, false, true); SetRadioState(1, false, false); SetRadioState(1, false, true); //Turn on AP used for this run SetRadioState(routerIndex, true, b5Ghz); LogMajor("Associate with manual profile to " + ap_ssid + " - Enter lower powerstate - Wake - Verify connectivity to same AP"); Log("Creating a manual profile for SSID " + ap_ssid); Profile = CreateProfile(routerIndex, ConnectionMode.Manual, b5Ghz); LogMajor("Connecting to " + ap_ssid); if (!ConnectToAP(ap_ssid)) { return; } LogMajor("Validating association bssid"); if (!ValidateRadioAssociation(routerIndex, b5Ghz)) { return; } LogMajor("Validating connection by connecting to echo services and performing echo"); if (!PerformEcho(routerIndex, b5Ghz)) { return; } m_ApConfigClient.Disconnect(); //must disconnect from ap controller before going to sleep if (bHibernate) { LogMajor("Entering hibernate"); m_PowerManager.Sleep(120 * 1000, SleepState.S4); } else { LogMajor("Entering deepest supported sleep"); m_PowerManager.DeepestSleep(120 * 1000); } LogMajor("Sleeping for 30 seconds after wake up"); Wlan.Sleep(30 * 1000); // 30s m_ApConfigClient.Connect(); //must reconnect to ap controller after waking up if (!Helpers.IsConnected(m_WlanApi, m_TestInterface)) { LogError("After resuming system not connected to " + ap_ssid); return; } LogMajor("Validating association bssid"); if (!ValidateRadioAssociation(routerIndex, b5Ghz)) { return; } LogMajor("Validating connection by connecting to echo services and performing echo"); if (!PerformEcho(routerIndex, b5Ghz)) { return; } m_WlanApi.DeleteAllProfiles(m_TestInterface.Id); }
private void SetupAccessPoints() { Log(String.Format(CultureInfo.InvariantCulture, "ASSOCIATION_VARIATION: Setup {0}", m_AssocTestOptions.ToString())); m_APConfigs = new Collection <APConfig>(); // FIPS mode only phys if (m_AssociationConfiguration.FIPSMode) { if (m_AssociationConfiguration.TestNFIPS) { //If TestNFIPS is set then use n phy regardless of what it was before m_AP1Config24GHz.Phy = PhyType.n; m_AP1Config5GHz.Phy = PhyType.n; m_AP2Config24GHz.Phy = PhyType.n; m_AP2Config24GHz.Phy = PhyType.n; } else { //If TestNFIPS not set then need to downgrade any n phy. if (m_AP1Config24GHz.Phy == PhyType.n) { m_AP1Config24GHz.Phy = PhyType.g; } if (m_AP1Config5GHz.Phy == PhyType.n) { m_AP1Config5GHz.Phy = PhyType.a; } if (m_AP2Config24GHz.Phy == PhyType.n) { m_AP2Config24GHz.Phy = PhyType.g; } if (m_AP2Config5GHz.Phy == PhyType.n) { m_AP2Config5GHz.Phy = PhyType.a; } } } m_APConfigs.Add(WlanAccessPointHelper.CreateWirelessAccessPoint( m_AP1Config24GHz.Auth, m_AP1Config24GHz.Cipher, m_AP1Config24GHz.Phy, "1234567890", m_AP1Config5GHz.Auth, m_AP1Config5GHz.Cipher, m_AP1Config5GHz.Phy, "1234567890")); m_APConfigs[0].RadioChannel24Ghz = m_AP1Config24GHz.Channel; m_APConfigs[0].RadioChannel5Ghz = m_AP1Config5GHz.Channel; m_APConfigs.Add(WlanAccessPointHelper.CreateWirelessAccessPoint( m_AP2Config24GHz.Auth, m_AP2Config24GHz.Cipher, m_AP2Config24GHz.Phy, "1234567890", m_AP2Config5GHz.Auth, m_AP2Config5GHz.Cipher, m_AP2Config5GHz.Phy, "1234567890")); m_APConfigs[1].RadioChannel24Ghz = m_AP2Config24GHz.Channel; m_APConfigs[1].RadioChannel5Ghz = m_AP2Config5GHz.Channel; //set hidden. m_APConfigs[0].BeaconEnabled_24GHZ = !m_AP1Config24GHz.IsHidden; m_APConfigs[0].BeaconEnabled_5GHZ = !m_AP1Config5GHz.IsHidden; m_APConfigs[1].BeaconEnabled_24GHZ = !m_AP2Config24GHz.IsHidden; m_APConfigs[1].BeaconEnabled_5GHZ = !m_AP2Config5GHz.IsHidden; // We only use Enterprise on second router. Setting both m_Phase1Auth[0] = m_AP2Config24GHz.EapPhase1Type; m_Phase2Auth[0] = m_AP2Config24GHz.EapPhase2Type; m_Phase1Auth[1] = m_AP2Config24GHz.EapPhase1Type; m_Phase2Auth[1] = m_AP2Config24GHz.EapPhase2Type; m_APConfigs[0].RadiusIPAddress_24GHZ = m_AssociationConfiguration.ServiceAPChannelAddress; m_APConfigs[1].RadiusIPAddress_24GHZ = m_AssociationConfiguration.ServiceAPChannelAddress; m_APConfigs[0].RadiusIPAddress_5GHZ = m_AssociationConfiguration.ServiceAPChannelAddress; m_APConfigs[1].RadiusIPAddress_5GHZ = m_AssociationConfiguration.ServiceAPChannelAddress; m_APConfigs[0].RadiusSecretKey_24GHZ = m_EnterpriseRadiusSecret; m_APConfigs[1].RadiusSecretKey_24GHZ = m_EnterpriseRadiusSecret; m_APConfigs[0].RadiusSecretKey_5GHZ = m_EnterpriseRadiusSecret; m_APConfigs[1].RadiusSecretKey_5GHZ = m_EnterpriseRadiusSecret; Guid[] routerList = new Guid[2]; routerList[0] = m_Routers[0]; routerList[1] = m_Routers[1]; Collection <ConfiguredSSIDs> configuredSSIDs = new Collection <ConfiguredSSIDs>(); LogMajor("Configuring Router0"); LogMajor("Configuring Router1"); APConfig[] apConfigArray = new APConfig[m_APConfigs.Count]; for (int index = 0; index < m_APConfigs.Count; index++) { apConfigArray[index] = m_APConfigs[index]; } m_ApConfigClient.ApplyConfigurationParallel(routerList, apConfigArray, out configuredSSIDs); m_APConfigs[0].SSID_24GHZ = configuredSSIDs[0].TwoPoint4GhzSSID; m_APConfigs[0].SSID_5GHZ = configuredSSIDs[0].FiveghzSSID; m_APConfigs[1].SSID_24GHZ = configuredSSIDs[1].TwoPoint4GhzSSID; m_APConfigs[1].SSID_5GHZ = configuredSSIDs[1].FiveghzSSID; LogMajor("Configured Router0 SSID:" + m_APConfigs[0].SSID_24GHZ + "/" + m_APConfigs[0].SSID_5GHZ); LogMajor("Configured Router1 SSID:" + m_APConfigs[1].SSID_24GHZ + "/" + m_APConfigs[1].SSID_5GHZ); LogMajor("Taking the LAN ports down on both routers"); m_ApConfigClient.SetLanPortsState(routerList[0], true); m_ApConfigClient.SetLanPortsState(routerList[1], true); Log("Reading the BSSIDs configured on router for validation when connected"); for (int i = 0; i < 2; i++) { m_APConfigs[i].BSSID_24GHZ = m_ApConfigClient.GetAccessPointBSSID(m_Routers[i], false); LogMajor("BSSID(" + m_APConfigs[i].SSID_24GHZ + ")=" + m_APConfigs[i].BSSID_24GHZ); LogMajor("Authentication(" + m_APConfigs[i].SSID_24GHZ + ")=" + m_APConfigs[i].Authentication_24GHZ.ProfileValue); LogMajor("Encryption(" + m_APConfigs[i].SSID_24GHZ + ")=" + m_APConfigs[i].Encryption_24GHZ.ProfileValue); LogMajor("Phy(" + m_APConfigs[i].SSID_24GHZ + ")=" + m_APConfigs[i].PhyType_24GHZ.ProfileValue); LogMajor("Channel(" + m_APConfigs[i].SSID_24GHZ + ")=" + m_APConfigs[i].RadioChannel24Ghz); m_APConfigs[i].BSSID_5GHZ = m_ApConfigClient.GetAccessPointBSSID(m_Routers[i], true); LogMajor("BSSID(" + m_APConfigs[i].SSID_5GHZ + ")=" + m_APConfigs[i].BSSID_5GHZ); LogMajor("AuthenticationMethod(" + m_APConfigs[i].SSID_5GHZ + ")=" + m_APConfigs[i].Authentication_5GHZ.ProfileValue); LogMajor("Encryption(" + m_APConfigs[i].SSID_5GHZ + ")=" + m_APConfigs[i].Encryption_5GHZ.ProfileValue); LogMajor("Phy(" + m_APConfigs[i].SSID_5GHZ + ")=" + m_APConfigs[i].PhyType_5GHZ.ProfileValue); LogMajor("Channel(" + m_APConfigs[i].SSID_5GHZ + ")=" + m_APConfigs[i].RadioChannel5Ghz); } }
// Here we will switch based on the router private void SetupAccessPoints() { bool bSetupRadius = false; APConfigs = new List <APConfig>(); APConfigs.Add(WlanAccessPointHelper.CreateWirelessAccessPoint( m_AP1Config24GHz.Auth, m_AP1Config24GHz.Cipher, m_AP1Config24GHz.Phy, "TestPassphrase2", m_AP1Config5GHz.Auth, m_AP1Config5GHz.Cipher, m_AP1Config5GHz.Phy, "TestPassphrase1")); APConfigs[0].RadioChannel24Ghz = m_AP1Config24GHz.Channel; APConfigs[0].RadioChannel5Ghz = m_AP1Config5GHz.Channel; // TODO: Make this nicer if (m_AP1Config24GHz.Auth == AuthenticationMethod.WPA2Enterprise) { phase1Auth = m_AP1Config24GHz.EapPhase1Type; phase2Auth = m_AP1Config24GHz.EapPhase2Type; bSetupRadius = true; } else if (m_AP1Config5GHz.Auth == AuthenticationMethod.WPA2Enterprise) { phase1Auth = m_AP1Config5GHz.EapPhase1Type; phase2Auth = m_AP1Config5GHz.EapPhase2Type; bSetupRadius = true; } else if (m_AP2Config24GHz.Auth == AuthenticationMethod.WPA2Enterprise) { phase1Auth = m_AP2Config24GHz.EapPhase1Type; phase2Auth = m_AP2Config24GHz.EapPhase2Type; bSetupRadius = true; } else if (m_AP2Config5GHz.Auth == AuthenticationMethod.WPA2Enterprise) { phase1Auth = m_AP2Config5GHz.EapPhase1Type; phase2Auth = m_AP2Config5GHz.EapPhase2Type; bSetupRadius = true; } if (bSetupRadius) { APConfigs[0].RadiusIPAddress_24GHZ = RoamingConfiguration.ServiceAPChannelAddress; APConfigs[0].RadiusIPAddress_5GHZ = RoamingConfiguration.ServiceAPChannelAddress; APConfigs[0].RadiusSecretKey_24GHZ = EnterpriseRadiusSecret; APConfigs[0].RadiusSecretKey_5GHZ = EnterpriseRadiusSecret; } // Both APs should have same SSID APConfigs.Add(WlanAccessPointHelper.DuplicateAPForRoaming(APConfigs[0])); // Update stuff for second AP APConfigs[1].BSSID_24GHZ = WlanAccessPointHelper.GenerateBSSID(); APConfigs[1].BSSID_5GHZ = WlanAccessPointHelper.GenerateBSSID(); APConfigs[1].RadioChannel24Ghz = m_AP2Config24GHz.Channel; APConfigs[1].RadioChannel5Ghz = m_AP2Config5GHz.Channel; APConfigs[0].DHCPServerEnabled = false; APConfigs[0].LocalIPAddress = Helpers.RouterAlternateLocalIPAddress; APConfigs[0].NATEnabled = false; // Need this with Static route configured on AP controller machine APConfigs[0].SmartCompare = false; //Since the ap's NEED the same SSID this must be false APConfigs[1].DHCPServerEnabled = true; APConfigs[1].DHCPGateway = Helpers.RouterAlternateLocalIPAddress; APConfigs[1].NATEnabled = false; // Need this with Static route configured on AP controller machine APConfigs[1].SmartCompare = false; //Since the ap's NEED the same SSID this must be false Guid[] routerList = new Guid[2]; routerList[0] = routers[0]; routerList[1] = routers[1]; Collection <ConfiguredSSIDs> configuredSSIDs = new Collection <ConfiguredSSIDs>(); LogMajor("Configuring Router0"); LogMajor("Configuring Router1"); APConfig[] apConfigArray = new APConfig[APConfigs.Count]; for (int index = 0; index < APConfigs.Count; index++) { apConfigArray[index] = APConfigs[index]; } AC.ApplyConfigurationParallel(routerList, apConfigArray, out configuredSSIDs); LogMajor("Configured Router0 SSID:" + APConfigs[0].SSID_24GHZ + "/" + APConfigs[0].SSID_5GHZ); LogMajor("Configured Router1 SSID:" + APConfigs[1].SSID_24GHZ + "/" + APConfigs[1].SSID_5GHZ); LogMajor("Bringing up the Lan ports on both the routers"); AC.SetLanPortsState(routerList[0], false); AC.SetLanPortsState(routerList[1], false); LogMajor("Setting up static routes from AP server to router"); AC.SetStaticRoute(routers[1]); Log("Reading the BSSIDs configured on router for validation when connected"); for (int i = 0; i < 2; i++) { APConfigs[i].BSSID_24GHZ = AC.GetAccessPointBSSID(routers[i], false); LogMajor("BSSID(" + APConfigs[i].SSID_24GHZ + ")=" + APConfigs[i].BSSID_24GHZ); LogMajor("Authentication(" + APConfigs[i].SSID_24GHZ + ")=" + APConfigs[i].Authentication_24GHZ.ProfileValue); LogMajor("Encryption(" + APConfigs[i].SSID_24GHZ + ")=" + APConfigs[i].Encryption_24GHZ.ProfileValue); LogMajor("Phy(" + APConfigs[i].SSID_24GHZ + ")=" + APConfigs[i].PhyType_24GHZ.ProfileValue); LogMajor("Channel(" + APConfigs[i].SSID_24GHZ + ")=" + APConfigs[i].RadioChannel24Ghz); APConfigs[i].BSSID_5GHZ = AC.GetAccessPointBSSID(routers[i], true); LogMajor("BSSID(" + APConfigs[i].SSID_5GHZ + ")=" + APConfigs[i].BSSID_5GHZ); LogMajor("AuthenticationMethod(" + APConfigs[i].SSID_5GHZ + ")=" + APConfigs[i].Authentication_5GHZ.ProfileValue); LogMajor("Encryption(" + APConfigs[i].SSID_5GHZ + ")=" + APConfigs[i].Encryption_5GHZ.ProfileValue); LogMajor("Phy(" + APConfigs[i].SSID_5GHZ + ")=" + APConfigs[i].PhyType_5GHZ.ProfileValue); LogMajor("Channel(" + APConfigs[i].SSID_5GHZ + ")=" + APConfigs[i].RadioChannel5Ghz); } }