luat_ulwip.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef LUAT_ULWIP_H
  2. #define LUAT_ULWIP_H
  3. #include "luat_base.h"
  4. #include "luat_msgbus.h"
  5. #include "luat_timer.h"
  6. #include "luat_mem.h"
  7. #include "luat_zbuff.h"
  8. #include "luat_rtos.h"
  9. #include "lwip/opt.h"
  10. #include "lwip/debug.h"
  11. #include "lwip/stats.h"
  12. #include "lwip/netif.h"
  13. #include "lwip/etharp.h"
  14. #include "lwip/dhcp.h"
  15. #include "lwip/ethip6.h"
  16. #include "lwip/udp.h"
  17. // #include "lwip/prot/iana.h"
  18. #include "netif/ethernet.h"
  19. // #include "net_lwip.h"
  20. #include "net_lwip2.h"
  21. #include "luat_network_adapter.h"
  22. #include "dhcp_def.h"
  23. #define USERLWIP_NET_COUNT NW_ADAPTER_INDEX_LWIP_NETIF_QTY
  24. void net_lwip2_set_link_state(uint8_t adapter_index, uint8_t updown);
  25. typedef struct ulwip_ctx
  26. {
  27. int output_lua_ref;
  28. struct netif *netif;
  29. uint8_t flags;
  30. uint8_t adapter_index;
  31. uint8_t ip_ready;
  32. uint8_t ip_static;
  33. uint8_t dhcp_enable;
  34. uint8_t reverse; // 反向的
  35. uint16_t use_zbuff_out;
  36. uint16_t mtu;
  37. uint8_t hwaddr[ETH_HWADDR_LEN];
  38. dhcp_client_info_t *dhcp_client;
  39. luat_rtos_timer_t dhcp_timer;
  40. struct udp_pcb *dhcp_pcb;
  41. }ulwip_ctx_t;
  42. typedef struct netif_cb_ctx {
  43. struct netif *netif;
  44. struct pbuf *p;
  45. }netif_cb_ctx_t;
  46. // DHCP Client相关
  47. void ulwip_dhcp_client_start(ulwip_ctx_t *ctx);
  48. void ulwip_dhcp_client_stop(ulwip_ctx_t *ctx);
  49. err_t ulwip_etharp_output(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr);
  50. int ulwip_netif_ip_event(int8_t adapter_index);
  51. int l_dhcp_client_cb(lua_State *L, void* ptr);
  52. #endif