What determines the order in which dpni instances are probed / the order in which eth interfaces are created?
We have five network interfaces, and want to bring them up in a deterministic order i.e. always assign the same ethX to a certain MAC. How can we ensure that?
This is the connections snippet from the DPL:
connections {
connection@0 {
endpoint1 = "dpni@0";
endpoint2 = "dpmac@16";
};
connection@1 {
endpoint1 = "dpni@1";
endpoint2 = "dpmac@13";
};
connection@2 {
endpoint1 = "dpni@2";
endpoint2 = "dpmac@14";
};
connection@3 {
endpoint1 = "dpni@3";
endpoint2 = "dpmac@15";
};
connection@4 {
endpoint1 = "dpni@4";
endpoint2 = "dpmac@1";
};
};
The kernel seems to probe dpni instances in reverse order - is this reliable?
[ 5.832792] fsl_dpaa2_eth dpni.4: Probed interface eth0
[ 6.034414] fsl_dpaa2_eth dpni.3: Probed interface eth1
[ 6.223226] fsl_dpaa2_eth dpni.2: Probed interface eth2
[ 6.411562] fsl_dpaa2_eth dpni.1: Probed interface eth3
[ 6.612304] fsl_dpaa2_eth dpni.0: Probed interface eth4
This leads to the eth devices having inverse order of the dpni instances. Can we avoid that, and have dpni.0 <-> eth0, dpni.1 <-> eth1, ...
# file /sys/class/net/*
/sys/class/net/eth0: symbolic link to ../../devices/platform/soc/80c000000.fsl-mc/dprc.1/dpni.4/net/eth0
/sys/class/net/eth1: symbolic link to ../../devices/platform/soc/80c000000.fsl-mc/dprc.1/dpni.3/net/eth1
/sys/class/net/eth2: symbolic link to ../../devices/platform/soc/80c000000.fsl-mc/dprc.1/dpni.2/net/eth2
/sys/class/net/eth3: symbolic link to ../../devices/platform/soc/80c000000.fsl-mc/dprc.1/dpni.1/net/eth3
/sys/class/net/eth4: symbolic link to ../../devices/platform/soc/80c000000.fsl-mc/dprc.1/dpni.0/net/eth4