git show 2f31bff38d4dc2f36006ded6b8a7d039cb569eaa
yields:
fatal: bad object 2f31bff38d4dc2f36006ded6b8a7d039cb569eaa

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

Reply via email to