DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] How to use mlx4 as bond
@ 2019-03-26 15:36 chetan bhasin
  2019-03-26 15:36 ` chetan bhasin
  2019-03-27  0:51 ` Thomas Monjalon
  0 siblings, 2 replies; 4+ messages in thread
From: chetan bhasin @ 2019-03-26 15:36 UTC (permalink / raw)
  To: dev

Hi,



I am using DPDK 17.11.4 with a Mellanox ConnectX-3 Pro dual port card, one
of the features of this card is that both ports have the same PCI address.
i.e. there are two ports here but only one PCI reported:



# lspci | grep -i mell

0a:00.0 Ethernet controller: Mellanox Technologies MT27520 Family
[ConnectX-3 Pro]



Is there any way to configure DPDK to set up bonding with this card?
Bonding requires two unique PCI addresses, is there a way to tell DPDK
about the two interfaces other than via PCI? I am using VPP to interface
with DPDK and set up the bonding via vdev configuration. Is bonding just
not possible using the two interfaces on this device?



Thanks,

Chetan Bhasin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-dev] How to use mlx4 as bond
  2019-03-26 15:36 [dpdk-dev] How to use mlx4 as bond chetan bhasin
@ 2019-03-26 15:36 ` chetan bhasin
  2019-03-27  0:51 ` Thomas Monjalon
  1 sibling, 0 replies; 4+ messages in thread
From: chetan bhasin @ 2019-03-26 15:36 UTC (permalink / raw)
  To: dev

Hi,



I am using DPDK 17.11.4 with a Mellanox ConnectX-3 Pro dual port card, one
of the features of this card is that both ports have the same PCI address.
i.e. there are two ports here but only one PCI reported:



# lspci | grep -i mell

0a:00.0 Ethernet controller: Mellanox Technologies MT27520 Family
[ConnectX-3 Pro]



Is there any way to configure DPDK to set up bonding with this card?
Bonding requires two unique PCI addresses, is there a way to tell DPDK
about the two interfaces other than via PCI? I am using VPP to interface
with DPDK and set up the bonding via vdev configuration. Is bonding just
not possible using the two interfaces on this device?



Thanks,

Chetan Bhasin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] How to use mlx4 as bond
  2019-03-26 15:36 [dpdk-dev] How to use mlx4 as bond chetan bhasin
  2019-03-26 15:36 ` chetan bhasin
@ 2019-03-27  0:51 ` Thomas Monjalon
  2019-03-27  0:51   ` Thomas Monjalon
  1 sibling, 1 reply; 4+ messages in thread
From: Thomas Monjalon @ 2019-03-27  0:51 UTC (permalink / raw)
  To: chetan bhasin; +Cc: dev, david.marchand, Chas Williams, gaetan.rivet

Hi,

26/03/2019 16:36, chetan bhasin:
> Hi,
> 
> I am using DPDK 17.11.4 with a Mellanox ConnectX-3 Pro dual port card, one
> of the features of this card is that both ports have the same PCI address.
> i.e. there are two ports here but only one PCI reported:
> 
> # lspci | grep -i mell
> 0a:00.0 Ethernet controller: Mellanox Technologies MT27520 Family
> [ConnectX-3 Pro]
> 
> Is there any way to configure DPDK to set up bonding with this card?
> Bonding requires two unique PCI addresses, is there a way to tell DPDK
> about the two interfaces other than via PCI? I am using VPP to interface
> with DPDK and set up the bonding via vdev configuration. Is bonding just
> not possible using the two interfaces on this device?

It is a design mistake to use PCI address to select slave ports for bonding.
It prevents using multi-port devices or non-PCI devices (like vdev).

The solution is to use another format, like the new devargs syntax,
which allows to match more properties (PCI address being one property).
For ConnectX-3 Pro, it will allow to choose ports by MAC address
with this string: "class=eth,mac=00:11:22:33:44:55"

Unfortunately, this solution requires a patch in the bonding PMD
to use RTE_ETH_FOREACH_MATCHING_DEV().
Note that RTE_ETH_FOREACH_MATCHING_DEV supports the old PCI-only syntax.

Would you like to make it a try?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] How to use mlx4 as bond
  2019-03-27  0:51 ` Thomas Monjalon
@ 2019-03-27  0:51   ` Thomas Monjalon
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2019-03-27  0:51 UTC (permalink / raw)
  To: chetan bhasin; +Cc: dev, david.marchand, Chas Williams, gaetan.rivet

Hi,

26/03/2019 16:36, chetan bhasin:
> Hi,
> 
> I am using DPDK 17.11.4 with a Mellanox ConnectX-3 Pro dual port card, one
> of the features of this card is that both ports have the same PCI address.
> i.e. there are two ports here but only one PCI reported:
> 
> # lspci | grep -i mell
> 0a:00.0 Ethernet controller: Mellanox Technologies MT27520 Family
> [ConnectX-3 Pro]
> 
> Is there any way to configure DPDK to set up bonding with this card?
> Bonding requires two unique PCI addresses, is there a way to tell DPDK
> about the two interfaces other than via PCI? I am using VPP to interface
> with DPDK and set up the bonding via vdev configuration. Is bonding just
> not possible using the two interfaces on this device?

It is a design mistake to use PCI address to select slave ports for bonding.
It prevents using multi-port devices or non-PCI devices (like vdev).

The solution is to use another format, like the new devargs syntax,
which allows to match more properties (PCI address being one property).
For ConnectX-3 Pro, it will allow to choose ports by MAC address
with this string: "class=eth,mac=00:11:22:33:44:55"

Unfortunately, this solution requires a patch in the bonding PMD
to use RTE_ETH_FOREACH_MATCHING_DEV().
Note that RTE_ETH_FOREACH_MATCHING_DEV supports the old PCI-only syntax.

Would you like to make it a try?



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-03-27  0:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-26 15:36 [dpdk-dev] How to use mlx4 as bond chetan bhasin
2019-03-26 15:36 ` chetan bhasin
2019-03-27  0:51 ` Thomas Monjalon
2019-03-27  0:51   ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).