net_lwip.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * 尽量适配第三方SDK的lwip
  3. */
  4. #ifdef __USE_SDK_LWIP__
  5. #ifndef __NET_LWIP_H__
  6. #define __NET_LWIP_H__
  7. #ifndef __BSP_COMMON_H__
  8. #include "c_common.h"
  9. #endif
  10. enum
  11. {
  12. EV_LWIP_EVENT_START = USER_EVENT_ID_START + 0x2000000,
  13. EV_LWIP_SOCKET_TX,
  14. EV_LWIP_NETIF_INPUT,
  15. EV_LWIP_RUN_USER_API,
  16. // EV_LWIP_TCP_TIMER,
  17. EV_LWIP_COMMON_TIMER,
  18. EV_LWIP_SOCKET_RX_DONE,
  19. EV_LWIP_SOCKET_CREATE,
  20. EV_LWIP_SOCKET_CONNECT,
  21. EV_LWIP_SOCKET_DNS,
  22. EV_LWIP_SOCKET_DNS_IPV6,
  23. EV_LWIP_SOCKET_LISTEN,
  24. EV_LWIP_SOCKET_ACCPET,
  25. EV_LWIP_SOCKET_CLOSE,
  26. EV_LWIP_NETIF_LINK_STATE,
  27. // EV_LWIP_DHCP_TIMER,
  28. // EV_LWIP_FAST_TIMER,
  29. EV_LWIP_NETIF_SET_IP,
  30. EV_LWIP_NETIF_IPV6_BY_MAC,
  31. };
  32. void net_lwip_register_adapter(uint8_t adapter_index);
  33. void net_lwip_init(void);
  34. void net_lwip_set_dns_adapter(uint8_t adapter_index);
  35. int net_lwip_check_all_ack(int socket_id);
  36. void net_lwip_set_netif(uint8_t adapter_index, struct netif *netif);
  37. struct netif * net_lwip_get_netif(uint8_t adapter_index);
  38. void net_lwip_input_packets(struct netif *netif, struct pbuf *p);
  39. void net_lwip_ping_response(struct netif *inp, struct pbuf *p, uint8_t type);
  40. /*
  41. * 如果是需要使用静态IP,则需要先设置好IP,再设置linkup
  42. * 如果之前设置了静态IP,现在想用动态IP,需要先删掉静态IP,再linkup
  43. * 一旦linkup,如果没有使用静态IP,就会启动DHCP
  44. * 不能用过DHCP获取IP的网卡,必须先设置静态IP!!!!!!,比如GPRS
  45. */
  46. void net_lwip_set_link_state(uint8_t adapter_index, uint8_t updown);
  47. /*
  48. * GPRS网卡专用,user_data填adapter_index,不从network_adapter走
  49. */
  50. 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);
  51. void net_lwip_set_rx_fast_ack(uint8_t adapter_index, uint8_t onoff);
  52. //设置TCP接收窗口大小,影响接收速度,tcp_mss_num越大越快,但是同样会消耗更多ram
  53. void net_lwip_set_tcp_rx_cache(uint8_t adapter_index, uint16_t tcp_mss_num);
  54. //传递给SDK的lwip任务的消息,需要由sdk发送
  55. void net_lwip_sdk_send_event(uint32_t id, uint32_t param1, uint32_t param2, uint32_t param3);
  56. void net_lwip_do_event(OS_EVENT event);
  57. //是否在SDK的lwip任务内
  58. uint8_t net_lwip_check_in_sdk_task(void);
  59. #endif
  60. #endif