Lines Matching refs:fid_index
28 u16 fid_index; member
52 .key_len = sizeof_field(struct mlxsw_sp_fid, fid_index),
53 .key_offset = offsetof(struct mlxsw_sp_fid, fid_index),
129 bool mlxsw_sp_fid_is_dummy(struct mlxsw_sp *mlxsw_sp, u16 fid_index) in mlxsw_sp_fid_is_dummy() argument
136 return fid_family->start_index == fid_index; in mlxsw_sp_fid_is_dummy()
145 u16 fid_index) in mlxsw_sp_fid_lookup_by_index() argument
149 fid = rhashtable_lookup_fast(&mlxsw_sp->fid_core->fid_ht, &fid_index, in mlxsw_sp_fid_lookup_by_index()
364 return fid->fid_index; in mlxsw_sp_fid_index()
415 static int mlxsw_sp_fid_op(struct mlxsw_sp *mlxsw_sp, u16 fid_index, in mlxsw_sp_fid_op() argument
420 mlxsw_reg_sfmr_pack(sfmr_pl, mlxsw_sp_sfmr_op(valid), fid_index, in mlxsw_sp_fid_op()
425 static int mlxsw_sp_fid_vni_op(struct mlxsw_sp *mlxsw_sp, u16 fid_index, in mlxsw_sp_fid_vni_op() argument
431 mlxsw_reg_sfmr_pack(sfmr_pl, MLXSW_REG_SFMR_OP_CREATE_FID, fid_index, in mlxsw_sp_fid_vni_op()
440 static int mlxsw_sp_fid_vid_map(struct mlxsw_sp *mlxsw_sp, u16 fid_index, in mlxsw_sp_fid_vid_map() argument
446 mlxsw_reg_svfa_pack(svfa_pl, 0, mt, valid, fid_index, vid); in mlxsw_sp_fid_vid_map()
450 static int __mlxsw_sp_fid_port_vid_map(struct mlxsw_sp *mlxsw_sp, u16 fid_index, in __mlxsw_sp_fid_port_vid_map() argument
456 mlxsw_reg_svfa_pack(svfa_pl, local_port, mt, valid, fid_index, vid); in __mlxsw_sp_fid_port_vid_map()
466 err = mlxsw_sp_fid_op(mlxsw_sp, fid->fid_index, fid->fid_index, true); in mlxsw_sp_fid_8021q_configure()
471 err = mlxsw_sp_fid_vid_map(mlxsw_sp, fid->fid_index, fid_8021q->vid, in mlxsw_sp_fid_8021q_configure()
479 mlxsw_sp_fid_op(mlxsw_sp, fid->fid_index, 0, false); in mlxsw_sp_fid_8021q_configure()
489 mlxsw_sp_fid_vid_map(mlxsw_sp, fid->fid_index, fid_8021q->vid, false); in mlxsw_sp_fid_8021q_deconfigure()
490 mlxsw_sp_fid_op(mlxsw_sp, fid->fid_index, 0, false); in mlxsw_sp_fid_8021q_deconfigure()
517 return fid->fid_index; in mlxsw_sp_fid_8021q_flood_index()
533 return __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, local_port, in mlxsw_sp_fid_8021q_port_vid_map()
546 __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, local_port, vid, in mlxsw_sp_fid_8021q_port_vid_unmap()
611 return mlxsw_sp_fid_op(fid_family->mlxsw_sp, fid->fid_index, 0, true); in mlxsw_sp_fid_8021d_configure()
618 mlxsw_sp_fid_op(fid->fid_family->mlxsw_sp, fid->fid_index, 0, false); in mlxsw_sp_fid_8021d_deconfigure()
625 u16 nr_fids, fid_index; in mlxsw_sp_fid_8021d_index_alloc() local
628 fid_index = find_first_zero_bit(fid_family->fids_bitmap, nr_fids); in mlxsw_sp_fid_8021d_index_alloc()
629 if (fid_index == nr_fids) in mlxsw_sp_fid_8021d_index_alloc()
631 *p_fid_index = fid_family->start_index + fid_index; in mlxsw_sp_fid_8021d_index_alloc()
646 return fid->fid_index - VLAN_N_VID; in mlxsw_sp_fid_8021d_flood_index()
663 err = __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, in mlxsw_sp_port_vp_mode_trans()
686 __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, in mlxsw_sp_port_vp_mode_trans()
708 __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, in mlxsw_sp_port_vlan_mode_trans()
722 err = __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, in mlxsw_sp_fid_8021d_port_vid_map()
737 __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, in mlxsw_sp_fid_8021d_port_vid_map()
752 __mlxsw_sp_fid_port_vid_map(mlxsw_sp, fid->fid_index, in mlxsw_sp_fid_8021d_port_vid_unmap()
760 return mlxsw_sp_fid_vni_op(fid_family->mlxsw_sp, fid->fid_index, vni, in mlxsw_sp_fid_8021d_vni_set()
769 mlxsw_sp_fid_vni_op(fid_family->mlxsw_sp, fid->fid_index, 0, false, in mlxsw_sp_fid_8021d_vni_clear()
778 return mlxsw_sp_fid_vni_op(fid_family->mlxsw_sp, fid->fid_index, in mlxsw_sp_fid_8021d_nve_flood_index_set()
787 mlxsw_sp_fid_vni_op(fid_family->mlxsw_sp, fid->fid_index, fid->vni, in mlxsw_sp_fid_8021d_nve_flood_index_clear()
914 return fid->fid_index == rif_index + fid->fid_family->start_index; in mlxsw_sp_fid_rfid_compare()
978 return mlxsw_sp_fid_op(mlxsw_sp, fid->fid_index, 0, true); in mlxsw_sp_fid_dummy_configure()
983 mlxsw_sp_fid_op(fid->fid_family->mlxsw_sp, fid->fid_index, 0, false); in mlxsw_sp_fid_dummy_deconfigure()
1046 u16 fid_index; in mlxsw_sp_fid_get() local
1059 err = fid->fid_family->ops->index_alloc(fid, arg, &fid_index); in mlxsw_sp_fid_get()
1062 fid->fid_index = fid_index; in mlxsw_sp_fid_get()
1063 __set_bit(fid_index - fid_family->start_index, fid_family->fids_bitmap); in mlxsw_sp_fid_get()
1084 __clear_bit(fid_index - fid_family->start_index, in mlxsw_sp_fid_get()
1103 __clear_bit(fid->fid_index - fid_family->start_index, in mlxsw_sp_fid_put()