xref: /minix3/minix/lib/liblwip/lib/lwiphooks.h (revision 5d5fbe79c1b60734f34c69330aec5496644e8651)
1*5d5fbe79SDavid van Moolenbroek /*
2*5d5fbe79SDavid van Moolenbroek  * MINIX 3 specific hooks for lwIP.
3*5d5fbe79SDavid van Moolenbroek  */
4*5d5fbe79SDavid van Moolenbroek #ifndef LWIP_LWIPHOOKS_H
5*5d5fbe79SDavid van Moolenbroek #define LWIP_LWIPHOOKS_H
6*5d5fbe79SDavid van Moolenbroek 
7*5d5fbe79SDavid van Moolenbroek /* TCP ISN hook. */
8*5d5fbe79SDavid van Moolenbroek u32_t lwip_hook_tcp_isn(const ip_addr_t * local_ip, u16_t local_port,
9*5d5fbe79SDavid van Moolenbroek 	const ip_addr_t * remote_ip, u16_t remote_port);
10*5d5fbe79SDavid van Moolenbroek 
11*5d5fbe79SDavid van Moolenbroek #define LWIP_HOOK_TCP_ISN lwip_hook_tcp_isn
12*5d5fbe79SDavid van Moolenbroek 
13*5d5fbe79SDavid van Moolenbroek /*
14*5d5fbe79SDavid van Moolenbroek  * IPv4 route hook.  Since we override the IPv4 routing function altogether,
15*5d5fbe79SDavid van Moolenbroek  * this hook should not be called and will panic if it is called, because that
16*5d5fbe79SDavid van Moolenbroek  * is an indication that something is seriously wrong.  Note that we do not use
17*5d5fbe79SDavid van Moolenbroek  * the IPv4 source route hook, because that one would be called (needlessly).
18*5d5fbe79SDavid van Moolenbroek  */
19*5d5fbe79SDavid van Moolenbroek struct netif *lwip_hook_ip4_route(const ip4_addr_t * dst);
20*5d5fbe79SDavid van Moolenbroek 
21*5d5fbe79SDavid van Moolenbroek #define LWIP_HOOK_IP4_ROUTE lwip_hook_ip4_route
22*5d5fbe79SDavid van Moolenbroek 
23*5d5fbe79SDavid van Moolenbroek /* IPv4 gateway hook. */
24*5d5fbe79SDavid van Moolenbroek const ip4_addr_t *lwip_hook_etharp_get_gw(struct netif * netif,
25*5d5fbe79SDavid van Moolenbroek 	const ip4_addr_t * ipaddr);
26*5d5fbe79SDavid van Moolenbroek 
27*5d5fbe79SDavid van Moolenbroek #define LWIP_HOOK_ETHARP_GET_GW lwip_hook_etharp_get_gw
28*5d5fbe79SDavid van Moolenbroek 
29*5d5fbe79SDavid van Moolenbroek /*
30*5d5fbe79SDavid van Moolenbroek  * IPv6 route hook.  Since we override the IPv6 routing function altogether,
31*5d5fbe79SDavid van Moolenbroek  * this hook should not be called and will panic if it is called, because that
32*5d5fbe79SDavid van Moolenbroek  * is an indication that something is seriously wrong.
33*5d5fbe79SDavid van Moolenbroek  */
34*5d5fbe79SDavid van Moolenbroek struct netif *lwip_hook_ip6_route(const ip6_addr_t * dst,
35*5d5fbe79SDavid van Moolenbroek 	const ip6_addr_t * src);
36*5d5fbe79SDavid van Moolenbroek 
37*5d5fbe79SDavid van Moolenbroek #define LWIP_HOOK_IP6_ROUTE lwip_hook_ip6_route
38*5d5fbe79SDavid van Moolenbroek 
39*5d5fbe79SDavid van Moolenbroek /* IPv6 gateway (next-hop) hook. */
40*5d5fbe79SDavid van Moolenbroek const ip6_addr_t *lwip_hook_nd6_get_gw(struct netif * netif,
41*5d5fbe79SDavid van Moolenbroek 	const ip6_addr_t * ipaddr);
42*5d5fbe79SDavid van Moolenbroek 
43*5d5fbe79SDavid van Moolenbroek #define LWIP_HOOK_ND6_GET_GW lwip_hook_nd6_get_gw
44*5d5fbe79SDavid van Moolenbroek 
45*5d5fbe79SDavid van Moolenbroek #endif /* !LWIP_LWIPHOOKS_H */
46