From 8b2c73de4ea118a83637ace5a58737d408486b3d Mon Sep 17 00:00:00 2001 From: Sylvain Rochet Date: Sun, 13 Sep 2015 20:00:45 +0200 Subject: [PATCH] ip4: routing: check peer for point to point interfaces gw netif field for point to point interfaces is the peer IP address. Check if the destination is equals to the gw field of point to point interfaces (broadcast flag is not set) when routing an IP packet. --- src/core/ipv4/ip4.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/ipv4/ip4.c b/src/core/ipv4/ip4.c index 1fc14db5..6e4bad94 100644 --- a/src/core/ipv4/ip4.c +++ b/src/core/ipv4/ip4.c @@ -177,6 +177,11 @@ ip4_route(const ip4_addr_t *dest) /* return netif on which to forward IP packet */ return netif; } + /* gateway matches on a non broadcast interface? (i.e. peer in a point to point interface) */ + if ((netif->flags & NETIF_FLAG_BROADCAST) == 0 && ip4_addr_cmp(dest, netif_ip4_gw(netif))) { + /* return netif on which to forward IP packet */ + return netif; + } } }