On Thu, Nov 16, 2017 at 6:02 PM, Paul Oranje <p...@oranjevos.nl> wrote: > git show 2f31bff38d4dc2f36006ded6b8a7d039cb569eaa > yields: > fatal: bad object 2f31bff38d4dc2f36006ded6b8a7d039cb569eaa Are you sure you're doing git show in the netifd git repo ? The link to the netifd commit is https://git.lede-project.org/?p=project/netifd.git;a=commit;h=2f31bff38d4dc2f36006ded6b8a7d039cb569eaa
Hans > > Paul > >> Op 16 nov. 2017, om 15:42 heeft Hans Dedecker <dedec...@gmail.com> het >> volgende geschreven: >> >> Commit 2f31bff38d4dc2f36006ded6b8a7d039cb569eaa added interface routing >> table support; as a result for IPv6 the prefix route linked to the IPv6 >> address is added to the specified IPv6 interface routing table. >> In order to route traffic having as destination the IPv6 prefix a policy >> rule is required using the prefix destination as policy so the traffic is >> passed to the correct routing table. >> The IPv6 prefix address logic was not installing this policy rule effectively >> breaking routing when trying to reach a global or ULA IPv6 address in the >> lan from either the device or another wan device. >> >> Signed-off-by: Hans Dedecker <dedec...@gmail.com> >> --- >> interface-ip.c | 22 ++++++++++++++++------ >> 1 file changed, 16 insertions(+), 6 deletions(-) >> >> diff --git a/interface-ip.c b/interface-ip.c >> index 45ffc66..1490ca4 100644 >> --- a/interface-ip.c >> +++ b/interface-ip.c >> @@ -787,6 +787,10 @@ interface_set_prefix_address(struct >> device_prefix_assignment *assignment, >> if (!addr.valid_until || addr.valid_until - now > 7200) >> addr.valid_until = now + 7200; >> >> + if (iface->ip6table) >> + set_ip_source_policy(false, true, >> IPRULE_PRIORITY_ADDR_MASK, &addr.addr, >> + addr.mask < 64 ? 64 : addr.mask, >> iface->ip6table, NULL, NULL, false); >> + >> if (prefix->iface) { >> if (prefix->iface->ip6table) >> set_ip_source_policy(false, true, >> IPRULE_PRIORITY_NW, &addr.addr, >> @@ -803,13 +807,19 @@ interface_set_prefix_address(struct >> device_prefix_assignment *assignment, >> } else if (add && (iface->state == IFS_UP || iface->state == >> IFS_SETUP) && >> !system_add_address(l3_downlink, &addr)) { >> >> - if (prefix->iface && !assignment->enabled) { >> - set_ip_source_policy(true, true, >> IPRULE_PRIORITY_REJECT, &addr.addr, >> - addr.mask, 0, iface, "unreachable", >> true); >> + if (!assignment->enabled) { >> + if (iface->ip6table) >> + set_ip_source_policy(true, true, >> IPRULE_PRIORITY_ADDR_MASK, &addr.addr, >> + addr.mask < 64 ? 64 : >> addr.mask, iface->ip6table, NULL, NULL, false); >> >> - if (prefix->iface->ip6table) >> - set_ip_source_policy(true, true, >> IPRULE_PRIORITY_NW, &addr.addr, >> - addr.mask, >> prefix->iface->ip6table, iface, NULL, true); >> + if (prefix->iface) { >> + set_ip_source_policy(true, true, >> IPRULE_PRIORITY_REJECT, &addr.addr, >> + addr.mask, 0, iface, >> "unreachable", true); >> + >> + if (prefix->iface->ip6table) >> + set_ip_source_policy(true, true, >> IPRULE_PRIORITY_NW, &addr.addr, >> + addr.mask, >> prefix->iface->ip6table, iface, NULL, true); >> + } >> } >> >> route.metric = iface->metric; >> -- >> 1.9.1 >> >> >> _______________________________________________ >> Lede-dev mailing list >> Lede-dev@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/lede-dev > _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev