+ sw_if_index = *vec_elt_at_index (bif->active_members, 0);
+
+ bond_tx_inline (vm, bif, bufs, hashes, n_left, n_members, BOND_LB_BC);
+ bond_tx_trace (vm, node, bif, bufs, frame->n_vectors, 0);
+ bond_update_sw_if_index (ptd, bif, from, bufs, &sw_if_index, n_left,
+ /* single_sw_if_index */ 1);
+ goto done;
+ }
+
+ /* if have at least one member on local numa node, only members on local numa
+ node will transmit pkts when bif->local_numa_only is enabled */
+ if (bif->n_numa_members >= 1)
+ n_members = bif->n_numa_members;
+
+ if (bif->lb == BOND_LB_L2)
+ bond_tx_inline (vm, bif, bufs, hashes, n_left, n_members, BOND_LB_L2);
+ else if (bif->lb == BOND_LB_L34)
+ bond_tx_inline (vm, bif, bufs, hashes, n_left, n_members, BOND_LB_L34);
+ else if (bif->lb == BOND_LB_L23)
+ bond_tx_inline (vm, bif, bufs, hashes, n_left, n_members, BOND_LB_L23);
+ else if (bif->lb == BOND_LB_RR)
+ bond_tx_inline (vm, bif, bufs, hashes, n_left, n_members, BOND_LB_RR);
+ else
+ ASSERT (0);
+
+ /* calculate port out of hash */
+ h = hashes;
+ if (BOND_MODULO_SHORTCUT (n_members))
+ bond_hash_to_port (h, frame->n_vectors, n_members, 1);
+ else
+ bond_hash_to_port (h, frame->n_vectors, n_members, 0);
+
+ bond_tx_trace (vm, node, bif, bufs, frame->n_vectors, h);
+
+ bond_update_sw_if_index (ptd, bif, from, bufs, hashes, frame->n_vectors,
+ /* single_sw_if_index */ 0);
+
+done:
+ for (p = 0; p < n_members; p++)
+ {
+ vlib_frame_t *f;
+ u32 *to_next;
+
+ sw_if_index = *vec_elt_at_index (bif->active_members, p);
+ if (PREDICT_TRUE (ptd->per_port_queue[p].n_buffers))