luat_icmp.h 771 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef LUAT_ICMP_H
  2. #define LUAT_ICMP_H
  3. #include "luat_base.h"
  4. #include "luat_netdrv.h"
  5. #include "lwip/ip.h"
  6. #include "lwip/ip_addr.h"
  7. #include "lwip/icmp.h"
  8. #include "lwip/netif.h"
  9. #include "lwip/raw.h"
  10. typedef void (*luat_icmp_recv_fn)(void* ctx, uint32_t tused);
  11. typedef struct luat_icmp_ctx
  12. {
  13. uint8_t adapter_id;
  14. struct netif *netif;
  15. struct raw_pcb *pcb_v4;
  16. #if LWIP_IPV6
  17. struct raw_pcb *pcb_v6;
  18. #endif
  19. ip_addr_t dst;
  20. ip_addr_t tmpdst;
  21. size_t len;
  22. uint16_t id;
  23. uint16_t seqno;
  24. uint64_t send_time;
  25. uint64_t recv_time;
  26. luat_icmp_recv_fn cb;
  27. }luat_icmp_ctx_t;
  28. luat_icmp_ctx_t* luat_icmp_init(uint8_t adapter_id);
  29. luat_icmp_ctx_t* luat_icmp_get(uint8_t adapter_id);
  30. void luat_icmp_ping(luat_icmp_ctx_t* ctx);
  31. #endif