Перейти к содержимому
Калькуляторы

RT305* wifi routers Разработка прошивок для WiFI CPE

Thanks,

I got the idea. I will disable (not compile) hw_nat at all and see if 65000 bytes are ok.

In general what you are explaining is that hw_nat do not have enough buffer to handle big packets. Any way thank you for the info:)

Best

Update:

Actually hw_nat hooks are inside eth driver, netfilter and a couple of other places. Without hw_nat compiled (ping 65000 bytes are ok. Performance PPPOE + NAT router makes 10.3-11 MB download which makes about 80-88 Mbps download. More over browsing goes smoothly in my personal opinion. Drawbacks - high soft irq load, probably bidi traffic decreases also (not tested)

Thank you very much for heading me what can cause such behavior. As long as i do not need to safe irq resources for the moment and 80 MBPS is just perfect for me, my personal choice is to disable hw_nat, because what i care is not to max out 100 Mbs UTP (which is not possible in real world), but to have smooth browsing without delay and jitters

Изменено пользователем loshia

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Странные люди. Чем вам помешало ограничение до 30Кб на пакет? Ну не будет нормальная система получив по dhcp значение mtu/mru = 1500 использовать пакеты большего размера. Да и смысла в 100Мбит сети никакого нет в этом. Более того даже без использование dhcp любая ось в состоянии согласовать размер пакета используя pmtu discovery. В итоге это ограничение НИКАК не мешает работе.

В чём тайный смысл вырубать hw_nat если проблема ТОЛЬКО в прохождении ДИКО (даже не в разы) оверсайзнутых пакетов с установленным флагом DF? Ну да не суть. Хочется странно? Ну вперёд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Hello Sfstudio,

I know that i am bothering you too much but with Acorp_WR-150N-1T1R.1.10.12.RU.30092011.bin i found that AuthMode=WPAPSKWPA2PSK is not working anymore

Quick info - Laptop has Intel pro wireless 5100 with latest drivers updated

What is happening that laptop connects just fine.

1. After couple of power off/on events of the router i keep getting flowing every seccond

 

~ # ASSOC - Assign AID=1 to STA 00:21:5d:a7:c3:6e

ASSOC - 11n HT STA

ASSOC - Assign AID=1 to STA 00:21:5d:a7:c3:6e

ASSOC - 11n HT STA

ASSOC - Assign AID=1 to STA 00:21:5d:a7:c3:6e

ASSOC - 11n HT STA

And laptop WiFi status says Identifying - and does not gets any IP

I have WiFi debug version with detailed logs (i can send them if you want) but in short there is a problem with WPA and Intel wifi adapters

 

I keep getting (ap_wpa.c)

DBGPRINT(RT_DEBUG_TRACE, ("WPARetryExec::MSG1 timeout, pEntry->ReTryCounter = %d\n", pEntry->ReTryCounter));

 

I can assure you that it was not happening with oldest versions. More over if laptop connects without powering of the router after some time it looses wifi again.

Do you have any idea what can cause this?

10X

Best

Short Logs

####### Send L2 Frame Mac=00:21:5d:a7:c3:6e

ASSOC - Assign AID=1 to STA 00:21:5d:a7:c3:6e

ASSOC - legacy STA

ASSOC - legacy STA

 

ASSOC - MODE=0, MCS=0

AuthMode=7, WepStatus=4, WpaState=7, GroupKeyWepStatus=4

WMMCapable=1, Legacy AGGRE=0, PiggyBack=0, RDG=0, TxAMSDU=0, IdleTimeout=300

Enqueue EAPoL-Start-PSK for sta(00:21:5d:a7:c3:6e)

WpaEAPOLStartAction ===>

PortSecured(2), WpaState(7), AuthMode(7), PMKID_CacheIdx(255)

===> WPAStart4WayHS

===> ConstructEapolMsg for WPA2 Pairwise Message 1

Body length = 95

Key length = 32

APHardTransmit --> clear eap frame !!!

<=== WPAStart4WayHS: send Msg1 of 4-way

Receive EAPOL-Key frame, TYPE = 3, Length = 119

WpaEAPOLKeyAction ===>

Receive EAPoL-Key frame from STA 00-21-5D-A7-C3-6E

===> PeerPairMsg2Action

RTMPGetTxTscFromAsic : WCID(212) TxTsc 0x00-0x01-0x00-0x00-0x00-0x00

RTMPInsertRSNIE : The length is PMKID-List is invalid (0), so don't insert it.

===> ConstructEapolMsg for WPA2 Pairwise Message 3

Body length = 157

Key length = 32

APHardTransmit --> clear eap frame !!!

<=== PeerPairMsg2Action: send Msg3 of 4-way

WPARetryExec---> ReTryCounter=11, WpaState=9

WPARetryExec::MSG1 timeout, pEntry->ReTryCounter = 11

Send DEAUTH frame with ReasonCode(15) to 00:21:5d:a7:c3:6e

Изменено пользователем loshia

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день!

 

При сборке прошивки из-под fakeroot'а заметил, что некоторые бинарники, относящиеся к pppd, не стрипаются по причине странных прав доступа, прописанных в ванильный Makefile.

 

Небольшой патч прилагается. может пригодится.

commit-5eabb60.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Небольшой патч прилагается. может пригодится.

 

Спасибо, эти права в апстриме такие. В общем-то оно в любом случае пострипается после установки в romfs так что как бы не критично но на всякий закинул в ветку.

 

2 loshia

 

У меня в ноуте сейчас тоже интел и проблем не заметил, более того никто более не рапартовал ни о каких проблемах. А вообще желательно просыпаться чаще чтобы знать конкретно с какого билда появилась проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну что народ. 1.11.х ветка наконец и без всяких hw_nat/fastpath прожёвывает 100Мбит через нат с запасом по cpu. Думаю дальше оптимизировать уже особо не чего разве только туннели ещё возможно удастся чуток ускорить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В общем-то оно в любом случае пострипается после установки в romfs так что как бы не критично но на всякий закинул в ветку.

 

У меня не стрипалось. Все-таки права r-x для owner'а для случая uid!=0 действуют (я стараюсь лишний раз make под root'ом не запускать ;) ).

 

Задача: Клиенты в сети работают через PPPoE. Необходимо обеспечить возможность захода инженерами саппорта на клиентские железки при любом раскладе, главное, чтобы кабель от провайдера был включен в порт WAN и было подано питание (еще как бонусом возможность настройки железки силами того же подготовленного саппорта, а не монтажниками или выделенного побегайчика-настройщика).

 

Мое решение задачи: на порту WAN выставляются Zeroconf, в прошивку добавляется демон, анонсящий оборудование по CDPv1, где сообщаются версия прошивки (что важно если по какой-то причине надо будет накатывать обновлния), IP на порту WAN ну и мало ли еще чего по вкусу можно прописать. На стороне провайдела имеется железка, которая эти анонсы может принять и просмотреть. А уж организовать заход на адреса 169.254.0.0/16 труда никакого не составит.

 

Итог: саппорт сможет поднять соединение клиенту в самых тухлых ситуациях, вплоть до сброса настроек до дефолтных, монтажной бригаде отдается железка со склада без предварительных настроек и монтажнику не надо парится с настройками (местный специфичный опыт).

 

Результаты 2 дневных усилий прилагаю в патче. Может кому еще пригодится.

 

Замечание: если выставить DMZ, то, естественно, каменный цветок не получится.

 

2sfstudio: соррь за user/goahead/web/services/misc.asp b/user/goahead/web/services/misc.asp, я там просто сделал подмену с LLDTD на CDP. Голова в 6 утра уже не особо варила, чтобы по аналогии рисовать новые определения.

patch0.patch.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) cdp работает на l2 ? И не предоставляет ничего клиенту за роутером. Зачем его тады перезапускать в services_restart.sh ? ИМХО достаточно того что он стартует один раз при загрузке.

2) Скорее всего стоит его даже оформить не сервисом а как сделано с udhcpd и дёргать helper для него из dhcp/zeroconf скриптов

3) В морду добавлять точно не буду в таком виде, а вебер сильно занят, так что не спеша добиливайте. Сам демон и либу добавлю сегодня попозже в дерево и нарисую логику с хэелпером чтобы не тормозить инити не нужным там мусором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, он вещает в чистом l2, но у меня демон благополучно убивался, когда там прыгают физические интерфейсы. потому и закинул в рестарт. Вероятно это было и правда неудачное решение.

 

Хелпер ждем, вебморду допилим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня не стрипалось. Все-таки права r-x для owner'а для случая uid!=0 действуют (я стараюсь лишний раз make под root'ом не запускать ;) ).

Я делал проще - все компилил под юзером, и только все с /dev связанное пускал под fakeroot (поправил 4 строчки в мейкфайле).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хелпер ждем, вебморду допилим.

 

Всё сделал залил в гит, смотрите проверяйте. ИМХО так будет гораздо приличнее вашего решения.

~ # ps w | grep cdp
2959 Admin     1068 S    cdp-send -t 120 -c l3r -s "Acorp_WR-300N"-"1.11.2.RU.09102011" -n Wive-RTNL eth2.2 -d

 

Если добавите по человечески в рожу то оставлю по дефолту, нет - знач убью. Правда включать по дефолту это дело совсем не гуд.

Т.е. предварительную конфигурацию после заливки wive выполнять таки придётся.

 

Кстати китайцы запросили русский мануал к прошивке. Как бы намекая что конвеер на мази.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Патч с добавление пункта в вебморде.

 

У меня вопрос есть - работоспособность для Zeroconf проверялась где-либо? У меня почему-то не отрабатывает полностью скрипт zcip.script. Во-первых, идет ругань на строку

 

echo 1 > "/proc/sys/net/ipv4/conf/$interface/forwarding"

 

по той простой причине, что адрес интерфейсу еще не присвоен, и самого каталога в /proc не создано.

 

во-вторых, скрипт перестает исполняться после выполнения строки

 

exec ip address add dev $interface scope link local "$ip/16" broadcast + > /dev/null 2>&1

 

до всего, что идет следом дело не доходит. Заметил такое поведение потому, что на включенном на wan zeroconf'е не запускаtncz cdp-send

patch0.patch.zip

Изменено пользователем taf_321

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Sfstudio,

There is a problem with 802.1q vlan support (latest git from today) because of MAX_PACKET_SIZE - 1518 (1522 is required for vlan) defined in raether.h

raether.c

if (rx_skb->len > MAX_PACKET_SIZE) {

if (net_ratelimit())

ei_local->stat.rx_dropped++;

printk("ERROR: frame is BIG !!!\n");

bReschedule = 1;

break;

}

 

Moreover When ERROR: frame is BIG !!! appears in console it seems for me that router freezes or at least there is something wrong with error handling in that case. For me solution was to comment that part of code. i am not pretedning that commenting out is the right approach but it works for me. Just sharing that bug...

Best

Изменено пользователем loshia

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Патч с добавление пункта в вебморде.

 

Ок.

 

У меня вопрос есть - работоспособность для Zeroconf проверялась где-либо? У меня почему-то не отрабатывает полностью скрипт zcip.script. Во-первых, идет ругань на строку

 

Поправьте если не сложно. Я просто набрасал на основе sample из бизибокса, мне zeroconf как затычка и не больше нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде и то и то пофиксил пробуйте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1.11.5

1) Add check oversized packets in rx path.

2) Small fix skb_alloc in raeth.

3) Small fix packet padding in raeth.

4) Rework raeth config procedure in driver.

5) PPP fix multilink fragment MTU calculation and build fix.

6) Use faster hash funcrtion instead jhash2 for arp subsystem.

7) Fix "Fragment Reassembly Timeout" send (RFC792).

8) Kernel nvram now work and set by default.

9) Fix work some usb2serial converter and 3G modems (very low speed).

10) Fix udppath need for correct l2tp kernel mode driver.

11) Leave carrier on for empty bridge.

12) Add nat loopback support for DMZ.

13) Add UDPXYPort variable to change default udpxy port.

14) Add libnet (need for cdp).

15) Add Cisco Discovery deamon support.

16) Fix configure security mode for MBSSID.

17) Update udpxy to PATCH120.

18) Workaround for accept frames > 1514 bytes.

19) Need drop done bit and touch LAN hardware at not allock new skb. Fix realloc.

20) xl2tpd update to 1.3.1 version.

21) If kernel nvram module enabled need backup nvram only first boot and "SaveAndReboot" menu click.

22) Add DMZNATLoopback variable. Enable disable NAT loopback for DMZ host (default disabled).

23) Transmission up to 2.41 version.

24) If DDNS is select need add ddns alias to /etc/hosts with wanip.

25) Fix zcip script and zeroconf now work OK.

26) Rework iptables logic for DMZ work in VPN mode.

27) Net core, mm and fs subsystems some optimize.

28) More correct reload ppp modules for 16Mb devices (Try fix PPE issue).

29) No nedd remove ppp modules for 32Mb devices (Try fix PPE issue).

30) Vpnhelper rework pppd down procedure (Try fix PPE issue).

31) Net core dev hack for fix unregister ppp driver based to cardmap (Try fix PPE issue).

32) If vlan_double_tag=0 use hardware vlan offload. Save ~10% cpu (after change variable need restart).

33) Always use for pppoe/pptp/l2tp ifname=ppp0. Others ifaces must be start from ppp1.

34) Fix work vpn at some ISP with small dhcp lease time.

 

Терь вланы аппаратно оффлоадиться. Нужно потестить на стабильность. Если нужен поддержка double tag теперь необходимо сделать nvram_set vlan_double_tag 1 && reboot, но тогда отключиться аппаратный оффлоад вланов. По другому никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

небольшой offtopic:

 

слышал, что USB порт как-то криво сделан на 3052 чипе. RT якобы рекомендует использовать 3352 чип.

правда ли есть какие-то проблемы? на сколько проблематично адаптировать wive-ng к 3352?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

небольшой offtopic:

 

слышал, что USB порт как-то криво сделан на 3052 чипе. RT якобы рекомендует использовать 3352 чип.

правда ли есть какие-то проблемы? на сколько проблематично адаптировать wive-ng к 3352?

 

 

1) USB тут неполноценен и работает только в OTG режиме и как следствие не высокая скорость и дикая нагрузка на проц.

2) 3352 ядром поддерживается, остальное всё пилить.

3) Проблематично кому? Вам? Не знаю... Мне думаю недели хватит чтобы отловить большую часть тараканов и поправить большей частью дефайны и немного логику. Но не возьмусь, образцов нет, да и бесплатно пахать не привык (слава богу).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Sfstudio,

-----

If vlan_double_tag=0 use hardware vlan offload.

---------

сделать nvram_set vlan_double_tag 1 && reboot, но тогда отключиться аппаратный оффлоад вланов

--------

My Russian is not so good but you are saying two opposite things.

 

which of two is right?

Probably English one?

 

10X!

Изменено пользователем loshia

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

loshia, both're right. vlan_double_tag=0 for hardware vlan offload and 1 if you need working double tag (but HVO will be turned off).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

loshia, both're right. vlan_double_tag=0 for hardware vlan offload and 1 if you need working double tag (but HVO will be turned off).

Thanks yusuff!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) USB тут неполноценен и работает только в OTG режиме и как следствие не высокая скорость и дикая нагрузка на проц.

ясно. а в 3352 на сколько лучше не в курсе?

 

3) Проблематично кому? Вам? Не знаю... Мне думаю недели хватит чтобы отловить большую часть тараканов и поправить большей частью дефайны и немного логику. Но не возьмусь, образцов нет, да и бесплатно пахать не привык (слава богу).

напишите в личку сколько будет стоить интегрировать? пару образцов я предоставлю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте, имеется роутер DIR-300nru b1, прошит Wive-RTNL DIR300.1.10.5.RU.17092011 от NiTr0.

Настроил VPN-соединение PPTP. Очень доволен скоростью работы относительно последней официальной прошивки от D-Link 2.06 (36 mbps против 13 mbps).

Проблема в следующем:

Провайдер имеет локальные ресурсы, доступ к которым из-под VPN должен осуществляться с помощью прописанных маршрутов в локалку (dual access).

При добавлении этих 2-х маршрутов в п.меню "Internet settings->Routing" и последующим выполнением п.м. "Save and Reboot", после перезагрузки роутер в таблице маршрутизации отображает эти маршруты зачеркнутыми. Догадываюсь, что маршруты не используются. Пробовал как с поднятым VPN так и без оного. Тогда я беру и пишу эти 2 маршрута в п.м. "Administration->System command":

route add -net 172.16.5.0 netmask 255.255.255.0 gw 10.7.51.1 dev eth2.2

route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.7.51.1 dev eth2.2

В таком случае маршруты отрабатываются, т.е. лок. ресурсы доступны. Но при перезарузке они "слетают" и приходиться вводить их заново =(

 

PS Веб интерфейс п.меню "Internet settings->Routing" ведет себя немного странно: при попытке удалить маршрут нажатием "[X]" в правой колонке и дальнейшим нажатием кнопки "Apply" выдается сообщение что маршрут удален, но в таблице он остается (подчеркиваю что именно в п.м. "Internet settings->Routing" а не по факту) и теперь эта таблица получилась заполнена "мертвыми душами". То есть для просмотра актуальной таблицы пользуюсь командой "route -n".

PPS Добрый человек посоветовал создать расписание crontab'ом для того чтобы не вводить эти 2 маршрута заново.

PPPS Извиняюсь, за свою безграмотность. Заранее спасибо!

Изменено пользователем _sVk_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) Т.е. показывать как именно настраиваете уже не модно и все должны угадать чего вы там творите?

2) Никакие прошивки от NitR0 тут не обсуждаются даже близко. Либо мои сборки либо дуйте на форум к нитро

3) На дворе 1.11.7 и с 1.10.х воды утекло уже столько....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.