Hello, When I use LIDs from the top LFT block (0xbfc0-0xbfff), I get an assertion error from the function osm_switch_get_lft_block() which is implemented in osm_switch.c.
The line is this one: CL_ASSERT(base_lid_ho + IB_SMP_DATA_SIZE <= IB_LID_UCAST_END_HO); In the topmost LFT block, the base_lid_ho has the value 49088 and the IB_SMP_DATA_SIZE is 64. Together they add up to 49152 but the assertion checks if they are less than 0xbfff (49151). Shouldn't this line be something like the following? CL_ASSERT(base_lid_ho + IB_SMP_DATA_SIZE - 1 <= IB_LID_UCAST_END_HO); or CL_ASSERT(base_lid_ho + IB_SMP_DATA_SIZE <= IB_LID_UCAST_END_HO + 1); Cheers, Vangelis
signature.asc
Description: OpenPGP digital signature