Hi, this is a new patch >From 66c6e2d739daf60c3d4336b6ec8fe24334ee44eb Mon Sep 17 00:00:00 2001 From: xiaofan <[email protected]> Date: Fri, 17 May 2019 01:15:11 +0800 Subject: [PATCH] interface-ip: fix find locally addressable target for p2p
In case of tunnel over PPP(such as gretap over l2tp): tunnel interface use PPP's peer address as remote address, netifd script will call proto_add_host_dependency function, then netifd will search which device can reach to the remote address. Before the patch, netifd don't consider the PPP interface can reach to the remote address, so netifd will select default route to remote address, it will lead to remote address unreachable. Signed-off-by: xiaofan <[email protected]> --- interface-ip.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/interface-ip.c b/interface-ip.c index 6900cd7..8d5587c 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -196,6 +196,9 @@ __find_ip_addr_target(struct interface_ip_settings *ip, union if_addr *a, bool v if (v6 != ((addr->flags & DEVADDR_FAMILY) == DEVADDR_INET6)) continue; + if (!v6 && addr->point_to_point && a->in.s_addr == addr->point_to_point) + return true; + /* Handle offlink addresses correctly */ unsigned int mask = addr->mask; if ((addr->flags & DEVADDR_FAMILY) == DEVADDR_INET6 && -- 2.17.1 > > Hi > > On Thu, May 16, 2019 at 5:09 PM Tan Xiaofan <[email protected]> wrote: > > > > Hi, I add some explanation to the patch > > > > From 57007eef77f266e40640a2c76aabd56fd37553f7 Mon Sep 17 00:00:00 2001 > > From: xiaofan <[email protected]> > > Date: Thu, 16 May 2019 21:12:47 +0800 > > Subject: [PATCH] interface-ip: fix find locally addressable target for p2p > > > > In case of tunnel over PPP(such as gretap over l2tp): tunnel interface > > use PPP's peer address as remote address, netifd script will call > > proto_add_host_dependency function, then netifd will search which device > > can reach to the remote address. Before the patch, netifd don't consider > > the PPP interface can reach to the remote address, so netifd will select > > default route to remote address, it will lead to remote address unreachable. > The patch fails to apply with the updated commit description; please > resend after you've created the patch via git format-patch with the > updated git commit description > > Hans > > > > Signed-off-by: xiaofan <[email protected]> > > --- > > interface-ip.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/interface-ip.c b/interface-ip.c > > index 6900cd7..8d5587c 100644 > > --- a/interface-ip.c > > +++ b/interface-ip.c > > @@ -196,6 +196,9 @@ __find_ip_addr_target(struct interface_ip_settings *ip, > > union if_addr *a, bool v > > if (v6 != ((addr->flags & DEVADDR_FAMILY) == DEVADDR_INET6)) > > continue; > > > > + if (!v6 && addr->point_to_point && a->in.s_addr == addr->point_to_point) > > + return true; > > + > > /* Handle offlink addresses correctly */ > > unsigned int mask = addr->mask; > > if ((addr->flags & DEVADDR_FAMILY) == DEVADDR_INET6 && > > -- > > 2.17.1 > > > > > > > > _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
