€•sphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”ŒE/translations/zh_CN/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒE/translations/zh_TW/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒE/translations/it_IT/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒE/translations/ja_JP/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒE/translations/ko_KR/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒE/translations/pt_BR/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒE/translations/sp_SP/networking/device_drivers/ethernet/freescale/dpaa”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/freescale/dpaa.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒThe QorIQ DPAA Ethernet Driver”h]”hŒThe QorIQ DPAA Ethernet Driver”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒXAuthors: - Madalin Bucur - Camelia Groza ”h]”(hŒAuthors: - Madalin Bucur <”…”�”}”(hhßh²hh³Nh´NubhŒ reference”“”)�”}”(hŒmadalin.bucur@nxp.com”h]”hŒmadalin.bucur@nxp.com”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:madalin.bucur@nxp.com”uh1hçhhßubhŒ> - Camelia Groza <”…”�”}”(hhßh²hh³Nh´Nubhè)�”}”(hŒcamelia.groza@nxp.com”h]”hŒcamelia.groza@nxp.com”…”�”}”(hhýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:camelia.groza@nxp.com”uh1hçhhßubhŒ>”…”�”}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubh¶)�”}”(hŒßContents - DPAA Ethernet Overview - DPAA Ethernet Supported SoCs - Configuring DPAA Ethernet in your kernel - DPAA Ethernet Frame Processing - DPAA Ethernet Features - DPAA IRQ Affinity and Receive Side Scaling - Debugging”h]”hŒßContents - DPAA Ethernet Overview - DPAA Ethernet Supported SoCs - Configuring DPAA Ethernet in your kernel - DPAA Ethernet Frame Processing - DPAA Ethernet Features - DPAA IRQ Affinity and Receive Side Scaling - Debugging”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPAA Ethernet Overview”h]”hŒDPAA Ethernet Overview”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj%h²hh³hÇh´KubhÞ)�”}”(hŒ°DPAA stands for Data Path Acceleration Architecture and it is a set of networking acceleration IPs that are available on several generations of SoCs, both on PowerPC and ARM64.”h]”hŒ°DPAA stands for Data Path Acceleration Architecture and it is a set of networking acceleration IPs that are available on several generations of SoCs, both on PowerPC and ARM64.”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj%h²hubhÞ)�”}”(hŒ·The Freescale DPAA architecture consists of a series of hardware blocks that support Ethernet connectivity. The Ethernet driver depends upon the following drivers in the Linux kernel:”h]”hŒ·The Freescale DPAA architecture consists of a series of hardware blocks that support Ethernet connectivity. The Ethernet driver depends upon the following drivers in the Linux kernel:”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj%h²hubhŒ block_quote”“”)�”}”(hŒå- Peripheral Access Memory Unit (PAMU) (* needed only for PPC platforms) drivers/iommu/fsl_* - Frame Manager (FMan) drivers/net/ethernet/freescale/fman - Queue Manager (QMan), Buffer Manager (BMan) drivers/soc/fsl/qbman ”h]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ[Peripheral Access Memory Unit (PAMU) (* needed only for PPC platforms) drivers/iommu/fsl_*”h]”hŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒZPeripheral Access Memory Unit (PAMU) (* needed only for PPC platforms) drivers/iommu/fsl_*”h]”(hŒterm”“”)�”}”(hŒFPeripheral Access Memory Unit (PAMU) (* needed only for PPC platforms)”h]”hŒFPeripheral Access Memory Unit (PAMU) (* needed only for PPC platforms)”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jnh³hÇh´K hjjubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒdrivers/iommu/fsl_*”h]”hŒdrivers/iommu/fsl_*”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K!hj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhh³hÇh´K hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jchj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjZubj^)�”}”(hŒ9Frame Manager (FMan) drivers/net/ethernet/freescale/fman”h]”jd)�”}”(hhh]”ji)�”}”(hŒ8Frame Manager (FMan) drivers/net/ethernet/freescale/fman”h]”(jo)�”}”(hŒFrame Manager (FMan)”h]”hŒFrame Manager (FMan)”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jnh³hÇh´K"hj°ubj)�”}”(hhh]”hÞ)�”}”(hŒ#drivers/net/ethernet/freescale/fman”h]”hŒ#drivers/net/ethernet/freescale/fman”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K#hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhh³hÇh´K"hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jchj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjZubj^)�”}”(hŒCQueue Manager (QMan), Buffer Manager (BMan) drivers/soc/fsl/qbman ”h]”jd)�”}”(hhh]”ji)�”}”(hŒBQueue Manager (QMan), Buffer Manager (BMan) drivers/soc/fsl/qbman ”h]”(jo)�”}”(hŒ+Queue Manager (QMan), Buffer Manager (BMan)”h]”hŒ+Queue Manager (QMan), Buffer Manager (BMan)”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jnh³hÇh´K%hjòubj)�”}”(hhh]”hÞ)�”}”(hŒdrivers/soc/fsl/qbman”h]”hŒdrivers/soc/fsl/qbman”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K%hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhh³hÇh´K%hjïubah}”(h]”h ]”h"]”h$]”h&]”uh1jchjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjZubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jXh³hÇh´K hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³hÇh´K hj%h²hubhÞ)�”}”(hŒBA simplified view of the dpaa_eth interfaces mapped to FMan MACs::”h]”hŒAA simplified view of the dpaa_eth interfaces mapped to FMan MACs:”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K'hj%h²hubhŒ literal_block”“”)�”}”(hX–dpaa_eth /eth0\ ... /ethN\ driver | | | | ------------- ---- ----------- ---- ------------- -Ports / Tx Rx \ ... / Tx Rx \ FMan | | | | -MACs | MAC0 | | MACN | / dtsec0 \ ... / dtsecN \ (or tgec) / \ / \(or memac) --------- -------------- --- -------------- --------- FMan, FMan Port, FMan SP, FMan MURAM drivers --------------------------------------------------------- FMan HW blocks: MURAM, MACs, Ports, SP ---------------------------------------------------------”h]”hX–dpaa_eth /eth0\ ... /ethN\ driver | | | | ------------- ---- ----------- ---- ------------- -Ports / Tx Rx \ ... / Tx Rx \ FMan | | | | -MACs | MAC0 | | MACN | / dtsec0 \ ... / dtsecN \ (or tgec) / \ / \(or memac) --------- -------------- --- -------------- --------- FMan, FMan Port, FMan SP, FMan MURAM drivers --------------------------------------------------------- FMan HW blocks: MURAM, MACs, Ports, SP ---------------------------------------------------------”…”�”}”hjKsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´K)hj%h²hubhÞ)�”}”(hŒ2The dpaa_eth relation to the QMan, BMan and FMan::”h]”hŒ1The dpaa_eth relation to the QMan, BMan and FMan:”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K7hj%h²hubjJ)�”}”(hXf ________________________________ dpaa_eth / eth0 \ driver / \ --------- -^- -^- -^- --- --------- QMan driver / \ / \ / \ \ / | BMan | |Rx | |Rx | |Tx | |Tx | | driver | --------- |Dfl| |Err| |Cnf| |FQs| | | QMan HW |FQ | |FQ | |FQs| | | | | / \ / \ / \ \ / | | --------- --- --- --- -v- --------- | FMan QMI | | | FMan HW FMan BMI | BMan HW | ----------------------- --------”h]”hXf ________________________________ dpaa_eth / eth0 \ driver / \ --------- -^- -^- -^- --- --------- QMan driver / \ / \ / \ \ / | BMan | |Rx | |Rx | |Tx | |Tx | | driver | --------- |Dfl| |Err| |Cnf| |FQs| | | QMan HW |FQ | |FQ | |FQs| | | | | / \ / \ / \ \ / | | --------- --- --- --- -v- --------- | FMan QMI | | | FMan HW FMan BMI | BMan HW | ----------------------- --------”…”�”}”hjgsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´K9hj%h²hubhÞ)�”}”(hŒ4where the acronyms used above (and in the code) are:”h]”hŒ4where the acronyms used above (and in the code) are:”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KGhj%h²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j�hjŠubjŽ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K;uh1j�hjŠubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒDPAA”h]”hŒDPAA”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KJhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjªubj®)�”}”(hhh]”hÞ)�”}”(hŒ#Data Path Acceleration Architecture”h]”hŒ#Data Path Acceleration Architecture”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KJhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒFMan”h]”hŒFMan”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjãubj®)�”}”(hhh]”hÞ)�”}”(hŒDPAA Frame Manager”h]”hŒDPAA Frame Manager”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒQMan”h]”hŒQMan”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KLhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjubj®)�”}”(hhh]”hÞ)�”}”(hŒDPAA Queue Manager”h]”hŒDPAA Queue Manager”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KLhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒBMan”h]”hŒBMan”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KMhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjQubj®)�”}”(hhh]”hÞ)�”}”(hŒDPAA Buffers Manager”h]”hŒDPAA Buffers Manager”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KMhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒQMI”h]”hŒQMI”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjˆubj®)�”}”(hhh]”hÞ)�”}”(hŒQMan interface in FMan”h]”hŒQMan interface in FMan”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒBMI”h]”hŒBMI”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KOhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj¿ubj®)�”}”(hhh]”hÞ)�”}”(hŒBMan interface in FMan”h]”hŒBMan interface in FMan”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KOhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒFMan SP”h]”hŒFMan SP”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjöubj®)�”}”(hhh]”hÞ)�”}”(hŒFMan Storage Profiles”h]”hŒFMan Storage Profiles”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒMURAM”h]”hŒMURAM”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KQhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj-ubj®)�”}”(hhh]”hÞ)�”}”(hŒMulti-user RAM in FMan”h]”hŒMulti-user RAM in FMan”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KQhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒFQ”h]”hŒFQ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KRhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjdubj®)�”}”(hhh]”hÞ)�”}”(hŒQMan Frame Queue”h]”hŒQMan Frame Queue”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KRhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒ Rx Dfl FQ”h]”hŒ Rx Dfl FQ”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KShjžubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj›ubj®)�”}”(hhh]”hÞ)�”}”(hŒdefault reception FQ”h]”hŒdefault reception FQ”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KShjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒ Rx Err FQ”h]”hŒ Rx Err FQ”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KThjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÒubj®)�”}”(hhh]”hÞ)�”}”(hŒRx error frames FQ”h]”hŒRx error frames FQ”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KThjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒ Tx Cnf FQ”h]”hŒ Tx Cnf FQ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KUhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj ubj®)�”}”(hhh]”hÞ)�”}”(hŒTx confirmation FQs”h]”hŒTx confirmation FQs”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KUhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒTx FQs”h]”hŒTx FQs”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KVhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj@ubj®)�”}”(hhh]”hÞ)�”}”(hŒtransmission frame queues”h]”hŒtransmission frame queues”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KVhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒdtsec”h]”hŒdtsec”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KWhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjwubj®)�”}”(hhh]”hÞ)�”}”(hŒ;datapath three speed Ethernet controller (10/100/1000 Mbps)”h]”hŒ;datapath three speed Ethernet controller (10/100/1000 Mbps)”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KWhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒtgec”h]”hŒtgec”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KXhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj®ubj®)�”}”(hhh]”hÞ)�”}”(hŒ)ten gigabit Ethernet controller (10 Gbps)”h]”hŒ)ten gigabit Ethernet controller (10 Gbps)”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KXhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubj©)�”}”(hhh]”(j®)�”}”(hhh]”hÞ)�”}”(hŒmemac”h]”hŒmemac”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjåubj®)�”}”(hhh]”hÞ)�”}”(hŒ*multirate Ethernet MAC (10/100/1000/10000)”h]”hŒ*multirate Ethernet MAC (10/100/1000/10000)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j£hjŠubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jˆhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jƒhj%h²hh³hÇh´Nubeh}”(h]”Œdpaa-ethernet-overview”ah ]”h"]”Œdpaa ethernet overview”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPAA Ethernet Supported SoCs”h]”hŒDPAA Ethernet Supported SoCs”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj7h²hh³hÇh´K]ubhÞ)�”}”(hŒOThe DPAA drivers enable the Ethernet controllers present on the following SoCs:”h]”hŒOThe DPAA drivers enable the Ethernet controllers present on the following SoCs:”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hj7h²hubhÞ)�”}”(hŒkPPC - P1023 - P2041 - P3041 - P4080 - P5020 - P5040 - T1023 - T1024 - T1040 - T1042 - T2080 - T4240 - B4860”h]”hŒkPPC - P1023 - P2041 - P3041 - P4080 - P5020 - P5040 - T1023 - T1024 - T1040 - T1042 - T2080 - T4240 - B4860”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kahj7h²hubhÞ)�”}”(hŒARM - LS1043A - LS1046A”h]”hŒARM - LS1043A - LS1046A”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphj7h²hubeh}”(h]”Œdpaa-ethernet-supported-socs”ah ]”h"]”Œdpaa ethernet supported socs”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K]ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ(Configuring DPAA Ethernet in your kernel”h]”hŒ(Configuring DPAA Ethernet in your kernel”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjzh²hh³hÇh´KuubhÞ)�”}”(hŒPTo enable the DPAA Ethernet driver, the following Kconfig options are required::”h]”hŒOTo enable the DPAA Ethernet driver, the following Kconfig options are required:”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhjzh²hubjJ)�”}”(hX&# common for arch/arm64 and arch/powerpc platforms CONFIG_FSL_DPAA=y CONFIG_FSL_FMAN=y CONFIG_FSL_DPAA_ETH=y CONFIG_FSL_XGMAC_MDIO=y # for arch/powerpc only CONFIG_FSL_PAMU=y # common options needed for the PHYs used on the RDBs CONFIG_VITESSE_PHY=y CONFIG_REALTEK_PHY=y CONFIG_AQUANTIA_PHY=y”h]”hX&# common for arch/arm64 and arch/powerpc platforms CONFIG_FSL_DPAA=y CONFIG_FSL_FMAN=y CONFIG_FSL_DPAA_ETH=y CONFIG_FSL_XGMAC_MDIO=y # for arch/powerpc only CONFIG_FSL_PAMU=y # common options needed for the PHYs used on the RDBs CONFIG_VITESSE_PHY=y CONFIG_REALTEK_PHY=y CONFIG_AQUANTIA_PHY=y”…”�”}”hj™sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´Kyhjzh²hubeh}”(h]”Œ(configuring-dpaa-ethernet-in-your-kernel”ah ]”h"]”Œ(configuring dpaa ethernet in your kernel”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KuubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPAA Ethernet Frame Processing”h]”hŒDPAA Ethernet Frame Processing”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¯h²hh³hÇh´KˆubhÞ)�”}”(hŒ±On Rx, buffers for the incoming frames are retrieved from the buffers found in the dedicated interface buffer pool. The driver initializes and seeds these with one page buffers.”h]”hŒ±On Rx, buffers for the incoming frames are retrieved from the buffers found in the dedicated interface buffer pool. The driver initializes and seeds these with one page buffers.”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŠhj¯h²hubhÞ)�”}”(hXdOn Tx, all transmitted frames are returned to the driver through Tx confirmation frame queues. The driver is then responsible for freeing the buffers. In order to do this properly, a backpointer is added to the buffer before transmission that points to the skb. When the buffer returns to the driver on a confirmation FQ, the skb can be correctly consumed.”h]”hXdOn Tx, all transmitted frames are returned to the driver through Tx confirmation frame queues. The driver is then responsible for freeing the buffers. In order to do this properly, a backpointer is added to the buffer before transmission that points to the skb. When the buffer returns to the driver on a confirmation FQ, the skb can be correctly consumed.”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŽhj¯h²hubeh}”(h]”Œdpaa-ethernet-frame-processing”ah ]”h"]”Œdpaa ethernet frame processing”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KˆubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPAA Ethernet Features”h]”hŒDPAA Ethernet Features”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjäh²hh³hÇh´K•ubhÞ)�”}”(hŒžCurrently the DPAA Ethernet driver enables the basic features required for a Linux Ethernet driver. The support for advanced features will be added gradually.”h]”hŒžCurrently the DPAA Ethernet driver enables the basic features required for a Linux Ethernet driver. The support for advanced features will be added gradually.”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K—hjäh²hubhÞ)�”}”(hX‘The driver has Rx and Tx checksum offloading for UDP and TCP. Currently the Rx checksum offload feature is enabled by default and cannot be controlled through ethtool. Also, rx-flow-hash and rx-hashing was added. The addition of RSS provides a big performance boost for the forwarding scenarios, allowing different traffic flows received by one interface to be processed by different CPUs in parallel.”h]”hX‘The driver has Rx and Tx checksum offloading for UDP and TCP. Currently the Rx checksum offload feature is enabled by default and cannot be controlled through ethtool. Also, rx-flow-hash and rx-hashing was added. The addition of RSS provides a big performance boost for the forwarding scenarios, allowing different traffic flows received by one interface to be processed by different CPUs in parallel.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K›hjäh²hubhÞ)�”}”(hX*The driver has support for multiple prioritized Tx traffic classes. Priorities range from 0 (lowest) to 3 (highest). These are mapped to HW workqueues with strict priority levels. Each traffic class contains NR_CPU TX queues. By default, only one traffic class is enabled and the lowest priority Tx queues are used. Higher priority traffic classes can be enabled with the mqprio qdisc. For example, all four traffic classes are enabled on an interface with the following command. Furthermore, skb priority levels are mapped to traffic classes as follows:”h]”hX*The driver has support for multiple prioritized Tx traffic classes. Priorities range from 0 (lowest) to 3 (highest). These are mapped to HW workqueues with strict priority levels. Each traffic class contains NR_CPU TX queues. By default, only one traffic class is enabled and the lowest priority Tx queues are used. Higher priority traffic classes can be enabled with the mqprio qdisc. For example, all four traffic classes are enabled on an interface with the following command. Furthermore, skb priority levels are mapped to traffic classes as follows:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¢hjäh²hubjS)�”}”(hŒç* priorities 0 to 3 - traffic class 0 (low priority) * priorities 4 to 7 - traffic class 1 (medium-low priority) * priorities 8 to 11 - traffic class 2 (medium-high priority) * priorities 12 to 15 - traffic class 3 (high priority) ”h]”jY)�”}”(hhh]”(j^)�”}”(hŒ2priorities 0 to 3 - traffic class 0 (low priority)”h]”hÞ)�”}”(hj(h]”hŒ2priorities 0 to 3 - traffic class 0 (low priority)”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K«hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj#ubj^)�”}”(hŒ9priorities 4 to 7 - traffic class 1 (medium-low priority)”h]”hÞ)�”}”(hj?h]”hŒ9priorities 4 to 7 - traffic class 1 (medium-low priority)”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¬hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj#ubj^)�”}”(hŒ;priorities 8 to 11 - traffic class 2 (medium-high priority)”h]”hÞ)�”}”(hjVh]”hŒ;priorities 8 to 11 - traffic class 2 (medium-high priority)”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K­hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj#ubj^)�”}”(hŒ6priorities 12 to 15 - traffic class 3 (high priority) ”h]”hÞ)�”}”(hŒ5priorities 12 to 15 - traffic class 3 (high priority)”h]”hŒ5priorities 12 to 15 - traffic class 3 (high priority)”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K®hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj#ubeh}”(h]”h ]”h"]”h$]”h&]”j3Œ*”uh1jXh³hÇh´K«hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³hÇh´K«hjäh²hubjJ)�”}”(hŒgtc qdisc add dev root handle 1: \ mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1”h]”hŒgtc qdisc add dev root handle 1: \ mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1”…”�”}”hj�sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´K²hjäh²hubeh}”(h]”Œdpaa-ethernet-features”ah ]”h"]”Œdpaa ethernet features”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K•ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ*DPAA IRQ Affinity and Receive Side Scaling”h]”hŒ*DPAA IRQ Affinity and Receive Side Scaling”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¦h²hh³hÇh´K¶ubhÞ)�”}”(hX Traffic coming on the DPAA Rx queues or on the DPAA Tx confirmation queues is seen by the CPU as ingress traffic on a certain portal. The DPAA QMan portal interrupts are affined each to a certain CPU. The same portal interrupt services all the QMan portal consumers.”h]”hX Traffic coming on the DPAA Rx queues or on the DPAA Tx confirmation queues is seen by the CPU as ingress traffic on a certain portal. The DPAA QMan portal interrupts are affined each to a certain CPU. The same portal interrupt services all the QMan portal consumers.”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¸hj¦h²hubhÞ)�”}”(hX_By default the DPAA Ethernet driver enables RSS, making use of the DPAA FMan Parser and Keygen blocks to distribute traffic on 128 hardware frame queues using a hash on IP v4/v6 source and destination and L4 source and destination ports, in present in the received frame. When RSS is disabled, all traffic received by a certain interface is received on the default Rx frame queue. The default DPAA Rx frame queues are configured to put the received traffic into a pool channel that allows any available CPU portal to dequeue the ingress traffic. The default frame queues have the HOLDACTIVE option set, ensuring that traffic bursts from a certain queue are serviced by the same CPU. This ensures a very low rate of frame reordering. A drawback of this is that only one CPU at a time can service the traffic received by a certain interface when RSS is not enabled.”h]”hX_By default the DPAA Ethernet driver enables RSS, making use of the DPAA FMan Parser and Keygen blocks to distribute traffic on 128 hardware frame queues using a hash on IP v4/v6 source and destination and L4 source and destination ports, in present in the received frame. When RSS is disabled, all traffic received by a certain interface is received on the default Rx frame queue. The default DPAA Rx frame queues are configured to put the received traffic into a pool channel that allows any available CPU portal to dequeue the ingress traffic. The default frame queues have the HOLDACTIVE option set, ensuring that traffic bursts from a certain queue are serviced by the same CPU. This ensures a very low rate of frame reordering. A drawback of this is that only one CPU at a time can service the traffic received by a certain interface when RSS is not enabled.”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K½hj¦h²hubhÞ)�”}”(hXTo implement RSS, the DPAA Ethernet driver allocates an extra set of 128 Rx frame queues that are configured to dedicated channels, in a round-robin manner. The mapping of the frame queues to CPUs is now hardcoded, there is no indirection table to move traffic for a certain FQ (hash result) to another CPU. The ingress traffic arriving on one of these frame queues will arrive at the same portal and will always be processed by the same CPU. This ensures intra-flow order preservation and workload distribution for multiple traffic flows.”h]”hXTo implement RSS, the DPAA Ethernet driver allocates an extra set of 128 Rx frame queues that are configured to dedicated channels, in a round-robin manner. The mapping of the frame queues to CPUs is now hardcoded, there is no indirection table to move traffic for a certain FQ (hash result) to another CPU. The ingress traffic arriving on one of these frame queues will arrive at the same portal and will always be processed by the same CPU. This ensures intra-flow order preservation and workload distribution for multiple traffic flows.”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KËhj¦h²hubhÞ)�”}”(hŒCRSS can be turned off for a certain interface using ethtool, i.e.::”h]”hŒBRSS can be turned off for a certain interface using ethtool, i.e.:”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÔhj¦h²hubjJ)�”}”(hŒ*# ethtool -N fm1-mac9 rx-flow-hash tcp4 ""”h]”hŒ*# ethtool -N fm1-mac9 rx-flow-hash tcp4 ""”…”�”}”hjïsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´KÖhj¦h²hubhÞ)�”}”(hŒHTo turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6::”h]”hŒGTo turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6:”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KØhj¦h²hubjJ)�”}”(hŒ,# ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn”h]”hŒ,# ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´KÚhj¦h²hubhÞ)�”}”(hŒÓThere is no independent control for individual protocols, any command run for one of tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 is going to control the rx-flow-hashing for all protocols on that interface.”h]”hŒÓThere is no independent control for individual protocols, any command run for one of tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 is going to control the rx-flow-hashing for all protocols on that interface.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÜhj¦h²hubhÞ)�”}”(hŒúBesides using the FMan Keygen computed hash for spreading traffic on the 128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when the NETIF_F_RXHASH feature is on (active by default). This can be turned on or off through ethtool, i.e.::”h]”hŒùBesides using the FMan Keygen computed hash for spreading traffic on the 128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when the NETIF_F_RXHASH feature is on (active by default). This can be turned on or off through ethtool, i.e.:”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kàhj¦h²hubjJ)�”}”(hŒÙ# ethtool -K fm1-mac9 rx-hashing off # ethtool -k fm1-mac9 | grep hash receive-hashing: off # ethtool -K fm1-mac9 rx-hashing on Actual changes: receive-hashing: on # ethtool -k fm1-mac9 | grep hash receive-hashing: on”h]”hŒÙ# ethtool -K fm1-mac9 rx-hashing off # ethtool -k fm1-mac9 | grep hash receive-hashing: off # ethtool -K fm1-mac9 rx-hashing on Actual changes: receive-hashing: on # ethtool -k fm1-mac9 | grep hash receive-hashing: on”…”�”}”hj5sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jIh³hÇh´Kåhj¦h²hubhÞ)�”}”(hŒñPlease note that Rx hashing depends upon the rx-flow-hashing being on for that interface - turning off rx-flow-hashing will also disable the rx-hashing (without ethtool reporting it as off as that depends on the NETIF_F_RXHASH feature flag).”h]”hŒñPlease note that Rx hashing depends upon the rx-flow-hashing being on for that interface - turning off rx-flow-hashing will also disable the rx-hashing (without ethtool reporting it as off as that depends on the NETIF_F_RXHASH feature flag).”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kîhj¦h²hubeh}”(h]”Œ*dpaa-irq-affinity-and-receive-side-scaling”ah ]”h"]”Œ*dpaa irq affinity and receive side scaling”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K¶ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Debugging”h]”hŒ Debugging”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjYh²hh³hÇh´KôubhÞ)�”}”(hŒIThe following statistics are exported for each interface through ethtool:”h]”hŒIThe following statistics are exported for each interface through ethtool:”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KöhjYh²hubjS)�”}”(hX¡- interrupt count per CPU - Rx packets count per CPU - Tx packets count per CPU - Tx confirmed packets count per CPU - Tx S/G frames count per CPU - Tx error count per CPU - Rx error count per CPU - Rx error count per type - congestion related statistics: - congestion status - time spent in congestion - number of time the device entered congestion - dropped packets count per cause ”h]”jY)�”}”(hhh]”(j^)�”}”(hŒinterrupt count per CPU”h]”hÞ)�”}”(hj�h]”hŒinterrupt count per CPU”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Køhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒRx packets count per CPU”h]”hÞ)�”}”(hj˜h]”hŒRx packets count per CPU”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kùhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒTx packets count per CPU”h]”hÞ)�”}”(hj¯h]”hŒTx packets count per CPU”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kúhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒ"Tx confirmed packets count per CPU”h]”hÞ)�”}”(hjÆh]”hŒ"Tx confirmed packets count per CPU”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KûhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒTx S/G frames count per CPU”h]”hÞ)�”}”(hjÝh]”hŒTx S/G frames count per CPU”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KühjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒTx error count per CPU”h]”hÞ)�”}”(hjôh]”hŒTx error count per CPU”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kýhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒRx error count per CPU”h]”hÞ)�”}”(hj h]”hŒRx error count per CPU”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kþhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒRx error count per type”h]”hÞ)�”}”(hj" h]”hŒRx error count per type”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kÿhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubj^)�”}”(hŒ¸congestion related statistics: - congestion status - time spent in congestion - number of time the device entered congestion - dropped packets count per cause ”h]”(hÞ)�”}”(hŒcongestion related statistics:”h]”hŒcongestion related statistics:”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj7 ubjS)�”}”(hŒ€- congestion status - time spent in congestion - number of time the device entered congestion - dropped packets count per cause ”h]”jY)�”}”(hhh]”(j^)�”}”(hŒcongestion status”h]”hÞ)�”}”(hjR h]”hŒcongestion status”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjP ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjM ubj^)�”}”(hŒtime spent in congestion”h]”hÞ)�”}”(hji h]”hŒtime spent in congestion”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjM ubj^)�”}”(hŒ,number of time the device entered congestion”h]”hÞ)�”}”(hj€ h]”hŒ,number of time the device entered congestion”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj~ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjM ubj^)�”}”(hŒ dropped packets count per cause ”h]”hÞ)�”}”(hŒdropped packets count per cause”h]”hŒdropped packets count per cause”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj• ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjM ubeh}”(h]”h ]”h"]”h$]”h&]”j3j4uh1jXh³hÇh´MhjI ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³hÇh´Mhj7 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j]hj|ubeh}”(h]”h ]”h"]”h$]”h&]”j3j4uh1jXh³hÇh´Køhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³hÇh´KøhjYh²hubhÞ)�”}”(hŒ;The driver also exports the following information in sysfs:”h]”hŒ;The driver also exports the following information in sysfs:”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjYh²hubjS)�”}”(hX - the FQ IDs for each FQ type /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/fqids - the ID of the buffer pool in use /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/bpids”h]”jY)�”}”(hhh]”(j^)�”}”(hŒ~the FQ IDs for each FQ type /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/fqids ”h]”hÞ)�”}”(hŒ}the FQ IDs for each FQ type /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/fqids”h]”hŒ}the FQ IDs for each FQ type /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/fqids”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjÝ ubj^)�”}”(hŒ‚the ID of the buffer pool in use /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/bpids”h]”hÞ)�”}”(hŒ‚the ID of the buffer pool in use /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/bpids”h]”hŒ‚the ID of the buffer pool in use /sys/devices/platform/soc/.fman/.ethernet/dpaa-ethernet./net/fm-mac/bpids”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1j]hjÝ ubeh}”(h]”h ]”h"]”h$]”h&]”j3j4uh1jXh³hÇh´M hjÙ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³hÇh´M hjYh²hubeh}”(h]”Œ debugging”ah ]”h"]”Œ debugging”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kôubeh}”(h]”Œthe-qoriq-dpaa-ethernet-driver”ah ]”h"]”Œthe qoriq dpaa ethernet driver”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”j­Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jN Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j) j& j4j1jwjtj¬j©jájÞj£j jVjSj! j uŒ nametypes”}”(j) ‰j4‰jw‰j¬‰já‰j£‰jV‰j! ‰uh}”(j& hÊj1j%jtj7j©jzjÞj¯j jäjSj¦j jYuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.