Hi Ales. I did a `git blame` and found that the nexthop column has
been marked deprecated for over 5 years now, so I agree with this
change.

However, if ovn-northd is not going to use the value, then I think
that at a minimum, documentation for the value should be removed from
ovn-nb.xml. I also think we should remove the column from the schema
as well. My reasoning is that if the column remains in the schema,
then people will still be able to successfully set the value, but
setting the value won't do anything. This can lead to confusing
situations for users since it won't be clear why OVN is not behaving
as they think it should. However, if the column is removed from the
schema, then attempting to set the column to a value will result in an
immediate error.

On Wed, Jan 14, 2026 at 2:29 AM Ales Musil via dev
<[email protected]> wrote:
>
> The nexthop column was deprecated for a long time. Stop using it
> completely in northd.
>
> Reported-at: https://issues.redhat.com/browse/FDP-1807
> Signed-off-by: Ales Musil <[email protected]>
> ---
>  northd/northd.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/northd/northd.c b/northd/northd.c
> index 9c3fa8735..b79ae709c 100644
> --- a/northd/northd.c
> +++ b/northd/northd.c
> @@ -14779,9 +14779,7 @@ build_route_policies(struct ovn_datapath *od, const 
> struct hmap *lr_ports,
>          }
>
>          if (!strcmp(rule->action, "reroute")) {
> -            size_t n_nexthops = rule->n_nexthops ? rule->n_nexthops : 1;
> -
> -            if (rule->output_port && n_nexthops != 1) {
> +            if (rule->output_port && rule->n_nexthops != 1) {
>                  static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 
> 1);
>                  VLOG_WARN_RL(&rl,
>                               "Logical router: %s, policy "
> @@ -14794,11 +14792,9 @@ build_route_policies(struct ovn_datapath *od, const 
> struct hmap *lr_ports,
>                  continue;
>              }
>
> -            valid_nexthops = xcalloc(n_nexthops, sizeof *valid_nexthops);
> -            for (size_t j = 0; j < n_nexthops; j++) {
> -                char *nexthop = rule->n_nexthops
> -                    ? rule->nexthops[j] : rule->nexthop;
> -
> +            valid_nexthops = xcalloc(rule->n_nexthops, sizeof 
> *valid_nexthops);
> +            for (size_t j = 0; j < rule->n_nexthops; j++) {
> +                char *nexthop = rule->nexthops[j];
>                  if (!nexthop || !nexthop[0]) {
>                      continue;
>                  }
> --
> 2.52.0
>
> _______________________________________________
> 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