对于udp数据的接收位于
tcpip_init
==> lwip_init // 初始化lwip用到的所有结构,变量等[luther.gliethttp]
==> tcpip_thread // 创建网络数据处理线程,用来处理如下几个ip报头中包含的协议
==*> ip_input ==> udp_input(p, inp); // udp报文
==*> ip_input ==> tcp_input(p, inp); // tcp报文
==*> ip_input ==> icmp_input(p, inp); //icmp报文
==*> ip_input ==> igmp_input(p,inp,&(iphdr->dest)); // igmp报文
tcpip_init
==> lwip_init
==*> sys_init
/**
* Perform Sanity check of user-configurable values, and initialize all modules.
*/
void
lwip_init(void)
{
/* Sanity check user-configurable values */
lwip_sanity_check();
/* Modules initialization */
stats_init();
sys_init();
mem_init();
memp_init();
pbuf_init();
netif_init();
#if LWIP_SOCKET
lwip_socket_init();
#endif /* LWIP_SOCKET */
ip_init();
#if LWIP_ARP
etharp_init();
#endif /* LWIP_ARP */
#if LWIP_RAW
raw_init();
#endif /* LWIP_RAW */
#if LWIP_UDP
udp_init();
#endif /* LWIP_UDP */
#if LWIP_TCP
tcp_init();
#endif /* LWIP_TCP */
#if LWIP_SNMP
snmp_init();
#endif /* LWIP_SNMP */
#if LWIP_AUTOIP
autoip_init();
#endif /* LWIP_AUTOIP */
#if LWIP_IGMP
igmp_init();
#endif /* LWIP_IGMP */
#if LWIP_DNS
dns_init();
#endif /* LWIP_DNS */
}
阅读(935) | 评论(0) | 转发(0) |