Default queues for shared mac interface initialised by USDPAA

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Default queues for shared mac interface initialised by USDPAA

398 Views
heena_sirwani
Contributor I

Hi all,

I am using the NXP T2080rdb for USDPAA purposes.

As I read in the SDK document, in the shared mac scenario, default queues for a shared MAC interface are initialized by linux and the PCD queues are initialised by USDPAA.

When I execute the lpm-fwd-app with one of the 1G interfaces as shared MAC, the traffic splits as required.

However, when I stop and start the USDPAA application, the default queues get initialized by USDPAA and all traffic goes to USDPAA application.

It looks like in include/ppac.c, in ppac_interface_init_rx, this code:

if (fif->shared_mac_info.is_shared_mac == 1) {
struct qm_mcr_queryfq_np np;
struct qman_fq fq;
fq.fqid = i->port_cfg->rx_def;
err = qman_query_fq_np(&fq, &np);
if (err) {
error(0, err, "%s(): shared MAC query FQ", __func__);
return err;
}
/* For shared MAC, initialize default FQ only if state is OOS */
if (np.state == qman_fq_state_oos) {
err = ppam_rx_default_init(&i->rx_default[0].s,
&i->ppam_data, 0, &stash_opts);
if (err) {
error(0, err, "%s", __func__);
return err;
}
ppac_fq_nonpcd_init(&i->rx_default[0].fq,
i->port_cfg->rx_def, get_rxc(), &stash_opts,
cb_dqrr_rx_default);
}

qman_query_fq_np returns qman_fq_state_oos and default queues get initialized in USDPAA.

When I reboot, things work correctly. Do I have to reboot everytime I restart the USDPAA application?

0 Kudos
1 Reply

323 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Heena S,

During the analysis it was found that the FQ created by Linux for the shared-mac interface is getting destroyed somehow which is causing the packets to be not reaching the Linux on next run.
FQ was getting killed by linux even if we avoid it in code.

One workaround :
When "default dist"(fq 0x71) is used in policy file to be configured by fmc but not parsed by usdpaa then the use case is working fine(restarts also works).

When "default dist"(fq 0x71) is removed from policy file so that it is not configured by fmc, then an error was coming "fsl_dpa_shared-shared fsl,dpaa:ethernet@8 fm1-mac9: FD status = 0x00004000 " (FM_FD_ERR_NO_SCHEME ).

Steps:
1. Run fmc :
fmc -c usdpaa_config_t2_serdes_66_15.xml -p usdpaa_policy_hash_shared_mac_ipv4.xml -a
Files usdpaa_config_t2_serdes_66_15.xml, usdpaa_policy_hash_shared_mac_ipv4.xml are present in /usr/etc

2. Run app lpmfwd/any app:
lpmfwd_app 7 -b 1600:1600:1600 -c usdpaa_config_t2_serdes_66_15.xml -p usdpaa_policy_hash_shared_mac_ipv4_nodefault.xml -d 0x10000000
File: usdpaa_policy_hash_shared_mac_ipv4_nodefault.xml attached.

Using above steps ping will work and restart will also work.


Have a great day,
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos