реклама на сайте
подробности

 
 
> несколько eth через lwIP
inventor
сообщение Mar 22 2018, 06:54
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



на контролере миландр есть 2 eth
во freertos и lwip
по отдельности работают, на каждом сделал UDP echo сервер
но если включаю сразу 2 работает только один
задачи одинаковые, видимо проблема в инициализации netif
подскажите, где ковырять.
адреса получаю по DHCP для обоих интерфесов
но попытка послать строку для эхо на один них заканчивается неудачно:

SUCCESS: Create eth5 dhcp
SUCCESS: Create eth5 task
Looking for DHCP server for eth5 please wait...
Looking for DHCP server for eth2 please wait...

bind soket to addr 192.168.0.102 OK
eth5 IP from DHCP: 192.168.0.102
eth2 IP from DHCP: 192.168.0.103


0: 933 bytes recv from (192.168.0.105) : Привет 0
Error sendto

поставил светодиод - прием пакетов на "мертвый" интерфейс есть
а передача умирает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
inventor
сообщение Jul 24 2018, 13:29
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



в общем это сделать прямо никак нельзя.
пришлось править lwip
при посылке пакета udp есть проверка:
стек ищет подходящий по маске и адресу назначения интерфейс
и при его нахождении пакет туда направляется
я поменял

CODE

/* iterate through netifs */
for(netif = netif_list; netif != NULL; netif = netif->next) {
/* network mask matches? */
if (netif_is_up(netif)) {
/* return netif on which to forward IP packet */
if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) {
return netif;
}
}
}


на
CODE

/* iterate through netifs */
for(netif = netif_list; netif != NULL; netif = netif->next) {
/* network mask matches? */
if (netif_is_up(netif)) {
/* return netif on which to forward IP packet */
if (ip_addr_cmp(dest, &(netif->ip_gw))) {
return netif;
}
}
}

при подъеме netif в самом начале программы в качестве адреса gw забиваю ip адрес конечного соединения.
так все работает
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016