[dpdk-dev] [PATCH v11 1/5] bond: new link bonding library

Thomas Monjalon thomas.monjalon at 6wind.com
Tue Jul 1 16:16:38 CEST 2014


Hi Declan,

Do you confirm we should merge the Robert's patch in rc3?

2014-06-30 18:29, Robert Sanford:
> I see a potential problem with bond_ethdev_rx_burst( ).
> We could receive more packets than the caller asked for, and overrun the
> caller's rte_mbuf * array.
> The fix could be something like this:
> 
> --- a/lib/librte_pmd_bond/rte_eth_bond_pmd.c
> +++ b/lib/librte_pmd_bond/rte_eth_bond_pmd.c
> @@ -73,13 +73,15 @@ bond_ethdev_rx_burst(void *queue, struct rte_mbuf
> **bufs, uint16_t nb_pkts)
>         case BONDING_MODE_ROUND_ROBIN:
>         case BONDING_MODE_BROADCAST:
>         case BONDING_MODE_BALANCE:
> -               for (i = 0; i < internals->active_slave_count; i++) {
> +               for (i = 0; i < internals->active_slave_count && nb_pkts;
> i++) {
>                         /* Offset of pointer to *bufs increases as packets
> are received
>                          * from other slaves */
>                         num_rx_slave =
> rte_eth_rx_burst(internals->active_slaves[i],
>                                         bd_rx_q->queue_id, bufs +
> num_rx_total, nb_pkts);
> -                       if (num_rx_slave)
> +                       if (num_rx_slave) {
>                                 num_rx_total += num_rx_slave;
> +                               nb_pkts -= num_rx_slave;
> +                       }
>                 }
>                 break;
>         case BONDING_MODE_ACTIVE_BACKUP:



More information about the dev mailing list