Changeset 31366


Ignore:
Timestamp:
Feb 13, 2017, 1:08:02 PM (3 months ago)
Author:
brainslayer
Message:

more 802.11ad related stuff

Location:
src/router
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/router/libutils/gpio.c

    r31304 r31366  
    352352}
    353353
    354 
    355354void set_gpio(int gpio, int value)
    356355{
  • src/router/libutils/mac80211info.c

    r31362 r31366  
    11121112}
    11131113
    1114 
    1115 
    11161114static struct wifi_channels ghz60channels[] = {
    1117         {.channel = 1,.freq = 58320,.max_eirp = 40, .hw_eirp = 40},
    1118         {.channel = 2,.freq = 60480,.max_eirp = 40, .hw_eirp = 40},
    1119         {.channel = 3,.freq = 62640,.max_eirp = 40, .hw_eirp = 40},
    1120         {.channel = -1,.freq = -1,.max_eirp = -1, .hw_eirp = -1},
     1115        {.channel = 1,.freq = 58320,.max_eirp = 40,.hw_eirp = 40},
     1116        {.channel = 2,.freq = 60480,.max_eirp = 40,.hw_eirp = 40},
     1117        {.channel = 3,.freq = 62640,.max_eirp = 40,.hw_eirp = 40},
     1118        {.channel = -1,.freq = -1,.max_eirp = -1,.hw_eirp = -1},
    11211119};
    11221120
  • src/router/libutils/utils.c

    r31360 r31366  
    45884588{
    45894589
    4590 #if defined(HAVE_IPQ806X) || defined(HAVE_MVEBU) || defined(HAVE_GEMTEK) || defined(HAVE_RB500) || defined(HAVE_XSCALE) || defined(HAVE_LAGUNA) || defined(HAVE_MAGICBOX) || defined(HAVE_RB600) || defined(HAVE_FONERA)|| defined(HAVE_MERAKI) || defined(HAVE_LS2) || defined(HAVE_WHRAG108) || defined(HAVE_X86) || defined(HAVE_CA8) || defined(HAVE_TW6600) || defined(HAVE_PB42) || defined(HAVE_LS5) || defined(HAVE_LSX) || defined(HAVE_DANUBE) || defined(HAVE_STORM) || defined(HAVE_ADM5120) || defined(HAVE_RT2880) || defined(HAVE_OPENRISC) | defined(HAVE_ALPINE)       
     4590#if defined(HAVE_IPQ806X) || defined(HAVE_MVEBU) || defined(HAVE_GEMTEK) || defined(HAVE_RB500) || defined(HAVE_XSCALE) || defined(HAVE_LAGUNA) || defined(HAVE_MAGICBOX) || defined(HAVE_RB600) || defined(HAVE_FONERA)|| defined(HAVE_MERAKI) || defined(HAVE_LS2) || defined(HAVE_WHRAG108) || defined(HAVE_X86) || defined(HAVE_CA8) || defined(HAVE_TW6600) || defined(HAVE_PB42) || defined(HAVE_LS5) || defined(HAVE_LSX) || defined(HAVE_DANUBE) || defined(HAVE_STORM) || defined(HAVE_ADM5120) || defined(HAVE_RT2880) || defined(HAVE_OPENRISC) | defined(HAVE_ALPINE)
    45914591        return 0;
    45924592#else
     
    68006800        case ROUTER_NETGEAR_R9000:
    68016801
    6802 
    68036802                power_gpio = 0x016;     // power led
    68046803                diag_gpio = 0x116;      // power led orange     
    68056804                diag_gpio_disabled = 0x016;     // power led orange     
    68066805                connected_gpio = 0x017; // wan led
    6807 //              usb_power = 0x010;      // usb enable
    6808 //              usb_power1 = 0x00f;
    6809 //              wlan0_gpio = 0x009;     // radio 5G
    6810 ///             wlan1_gpio = 0x008;     // radio 2G
    6811                 ses_gpio = 0x027;     // wps button led used for 2G
     6806//              usb_power = 0x010;      // usb enable
     6807//              usb_power1 = 0x00f;
     6808//              wlan0_gpio = 0x009;     // radio 5G
     6809///             wlan1_gpio = 0x008;     // radio 2G
     6810                ses_gpio = 0x027;       // wps button led used for 2G
    68126811                usb_gpio = 0x024;       //usb1
    68136812                usb_gpio1 = 0x025;      //usb2
  • src/router/libutils/wl.c

    r31364 r31366  
    5353                return 15 + ((freq - 2512) / 20);
    5454        if (freq == 58320)
    55             return 1;   
     55                return 1;
    5656        if (freq == 60480)
    57             return 2;   
     57                return 2;
    5858        if (freq == 62640)
    59             return 3;   
     59                return 3;
    6060
    6161        return (freq - 5000) / 5;
  • src/router/services/networking/madwifi_ath9k.c

    r31364 r31366  
    383383                                fprintf(fp, "require_ht=1\n");
    384384                }
    385                 if (!isath5k)
     385                if (!isath5k && !has_ad(pefix)) {
    386386                        fprintf(fp, "ieee80211n=1\n");
    387                 if (nvram_matchi(bw, 2040)) {
    388                         fprintf(fp, "dynamic_ht40=1\n");
    389                 } else {
    390                         fprintf(fp, "dynamic_ht40=0\n");
     387                        if (nvram_matchi(bw, 2040)) {
     388                                fprintf(fp, "dynamic_ht40=1\n");
     389                        } else {
     390                                fprintf(fp, "dynamic_ht40=0\n");
     391                        }
    391392                }
    392393                char *nbw = nvram_default_get(bw, "20");
     
    527528                if (freq == 0) {
    528529                        if (has_ad(prefix)) {
    529                             channel = 1;
    530                             freq = 53320;
    531                         }else{
    532                         struct mac80211_ac *acs;
    533                         fprintf(stderr, "call mac80211autochannel for interface: %s\n", prefix);
    534                         eval("ifconfig", prefix, "up");
    535                         switch (usebw) {
    536                         case 40:
    537                                 acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_FORCEHT40);
    538                                 break;
    539                         case 80:
    540                                 acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_FORCEVHT80);
    541                                 break;
    542                         case 160:
    543                         case 8080:
    544                                 acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_FORCEVHT160);
    545                                 break;
    546                         default:
    547                                 acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_ALL);
    548                         }
    549                         if (acs != NULL) {
    550                                 freq = acs->freq;
    551                                 channel = ieee80211_mhz2ieee(freq);
    552                                 fprintf(stderr, "mac80211autochannel interface: %s frequency: %d\n", prefix, freq);
    553                                 int i = 0;
    554                                 while (chan[i].freq != -1) {
    555                                         if (chan[i].freq == freq)
    556                                                 break;
    557                                         i++;
     530                                channel = 1;
     531                                freq = 53320;
     532                        } else {
     533                                struct mac80211_ac *acs;
     534                                fprintf(stderr, "call mac80211autochannel for interface: %s\n", prefix);
     535                                eval("ifconfig", prefix, "up");
     536                                switch (usebw) {
     537                                case 40:
     538                                        acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_FORCEHT40);
     539                                        break;
     540                                case 80:
     541                                        acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_FORCEVHT80);
     542                                        break;
     543                                case 160:
     544                                case 8080:
     545                                        acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_FORCEVHT160);
     546                                        break;
     547                                default:
     548                                        acs = mac80211autochannel(prefix, NULL, 2, 1, 0, AUTO_ALL);
    558549                                }
    559                                 char *nbw = nvram_default_get(bw, "20");
    560                                 if (!strcmp(nbw, "20")) {
    561                                         sprintf(ht, "HT20");
    562                                 } else if (!strcmp(nbw, "80") || !strcmp(nbw, "40") || !strcmp(nbw, "2040") || !strcmp(nbw, "160") || !strcmp(nbw, "80+80")) {
    563                                         if (chan[i].luu) {
    564                                                 sprintf(ht, "HT40-");
    565                                                 iht = -1;
    566                                         } else if (chan[i].ull) {
    567                                                 sprintf(ht, "HT40+");
    568                                                 iht = 1;
    569                                         } else {
     550                                if (acs != NULL) {
     551                                        freq = acs->freq;
     552                                        channel = ieee80211_mhz2ieee(freq);
     553                                        fprintf(stderr, "mac80211autochannel interface: %s frequency: %d\n", prefix, freq);
     554                                        int i = 0;
     555                                        while (chan[i].freq != -1) {
     556                                                if (chan[i].freq == freq)
     557                                                        break;
     558                                                i++;
     559                                        }
     560                                        char *nbw = nvram_default_get(bw, "20");
     561                                        if (!strcmp(nbw, "20")) {
    570562                                                sprintf(ht, "HT20");
     563                                        } else if (!strcmp(nbw, "80") || !strcmp(nbw, "40") || !strcmp(nbw, "2040") || !strcmp(nbw, "160") || !strcmp(nbw, "80+80")) {
     564                                                if (chan[i].luu) {
     565                                                        sprintf(ht, "HT40-");
     566                                                        iht = -1;
     567                                                } else if (chan[i].ull) {
     568                                                        sprintf(ht, "HT40+");
     569                                                        iht = 1;
     570                                                } else {
     571                                                        sprintf(ht, "HT20");
     572                                                }
     573                                        }
     574                                        free_mac80211_ac(acs);
     575                                } else {
     576                                        if (has_2ghz(prefix)) {
     577                                                channel = 6;
     578                                                freq = 2437;
     579                                        }
     580                                        if (has_5ghz(prefix)) {
     581                                                if (nvram_matchi(bw, 80)) {
     582                                                        channel = 44;
     583                                                        sprintf(ht, "HT40+");
     584                                                        iht = 1;
     585                                                        freq = 5220;
     586                                                } else {
     587                                                        channel = 40;
     588                                                        freq = 5200;
     589                                                }
    571590                                        }
    572591                                }
    573                                 free_mac80211_ac(acs);
    574                         } else {
    575                                 if (has_2ghz(prefix)) {
    576                                         channel = 6;
    577                                         freq = 2437;
    578                                 }
    579                                 if (has_5ghz(prefix)) {
    580                                         if (nvram_matchi(bw, 80)) {
    581                                                 channel = 44;
    582                                                 sprintf(ht, "HT40+");
    583                                                 iht = 1;
    584                                                 freq = 5220;
    585                                         } else {
    586                                                 channel = 40;
    587                                                 freq = 5200;
    588                                         }
    589                                 }
    590                         }
    591592                        }
    592593                } else {
     
    594595                }
    595596        }
    596         if (!isath5k) {
     597        if (!isath5k && !has_ad(prefix)) {
    597598                char shortgi[32];
    598599                sprintf(shortgi, "%s_shortgi", prefix);
     
    673674        if (chan)
    674675                free(chan);
    675         if (has_ad(prefix) && !strcmp(netmode, "ad-only")) {
    676                         fprintf(fp, "hw_mode=ad\n");
     676        if (has_ad(prefix)) {
     677                fprintf(fp, "hw_mode=ad\n");
    677678        } else if (freq < 4000) {
    678679                if (!strcmp(netmode, "b-only")) {
     
    690691        }
    691692        fprintf(fp, "channel=%d\n", channel);
    692         fprintf(fp, "frequency=%d\n", freq);
     693        if (!has_ad(prefix))
     694                fprintf(fp, "frequency=%d\n", freq);
    693695        char bcn[32];
    694696        sprintf(bcn, "%s_bcn", prefix);
     
    825827        }
    826828        sprintf(macaddr, "%02X:%02X:%02X:%02X:%02X:%02X", hwbuff[0], hwbuff[1], hwbuff[2], hwbuff[3], hwbuff[4], hwbuff[5]);
    827         fprintf(fp, "bssid=%s\n", macaddr);
     829        if (!has_ad(maininterface)) {
     830                fprintf(fp, "bssid=%s\n", macaddr);
     831        }
    828832        char vathmac[16];
    829833        sprintf(vathmac, "%s_hwaddr", ifname);
Note: See TracChangeset for help on using the changeset viewer.