| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /**
- * 尽量适配第三方SDK的lwip
- */
- #ifdef __USE_SDK_LWIP__
- #ifndef __NET_LWIP_H__
- #define __NET_LWIP_H__
- #ifndef __BSP_COMMON_H__
- #include "c_common.h"
- #endif
- enum
- {
- EV_LWIP_EVENT_START = USER_EVENT_ID_START + 0x2000000,
- EV_LWIP_SOCKET_TX,
- EV_LWIP_NETIF_INPUT,
- EV_LWIP_RUN_USER_API,
- // EV_LWIP_TCP_TIMER,
- EV_LWIP_COMMON_TIMER,
- EV_LWIP_SOCKET_RX_DONE,
- EV_LWIP_SOCKET_CREATE,
- EV_LWIP_SOCKET_CONNECT,
- EV_LWIP_SOCKET_DNS,
- EV_LWIP_SOCKET_DNS_IPV6,
- EV_LWIP_SOCKET_LISTEN,
- EV_LWIP_SOCKET_ACCPET,
- EV_LWIP_SOCKET_CLOSE,
- EV_LWIP_NETIF_LINK_STATE,
- // EV_LWIP_DHCP_TIMER,
- // EV_LWIP_FAST_TIMER,
- EV_LWIP_NETIF_SET_IP,
- EV_LWIP_NETIF_IPV6_BY_MAC,
- };
- void net_lwip_register_adapter(uint8_t adapter_index);
- void net_lwip_init(void);
- void net_lwip_set_dns_adapter(uint8_t adapter_index);
- int net_lwip_check_all_ack(int socket_id);
- void net_lwip_set_netif(uint8_t adapter_index, struct netif *netif);
- struct netif * net_lwip_get_netif(uint8_t adapter_index);
- void net_lwip_input_packets(struct netif *netif, struct pbuf *p);
- void net_lwip_ping_response(struct netif *inp, struct pbuf *p, uint8_t type);
- /*
- * 如果是需要使用静态IP,则需要先设置好IP,再设置linkup
- * 如果之前设置了静态IP,现在想用动态IP,需要先删掉静态IP,再linkup
- * 一旦linkup,如果没有使用静态IP,就会启动DHCP
- * 不能用过DHCP获取IP的网卡,必须先设置静态IP!!!!!!,比如GPRS
- */
- void net_lwip_set_link_state(uint8_t adapter_index, uint8_t updown);
- /*
- * GPRS网卡专用,user_data填adapter_index,不从network_adapter走
- */
- int net_lwip_set_static_ip(ip_addr_t *ip, ip_addr_t *submask, ip_addr_t *gateway, ip_addr_t *ipv6, void *user_data);
- void net_lwip_set_rx_fast_ack(uint8_t adapter_index, uint8_t onoff);
- //设置TCP接收窗口大小,影响接收速度,tcp_mss_num越大越快,但是同样会消耗更多ram
- void net_lwip_set_tcp_rx_cache(uint8_t adapter_index, uint16_t tcp_mss_num);
- //传递给SDK的lwip任务的消息,需要由sdk发送
- void net_lwip_sdk_send_event(uint32_t id, uint32_t param1, uint32_t param2, uint32_t param3);
- void net_lwip_do_event(OS_EVENT event);
- //是否在SDK的lwip任务内
- uint8_t net_lwip_check_in_sdk_task(void);
- #endif
- #endif
|