如果目的IP不是广播地址,可以调用ip4_forward()进行转发。 匹配到网卡,处理IP报文,如果IP报文被分片了,需要调用ip4_reass()重组。 收到完整的IP报文后,根据IP报文的上层协议类型字段,给到对应的协议模块。lwip支持: IP_PROTO_UDP:UDP协议。udp_input(p, inp); IP_PROTO_TCP:TCP协议。tcp_input(p, inp); ...
if (!ip4_addr_isbroadcast(ip4_current_dest_addr(), inp)) { ip4_forward(p, iphdr, inp); //转发分组 } pbuf_free(p); //释放内存 return ERR_OK; } //到这,说明数据报是给本地的 //数据包是否是一个分片?(根据MF标志和分片偏移判断) if ((IPH_OFFSET(iphdr) & PP_HTONS(IP_OFFMASK | ...
(ip4_addr_ismulticast(ip4_current_src_addr())) { pbuf_free(p);returnERR_OK; } }//没有对应的接口,分组不是给本地的,转发if(netif ==NULL) {//不是广播的数据才能转发if(!ip4_addr_isbroadcast(ip4_current_dest_addr(), inp)) { ip4_forward(p, iphdr, inp);//转发分组} pbuf_free(p);...
如果IP_FORWARD宏定义被使能,则进行转发 */ #if IP_FORWARD /* 非广播包 */ if (!ip4_addr_isbroadcast(ip4_current_dest_addr(), inp)) (8) { /* 尝试在(其他)网卡上转发IP数据包 */ ip4_forward(p, (struct ip_hdr *)p->payload, inp); } else #endif { /* 删除pbuf,返回ERR_OK */ ...
ip4_addr_isany_val(*netif_ip4_addr(netif))) { /* IP的掩码是否匹配,举个例子,有线的IP是192.168.9.8/24,那这里主要会匹配到的是192.168.9.x的IP都会走有线出去*/ if (ip4_addr_netcmp(dest, netif_ip4_addr(netif), netif_ip4_netmask(netif))) { /* return netif on which to forward IP ...
LWIP_DEBUGF(IP_DEBUG, ("ip4_forward_local: start\n"));PERF_START; LWIP_UNUSED_ARG(inp);if (!ip4_canforward(p)) { goto return_noroute; }/* RFC3927 2.7: do not forward link-local addresses */ if (ip4_addr_islinklocal(ip4_current_dest_addr())) { ...
#define IP_FORWARD 1 使能路由 2.2 增加路由功能宏定义 xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip-2.0.2/src/include/lwip/ip4.h #define LWIP_HOOK_IP4_ROUTE_SRC 2.3 修改路由相关函数 xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip202_v1_2/src/include/lwip/netif.h ...
20 IP4_ADDR(&gw, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); 21 #endif 22 /* 添加以太网设备 */ 23 netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, 24 ðernetif_init, ðernet_input); 25 26 /* 设置以太网设备为默认网卡 */ 27 netif_set_default(&gnetif); 28 29 ...
#define IP_FORWARD 1 使能路由 2.2 增加路由功能宏定义 xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip-2.0.2/src/include/lwip/ip4.h #define LWIP_HOOK_IP4_ROUTE_SRC 2.3 修改路由相关函数 xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip202_v1_2/src/include/lwip/netif.h ...
#define IP_FORWARD 1 使能路由 2.2 增加路由功能宏定义 xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip-2.0.2/src/include/lwip/ip4.h #define LWIP_HOOK_IP4_ROUTE_SRC 2.3 修改路由相关函数 xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip202_v1_2/src/include/lwip/netif.h ...