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.


> Recheck-request: github-robot
>
> 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

Reply via email to