Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вышла предварительная версия TN NET TCP/IP stack
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Страницы: 1, 2
prgjz
Да, выложил в указанном топике. В tn_net_cfg.h
#define USE_PHY_KS8721 или
#define USE_PHY_DP83848C выбрать.
spf
Ошибочка обнаружена в проверке на multicast, не работали адреса xx.xx.xx.224 - xx.xx.xx.239 (пинг проходит, а соединение не устанавливается)

Код
Index: tn_tcp_input.c
   ===================================================================
   @@ -309,7 +309,7 @@
       th   = (struct tcphdr *)(((unsigned char *)m->m_data) + iphlen);
       tlen = m->m_tlen - iphlen;         //-- TCP header + data
    
   -   if(IN_MULTICAST(ip->ip_dst.s__addr) || in_broadcast(ip->ip_dst, ni))
   +   if(IN_MULTICAST(ntohl(ip->ip_dst.s__addr)) || in_broadcast(ip->ip_dst, ni))
          goto drop;
    
       if(in4_cksum(m, IPPROTO_TCP, iphlen, tlen))
   @@ -492,7 +492,7 @@
             //--  packet with M_BCAST not set.
    
             if(m->m_flags & (M_BCAST|M_MCAST) ||
   -                                    IN_MULTICAST(ip->ip_dst.s__addr))
   +                                    IN_MULTICAST(ntohl(ip->ip_dst.s__addr)))
                goto drop;
    
           //---- Digest of the in_pcbconnect() for tcp_input()
   @@ -1205,7 +1205,7 @@
       //-- Don't bother to respond if destination was broadcast/multicast.
    
       if((tiflags & TH_RST) || m->m_flags & (M_BCAST|M_MCAST) ||
   -                                  IN_MULTICAST(ip->ip_dst.s__addr))
   +                                  IN_MULTICAST(ntohl(ip->ip_dst.s__addr)))
          goto drop;
    
       if(tiflags & TH_ACK)
yuri_t
Цитата(spf @ Feb 1 2011, 22:47) *
Ошибочка обнаружена в проверке на multicast, не работали адреса xx.xx.xx.224 - xx.xx.xx.239 (пинг проходит, а соединение не устанавливается)


Спасибо!
spf
Когда ожидается вариант со всеми доработками?

PS:
При наличии системы ведения версий было бы крайне просто актуализировать доработки.
Можно было бы вообще обойтись без архивов релизов.
megajohn
Цитата(spf @ Feb 3 2011, 08:28) *
Когда ожидается вариант со всеми доработками?


Кстати, какие замечены косяки ?
я нашел только про
tcp_respond CRC

Сам же я напоролся на следующий косяк, в функции arp_request не инициализируется MAC отправителя
нужно после bcopy((unsigned char *)etherbroadcastaddr, (unsigned char *)eh->ether_dhost, MAC_SIZE);
добавить
bcopy((unsigned char *)ni->hw_addr, (unsigned char *)eh->ether_shost, MAC_SIZE);

ну и еще мелочь:автор задал такой вид конфигурирования #define TN_DHCP 1 подразумевая что выключатся будет через #define TN_DHCP 0 то в местах применения писать не #ifdef TN_DHCP а #if TN_DHCP == 1
megajohn
Цитата(megajohn @ Jul 30 2013, 18:17) *
Сам же я напоролся на следующий косяк, в функции arp_request не инициализируется MAC отправителя


Оказывается, об этом было известно еще три года назад, и напоролся на это Bender.
Извиняюсь на непреднамеренный плагиат, то вчера весь день убил на поиск этой траблы
Я то думал, что скачивал самую последнюю версию с сайта с фиксами. А оказалось что казалось.
megajohn
Цитата(yuri_t @ Sep 22 2010, 15:33) *
Поэтому большая просьба ко всем пользователям TN NET - пишите, пожалуйста, обо всех проблемах и
найденных багах(в любой форме - через e-mail конференции, на e-mail yuri at tnkernel.com, задавая вопросы в конференции etc.) .


№1
IAR ARM 6.6 ругается на невыровненное обращение Warning[Pa039]: use of address of unaligned structure member I:\projects\_lib\protocol\ip\tn_net\in4_cksum.c 123
u.ipov.ih_src = mtod(m, struct ip *)->ip_src;
u.ipov.ih_dst = mtod(m, struct ip *)->ip_dst;

№2
в функции udp_s_recvfrom не особо нравится поведение, если пришло данных больше чем запрашивалось.
к примеру нужно только 16 байт, а пришло 128. Записать только 16 и вернуть результат 16. ( по крайней мере в NDK для TI SYS/BIOS вроде так )

№3
udp_s_sendto блокирующая отправка работает если только нет пулов памяти. А пулов больше чем передающих дескрипторов, а в очередь передачи отправка размещается с полингом. а не блокировкой.
Получается что задача которая все время отправялет UDP не дает процессорного времени всем более низкоприоритетным задачам. А лучше бы на момент отправки и реальной передачи блокировалась задача. Вроде так
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.