Added LWIP_HOOK_ETHIP6_GET_GW()

Signed-off-by: sg <goldsimon@gmx.de>
This commit is contained in:
Pradip De 2016-12-13 21:53:07 +01:00 committed by sg
parent 1c184da615
commit 86b01e4f29
3 changed files with 30 additions and 1 deletions

View File

@ -6,6 +6,9 @@ HISTORY
++ New features:
2016-12-13: Pradip De
* opt.h, ethip6.c: Added LWIP_HOOK_ETHIP6_GET_GW()
2016-12-09: Dirk Ziegelmeier
* ip6_frag.c: Implemented support for LWIP_NETIF_TX_SINGLE_PBUF

View File

@ -96,6 +96,19 @@ ethip6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
/* We have a unicast destination IP address */
/* @todo anycast? */
#ifdef LWIP_HOOK_ETHIP6_GET_GW
{
/* See if a gateway is present for the destination address in a routing table */
const ip6_addr_t *gateway = LWIP_HOOK_ETHIP6_GET_GW(netif, ip6addr);
if (gateway != NULL) {
/* Replace the destination with the gateway. The gateway is
assumed to be on-link. */
ip6addr = gateway;
}
}
#endif /* LWIP_HOOK_ETHIP6_GET_GW */
/* Get next hop record. */
i = nd6_get_next_hop_entry(ip6addr, netif);
if (i < 0) {

View File

@ -2433,7 +2433,7 @@
* - dest: the destination IPv4 address
* Returns the IPv4 address of the gateway to handle the specified destination
* IPv4 address. If NULL is returned, the netif's default gateway is used.
* The returned address MUST be reachable on the specified netif!
* The returned address MUST be directly reachable on the specified netif!
* This function is meant to implement advanced IPv4 routing together with
* LWIP_HOOK_IP4_ROUTE(). The actual routing/gateway table implementation is
* not part of lwIP but can e.g. be hidden in the netif's state argument.
@ -2469,6 +2469,19 @@
#define LWIP_HOOK_IP6_ROUTE(src, dest)
#endif
/**
* LWIP_HOOK_ETHIP6_GET_GW(netif, dest):
* - called from ethip6_output() (IPv6)
* - netif: the netif used for sending
* - dest: the destination IPv6 address
* Returns the IPv6 address of the gateway to handle the specified destination
* IPv6 address. If NULL is returned, the default nexthop is used.
* The returned address MUST be directly reachable on the specified netif!
*/
#ifdef __DOXYGEN__
#define LWIP_HOOK_ETHIP6_GET_GW(netif, dest)
#endif
/**
* LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr):
* - called from ethernet_input() if VLAN support is enabled