0sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetT/translations/zh_CN/networking/device_drivers/ethernet/freescale/dpaa2/switch-drivermodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetT/translations/zh_TW/networking/device_drivers/ethernet/freescale/dpaa2/switch-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetT/translations/it_IT/networking/device_drivers/ethernet/freescale/dpaa2/switch-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetT/translations/ja_JP/networking/device_drivers/ethernet/freescale/dpaa2/switch-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetT/translations/ko_KR/networking/device_drivers/ethernet/freescale/dpaa2/switch-drivermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetT/translations/sp_SP/networking/device_drivers/ethernet/freescale/dpaa2/switch-drivermodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhn/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rsthKubh)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hhsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hjsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hj-sbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj<sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hjKsbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjZsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjisbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjxsbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hj,sbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hj;sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjJsbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjYsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjhsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjwsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hj sbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hjsbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hj+sbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hj:sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hjIsbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjXsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjgsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjvsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hjsbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hj*sbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hj9sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hjHsbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjWsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjfsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjusbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjsbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hj sbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hjsbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hj)sbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hj8sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(hDPAA2 Switch driverh]hDPAA2 Switch driver}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhhhKubh field_list)}(hhh]hfield)}(hhh](h field_name)}(h Copyrighth]h Copyright}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchhhKubh field_body)}(h|copy| 2021 NXP h]h paragraph)}(h|copy| 2021 NXPh](h©}(hj~hhhNhNubh 2021 NXP}(hj~hhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhKhjxubah}(h]h ]h"]h$]h&]uh1jvhjcubeh}(h]h ]h"]h$]h&]uh1jahhhKhj^hhubah}(h]h ]h"]h$]h&]uh1j\hjIhhhhhKubj})}(hThe DPAA2 Switch driver probes on the Datapath Switch (DPSW) object which can be instantiated on the following DPAA2 SoCs and their variants: LS2088A and LX2160A.h]hThe DPAA2 Switch driver probes on the Datapath Switch (DPSW) object which can be instantiated on the following DPAA2 SoCs and their variants: LS2088A and LX2160A.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhK hjIhhubj})}(hThe driver uses the switch device driver model and exposes each switch port as a network interface, which can be included in a bridge or used as a standalone interface. Traffic switched between ports is offloaded into the hardware.h]hThe driver uses the switch device driver model and exposes each switch port as a network interface, which can be included in a bridge or used as a standalone interface. Traffic switched between ports is offloaded into the hardware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjIhhubj})}(hOThe DPSW can have ports connected to DPNIs or to DPMACs for external access. ::h]hLThe DPSW can have ports connected to DPNIs or to DPMACs for external access.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjIhhubh literal_block)}(hXd [ethA] [ethB] [ethC] [ethD] [ethE] [ethF] : : : : : : : : : : : : [dpaa2-eth] [dpaa2-eth] [ dpaa2-switch ] : : : : : : kernel ============================================================================= : : : : : : hardware [DPNI] [DPNI] [============= DPSW =================] | | | | | | | ---------- | [DPMAC] [DPMAC] ------------------------------- | | | | [PHY] [PHY]h]hXd [ethA] [ethB] [ethC] [ethD] [ethE] [ethF] : : : : : : : : : : : : [dpaa2-eth] [dpaa2-eth] [ dpaa2-switch ] : : : : : : kernel ============================================================================= : : : : : : hardware [DPNI] [DPNI] [============= DPSW =================] | | | | | | | ---------- | [DPMAC] [DPMAC] ------------------------------- | | | | [PHY] [PHY]}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjIhhubjH)}(hhh](jM)}(hCreating an Ethernet Switchh]hCreating an Ethernet Switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK$ubj})}(hXThe dpaa2-switch driver probes on DPSW devices found on the fsl-mc bus. These devices can be either created statically through the boot time configuration file - DataPath Layout (DPL) - or at runtime using the DPAA2 object APIs (incorporated already into the restool userspace tool).h]hXThe dpaa2-switch driver probes on DPSW devices found on the fsl-mc bus. These devices can be either created statically through the boot time configuration file - DataPath Layout (DPL) - or at runtime using the DPAA2 object APIs (incorporated already into the restool userspace tool).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhK&hjhhubj})}(hpAt the moment, the dpaa2-switch driver imposes the following restrictions on the DPSW object that it will probe:h]hpAt the moment, the dpaa2-switch driver imposes the following restrictions on the DPSW object that it will probe:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhK+hjhhubh block_quote)}(hX/* The minimum number of FDBs should be at least equal to the number of switch interfaces. This is necessary so that separation of switch ports can be done, ie when not under a bridge, each switch port will have its own FDB. :: fsl_dpaa2_switch dpsw.0: The number of FDBs is lower than the number of ports, cannot probe * Both the broadcast and flooding configuration should be per FDB. This enables the driver to restrict the broadcast and flooding domains of each FDB depending on the switch ports that are sharing it (aka are under the same bridge). :: fsl_dpaa2_switch dpsw.0: Flooding domain is not per FDB, cannot probe fsl_dpaa2_switch dpsw.0: Broadcast domain is not per FDB, cannot probe * The control interface of the switch should not be disabled (DPSW_OPT_CTRL_IF_DIS not passed as a create time option). Without the control interface, the driver is not capable to provide proper Rx/Tx traffic support on the switch port netdevices. :: fsl_dpaa2_switch dpsw.0: Control Interface is disabled, cannot probe h]h bullet_list)}(hhh](h list_item)}(hXCThe minimum number of FDBs should be at least equal to the number of switch interfaces. This is necessary so that separation of switch ports can be done, ie when not under a bridge, each switch port will have its own FDB. :: fsl_dpaa2_switch dpsw.0: The number of FDBs is lower than the number of ports, cannot probe h](j})}(hThe minimum number of FDBs should be at least equal to the number of switch interfaces. This is necessary so that separation of switch ports can be done, ie when not under a bridge, each switch port will have its own FDB. ::h]hThe minimum number of FDBs should be at least equal to the number of switch interfaces. This is necessary so that separation of switch ports can be done, ie when not under a bridge, each switch port will have its own FDB.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhK.hjubj)}(h[fsl_dpaa2_switch dpsw.0: The number of FDBs is lower than the number of ports, cannot probeh]h[fsl_dpaa2_switch dpsw.0: The number of FDBs is lower than the number of ports, cannot probe}hj(sbah}(h]h ]h"]h$]h&]hhuh1jhhhK3hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hXBoth the broadcast and flooding configuration should be per FDB. This enables the driver to restrict the broadcast and flooding domains of each FDB depending on the switch ports that are sharing it (aka are under the same bridge). :: fsl_dpaa2_switch dpsw.0: Flooding domain is not per FDB, cannot probe fsl_dpaa2_switch dpsw.0: Broadcast domain is not per FDB, cannot probe h](j})}(hBoth the broadcast and flooding configuration should be per FDB. This enables the driver to restrict the broadcast and flooding domains of each FDB depending on the switch ports that are sharing it (aka are under the same bridge). ::h]hBoth the broadcast and flooding configuration should be per FDB. This enables the driver to restrict the broadcast and flooding domains of each FDB depending on the switch ports that are sharing it (aka are under the same bridge).}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhK5hj<ubj)}(hfsl_dpaa2_switch dpsw.0: Flooding domain is not per FDB, cannot probe fsl_dpaa2_switch dpsw.0: Broadcast domain is not per FDB, cannot probeh]hfsl_dpaa2_switch dpsw.0: Flooding domain is not per FDB, cannot probe fsl_dpaa2_switch dpsw.0: Broadcast domain is not per FDB, cannot probe}hjNsbah}(h]h ]h"]h$]h&]hhuh1jhhhK;hj<ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hXDThe control interface of the switch should not be disabled (DPSW_OPT_CTRL_IF_DIS not passed as a create time option). Without the control interface, the driver is not capable to provide proper Rx/Tx traffic support on the switch port netdevices. :: fsl_dpaa2_switch dpsw.0: Control Interface is disabled, cannot probe h](j})}(hThe control interface of the switch should not be disabled (DPSW_OPT_CTRL_IF_DIS not passed as a create time option). Without the control interface, the driver is not capable to provide proper Rx/Tx traffic support on the switch port netdevices. ::h]hThe control interface of the switch should not be disabled (DPSW_OPT_CTRL_IF_DIS not passed as a create time option). Without the control interface, the driver is not capable to provide proper Rx/Tx traffic support on the switch port netdevices.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhK>hjbubj)}(hDfsl_dpaa2_switch dpsw.0: Control Interface is disabled, cannot probeh]hDfsl_dpaa2_switch dpsw.0: Control Interface is disabled, cannot probe}hjtsbah}(h]h ]h"]h$]h&]hhuh1jhhhKDhjbubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhK.hj ubah}(h]h ]h"]h$]h&]uh1j hhhK.hjhhubj})}(hsBesides the configuration of the actual DPSW object, the dpaa2-switch driver will need the following DPAA2 objects:h]hsBesides the configuration of the actual DPSW object, the dpaa2-switch driver will need the following DPAA2 objects:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKFhjhhubj )}(hX* 1 DPMCP - A Management Command Portal object is needed for any interaction with the MC firmware. * 1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface. * Access to at least one DPIO object (Software Portal) is needed for any enqueue/dequeue operation to be performed on the control interface queues. The DPIO object will be shared, no need for a private one. h]j)}(hhh](j)}(ha1 DPMCP - A Management Command Portal object is needed for any interaction with the MC firmware. h]j})}(h`1 DPMCP - A Management Command Portal object is needed for any interaction with the MC firmware.h]h`1 DPMCP - A Management Command Portal object is needed for any interaction with the MC firmware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKIhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hf1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface. h]j})}(he1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface.h]he1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKLhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hAccess to at least one DPIO object (Software Portal) is needed for any enqueue/dequeue operation to be performed on the control interface queues. The DPIO object will be shared, no need for a private one. h]j})}(hAccess to at least one DPIO object (Software Portal) is needed for any enqueue/dequeue operation to be performed on the control interface queues. The DPIO object will be shared, no need for a private one.h]hAccess to at least one DPIO object (Software Portal) is needed for any enqueue/dequeue operation to be performed on the control interface queues. The DPIO object will be shared, no need for a private one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKOhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKIhjubah}(h]h ]h"]h$]h&]uh1j hhhKIhjhhubeh}(h]creating-an-ethernet-switchah ]h"]creating an ethernet switchah$]h&]uh1jGhjIhhhhhK$ubjH)}(hhh](jM)}(hSwitching featuresh]hSwitching features}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKTubj})}(hThe driver supports the configuration of L2 forwarding rules in hardware for port bridging as well as standalone usage of the independent switch interfaces.h]hThe driver supports the configuration of L2 forwarding rules in hardware for port bridging as well as standalone usage of the independent switch interfaces.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKVhjhhubj})}(hThe hardware is not configurable with respect to VLAN awareness, thus any DPAA2 switch port should be used only in usecases with a VLAN aware bridge::h]hThe hardware is not configurable with respect to VLAN awareness, thus any DPAA2 switch port should be used only in usecases with a VLAN aware bridge:}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKYhjhhubj)}(h$ ip link add dev br0 type bridge vlan_filtering 1 $ ip link add dev br1 type bridge $ ip link set dev ethX master br1 Error: fsl_dpaa2_switch: Cannot join a VLAN-unaware bridgeh]h$ ip link add dev br0 type bridge vlan_filtering 1 $ ip link add dev br1 type bridge $ ip link set dev ethX master br1 Error: fsl_dpaa2_switch: Cannot join a VLAN-unaware bridge}hj4sbah}(h]h ]h"]h$]h&]hhuh1jhhhK\hjhhubj})}(heTopology and loop detection through STP is supported when ``stp_state 1`` is used at bridge create ::h](h:Topology and loop detection through STP is supported when }(hjBhhhNhNubhliteral)}(h``stp_state 1``h]h stp_state 1}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jJhjBubh is used at bridge create}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhKbhjhhubj)}(h>$ ip link add dev br0 type bridge vlan_filtering 1 stp_state 1h]h>$ ip link add dev br0 type bridge vlan_filtering 1 stp_state 1}hjdsbah}(h]h ]h"]h$]h&]hhuh1jhhhKehjhhubj})}(h3L2 FDB manipulation (add/delete/dump) is supported.h]h3L2 FDB manipulation (add/delete/dump) is supported.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKghjhhubj})}(hHW FDB learning can be configured on each switch port independently through bridge commands. When the HW learning is disabled, a fast age procedure will be run and any previously learnt addresses will be removed. ::h]hHW FDB learning can be configured on each switch port independently through bridge commands. When the HW learning is disabled, a fast age procedure will be run and any previously learnt addresses will be removed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKihjhhubj)}(hN$ bridge link set dev ethX learning off $ bridge link set dev ethX learning onh]hN$ bridge link set dev ethX learning off $ bridge link set dev ethX learning on}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKnhjhhubj})}(hqRestricting the unknown unicast and multicast flooding domain is supported, but not independently of each other::h]hpRestricting the unknown unicast and multicast flooding domain is supported, but not independently of each other:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKqhjhhubj)}(h$ ip link set dev ethX type bridge_slave flood off mcast_flood off $ ip link set dev ethX type bridge_slave flood off mcast_flood on Error: fsl_dpaa2_switch: Cannot configure multicast flooding independently of unicast.h]h$ ip link set dev ethX type bridge_slave flood off mcast_flood off $ ip link set dev ethX type bridge_slave flood off mcast_flood on Error: fsl_dpaa2_switch: Cannot configure multicast flooding independently of unicast.}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKthjhhubj})}(hVBroadcast flooding on a switch port can be disabled/enabled through the brport sysfs::h]hUBroadcast flooding on a switch port can be disabled/enabled through the brport sysfs:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKxhjhhubj)}(hI$ echo 0 > /sys/bus/fsl-mc/devices/dpsw.Y/net/ethX/brport/broadcast_floodh]hI$ echo 0 > /sys/bus/fsl-mc/devices/dpsw.Y/net/ethX/brport/broadcast_flood}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKzhjhhubeh}(h]switching-featuresah ]h"]switching featuresah$]h&]uh1jGhjIhhhhhKTubjH)}(hhh](jM)}(hOffloadsh]hOffloads}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK}ubjH)}(hhh](jM)}(h&Routing actions (redirect, trap, drop)h]h&Routing actions (redirect, trap, drop)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubj})}(hThe DPAA2 switch is able to offload flow-based redirection of packets making use of ACL tables. Shared filter blocks are supported by sharing a single ACL table between multiple ports.h]hThe DPAA2 switch is able to offload flow-based redirection of packets making use of ACL tables. Shared filter blocks are supported by sharing a single ACL table between multiple ports.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj})}(h&The following flow keys are supported:h]h&The following flow keys are supported:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj )}(h* Ethernet: dst_mac/src_mac * IPv4: dst_ip/src_ip/ip_proto/tos * VLAN: vlan_id/vlan_prio/vlan_tpid/vlan_dei * L4: dst_port/src_port h]j)}(hhh](j)}(hEthernet: dst_mac/src_mach]j})}(hj#h]hEthernet: dst_mac/src_mac}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h IPv4: dst_ip/src_ip/ip_proto/tosh]j})}(hj:h]h IPv4: dst_ip/src_ip/ip_proto/tos}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj8ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h*VLAN: vlan_id/vlan_prio/vlan_tpid/vlan_deih]j})}(hjQh]h*VLAN: vlan_id/vlan_prio/vlan_tpid/vlan_dei}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjOubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hL4: dst_port/src_port h]j})}(hL4: dst_port/src_porth]hL4: dst_port/src_port}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjfubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j hhhKhjhhubj})}(hXAlso, the matchall filter can be used to redirect the entire traffic received on a port.h]hXAlso, the matchall filter can be used to redirect the entire traffic received on a port.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj})}(h1As per flow actions, the following are supported:h]h1As per flow actions, the following are supported:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj )}(h'* drop * mirred egress redirect * trap h]j)}(hhh](j)}(hdroph]j})}(hjh]hdrop}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hmirred egress redirecth]j})}(hjh]hmirred egress redirect}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(htrap h]j})}(htraph]htrap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j hhhKhjhhubj})}(hIEach ACL entry (filter) can be setup with only one of the listed actions.h]hIEach ACL entry (filter) can be setup with only one of the listed actions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj})}(hSExample 1: send frames received on eth4 with a SA of 00:01:02:03:04:05 to the CPU::h]hRExample 1: send frames received on eth4 with a SA of 00:01:02:03:04:05 to the CPU:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj)}(ht$ tc qdisc add dev eth4 clsact $ tc filter add dev eth4 ingress flower src_mac 00:01:02:03:04:05 skip_sw action traph]ht$ tc qdisc add dev eth4 clsact $ tc filter add dev eth4 ingress flower src_mac 00:01:02:03:04:05 skip_sw action trap}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubj})}(hCExample 2: drop frames received on eth4 with VID 100 and PCP of 3::h]hBExample 2: drop frames received on eth4 with VID 100 and PCP of 3:}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj)}(hc$ tc filter add dev eth4 ingress protocol 802.1q flower skip_sw vlan_id 100 vlan_prio 3 action droph]hc$ tc filter add dev eth4 ingress protocol 802.1q flower skip_sw vlan_id 100 vlan_prio 3 action drop}hj7 sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubj})}(h9Example 3: redirect all frames received on eth4 to eth1::h]h8Example 3: redirect all frames received on eth4 to eth1:}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj)}(hP$ tc filter add dev eth4 ingress matchall action mirred egress redirect dev eth1h]hP$ tc filter add dev eth4 ingress matchall action mirred egress redirect dev eth1}hjS sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubj})}(hCExample 4: Use a single shared filter block on both eth5 and eth6::h]hBExample 4: Use a single shared filter block on both eth5 and eth6:}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhjhhubj)}(hX=$ tc qdisc add dev eth5 ingress_block 1 clsact $ tc qdisc add dev eth6 ingress_block 1 clsact $ tc filter add block 1 ingress flower dst_mac 00:01:02:03:04:04 skip_sw \ action trap $ tc filter add block 1 ingress protocol ipv4 flower src_ip 192.168.1.1 skip_sw \ action mirred egress redirect dev eth3h]hX=$ tc qdisc add dev eth5 ingress_block 1 clsact $ tc qdisc add dev eth6 ingress_block 1 clsact $ tc filter add block 1 ingress flower dst_mac 00:01:02:03:04:04 skip_sw \ action trap $ tc filter add block 1 ingress protocol ipv4 flower src_ip 192.168.1.1 skip_sw \ action mirred egress redirect dev eth3}hjo sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubjH)}(hhh](jM)}(h Mirroringh]h Mirroring}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj} hhhhhKubj})}(hThe DPAA2 switch supports only per port mirroring and per VLAN mirroring. Adding mirroring filters in shared blocks is also supported.h]hThe DPAA2 switch supports only per port mirroring and per VLAN mirroring. Adding mirroring filters in shared blocks is also supported.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj} hhubj})}(hWhen using the tc-flower classifier with the 802.1q protocol, only the ''vlan_id'' key will be accepted. Mirroring based on any other fields from the 802.1q protocol will be rejected::h]hWhen using the tc-flower classifier with the 802.1q protocol, only the ‘’vlan_id’’ key will be accepted. Mirroring based on any other fields from the 802.1q protocol will be rejected:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj} hhubj)}(hX$ tc qdisc add dev eth8 ingress_block 1 clsact $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_prio 3 action mirred egress mirror dev eth6 Error: fsl_dpaa2_switch: Only matching on VLAN ID supported. We have an error talking to the kernelh]hX$ tc qdisc add dev eth8 ingress_block 1 clsact $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_prio 3 action mirred egress mirror dev eth6 Error: fsl_dpaa2_switch: Only matching on VLAN ID supported. We have an error talking to the kernel}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj} hhubj})}(hIf a mirroring VLAN filter is requested on a port, the VLAN must to be installed on the switch port in question either using ''bridge'' or by creating a VLAN upper device if the switch port is used as a standalone interface::h]hIf a mirroring VLAN filter is requested on a port, the VLAN must to be installed on the switch port in question either using ‘’bridge’’ or by creating a VLAN upper device if the switch port is used as a standalone interface:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj} hhubj)}(hX3$ tc qdisc add dev eth8 ingress_block 1 clsact $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6 Error: VLAN must be installed on the switch port. We have an error talking to the kernel $ bridge vlan add vid 200 dev eth8 $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6 $ ip link add link eth8 name eth8.200 type vlan id 200 $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6h]hX3$ tc qdisc add dev eth8 ingress_block 1 clsact $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6 Error: VLAN must be installed on the switch port. We have an error talking to the kernel $ bridge vlan add vid 200 dev eth8 $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6 $ ip link add link eth8 name eth8.200 type vlan id 200 $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj} hhubj})}(hX Also, it should be noted that the mirrored traffic will be subject to the same egress restrictions as any other traffic. This means that when a mirrored packet will reach the mirror port, if the VLAN found in the packet is not installed on the port it will get dropped.h]hX Also, it should be noted that the mirrored traffic will be subject to the same egress restrictions as any other traffic. This means that when a mirrored packet will reach the mirror port, if the VLAN found in the packet is not installed on the port it will get dropped.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj} hhubj})}(hThe DPAA2 switch supports only a single mirroring destination, thus multiple mirror rules can be installed but their ''to'' port has to be the same::h]hThe DPAA2 switch supports only a single mirroring destination, thus multiple mirror rules can be installed but their ‘’to’’ port has to be the same:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj} hhubj)}(hXD$ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6 $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 100 action mirred egress mirror dev eth7 Error: fsl_dpaa2_switch: Multiple mirror ports not supported. We have an error talking to the kernelh]hXD$ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 200 action mirred egress mirror dev eth6 $ tc filter add block 1 ingress protocol 802.1q flower skip_sw vlan_id 100 action mirred egress mirror dev eth7 Error: fsl_dpaa2_switch: Multiple mirror ports not supported. We have an error talking to the kernel}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj} hhubeh}(h] mirroringah ]h"] mirroringah$]h&]uh1jGhjhhhhhKubeh}(h]"routing-actions-redirect-trap-dropah ]h"]&routing actions (redirect, trap, drop)ah$]h&]uh1jGhjhhhhhKubeh}(h]offloadsah ]h"]offloadsah$]h&]uh1jGhjIhhhhhK}ubeh}(h]dpaa2-switch-driverah ]h"]dpaa2 switch driverah$]h&]uh1jGhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jLN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjA error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}(hhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)jDj8usubstitution_names}(amphߌaposhasthbrvbarj bsoljcentj*colonj9commajHcommatjWcopyjfcurrenjudarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34j frac38jfrac58j)frac78j8gtjGhalfjVhorbarjehyphenjtiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquoj ltjmicroj(middotj7nbspjFnotjUnumjdohmjsordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotj raquojrarrj'rcubj6rdquojEregjTrparjcrsqbjrrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrj&verbarj5yenjDurefnames}refids}nameids}(j j jjjjj j j j j j u nametypes}(j jjj j j uh}(j jIjjjjj jj jj j} u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]hsystem_message)}(hhh]j})}(hfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.h]hhPossible title underline, too short for the title. Treating it as ordinary text because it’s so short.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hj ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineKsourcehuh1j hjIhhhhhKubatransform_messages] transformerN include_log]RDocumentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rst(NNNNta decorationNhhub.