+ {
+ bif->sw_if_index_working = sif->sw_if_index;
+ bif->is_local_numa = (vm->numa_node == hw->numa_node) ? 1 : 0;
+ vlib_process_signal_event (bm->vlib_main, bond_process_node.index,
+ BOND_SEND_GARP_NA, bif->hw_if_index);
+ }
+ else if ((vec_len (bif->active_slaves) > 1)
+ && (bif->mode == BOND_MODE_ACTIVE_BACKUP)
+ && bif->is_local_numa == 0)
+ {
+ if (vm->numa_node == hw->numa_node)
+ {
+ vec_foreach_index (i, bif->active_slaves)
+ {
+ p = *vec_elt_at_index (bif->active_slaves, 0);
+ if (p == sif->sw_if_index)
+ break;
+
+ vec_del1 (bif->active_slaves, 0);
+ hash_unset (bif->active_slave_by_sw_if_index, p);
+ vec_add1 (bif->active_slaves, p);
+ hash_set (bif->active_slave_by_sw_if_index, p, p);
+ }
+ bif->sw_if_index_working = sif->sw_if_index;
+ bif->is_local_numa = 1;
+ vlib_process_signal_event (bm->vlib_main,
+ bond_process_node.index,
+ BOND_SEND_GARP_NA, bif->hw_if_index);
+
+ }
+ }