mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-19 23:12:09 +00:00
Added input & route hooks for IPv6 to stay in line with IPv4
This commit is contained in:
parent
86970a01d7
commit
71d121fab2
@ -83,6 +83,13 @@ ip6_route(const struct ip6_addr *src, const struct ip6_addr *dest)
|
|||||||
struct netif *netif;
|
struct netif *netif;
|
||||||
s8_t i;
|
s8_t i;
|
||||||
|
|
||||||
|
#ifdef LWIP_HOOK_IP6_ROUTE
|
||||||
|
netif = LWIP_HOOK_IP6_ROUTE(src, dest);
|
||||||
|
if (netif != NULL) {
|
||||||
|
return netif;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If single netif configuration, fast return. */
|
/* If single netif configuration, fast return. */
|
||||||
if ((netif_list != NULL) && (netif_list->next == NULL)) {
|
if ((netif_list != NULL) && (netif_list->next == NULL)) {
|
||||||
if (!netif_is_up(netif_list) || !netif_is_link_up(netif_list)) {
|
if (!netif_is_up(netif_list) || !netif_is_link_up(netif_list)) {
|
||||||
@ -388,6 +395,13 @@ ip6_input(struct pbuf *p, struct netif *inp)
|
|||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef LWIP_HOOK_IP6_INPUT
|
||||||
|
if (LWIP_HOOK_IP6_INPUT(p, inp)) {
|
||||||
|
/* the packet has been eaten */
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */
|
/* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */
|
||||||
if ((IP6_HLEN > p->len) || ((IP6H_PLEN(ip6hdr) + IP6_HLEN) > p->tot_len)) {
|
if ((IP6_HLEN > p->len) || ((IP6H_PLEN(ip6hdr) + IP6_HLEN) > p->tot_len)) {
|
||||||
if (IP6_HLEN > p->len) {
|
if (IP6_HLEN > p->len) {
|
||||||
|
@ -2612,6 +2612,27 @@
|
|||||||
* not part of lwIP but can e.g. be hidden in the netif's state argument.
|
* not part of lwIP but can e.g. be hidden in the netif's state argument.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LWIP_HOOK_IP6_INPUT(pbuf, input_netif):
|
||||||
|
* - called from ip6_input() (IPv6)
|
||||||
|
* - pbuf: received struct pbuf passed to ip6_input()
|
||||||
|
* - input_netif: struct netif on which the packet has been received
|
||||||
|
* Return values:
|
||||||
|
* - 0: Hook has not consumed the packet, packet is processed as normal
|
||||||
|
* - != 0: Hook has consumed the packet.
|
||||||
|
* If the hook consumed the packet, 'pbuf' is in the responsibility of the hook
|
||||||
|
* (i.e. free it when done).
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LWIP_HOOK_IP6_ROUTE(src, dest):
|
||||||
|
* - called from ip6_route() (IPv6)
|
||||||
|
* - src: sourc IPv6 address
|
||||||
|
* - dest: destination IPv6 address
|
||||||
|
* Returns the destination netif or NULL if no destination netif is found. In
|
||||||
|
* that case, ip6_route() continues as normal.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr):
|
* LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr):
|
||||||
* - called from ethernet_input() if VLAN support is enabled
|
* - called from ethernet_input() if VLAN support is enabled
|
||||||
|
Loading…
Reference in New Issue
Block a user