[openib-general] Re: Some Initial RMPP Wire Observations
Hal Rosenstock
halr at voltaire.com
Tue May 3 14:50:15 PDT 2005
On Tue, 2005-05-03 at 17:39, Sean Hefty wrote:
> I think what's necessary is for the DATA MAD to be rejected. This check
> is missing, but easily added. (I was deferring some of this until
> STOP/ABORT are implemented.)
OK.
> So... I think that the ACK code may be
> correct, but checks done earlier in the receive path should prevent this
> type of DATA MAD from reaching the ACK code.
Right. It gets dropped because it has a status:
static void process_rmpp_ack(struct ib_mad_agent_private *agent,
struct ib_mad_recv_wc *mad_recv_wc)
...
rmpp_mad = (struct ib_rmpp_mad *)mad_recv_wc->recv_buf.mad;
if (rmpp_mad->rmpp_hdr.rmpp_status)
return;
> >>>In the last segment, it appears that the pad is not cleared. This again
> >>>shouldn't matter but I didn't dig out what the spec says here.
> >>
> >>Not sure which field you're referring to here.
> >
> > I'm referring to the transferred data beyond the end of the payload
> > length in the last segment. I'm not sure there is a requirement to do
> > anything with this on the transmit side.
>
> Got ya... The contents of the MAD data is the responsibility of the
> sender. Note that ib_create_send_mad() clears the MAD memory, so if
> that call is used, the pad will be cleared.
Thanks for pointing that out. I am using ib_create_mad_send for this.
Not sure why they are not cleared. Maybe it's related to the other issue
I am having.
-- Hal
More information about the general
mailing list