[ofa-general][PATCH] mlx4_ib: Multi Protocol support

Liran Liss liranl at mellanox.co.il
Thu Apr 17 05:36:44 PDT 2008


> 
> I think there are two sane ways to handle non-IB ports in mlx4_ib:
> 
>  - Have mlx4_ib report the number of IB ports as phys_port_cnt and
have
>    an indirection table that maps from IB port # to physical HCA port
#
>    (to handle the case where only port 2 is IB, so you need to map IB
>    port 1 to HCA physical port 2).  This leads to some confusion with
>    the real-world labels on ports I guess, and also I guess you need
>    some SMA trickery to report the right port # to the SM.
> 
>  - Report the number of physical HCA ports as phys_port_cnt and just
>    have non-IB ports always say they're DOWN.  This makes changing
>    config on the fly easier, since a port going from DOWN to INIT is a
>    pretty normal thing.  I guess there is a little bit of hackery
>    involved in handling requests to mlx4_ib that involve non-IB ports.
> 
> However your changes seem to take a third way and I don't understand
how
> it can work.  Perhaps you can clarify?
> 
>  - R.

We intend to handle non-IB ports (Ethernet) just as IB ports, where all
IB traffic that passes through Ethernet ports is IBoE.
So basically, we will register ConnectX as a dual-ported HCA for all
configurations. Many ULPs would run transparently on IB or IBoE,
depending on the port type.
In addition, port numbers always remain true to their physical ports.

Until the IBoE implementation is completed, we temporarily disallow the
configuration in which port 1 is eth and port 2 is ib. This allows us to
register ConnectX as a single-port HCA to the ib core when port 2 is
eth, without the aforementioned (and temporary) hacks.

--Liran




More information about the general mailing list