| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #ifndef LUAT_ULWIP_H
- #define LUAT_ULWIP_H
- #include "luat_base.h"
- // #include "luat_msgbus.h"
- #include "luat_timer.h"
- #include "luat_mem.h"
- #include "luat_zbuff.h"
- #include "luat_rtos.h"
- #include "lwip/opt.h"
- #include "lwip/debug.h"
- #include "lwip/stats.h"
- #include "lwip/netif.h"
- #include "lwip/etharp.h"
- #include "lwip/dhcp.h"
- #include "lwip/ethip6.h"
- #include "lwip/udp.h"
- // #include "lwip/prot/iana.h"
- #include "netif/ethernet.h"
- // #include "net_lwip.h"
- #include "net_lwip2.h"
- #include "luat_network_adapter.h"
- #include "dhcp_def.h"
- #define USERLWIP_NET_COUNT NW_ADAPTER_INDEX_LWIP_NETIF_QTY
- void net_lwip2_set_link_state(uint8_t adapter_index, uint8_t updown);
- typedef void (*ulwip_event_cb)(int32_t event, void* ctx);
- #define LUAT_ULWIP_DHCP_EVENT_GOT_IP 1
- #define LUAT_ULWIP_DHCP_EVENT_TIMEOUT 2
- typedef struct ulwip_ctx
- {
- int output_lua_ref;
- struct netif *netif;
- uint8_t flags;
- uint8_t adapter_index;
- uint8_t ip_ready;
- uint8_t ip_static;
- uint8_t dhcp_enable;
- uint8_t reverse; // 反向的
- uint16_t use_zbuff_out;
- uint16_t mtu;
- uint8_t hwaddr[ETH_HWADDR_LEN];
- dhcp_client_info_t dhcp_client;
- luat_rtos_timer_t dhcp_timer;
- ulwip_event_cb event_cb;
- }ulwip_ctx_t;
- typedef struct netif_cb_ctx {
- ulwip_ctx_t* ctx;
- struct pbuf *p;
- }netif_cb_ctx_t;
- // DHCP Client相关
- void ulwip_dhcp_client_start(ulwip_ctx_t *ctx);
- void ulwip_dhcp_client_stop(ulwip_ctx_t *ctx);
- err_t ulwip_etharp_output(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr);
- int ulwip_netif_ip_event(ulwip_ctx_t* ctx);
- #ifdef __LUATOS__
- int l_dhcp_client_cb(lua_State *L, void* ptr);
- int l_ulwip_netif_output_cb(lua_State *L, void* ptr);
- #endif
- struct netif* ulwip_find_netif(uint8_t adapter_index);
- #endif
|