Lines Matching refs:sgid_tbl
206 struct bnxt_qplib_sgid_tbl *sgid_tbl, int index, in bnxt_qplib_get_sgid() argument
209 if (index >= sgid_tbl->max) { in bnxt_qplib_get_sgid()
212 index, sgid_tbl->max); in bnxt_qplib_get_sgid()
215 memcpy(gid, &sgid_tbl->tbl[index].gid, sizeof(*gid)); in bnxt_qplib_get_sgid()
219 int bnxt_qplib_del_sgid(struct bnxt_qplib_sgid_tbl *sgid_tbl, in bnxt_qplib_del_sgid() argument
222 struct bnxt_qplib_res *res = to_bnxt_qplib(sgid_tbl, in bnxt_qplib_del_sgid()
224 sgid_tbl); in bnxt_qplib_del_sgid()
228 if (!sgid_tbl) { in bnxt_qplib_del_sgid()
233 if (!sgid_tbl->active) { in bnxt_qplib_del_sgid()
237 for (index = 0; index < sgid_tbl->max; index++) { in bnxt_qplib_del_sgid()
238 if (!memcmp(&sgid_tbl->tbl[index].gid, gid, sizeof(*gid)) && in bnxt_qplib_del_sgid()
239 vlan_id == sgid_tbl->tbl[index].vlan_id) in bnxt_qplib_del_sgid()
242 if (index == sgid_tbl->max) { in bnxt_qplib_del_sgid()
254 if (sgid_tbl->hw_id[index] == 0xFFFF) { in bnxt_qplib_del_sgid()
259 req.gid_index = cpu_to_le16(sgid_tbl->hw_id[index]); in bnxt_qplib_del_sgid()
265 memcpy(&sgid_tbl->tbl[index].gid, &bnxt_qplib_gid_zero, in bnxt_qplib_del_sgid()
267 sgid_tbl->tbl[index].vlan_id = 0xFFFF; in bnxt_qplib_del_sgid()
268 sgid_tbl->vlan[index] = 0; in bnxt_qplib_del_sgid()
269 sgid_tbl->active--; in bnxt_qplib_del_sgid()
272 index, sgid_tbl->hw_id[index], sgid_tbl->active); in bnxt_qplib_del_sgid()
273 sgid_tbl->hw_id[index] = (u16)-1; in bnxt_qplib_del_sgid()
279 int bnxt_qplib_add_sgid(struct bnxt_qplib_sgid_tbl *sgid_tbl, in bnxt_qplib_add_sgid() argument
283 struct bnxt_qplib_res *res = to_bnxt_qplib(sgid_tbl, in bnxt_qplib_add_sgid()
285 sgid_tbl); in bnxt_qplib_add_sgid()
289 if (!sgid_tbl) { in bnxt_qplib_add_sgid()
294 if (sgid_tbl->active == sgid_tbl->max) { in bnxt_qplib_add_sgid()
298 free_idx = sgid_tbl->max; in bnxt_qplib_add_sgid()
299 for (i = 0; i < sgid_tbl->max; i++) { in bnxt_qplib_add_sgid()
300 if (!memcmp(&sgid_tbl->tbl[i], gid, sizeof(*gid)) && in bnxt_qplib_add_sgid()
301 sgid_tbl->tbl[i].vlan_id == vlan_id) { in bnxt_qplib_add_sgid()
306 } else if (!memcmp(&sgid_tbl->tbl[i], &bnxt_qplib_gid_zero, in bnxt_qplib_add_sgid()
308 free_idx == sgid_tbl->max) { in bnxt_qplib_add_sgid()
312 if (free_idx == sgid_tbl->max) { in bnxt_qplib_add_sgid()
352 sgid_tbl->hw_id[free_idx] = le32_to_cpu(resp.xid); in bnxt_qplib_add_sgid()
355 memcpy(&sgid_tbl->tbl[free_idx], gid, sizeof(*gid)); in bnxt_qplib_add_sgid()
356 sgid_tbl->tbl[free_idx].vlan_id = vlan_id; in bnxt_qplib_add_sgid()
357 sgid_tbl->active++; in bnxt_qplib_add_sgid()
359 sgid_tbl->vlan[free_idx] = 1; in bnxt_qplib_add_sgid()
363 free_idx, sgid_tbl->hw_id[free_idx], sgid_tbl->active); in bnxt_qplib_add_sgid()
370 int bnxt_qplib_update_sgid(struct bnxt_qplib_sgid_tbl *sgid_tbl, in bnxt_qplib_update_sgid() argument
374 struct bnxt_qplib_res *res = to_bnxt_qplib(sgid_tbl, in bnxt_qplib_update_sgid()
376 sgid_tbl); in bnxt_qplib_update_sgid()
429 req.sgid_index = cpu_to_le16(res->sgid_tbl.hw_id[ah->sgid_index]); in bnxt_qplib_create_ah()