diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c index 6874f99a35..ed95818a08 100644 --- a/controller/ovn-controller.c +++ b/controller/ovn-controller.c @@ -1134,6 +1134,7 @@ ctrl_register_ovs_idl(struct ovsdb_idl *ovs_idl) ovsdb_idl_add_table(ovs_idl, &ovsrec_table_queue); ovsdb_idl_add_column(ovs_idl, &ovsrec_queue_col_other_config); ovsdb_idl_add_column(ovs_idl, &ovsrec_queue_col_external_ids); + ovsdb_idl_add_column(ovs_idl, &ovsrec_interface_col_link_state); chassis_register_ovs_idl(ovs_idl); encaps_register_ovs_idl(ovs_idl); diff --git a/controller/pinctrl.c b/controller/pinctrl.c index 6d7a6f3294..f79ac21552 100644 --- a/controller/pinctrl.c +++ b/controller/pinctrl.c @@ -6343,6 +6343,10 @@ get_localnet_vifs_l3gwports( if (!pb || pb->chassis != chassis) { continue; } + if (!iface_rec->link_state || + strcmp(iface_rec->link_state, "up")) { + continue; + } struct local_datapath *ld = get_local_datapath(local_datapaths, pb->datapath->tunnel_key);