On Mon, Sep 1, 2025 at 4:10 PM Lorenzo Bianconi via dev < ovs-dev@openvswitch.org> wrote:
> Old kernels do not support netlink dump filtering. Moreover, the OVS > route_table_dump_one_table() function doesn't pass the "filtered" > argument to the handle_route_msg() callback. In order to fix the > problem, always check the table_id is the expected one in > handle_route_msg callback. > > Reported-at: https://issues.redhat.com/browse/FDP-1613 > Signed-off-by: Lorenzo Bianconi <lorenzo.bianc...@redhat.com> > --- > controller/route-exchange-netlink.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/controller/route-exchange-netlink.c > b/controller/route-exchange-netlink.c > index d786e44d6..cec4b1ec3 100644 > --- a/controller/route-exchange-netlink.c > +++ b/controller/route-exchange-netlink.c > @@ -201,6 +201,7 @@ struct route_msg_handle_data { > struct hmapx *routes_to_advertise; > struct vector *learned_routes; > const struct hmap *routes; > + uint32_t table_id; /* requested table id. */ > int ret; > }; > > @@ -212,6 +213,13 @@ handle_route_msg(const struct route_table_msg *msg, > void *data) > struct advertise_route_entry *ar; > int err; > > + if (handle_data->table_id != rd->rta_table_id) { > + /* We do not have the NLM_F_DUMP_FILTERED info here, so check if > the > + * reported table_id matches the requested one. > + */ > + return; > + } > + > /* This route is not from us, so we learn it. */ > if (rd->rtm_protocol != RTPROT_OVN) { > if (!handle_data->learned_routes) { > @@ -293,6 +301,7 @@ re_nl_sync_routes(uint32_t table_id, const struct hmap > *routes, > .routes_to_advertise = &routes_to_advertise, > .learned_routes = learned_routes, > .db = db, > + .table_id = table_id, > }; > route_table_dump_one_table(table_id, handle_route_msg, &data); > ret = data.ret; > @@ -333,6 +342,7 @@ re_nl_cleanup_routes(uint32_t table_id) > struct route_msg_handle_data data = { > .routes_to_advertise = NULL, > .learned_routes = NULL, > + .table_id = table_id, > }; > route_table_dump_one_table(table_id, handle_route_msg, &data); > > -- > 2.50.1 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > Looks good to me, thanks. Acked-by: Ales Musil <amu...@redhat.com> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev