[ofa-general] [PATCH] IB/ehca: Prevent sending UD packets to QP0

Hal Rosenstock hrosenstock at xsigo.com
Thu Jan 24 13:34:48 PST 2008


On Thu, 2008-01-24 at 17:59 +0100, Joachim Fenkes wrote:
> IB spec doesn't allow packets to QP0 sent on any other VL than VL15.
> Hardware doesn't filter those packets on the send side, so we need to do
> this in the driver and firmware.
> 
> As eHCA doesn't support QP0, we can just filter out all traffic going to
> QP0, regardless of SL or VL.

Is this a hardware or software limitation ? If it is software, is there
any plan to enable QP0 support ?

-- Hal

> Signed-off-by: Joachim Fenkes <fenkes at de.ibm.com>
> ---
>  drivers/infiniband/hw/ehca/ehca_reqs.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c
> index 3aacc8c..2ce8cff 100644
> --- a/drivers/infiniband/hw/ehca/ehca_reqs.c
> +++ b/drivers/infiniband/hw/ehca/ehca_reqs.c
> @@ -209,6 +209,10 @@ static inline int ehca_write_swqe(struct ehca_qp *qp,
>  			ehca_gen_err("wr.ud.ah is NULL. qp=%p", qp);
>  			return -EINVAL;
>  		}
> +		if (unlikely(send_wr->wr.ud.remote_qpn == 0)) {
> +			ehca_gen_err("dest QP# is 0. qp=%x", qp->real_qp_num);
> +			return -EINVAL;
> +		}
>  		my_av = container_of(send_wr->wr.ud.ah, struct ehca_av, ib_ah);
>  		wqe_p->u.ud_av.ud_av = my_av->av;
>  




More information about the general mailing list