Lines Matching refs:sfi
1903 struct felix_stream_filter *sfi) in vsc9959_psfp_sfi_set() argument
1907 if (sfi->index > VSC9959_PSFP_SFID_MAX) in vsc9959_psfp_sfi_set()
1910 if (!sfi->enable) { in vsc9959_psfp_sfi_set()
1911 ocelot_write(ocelot, ANA_TABLES_SFIDTIDX_SFID_INDEX(sfi->index), in vsc9959_psfp_sfi_set()
1922 if (sfi->sgid > VSC9959_PSFP_GATE_ID_MAX || in vsc9959_psfp_sfi_set()
1923 sfi->fmid > VSC9959_PSFP_POLICER_MAX) in vsc9959_psfp_sfi_set()
1927 (sfi->sg_valid ? ANA_TABLES_SFIDTIDX_SGID_VALID : 0) | in vsc9959_psfp_sfi_set()
1928 ANA_TABLES_SFIDTIDX_SGID(sfi->sgid) | in vsc9959_psfp_sfi_set()
1929 (sfi->fm_valid ? ANA_TABLES_SFIDTIDX_POL_ENA : 0) | in vsc9959_psfp_sfi_set()
1930 ANA_TABLES_SFIDTIDX_POL_IDX(sfi->fmid) | in vsc9959_psfp_sfi_set()
1931 ANA_TABLES_SFIDTIDX_SFID_INDEX(sfi->index), in vsc9959_psfp_sfi_set()
1935 (sfi->prio_valid ? ANA_TABLES_SFIDACCESS_IGR_PRIO_MATCH_ENA : 0) | in vsc9959_psfp_sfi_set()
1936 ANA_TABLES_SFIDACCESS_IGR_PRIO(sfi->prio) | in vsc9959_psfp_sfi_set()
1937 ANA_TABLES_SFIDACCESS_MAX_SDU_LEN(sfi->maxsdu) | in vsc9959_psfp_sfi_set()
1971 struct felix_stream_filter *sfi, in vsc9959_psfp_sfi_list_add() argument
1977 sfi_entry = kmemdup(sfi, sizeof(*sfi_entry), GFP_KERNEL); in vsc9959_psfp_sfi_list_add()
1989 vsc9959_psfp_sfidmask_set(ocelot, sfi->index, sfi->portmask); in vsc9959_psfp_sfi_list_add()
1997 struct felix_stream_filter *sfi) in vsc9959_psfp_sfi_table_add() argument
2009 if (sfi->sg_valid == tmp->sg_valid && in vsc9959_psfp_sfi_table_add()
2010 sfi->fm_valid == tmp->fm_valid && in vsc9959_psfp_sfi_table_add()
2011 sfi->portmask == tmp->portmask && in vsc9959_psfp_sfi_table_add()
2012 tmp->sgid == sfi->sgid && in vsc9959_psfp_sfi_table_add()
2013 tmp->fmid == sfi->fmid) { in vsc9959_psfp_sfi_table_add()
2014 sfi->index = tmp->index; in vsc9959_psfp_sfi_table_add()
2024 sfi->index = insert; in vsc9959_psfp_sfi_table_add()
2026 return vsc9959_psfp_sfi_list_add(ocelot, sfi, last); in vsc9959_psfp_sfi_table_add()
2030 struct felix_stream_filter *sfi, in vsc9959_psfp_sfi_table_add2() argument
2051 sfi->index = insert; in vsc9959_psfp_sfi_table_add2()
2053 ret = vsc9959_psfp_sfi_list_add(ocelot, sfi, last); in vsc9959_psfp_sfi_table_add2()
2246 struct felix_stream_filter sfi = {0}; in vsc9959_psfp_filter_add() local
2282 sfi.sg_valid = 1; in vsc9959_psfp_filter_add()
2283 sfi.sgid = sgi->index; in vsc9959_psfp_filter_add()
2303 sfi.fm_valid = 1; in vsc9959_psfp_filter_add()
2304 sfi.fmid = index; in vsc9959_psfp_filter_add()
2305 sfi.maxsdu = a->police.mtu; in vsc9959_psfp_filter_add()
2316 sfi.portmask = stream.ports; in vsc9959_psfp_filter_add()
2317 sfi.prio_valid = (stream.prio < 0 ? 0 : 1); in vsc9959_psfp_filter_add()
2318 sfi.prio = (sfi.prio_valid ? stream.prio : 0); in vsc9959_psfp_filter_add()
2319 sfi.enable = 1; in vsc9959_psfp_filter_add()
2348 sfi.portmask = stream.ports; in vsc9959_psfp_filter_add()
2351 ret = vsc9959_psfp_sfi_table_add2(ocelot, &sfi, in vsc9959_psfp_filter_add()
2356 &sfi); in vsc9959_psfp_filter_add()
2364 ret = vsc9959_psfp_sfi_table_add(ocelot, &sfi); in vsc9959_psfp_filter_add()
2369 stream.sfid = sfi.index; in vsc9959_psfp_filter_add()
2383 if (sfi.sg_valid) in vsc9959_psfp_filter_add()
2384 vsc9959_psfp_sgi_table_del(ocelot, sfi.sgid); in vsc9959_psfp_filter_add()
2386 if (sfi.fm_valid) in vsc9959_psfp_filter_add()
2387 ocelot_vcap_policer_del(ocelot, sfi.fmid); in vsc9959_psfp_filter_add()
2399 static struct felix_stream_filter *sfi; in vsc9959_psfp_filter_del() local
2409 sfi = vsc9959_psfp_sfi_table_get(&psfp->sfi_list, stream->sfid); in vsc9959_psfp_filter_del()
2410 if (!sfi) { in vsc9959_psfp_filter_del()
2415 if (sfi->sg_valid) in vsc9959_psfp_filter_del()
2416 vsc9959_psfp_sgi_table_del(ocelot, sfi->sgid); in vsc9959_psfp_filter_del()
2418 if (sfi->fm_valid) in vsc9959_psfp_filter_del()
2419 ocelot_vcap_policer_del(ocelot, sfi->fmid); in vsc9959_psfp_filter_del()
2445 struct felix_stream_filter *sfi) in vsc9959_update_sfid_stats() argument
2447 struct felix_stream_filter_counters *s = &sfi->stats; in vsc9959_update_sfid_stats()
2449 u32 sfid = sfi->index; in vsc9959_update_sfid_stats()
2478 struct felix_stream_filter *sfi; in vsc9959_update_stats() local
2482 list_for_each_entry(sfi, &psfp->sfi_list, list) in vsc9959_update_stats()
2483 vsc9959_update_sfid_stats(ocelot, sfi); in vsc9959_update_stats()
2494 static struct felix_stream_filter *sfi; in vsc9959_psfp_stats_get() local
2501 sfi = vsc9959_psfp_sfi_table_get(&psfp->sfi_list, stream->sfid); in vsc9959_psfp_stats_get()
2502 if (!sfi) in vsc9959_psfp_stats_get()
2507 vsc9959_update_sfid_stats(ocelot, sfi); in vsc9959_psfp_stats_get()
2509 s = &sfi->stats; in vsc9959_psfp_stats_get()