diff options
Diffstat (limited to 'icmp.h')
-rw-r--r-- | icmp.h | 24 |
1 files changed, 18 insertions, 6 deletions
@@ -1,22 +1,34 @@ #ifndef ICMP_H #define ICMP_H +#define ICMP_TIMER_INTERVAL 1000 /* ms */ + struct ctx; -void icmp_sock_handler(struct ctx *c, int s, uint32_t events, char *pkt_buf, +void icmp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events, struct timespec *now); int icmp_tap_handler(struct ctx *c, int af, void *addr, struct tap_msg *msg, int count, struct timespec *now); -int icmp_sock_init(struct ctx *c); +void icmp_timer(struct ctx *c, struct timespec *ts); + +/** + * union icmp_epoll_ref - epoll reference portion for ICMP tracking + * @v6: Set for IPv6 sockets or connections + * @u32: Opaque u32 value of reference + */ +union icmp_epoll_ref { + struct { + uint32_t v6:1; + }; + uint32_t u32; +}; /** * struct icmp_ctx - Execution context for ICMP routines - * @fd_min: Lowest file descriptor number for ICMP/ICMPv6 ever used - * @fd_max: Highest file descriptor number for ICMP/ICMPv6 ever used + * @timer_run: Timestamp of most recent timer run */ struct icmp_ctx { - int fd_min; - int fd_max; + struct timespec timer_run; }; #endif /* ICMP_H */ |