If you see below. there is a struct data type namely _weight_set_. What I have understood going through different CRUSH maps, this _weight_set_ array should be a 2D array, am I right?
struct crush_choose_arg {
__s32 *ids; /*!< values to use instead of items */
__u32 ids_size; /*!< size of the __ids__ array */
struct crush_weight_set *weight_set; /*!< weight replacements for a given position */