<br><br>
<div><span class="gmail_quote">On 8/30/09, <b class="gmail_sendername">Sasha Khapyorsky</b> <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:sashak@voltaire.com" target="_blank">sashak@voltaire.com</a>> wrote:</span></div>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On 10:03 Wed 26 Aug     , Hal Rosenstock wrote:<br>><br>> Add support for SwitchInfo:MulticastFDBTop<br>
> Added by MgtWG errata #4505-4508 and #4640<br>><br>> If MulticastFDBTop is set to other than 0, only fetch MulticastForwardingTable<br>> blocks up through MulticastFDBTop rather than MulticastFDBCap<br>><br>
> If MulticastFDBTop is set to 0xbfff, this means no entries (per #4640)<br>><br>> Signed-off-by: Hal Rosenstock <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:hal.rosenstock@gmail.com" target="_blank">hal.rosenstock@gmail.com</a>><br>
> ---<br>> diff --git a/infiniband-diags/src/ibroute.c b/infiniband-diags/src/ibroute.c<br>> index 106c934..f3ebe56 100644<br>> --- a/infiniband-diags/src/ibroute.c<br>> +++ b/infiniband-diags/src/ibroute.c<br>
> @@ -1,5 +1,6 @@<br>>  /*<br>>   * Copyright (c) 2004-2008 Voltaire Inc.  All rights reserved.<br>> + * Copyright (c) 2009 Mellanox Technologies LTD.  All rights reserved.<br>>   *<br>>   * This software is available to you under a choice of one of two<br>
>   * licenses.  You may choose to be licensed under the terms of the GNU<br>> @@ -140,16 +141,24 @@ char *dump_multicast_tables(ib_portid_t * portid, unsigned startlid,<br>>       char *s;<br>>       uint64_t nodeguid;<br>
>       uint32_t mod;<br>> -     unsigned block, i, j, e, nports, cap, chunks, startblock, lastblock;<br>> +     unsigned block, i, j, e, nports, cap, top, chunks,<br>> +              startblock, lastblock;<br>
>       int n = 0;<br>><br>>       if ((s = check_switch(portid, &nports, &nodeguid, sw, nd)))<br>>               return s;<br>><br>>       mad_decode_field(sw, IB_SW_MCAST_FDB_CAP_F, &cap);<br>
> +     mad_decode_field(sw, IB_SW_MCAST_FDB_TOP_F, &top);<br>><br>>       if (!endlid || endlid > IB_MIN_MCAST_LID + cap - 1)<br>>               endlid = IB_MIN_MCAST_LID + cap - 1;<br>> +     if (!dump_all && top && top < endlid) {<br>
> +             if (top < IB_MIN_MCAST_LID - 1 || top == 0xffff)<br><br>I don't understand what does this "top == 0xffff" check?</blockquote>
<div> </div>
<div>MFTTop is only allowed up to 0xfffe so it's the max but I now see that gets checked later where endlid > IB_MAX_MCAST_LID.</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Shouldn't be something like<br><br>       (top > IB_MIN_MCAST_LID + cap - 1 && top != 0xbfff)<br>
<br>instead?</blockquote>
<div> </div>
<div>Yes.</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">> +                     IBWARN("illegal top mlid %x", top);<br>> +             else<br>> +                     endlid = top;<br>
> +     }<br><br>And where is the case of "no entries" (top = 0xbfff) handled (as<br>declared in change log)?</blockquote>
<div> </div>
<div> This is handled by the block loop inside of dump_multicast_tables.</div>
<div> </div>
<div>-- Hal<br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Sasha<br><br>><br>>       if (!startlid)<br>>               startlid = IB_MIN_MCAST_LID;<br>> @@ -187,7 +196,8 @@ char *dump_multicast_tables(ib_portid_t * portid, unsigned startlid,<br>
>               printf(" MLid\n");<br>>       }<br>>       if (ibverbose)<br>> -             printf("Switch multicast mlid capability is %d\n", cap);<br>> +             printf("Switch multicast mlid capability is %d top is %d\n",<br>
> +                    cap, top);<br>><br>>       chunks = ALIGN(nports + 1, 16) / 16;<br>><br>><br>_______________________________________________<br>general mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:general@lists.openfabrics.org" target="_blank">general@lists.openfabrics.org</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general" target="_blank">http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general</a><br><br>To unsubscribe, please visit <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://openib.org/mailman/listinfo/openib-general" target="_blank">http://openib.org/mailman/listinfo/openib-general</a><br>
</blockquote><br>