On 1/21/25 14:27, Eelco Chaudron wrote:
> 
> 
> On 21 Jan 2025, at 14:23, [email protected] wrote:
> 
>> The github robot didn't seem to take into consideration `base-commit`
>> and `prerequisite-patch-id` tags. However now that the prerequisite
>> series is (mostly) merge into main, perhaps just re-triggering CI could
>> be enough.
> 
> Copying Aaron as I do not think the robot supports ‘rerequisite-patch-id’, 
> and ‘base-commit’ tags.

No such tags are supported.  And even if they were, I'm not sure what
the hashes in those tags mean anyway.

> 
> 
>> Recheck-request: github-robot

This will not work, because robot does not rebase test branches.
It simply re-tests what it already had.  So, you'll need to re-post.

However, please, wait for some review before doing so.

Best regards, Ilya Maximets.

>>
>> On Tue, 2025-01-21 at 11:44 +0100, Martin Kalcok wrote:
>>> A recent commit added condition to "route_table_parse__" function
>>> that
>>> causes it to throw an error when parsing route without "nexthop
>>> information" (either RTA_OIF, RTA_GATEWAY, RTA_VIA or RTA_MULTIPATH).
>>> While
>>> this requirement is reasonable for regular routes, there are some
>>> route types
>>> that don't need nexthop. We intend to use one of these types,
>>> (RTN_BLACKHOLE)[0], in OVN for route advertising .
>>>
>>> This change does not enforce the above-mentioned condition for those
>>> special
>>> route types that don't require "nexthop information".
>>>
>>> v3:
>>>   * Fix typo in arguments for the "route_type_needs_nexthop" function
>>>
>>> v2:
>>>   * Ensure that the list of nexthops is cleared if the route does not
>>> have
>>>     them.
>>>   * The function for determining whether a route requires nexthop now
>>> takes
>>>     route_type (unsigned char) as an argument directly. Previously it
>>>     took a pointer to rtmsg struct.
>>>   * The patch is rebased on top of the in-flight patch series by
>>> Frode[1]
>>>   * Fixed typos.
>>>
>>> [0]
>>> https://mail.openvswitch.org/pipermail/ovs-dev/2025-January/419383.html
>>> [1]
>>> https://patchwork.ozlabs.org/project/openvswitch/patch/[email protected]/
>>>
>>> CC: Frode Nordahl <[email protected]>
>>> Fixes: 91fc51106cfe ("route-table: Support parsing multipath
>>> routes.")
>>> Signed-off-by: Martin Kalcok <[email protected]>
>>> ---
>>>  lib/route-table.c | 28 ++++++++++++++++++++++++++--
>>>  1 file changed, 26 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/lib/route-table.c b/lib/route-table.c
>>> index 6dfb364a4..ecc7fd7e5 100644
>>> --- a/lib/route-table.c
>>> +++ b/lib/route-table.c
>>> @@ -226,6 +226,23 @@ route_table_reset(void)
>>>      }
>>>  }
>>>  
>>> +/* Returns true if the given route requires nexthop information
>>> (output
>>> + * interface, nexthop IP, ...). Returns false for special route
>>> types
>>> + * that don't need this information. */
>>> +static bool
>>> +route_type_needs_nexthop(unsigned char rtmsg_type) {
>>> +    switch (rtmsg_type) {
>>> +        case RTN_BLACKHOLE:
>>> +        case RTN_THROW:
>>> +        case RTN_UNREACHABLE:
>>> +        case RTN_PROHIBIT:
>>> +            return false;
>>> +        default:
>>> +            return true;
>>> +    }
>>> +}
>>> +
>>> +
>>>  static int
>>>  route_table_parse__(struct ofpbuf *buf, size_t ofs,
>>>                      const struct nlmsghdr *nlmsg,
>>> @@ -450,13 +467,20 @@ route_table_parse__(struct ofpbuf *buf, size_t
>>> ofs,
>>>                  ofpbuf_uninit(&mp_buf);
>>>              }
>>>          }
>>> -        if (!attrs[RTA_OIF] && !attrs[RTA_GATEWAY]
>>> -                && !attrs[RTA_VIA] && !attrs[RTA_MULTIPATH]) {
>>> +        if (route_type_needs_nexthop(rtm->rtm_type) &&
>>> !attrs[RTA_OIF]
>>> +                && !attrs[RTA_GATEWAY] && !attrs[RTA_VIA]
>>> +                && !attrs[RTA_MULTIPATH]) {
>>>              VLOG_DBG_RL(&rl, "route message needs an RTA_OIF,
>>> RTA_GATEWAY, "
>>>                               "RTA_VIA or RTA_MULTIPATH attribute");
>>>              goto error_out;
>>>          }
>>>          /* Add any additional RTA attribute processing before
>>> RTA_MULTIPATH. */
>>> +
>>> +        /* Ensure that the change->rd->nexthops list is cleared in
>>> case that
>>> +         * the route does not need a next hop. */
>>> +        if (!route_type_needs_nexthop(rtm->rtm_type)) {
>>> +            route_data_destroy_nexthops__(&change->rd);
>>> +        }
>>>      } else {
>>>          VLOG_DBG_RL(&rl, "received unparseable rtnetlink route
>>> message");
>>>          goto error_out;
>>>
>>> base-commit: caed64d1685409d1f9b53b35621a08ad6588200c
>>> prerequisite-patch-id: 9d606dcf57f9213291028029f2a71a43f346ce1e
>>> prerequisite-patch-id: b61606e7f32fede1bd34248957f67d72040be326
>>> prerequisite-patch-id: 907ead49b46ccf4b2e81e9f49f535788e592348b
> 
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to