<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>        <title>Quantenna Communications</title>        <link rel="stylesheet" type="text/css" href="./themes/style.css" media="screen" />        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        <meta http-equiv="expires" content="0" />        <meta http-equiv="CACHE-CONTROL" content="no-cache" /></head><script language="javascript" type="text/javascript" src="./js/cookiecontrol.js"></script><script language="javascript" type="text/javascript" src="./js/menu.js"></script><script language="javascript" type="text/javascript" src="./js/webif.js"></script><script>location.href='login.php';</script><script type="text/javascript">var privilege="";function popnew(url){        newwindow=window.open(url,'name');        if (window.focus) {newwindow.focus();}}function validate(action_name){        popnew("assoc_table.php?id="+action_name);}</script><script language="javascript">var mode = "Station";function reload(){        var tmp_index= "0";        var interface_index=tmp_index.split(",");        var cmb_if = document.getElementById("cmb_interface");        if (mode == "Station")        {                window.location.href="status_wireless.php";        }        else        {                window.location.href="status_wireless.php?id="+interface_index[cmb_if.selectedIndex];        }}function populate_interface_list(){        var cmb_if = document.getElementById("cmb_interface");        var passed_id="";        cmb_if.options.length = "1";        var tmp_index= "0";        var interface_index=tmp_index.split(",");        var tmp_text=new Array();        tmp_text[0]="wifi0(00:26:86:F0:24:1A)";        tmp_text[1]="";        tmp_text[2]="";        tmp_text[3]="";        tmp_text[4]="";        tmp_text[5]="";        tmp_text[6]="";        tmp_text[7]="";        for (var i=0; i < cmb_if.options.length; i++)        {                cmb_if.options[i].text = tmp_text[i]; cmb_if.options[i].value = interface_index[i];                if (passed_id == cmb_if.options[i].value)                {                        cmb_if.options[i].selected=true;                }        }}function onload_event(){        init_menu();        if (mode == "Access point")        {                populate_interface_list();        }        else        {                set_visible('tr_if', false);                set_visible('tr_l', false);        }}</script><body class="body" onload="onload_event();">        <div class="top">                <a class="logo" href="./status_device.php">                        <img src="./images/logo.png"/>                </a>        </div><div class="container">        <div class="left">                <script type="text/javascript">                        createMenu('Station',privilege);                </script>        </div>        <div class="right">                <div class="righttop">STATUS - WIRELESS</div>                <div class="rightmain">                        <table class="tablemain">                                <tr id="tr_if">                                        <td width="40%">Wifi Interface:</td>                                        <td width="60%">                                                <select name="cmb_interface" class="combox" id="cmb_interface" onchange="reload()">                                                </select>                                        </td>                                </tr>                                <tr id="tr_l">                                        <td class="divline" colspan="2";></td>                                </tr>                                <tr>                                        <td>Device Mode:</td>                                        <td>Station (STA)</td>                                </tr>                                <tr>                                        <td>Wireless Band:</td>                                        <td>802.11ac</td>                                </tr>                                <tr>                                        <td>Bandwidth:</td>                                        <td>80 MHz</td>                                </tr>                                <tr>                                        <td>AP Mac Address (BSSID):</td>                                        <td>00:26:86:F0:22:C9</td>                                </tr>                                <tr>                                        <td>Channel:</td>                                        <td>108</td>                                </tr>                                <tr>                                        <td>                                        Association Status:                                     </td>                                        <td valign="middle">Associated                                          <input type="button" name="btn_assoc_table" id="btn_assoc_table" value="Association Table" class="button" style="width:150px; height:23px;" onclick="validate(0);"/>                                        </td>                                </tr>                                <tr id="tr_rssi" >                                        <td>RSSI:</td>                                        <td>-60</td>                                </tr>                                <tr>                                        <td>Packets Received Successfully:</td>                                        <td>11246340</td>                                </tr>                                <tr>                                        <td>Bytes Received:</td>                                        <td>1894873490</td>                                </tr>                                <tr>                                        <td>Packets Transmitted Successfully:</td>                                        <td>8093937</td>                                </tr>                                <tr>                                        <td>Bytes Transmitted:</td>                                        <td>2913851499</td>                                </tr>                                <tr>                                        <td class="divline" colspan="2";></td>                                </tr>                        </table>                        <div class="rightbottom">                                <button name="btn_refresh" id="btn_refresh" type="button" onclick="reload();"  class="button">Refresh</button>                        </div>                </div>        </div></div><div class="bottom">        <a href="help/aboutus.php">About Quantenna</a> |  <a href="help/contactus.php">Contact Us</a> | <a href="help/privacypolicy.php">Privacy Policy</a> | <a href="help/terms.php">Terms of Use</a> <br />        <div>&copy; 2013 Quantenna Communications, Inc. All Rights Reserved.</div></div></body></html>