On Mon, Jan 13, 2025 at 9:46 PM Frode Nordahl <[email protected]> wrote:
>
> Before this change the struct route_data rtm_dst_len element was
> stored as a value that could be fed directly into ipv6_create_mask.
>
> As we prepare for external consumption of this structure this comes
> across as unexpected, as anyone interacting with this code would
> expect the element to behave like the well known kernel rtmsg UAPI.
>
> Delay conversion of IPv4 prefix length until passing this value to
> ovs_router_insert().
>
> Suggested-by: Felix Huettner <[email protected]>
> Signed-off-by: Frode Nordahl <[email protected]>
> Acked-by: Eelco Chaudron <[email protected]>
> ---

Test failure due to what appears to be GitHub infrastructure issues
(Internal server error on Git checkout).

Recheck-request: github-robot



>  lib/route-table.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/lib/route-table.c b/lib/route-table.c
> index 3539ac11f..ca56a2f82 100644
> --- a/lib/route-table.c
> +++ b/lib/route-table.c
> @@ -345,7 +345,7 @@ route_table_parse__(struct ofpbuf *buf, size_t ofs,
>          }
>
>          change->nlmsg_type     = nlmsg->nlmsg_type;
> -        change->rd.rtm_dst_len = rtm->rtm_dst_len + (ipv4 ? 96 : 0);
> +        change->rd.rtm_dst_len = rtm->rtm_dst_len;
>          change->rd.rtm_protocol = rtm->rtm_protocol;
>          change->rd.local = rtm->rtm_type == RTN_LOCAL;
>          if (attrs[RTA_OIF]) {
> @@ -516,7 +516,9 @@ route_table_handle_msg(const struct route_table_msg 
> *change,
>          rdnh = CONTAINER_OF(ovs_list_front(&change->rd.nexthops),
>                              const struct route_data_nexthop, nexthop_node);
>
> -        ovs_router_insert(rd->mark, &rd->rta_dst, rd->rtm_dst_len,
> +        ovs_router_insert(rd->mark, &rd->rta_dst,
> +                          IN6_IS_ADDR_V4MAPPED(&rd->rta_dst)
> +                          ? rd->rtm_dst_len + 96 : rd->rtm_dst_len,
>                            rd->local, rdnh->ifname, &rdnh->addr,
>                            &rd->rta_prefsrc);
>      }
> --
> 2.47.1
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to