[OpenWrt-Devel] [PATCH] interface-ip: fix find locally addressable target for p2p

Hans Dedecker dedeckeh at gmail.com
Fri May 17 09:27:33 PDT 2019


Hi,

On Thu, May 16, 2019 at 8:00 PM Tan Xiaofan <xfan1024 at live.com> wrote:
>
> Hi, the email replace TAB with SPACE, so apply failed.
> So, I put the patch file in my server
>
>         http://167.88.124.64/0001-interface-ip-fix-find-locally-addressable-target-for.patch
Can you share the network config which requires this patch ?

Hans
>
> >
> > Hi
> >
> > On Thu, May 16, 2019 at 5:09 PM Tan Xiaofan <xfan1024 at live.com> wrote:
> > >
> > > Hi, I add some explanation to the patch
> > >
> > > From 57007eef77f266e40640a2c76aabd56fd37553f7 Mon Sep 17 00:00:00 2001
> > > From: xiaofan <xfan1024 at live.com>
> > > 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 <xfan1024 at live.com>
> > > ---
> > >  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
> > >
> > >
> > >
> > >



More information about the openwrt-devel mailing list