Lines Matching full:dcb

52 	struct nfp_dcb *dcb = &((struct nfp_app_nic_private *)nn->app_priv)->dcb;  in get_dcb_priv()  local
54 return dcb; in get_dcb_priv()
73 struct nfp_dcb *dcb; in nfp_nic_dcbnl_ieee_getets() local
75 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_getets()
78 ets->prio_tc[i] = dcb->prio2tc[i]; in nfp_nic_dcbnl_ieee_getets()
79 ets->tc_tx_bw[i] = dcb->tc_tx_pct[i]; in nfp_nic_dcbnl_ieee_getets()
80 ets->tc_tsa[i] = dcb->tc_tsa[i]; in nfp_nic_dcbnl_ieee_getets()
90 struct nfp_dcb *dcb; in nfp_refresh_tc2idx() local
93 dcb = get_dcb_priv(nn); in nfp_refresh_tc2idx()
97 if (dcb->tc_tsa[i] == IEEE_8021QAZ_TSA_STRICT) in nfp_refresh_tc2idx()
101 if (maxstrict > 0 && dcb->tc_tsa[0] != IEEE_8021QAZ_TSA_STRICT) { in nfp_refresh_tc2idx()
107 if (dcb->tc2idx[j] != tc2idx[j]) { in nfp_refresh_tc2idx()
109 dcb->tc2idx[j] = tc2idx[j]; in nfp_refresh_tc2idx()
119 struct nfp_dcb *dcb; in nfp_fill_maxrate() local
122 dcb = get_dcb_priv(nn); in nfp_fill_maxrate()
138 writew((u16)ratembps, dcb->dcbcfg_tbl + in nfp_fill_maxrate()
139 dcb->cfg_offset + NFP_DCB_DATA_OFF_RATE + dcb->tc2idx[i] * 2); in nfp_fill_maxrate()
140 /* for rate value from user space, need to sync to dcb structure */ in nfp_fill_maxrate()
141 if (dcb->tc_maxrate != max_rate_array) in nfp_fill_maxrate()
142 dcb->tc_maxrate[i] = max_rate_array[i]; in nfp_fill_maxrate()
151 struct nfp_dcb *dcb; in update_dscp_maxrate() local
154 dcb = get_dcb_priv(nn); in update_dscp_maxrate()
156 err = nfp_fill_maxrate(nn, dcb->tc_maxrate); in update_dscp_maxrate()
163 if (dcb->dscp_cnt > 0) { in update_dscp_maxrate()
165 writeb(dcb->tc2idx[dcb->prio2tc[dcb->dscp2prio[i]]], in update_dscp_maxrate()
166 dcb->dcbcfg_tbl + dcb->cfg_offset + in update_dscp_maxrate()
177 struct nfp_dcb *dcb; in nfp_nic_set_trust() local
180 dcb = get_dcb_priv(nn); in nfp_nic_set_trust()
182 if (dcb->trust_status != NFP_DCB_TRUST_INVALID) in nfp_nic_set_trust()
185 trust = dcb->dscp_cnt > 0 ? NFP_DCB_TRUST_DSCP : NFP_DCB_TRUST_PCP; in nfp_nic_set_trust()
186 writeb(trust, dcb->dcbcfg_tbl + dcb->cfg_offset + in nfp_nic_set_trust()
189 dcb->trust_status = trust; in nfp_nic_set_trust()
195 struct nfp_dcb *dcb; in nfp_nic_set_enable() local
198 dcb = get_dcb_priv(nn); in nfp_nic_set_enable()
200 value = readl(dcb->dcbcfg_tbl + dcb->cfg_offset + in nfp_nic_set_enable()
203 writel(enable, dcb->dcbcfg_tbl + dcb->cfg_offset + in nfp_nic_set_enable()
237 struct nfp_dcb *dcb; in nfp_nic_fill_ets() local
239 dcb = get_dcb_priv(nn); in nfp_nic_fill_ets()
242 writeb(dcb->tc2idx[dcb->prio2tc[i]], in nfp_nic_fill_ets()
243 dcb->dcbcfg_tbl + dcb->cfg_offset + NFP_DCB_DATA_OFF_PCP2IDX + i); in nfp_nic_fill_ets()
244 writeb(dcb->tc_tx_pct[i], dcb->dcbcfg_tbl + in nfp_nic_fill_ets()
245 dcb->cfg_offset + NFP_DCB_DATA_OFF_IDX_BW_PCT + dcb->tc2idx[i]); in nfp_nic_fill_ets()
246 writeb(nfp_tsa_ieee2nfp(dcb->tc_tsa[i]), dcb->dcbcfg_tbl + in nfp_nic_fill_ets()
247 dcb->cfg_offset + NFP_DCB_DATA_OFF_TSA + dcb->tc2idx[i]); in nfp_nic_fill_ets()
253 struct nfp_dcb *dcb = get_dcb_priv(nn); in nfp_nic_ets_init() local
255 if (dcb->ets_init) in nfp_nic_ets_init()
259 dcb->ets_init = true; in nfp_nic_ets_init()
269 struct nfp_dcb *dcb; in nfp_nic_dcbnl_ieee_setets() local
278 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_setets()
281 dcb->prio2tc[i] = ets->prio_tc[i]; in nfp_nic_dcbnl_ieee_setets()
282 dcb->tc_tx_pct[i] = ets->tc_tx_bw[i]; in nfp_nic_dcbnl_ieee_setets()
283 dcb->tc_tsa[i] = ets->tc_tsa[i]; in nfp_nic_dcbnl_ieee_setets()
288 dcb->ets_init = true; in nfp_nic_dcbnl_ieee_setets()
289 if (change || !dcb->rate_init) { in nfp_nic_dcbnl_ieee_setets()
298 dcb->rate_init = true; in nfp_nic_dcbnl_ieee_setets()
317 struct nfp_dcb *dcb; in nfp_nic_dcbnl_ieee_getmaxrate() local
319 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_getmaxrate()
322 maxrate->tc_maxrate[i] = dcb->tc_maxrate[i]; in nfp_nic_dcbnl_ieee_getmaxrate()
333 struct nfp_dcb *dcb; in nfp_nic_dcbnl_ieee_setmaxrate() local
345 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_setmaxrate()
347 dcb->rate_init = true; in nfp_nic_dcbnl_ieee_setmaxrate()
365 struct nfp_dcb *dcb; in nfp_nic_set_trust_status() local
369 dcb = get_dcb_priv(nn); in nfp_nic_set_trust_status()
370 if (!dcb->rate_init) { in nfp_nic_set_trust_status()
371 err = nfp_fill_maxrate(nn, dcb->tc_maxrate); in nfp_nic_set_trust_status()
376 dcb->rate_init = true; in nfp_nic_set_trust_status()
384 writeb(status, dcb->dcbcfg_tbl + dcb->cfg_offset + in nfp_nic_set_trust_status()
394 dcb->trust_status = status; in nfp_nic_set_trust_status()
402 struct nfp_dcb *dcb; in nfp_nic_set_dscp2prio() local
410 dcb = get_dcb_priv(nn); in nfp_nic_set_dscp2prio()
412 tc = dcb->prio2tc[prio]; in nfp_nic_set_dscp2prio()
413 idx = dcb->tc2idx[tc]; in nfp_nic_set_dscp2prio()
415 writeb(idx, dcb->dcbcfg_tbl + dcb->cfg_offset + in nfp_nic_set_dscp2prio()
425 dcb->dscp2prio[dscp] = prio; in nfp_nic_set_dscp2prio()
435 struct nfp_dcb *dcb; in nfp_nic_dcbnl_ieee_setapp() local
442 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_setapp()
447 old_app.priority = dcb->dscp2prio[app->protocol]; in nfp_nic_dcbnl_ieee_setapp()
450 if (!dcb->dscp_cnt) { in nfp_nic_dcbnl_ieee_setapp()
472 dcb->dscp_cnt++; in nfp_nic_dcbnl_ieee_setapp()
481 struct nfp_dcb *dcb; in nfp_nic_dcbnl_ieee_delapp() local
487 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_delapp()
490 if (app->priority != dcb->dscp2prio[app->protocol]) in nfp_nic_dcbnl_ieee_delapp()
498 /* Delete app from dcb list */ in nfp_nic_dcbnl_ieee_delapp()
504 dcb->dscp_cnt--; in nfp_nic_dcbnl_ieee_delapp()
507 if (dcb->dscp_cnt == 0) in nfp_nic_dcbnl_ieee_delapp()
526 struct nfp_dcb *dcb; in nfp_nic_dcb_init() local
529 dcb = get_dcb_priv(nn); in nfp_nic_dcb_init()
530 dcb->cfg_offset = NFP_DCB_CFG_STRIDE * nn->id; in nfp_nic_dcb_init()
531 dcb->dcbcfg_tbl = nfp_pf_map_rtsym(app->pf, "net.dcbcfg_tbl", in nfp_nic_dcb_init()
533 dcb->cfg_offset, &dcb->dcbcfg_tbl_area); in nfp_nic_dcb_init()
534 if (IS_ERR(dcb->dcbcfg_tbl)) { in nfp_nic_dcb_init()
535 if (PTR_ERR(dcb->dcbcfg_tbl) != -ENOENT) { in nfp_nic_dcb_init()
536 err = PTR_ERR(dcb->dcbcfg_tbl); in nfp_nic_dcb_init()
537 dcb->dcbcfg_tbl = NULL; in nfp_nic_dcb_init()
540 dcb->cfg_offset); in nfp_nic_dcb_init()
543 dcb->dcbcfg_tbl = NULL; in nfp_nic_dcb_init()
546 if (dcb->dcbcfg_tbl) { in nfp_nic_dcb_init()
548 dcb->prio2tc[i] = i; in nfp_nic_dcb_init()
549 dcb->tc2idx[i] = i; in nfp_nic_dcb_init()
550 dcb->tc_tx_pct[i] = 0; in nfp_nic_dcb_init()
551 dcb->tc_maxrate[i] = 0; in nfp_nic_dcb_init()
552 dcb->tc_tsa[i] = IEEE_8021QAZ_TSA_VENDOR; in nfp_nic_dcb_init()
554 dcb->trust_status = NFP_DCB_TRUST_INVALID; in nfp_nic_dcb_init()
555 dcb->rate_init = false; in nfp_nic_dcb_init()
556 dcb->ets_init = false; in nfp_nic_dcb_init()
566 struct nfp_dcb *dcb; in nfp_nic_dcb_clean() local
568 dcb = get_dcb_priv(nn); in nfp_nic_dcb_clean()
569 if (dcb->dcbcfg_tbl_area) in nfp_nic_dcb_clean()
570 nfp_cpp_area_release_free(dcb->dcbcfg_tbl_area); in nfp_nic_dcb_clean()