The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Бесшовная миграция (роуминг) Wi-Fi для клиентов Linux и Android"
Отправлено sfstudio, 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 это дело тюнить.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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