The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Бесшовная миграция (роуминг) Wi-Fi ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Бесшовная миграция (роуминг) Wi-Fi для клиентов Linux и Android" +1 +/
Сообщение от sfstudioemail (ok), 01-Мрт-18, 17:40 
>>> В  makefile оного есть стопка параметров задающие пороги
>>> и т.д.
>> Вот файл https://drive.google.com/file/d/17HoEtFkr23YGMNeB7fqPdRVJ-L7...
>> Какие имена параметров?
> Ок щас гляну по быстрому. Вы думаете я на память всё это
> помню? =)))

Хэндовер включен
DHDCFLAGS += -DDHD_LOSSLESS_ROAMING

Смотрю какой-то API организовали в новых дровах (не прошло и 7ми лет)
DHDCFLAGS += -DROAM_AP_ENV_DETECTION -DKEEP_CUSTOM_ROAM_TRIGGER
DHDCFLAGS += -DROAM_ENABLE -DROAM_CHANNEL_CACHE -DROAM_API

Нас интересуют триггеры
Поиск по KEEP_CUSTOM_ROAM_TRIGGER натыкает нас на WL_AUTO_ROAM_TRIGGER

который живёт в dhd.h

В котором мы видим все дефолты

#define WL_AUTO_ROAM_TRIGGER -75
/* hooks for custom Roaming Trigger  setting via Makefile */
#define DEFAULT_ROAM_TRIGGER_VALUE -75 /* dBm default roam trigger all band */
#define DEFAULT_ROAM_TRIGGER_SETTING    -1
#ifndef CUSTOM_ROAM_TRIGGER_SETTING
#define CUSTOM_ROAM_TRIGGER_SETTING     DEFAULT_ROAM_TRIGGER_VALUE
#endif

/* hooks for custom Roaming Romaing  setting via Makefile */
#define DEFAULT_ROAM_DELTA_VALUE  10 /* dBm default roam delta all band */
#define DEFAULT_ROAM_DELTA_SETTING      -1
#ifndef CUSTOM_ROAM_DELTA_SETTING
#define CUSTOM_ROAM_DELTA_SETTING       DEFAULT_ROAM_DELTA_VALUE
#endif

Но, замечу, они таки дейсвительно реализаовали API для кручения параметров роуминга через IOCTL.

Вопрос в том, что их дёргает, вероятнее всего в их фирменной утилитке wl появились нужные опции. Вот где её свежую дёрнуть это вопрос. Раньше оно в BCM Android SDK шло, но уже пару лет как её там не видать.

В dhd_linux.c можно видеть то, что можно конфигурить по ioctl

#if defined(ROAM_ENABLE) || defined(DISABLE_BUILTIN_ROAM)
#ifdef USE_WFA_CERT_CONF
        if (sec_get_param_wfa_cert(dhd, SET_PARAM_ROAMOFF, &roamvar) == BCME_OK) {
                DHD_ERROR(("%s: read roam_off param =%d\n", __FUNCTION__, roamvar));
        }
#endif /* USE_WFA_CERT_CONF */
        /* Disable built-in roaming to allowed ext supplicant to take care of roaming */
        bcm_mkiovar("roam_off", (char *)&roamvar, 4, iovbuf, sizeof(iovbuf));
        dhd_wl_ioctl_cmd(dhd, WLC_SET_VAR, iovbuf, sizeof(iovbuf), TRUE, 0);
#endif /* ROAM_ENABLE || DISABLE_BUILTIN_ROAM */
#if defined(ROAM_ENABLE)
        if ((ret = dhd_wl_ioctl_cmd(dhd, WLC_SET_ROAM_TRIGGER, roam_trigger,
                sizeof(roam_trigger), TRUE, 0)) < 0)
                DHD_ERROR(("%s: roam trigger set failed %d\n", __FUNCTION__, ret));
        if ((ret = dhd_wl_ioctl_cmd(dhd, WLC_SET_ROAM_SCAN_PERIOD, roam_scan_period,
                sizeof(roam_scan_period), TRUE, 0)) < 0)
                DHD_ERROR(("%s: roam scan period set failed %d\n", __FUNCTION__, ret));
        if ((dhd_wl_ioctl_cmd(dhd, WLC_SET_ROAM_DELTA, roam_delta,
                sizeof(roam_delta), TRUE, 0)) < 0)
                DHD_ERROR(("%s: roam delta set failed %d\n", __FUNCTION__, ret));
        bcm_mkiovar("fullroamperiod", (char *)&roam_fullscan_period, 4, iovbuf, sizeof(iovbuf));
        if ((ret = dhd_wl_ioctl_cmd(dhd, WLC_SET_VAR, iovbuf, sizeof(iovbuf), TRUE, 0)) < 0)
                DHD_ERROR(("%s: roam fullscan period set failed %d\n", __FUNCTION__, ret));
#ifdef ROAM_AP_ENV_DETECTION
        if (roam_trigger[0] == WL_AUTO_ROAM_TRIGGER) {
                bcm_mkiovar("roam_env_detection", (char *)&roam_env_mode,
                        4, iovbuf, sizeof(iovbuf));
                if (dhd_wl_ioctl_cmd(dhd, WLC_SET_VAR, iovbuf, sizeof(iovbuf), TRUE, 0) == BCME_OK)
                        dhd->roam_env_detection = TRUE;
                else {
                        dhd->roam_env_detection = FALSE;
                }
        }
#endif /* ROAM_AP_ENV_DETECTION */
#endif /* ROAM_ENABLE */

Т.е. в общем-то можно наколупать утилитку которая будет через ioctl это дело тюнить.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Раздел полезных советов: Бесшовная миграция (роуминг) Wi-Fi ..., auto_tips, 26-Фев-18, 12:59  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру