€•B»Œ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”ŒT/translations/zh_CN/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒT/translations/zh_TW/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒT/translations/it_IT/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒT/translations/ja_JP/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒT/translations/ko_KR/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒT/translations/pt_BR/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒT/translations/sp_SP/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver”Œ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³Œn/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rst”h´Kubh¶)�”}”(hŒ4This data file has been placed in the public domain.”h]”hŒ4This data file has been placed in the public domain.”…”�”}”hhÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³Œo/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txt”h´Kubh¶)�”}”(hŒ¸Derived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .”h]”hŒ¸Derived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .”…”�”}”hh×sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³hÖh´KubhŒsubstitution_definition”“”)�”}”(hŒ*.. |amp| unicode:: U+00026 .. AMPERSAND”h]”hŒ&”…”�”}”hhçsbah}”(h]”h ]”h"]”Œamp”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ+.. |apos| unicode:: U+00027 .. APOSTROPHE”h]”hŒ'”…”�”}”hhösbah}”(h]”h ]”h"]”Œapos”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ).. |ast| unicode:: U+0002A .. ASTERISK”h]”hŒ*”…”�”}”hjsbah}”(h]”h ]”h"]”Œast”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ+.. |brvbar| unicode:: U+000A6 .. BROKEN BAR”h]”hŒ¦”…”�”}”hjsbah}”(h]”h ]”h"]”Œbrvbar”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUS”h]”hŒ\”…”�”}”hj#sbah}”(h]”h ]”h"]”Œbsol”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ*.. |cent| unicode:: U+000A2 .. CENT SIGN”h]”hŒ¢”…”�”}”hj2sbah}”(h]”h ]”h"]”Œcent”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ&.. |colon| unicode:: U+0003A .. COLON”h]”hŒ:”…”�”}”hjAsbah}”(h]”h ]”h"]”Œcolon”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ&.. |comma| unicode:: U+0002C .. COMMA”h]”hŒ,”…”�”}”hjPsbah}”(h]”h ]”h"]”Œcomma”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ... |commat| unicode:: U+00040 .. COMMERCIAL AT”h]”hŒ@”…”�”}”hj_sbah}”(h]”h ]”h"]”Œcommat”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN”h]”hŒ©”…”�”}”hjnsbah}”(h]”h ]”h"]”Œcopy”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ... |curren| unicode:: U+000A4 .. CURRENCY SIGN”h]”hŒ¤”…”�”}”hj}sbah}”(h]”h ]”h"]”Œcurren”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROW”h]”hŒ↓”…”�”}”hjŒsbah}”(h]”h ]”h"]”Œdarr”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ,.. |deg| unicode:: U+000B0 .. DEGREE SIGN”h]”hŒ°”…”�”}”hj›sbah}”(h]”h ]”h"]”Œdeg”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ... |divide| unicode:: U+000F7 .. DIVISION SIGN”h]”hŒ÷”…”�”}”hjªsbah}”(h]”h ]”h"]”Œdivide”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ,.. |dollar| unicode:: U+00024 .. DOLLAR SIGN”h]”hŒ$”…”�”}”hj¹sbah}”(h]”h ]”h"]”Œdollar”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ,.. |equals| unicode:: U+0003D .. EQUALS SIGN”h]”hŒ=”…”�”}”hjÈsbah}”(h]”h ]”h"]”Œequals”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ1.. |excl| unicode:: U+00021 .. EXCLAMATION MARK”h]”hŒ!”…”�”}”hj×sbah}”(h]”h ]”h"]”Œexcl”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALF”h]”hŒ½”…”�”}”hjæsbah}”(h]”h ]”h"]”Œfrac12”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTER”h]”hŒ¼”…”�”}”hjõsbah}”(h]”h ]”h"]”Œfrac14”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTH”h]”hŒâ…›”…”�”}”hjsbah}”(h]”h ]”h"]”Œfrac18”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERS”h]”hŒ¾”…”�”}”hjsbah}”(h]”h ]”h"]”Œfrac34”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHS”h]”hŒâ…œ”…”�”}”hj"sbah}”(h]”h ]”h"]”Œfrac38”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHS”h]”hŒâ…�”…”�”}”hj1sbah}”(h]”h ]”h"]”Œfrac58”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHS”h]”hŒâ…ž”…”�”}”hj@sbah}”(h]”h ]”h"]”Œfrac78”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGN”h]”hŒ>”…”�”}”hjOsbah}”(h]”h ]”h"]”Œgt”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALF”h]”hŒ½”…”�”}”hj^sbah}”(h]”h ]”h"]”Œhalf”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ/.. |horbar| unicode:: U+02015 .. HORIZONTAL BAR”h]”hŒ―”…”�”}”hjmsbah}”(h]”h ]”h"]”Œhorbar”ah$]”h&]”uh1håh³hÖh´K!hhh²hubhæ)�”}”(hŒ'.. |hyphen| unicode:: U+02010 .. HYPHEN”h]”hŒâ€�”…”�”}”hj|sbah}”(h]”h ]”h"]”Œhyphen”ah$]”h&]”uh1håh³hÖh´K"hhh²hubhæ)�”}”(hŒ:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARK”h]”hŒ¡”…”�”}”hj‹sbah}”(h]”h ]”h"]”Œiexcl”ah$]”h&]”uh1håh³hÖh´K#hhh²hubhæ)�”}”(hŒ7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARK”h]”hŒ¿”…”�”}”hjšsbah}”(h]”h ]”h"]”Œiquest”ah$]”h&]”uh1håh³hÖh´K$hhh²hubhæ)�”}”(hŒJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARK”h]”hŒ«”…”�”}”hj©sbah}”(h]”h ]”h"]”Œlaquo”ah$]”h&]”uh1håh³hÖh´K%hhh²hubhæ)�”}”(hŒ0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROW”h]”hŒâ†�”…”�”}”hj¸sbah}”(h]”h ]”h"]”Œlarr”ah$]”h&]”uh1håh³hÖh´K&hhh²hubhæ)�”}”(hŒ3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKET”h]”hŒ{”…”�”}”hjÇsbah}”(h]”h ]”h"]”Œlcub”ah$]”h&]”uh1håh³hÖh´K'hhh²hubhæ)�”}”(hŒ;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARK”h]”hŒ“”…”�”}”hjÖsbah}”(h]”h ]”h"]”Œldquo”ah$]”h&]”uh1håh³hÖh´K(hhh²hubhæ)�”}”(hŒ).. |lowbar| unicode:: U+0005F .. LOW LINE”h]”hŒ_”…”�”}”hjåsbah}”(h]”h ]”h"]”Œlowbar”ah$]”h&]”uh1håh³hÖh´K)hhh²hubhæ)�”}”(hŒ1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESIS”h]”hŒ(”…”�”}”hjôsbah}”(h]”h ]”h"]”Œlpar”ah$]”h&]”uh1håh³hÖh´K*hhh²hubhæ)�”}”(hŒ4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKET”h]”hŒ[”…”�”}”hjsbah}”(h]”h ]”h"]”Œlsqb”ah$]”h&]”uh1håh³hÖh´K+hhh²hubhæ)�”}”(hŒ;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARK”h]”hŒ‘”…”�”}”hjsbah}”(h]”h ]”h"]”Œlsquo”ah$]”h&]”uh1håh³hÖh´K,hhh²hubhæ)�”}”(hŒ/.. |lt| unicode:: U+0003C .. LESS-THAN SIGN”h]”hŒ<”…”�”}”hj!sbah}”(h]”h ]”h"]”Œlt”ah$]”h&]”uh1håh³hÖh´K-hhh²hubhæ)�”}”(hŒ+.. |micro| unicode:: U+000B5 .. MICRO SIGN”h]”hŒµ”…”�”}”hj0sbah}”(h]”h ]”h"]”Œmicro”ah$]”h&]”uh1håh³hÖh´K.hhh²hubhæ)�”}”(hŒ+.. |middot| unicode:: U+000B7 .. MIDDLE DOT”h]”hŒ·”…”�”}”hj?sbah}”(h]”h ]”h"]”Œmiddot”ah$]”h&]”uh1håh³hÖh´K/hhh²hubhæ)�”}”(hŒ/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACE”h]”hŒ ”…”�”}”hjNsbah}”(h]”h ]”h"]”Œnbsp”ah$]”h&]”uh1håh³hÖh´K0hhh²hubhæ)�”}”(hŒ).. |not| unicode:: U+000AC .. NOT SIGN”h]”hŒ¬”…”�”}”hj]sbah}”(h]”h ]”h"]”Œnot”ah$]”h&]”uh1håh³hÖh´K1hhh²hubhæ)�”}”(hŒ,.. |num| unicode:: U+00023 .. NUMBER SIGN”h]”hŒ#”…”�”}”hjlsbah}”(h]”h ]”h"]”Œnum”ah$]”h&]”uh1håh³hÖh´K2hhh²hubhæ)�”}”(hŒ).. |ohm| unicode:: U+02126 .. OHM SIGN”h]”hŒΩ”…”�”}”hj{sbah}”(h]”h ]”h"]”Œohm”ah$]”h&]”uh1håh³hÖh´K3hhh²hubhæ)�”}”(hŒ;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATOR”h]”hŒª”…”�”}”hjŠsbah}”(h]”h ]”h"]”Œordf”ah$]”h&]”uh1håh³hÖh´K4hhh²hubhæ)�”}”(hŒ<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATOR”h]”hŒº”…”�”}”hj™sbah}”(h]”h ]”h"]”Œordm”ah$]”h&]”uh1håh³hÖh´K5hhh²hubhæ)�”}”(hŒ-.. |para| unicode:: U+000B6 .. PILCROW SIGN”h]”hŒ¶”…”�”}”hj¨sbah}”(h]”h ]”h"]”Œpara”ah$]”h&]”uh1håh³hÖh´K6hhh²hubhæ)�”}”(hŒ-.. |percnt| unicode:: U+00025 .. PERCENT SIGN”h]”hŒ%”…”�”}”hj·sbah}”(h]”h ]”h"]”Œpercnt”ah$]”h&]”uh1håh³hÖh´K7hhh²hubhæ)�”}”(hŒ*.. |period| unicode:: U+0002E .. FULL STOP”h]”hŒ.”…”�”}”hjÆsbah}”(h]”h ]”h"]”Œperiod”ah$]”h&]”uh1håh³hÖh´K8hhh²hubhæ)�”}”(hŒ*.. |plus| unicode:: U+0002B .. PLUS SIGN”h]”hŒ+”…”�”}”hjÕsbah}”(h]”h ]”h"]”Œplus”ah$]”h&]”uh1håh³hÖh´K9hhh²hubhæ)�”}”(hŒ0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGN”h]”hŒ±”…”�”}”hjäsbah}”(h]”h ]”h"]”Œplusmn”ah$]”h&]”uh1håh³hÖh´K:hhh²hubhæ)�”}”(hŒ+.. |pound| unicode:: U+000A3 .. POUND SIGN”h]”hŒ£”…”�”}”hjósbah}”(h]”h ]”h"]”Œpound”ah$]”h&]”uh1håh³hÖh´K;hhh²hubhæ)�”}”(hŒ... |quest| unicode:: U+0003F .. QUESTION MARK”h]”hŒ?”…”�”}”hjsbah}”(h]”h ]”h"]”Œquest”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROW”h]”hŒ→”…”�”}”hj/sbah}”(h]”h ]”h"]”Œrarr”ah$]”h&]”uh1håh³hÖh´K?hhh²hubhæ)�”}”(hŒ4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKET”h]”hŒ}”…”�”}”hj>sbah}”(h]”h ]”h"]”Œrcub”ah$]”h&]”uh1håh³hÖh´K@hhh²hubhæ)�”}”(hŒ<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARK”h]”hŒâ€�”…”�”}”hjMsbah}”(h]”h ]”h"]”Œrdquo”ah$]”h&]”uh1håh³hÖh´KAhhh²hubhæ)�”}”(hŒ0.. |reg| unicode:: U+000AE .. REGISTERED SIGN”h]”hŒ®”…”�”}”hj\sbah}”(h]”h ]”h"]”Œreg”ah$]”h&]”uh1håh³hÖh´KBhhh²hubhæ)�”}”(hŒ2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESIS”h]”hŒ)”…”�”}”hjksbah}”(h]”h ]”h"]”Œrpar”ah$]”h&]”uh1håh³hÖh´KChhh²hubhæ)�”}”(hŒ5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKET”h]”hŒ]”…”�”}”hjzsbah}”(h]”h ]”h"]”Œrsqb”ah$]”h&]”uh1håh³hÖh´KDhhh²hubhæ)�”}”(hŒ<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK”h]”hŒ’”…”�”}”hj‰sbah}”(h]”h ]”h"]”Œrsquo”ah$]”h&]”uh1håh³hÖh´KEhhh²hubhæ)�”}”(hŒ-.. |sect| unicode:: U+000A7 .. SECTION SIGN”h]”hŒ§”…”�”}”hj˜sbah}”(h]”h ]”h"]”Œsect”ah$]”h&]”uh1håh³hÖh´KFhhh²hubhæ)�”}”(hŒ*.. |semi| unicode:: U+0003B .. SEMICOLON”h]”hŒ;”…”�”}”hj§sbah}”(h]”h ]”h"]”Œsemi”ah$]”h&]”uh1håh³hÖh´KGhhh²hubhæ)�”}”(hŒ,.. |shy| unicode:: U+000AD .. SOFT HYPHEN”h]”hŒ­”…”�”}”hj¶sbah}”(h]”h ]”h"]”Œshy”ah$]”h&]”uh1håh³hÖh´KHhhh²hubhæ)�”}”(hŒ(.. |sol| unicode:: U+0002F .. SOLIDUS”h]”hŒ/”…”�”}”hjÅsbah}”(h]”h ]”h"]”Œsol”ah$]”h&]”uh1håh³hÖh´KIhhh²hubhæ)�”}”(hŒ,.. |sung| unicode:: U+0266A .. EIGHTH NOTE”h]”hŒ♪”…”�”}”hjÔsbah}”(h]”h ]”h"]”Œsung”ah$]”h&]”uh1håh³hÖh´KJhhh²hubhæ)�”}”(hŒ0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONE”h]”hŒ¹”…”�”}”hjãsbah}”(h]”h ]”h"]”Œsup1”ah$]”h&]”uh1håh³hÖh´KKhhh²hubhæ)�”}”(hŒ0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWO”h]”hŒ²”…”�”}”hjòsbah}”(h]”h ]”h"]”Œsup2”ah$]”h&]”uh1håh³hÖh´KLhhh²hubhæ)�”}”(hŒ2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREE”h]”hŒ³”…”�”}”hjsbah}”(h]”h ]”h"]”Œsup3”ah$]”h&]”uh1håh³hÖh´KMhhh²hubhæ)�”}”(hŒ4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGN”h]”hŒ×”…”�”}”hjsbah}”(h]”h ]”h"]”Œtimes”ah$]”h&]”uh1håh³hÖh´KNhhh²hubhæ)�”}”(hŒ0.. |trade| unicode:: U+02122 .. TRADE MARK SIGN”h]”hŒâ„¢”…”�”}”hjsbah}”(h]”h ]”h"]”Œtrade”ah$]”h&]”uh1håh³hÖh´KOhhh²hubhæ)�”}”(hŒ... |uarr| unicode:: U+02191 .. UPWARDS ARROW”h]”hŒ↑”…”�”}”hj.sbah}”(h]”h ]”h"]”Œuarr”ah$]”h&]”uh1håh³hÖh´KPhhh²hubhæ)�”}”(hŒ... |verbar| unicode:: U+0007C .. VERTICAL LINE”h]”hŒ|”…”�”}”hj=sbah}”(h]”h ]”h"]”Œverbar”ah$]”h&]”uh1håh³hÖh´KQhhh²hubhæ)�”}”(hŒ*.. |yen| unicode:: U+000A5 .. YEN SIGN ”h]”hŒÂ¥”…”�”}”hjLsbah}”(h]”h ]”h"]”Œyen”ah$]”h&]”uh1håh³hÖh´KRhhh²hubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒDPAA2 Switch driver”h]”hŒDPAA2 Switch driver”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]h²hh³hÇh´KubhŒ field_list”“”)�”}”(hhh]”hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒ Copyright”h]”hŒ Copyright”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jzhjwh³hÇh´KubhŒ field_body”“”)�”}”(hŒ|copy| 2021 NXP ”h]”hŒ paragraph”“”)�”}”(hŒ|copy| 2021 NXP”h]”(hŒ©”…”�”}”(hj’h²hh³Nh´NubhŒ 2021 NXP”…”�”}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1juh³hÇh´Khjrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj]h²hh³hÇh´Kubj‘)�”}”(hŒ¢The 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]”hŒ¢The 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.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K hj]h²hubj‘)�”}”(hŒçThe 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]”hŒçThe 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.”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Khj]h²hubj‘)�”}”(hŒOThe DPSW can have ports connected to DPNIs or to DPMACs for external access. ::”h]”hŒLThe DPSW can have ports connected to DPNIs or to DPMACs for external access.”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Khj]h²hubhŒ 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]”…”�”}”hjâsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´Khj]h²hubj\)�”}”(hhh]”(ja)�”}”(hŒCreating an Ethernet Switch”h]”hŒCreating an Ethernet Switch”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjðh²hh³hÇh´K$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).”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K&hjðh²hubj‘)�”}”(hŒpAt the moment, the dpaa2-switch driver imposes the following restrictions on the DPSW object that it will probe:”h]”hŒpAt the moment, the dpaa2-switch driver imposes the following restrictions on the DPSW object that it will probe:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K+hjðh²hubhŒ 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‘)�”}”(hŒà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. ::”h]”hŒÝ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.”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K.hj*ubjá)�”}”(hŒ[fsl_dpaa2_switch dpsw.0: The number of FDBs is lower than the number of ports, cannot probe”h]”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&]”hÅhÆuh1jàh³hÇh´K3hj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j(hj%ubj))�”}”(hX‚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 ”h]”(j‘)�”}”(hŒé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). ::”h]”hŒæ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).”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K5hjPubjá)�”}”(hŒŒ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]”hŒŒ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”…”�”}”hjbsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´K;hjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j(hj%ubj))�”}”(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‘)�”}”(hŒø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. ::”h]”hŒõ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.”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K>hjvubjá)�”}”(hŒDfsl_dpaa2_switch dpsw.0: Control Interface is disabled, cannot probe”h]”hŒDfsl_dpaa2_switch dpsw.0: Control Interface is disabled, cannot probe”…”�”}”hjˆsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´KDhjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j(hj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1j#h³hÇh´K.hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K.hjðh²hubj‘)�”}”(hŒsBesides the configuration of the actual DPSW object, the dpaa2-switch driver will need the following DPAA2 objects:”h]”hŒsBesides the configuration of the actual DPSW object, the dpaa2-switch driver will need the following DPAA2 objects:”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KFhjðh²hubj)�”}”(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))�”}”(hŒa1 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.”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KIhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¼ubj))�”}”(hŒf1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface. ”h]”j‘)�”}”(hŒe1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface.”h]”hŒe1 DPBP - A Buffer Pool is used for seeding buffers intended for the Rx path on the control interface.”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KLhj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¼ubj))�”}”(hŒÍ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‘)�”}”(hŒÌ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]”hŒÌ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.”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KOhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”j¢j£uh1j#h³hÇh´KIhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KIhjðh²hubeh}”(h]”Œcreating-an-ethernet-switch”ah ]”h"]”Œcreating an ethernet switch”ah$]”h&]”uh1j[hj]h²hh³hÇh´K$ubj\)�”}”(hhh]”(ja)�”}”(hŒSwitching features”h]”hŒSwitching features”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjh²hh³hÇh´KTubj‘)�”}”(hŒœThe driver supports the configuration of L2 forwarding rules in hardware for port bridging as well as standalone usage of the independent switch interfaces.”h]”hŒœThe driver supports the configuration of L2 forwarding rules in hardware for port bridging as well as standalone usage of the independent switch interfaces.”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KVhjh²hubj‘)�”}”(hŒ–The 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]”hŒ•The 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:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KYhjh²hubjá)�”}”(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”h]”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”…”�”}”hjHsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´K\hjh²hubj‘)�”}”(hŒeTopology 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 ”…”�”}”(hjVh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``stp_state 1``”h]”hŒ stp_state 1”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j^hjVubhŒ is used at bridge create”…”�”}”(hjVh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Kbhjh²hubjá)�”}”(hŒ>$ ip link add dev br0 type bridge vlan_filtering 1 stp_state 1”h]”hŒ>$ ip link add dev br0 type bridge vlan_filtering 1 stp_state 1”…”�”}”hjxsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´Kehjh²hubj‘)�”}”(hŒ3L2 FDB manipulation (add/delete/dump) is supported.”h]”hŒ3L2 FDB manipulation (add/delete/dump) is supported.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Kghjh²hubj‘)�”}”(hŒ×HW 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]”hŒÔHW 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.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Kihjh²hubjá)�”}”(hŒN$ bridge link set dev ethX learning off $ bridge link set dev ethX learning on”h]”hŒN$ bridge link set dev ethX learning off $ bridge link set dev ethX learning on”…”�”}”hj¢sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´Knhjh²hubj‘)�”}”(hŒqRestricting the unknown unicast and multicast flooding domain is supported, but not independently of each other::”h]”hŒpRestricting the unknown unicast and multicast flooding domain is supported, but not independently of each other:”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Kqhjh²hubjá)�”}”(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.”…”�”}”hj¾sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´Kthjh²hubj‘)�”}”(hŒVBroadcast flooding on a switch port can be disabled/enabled through the brport sysfs::”h]”hŒUBroadcast flooding on a switch port can be disabled/enabled through the brport sysfs:”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Kxhjh²hubjá)�”}”(hŒI$ echo 0 > /sys/bus/fsl-mc/devices/dpsw.Y/net/ethX/brport/broadcast_flood”h]”hŒI$ echo 0 > /sys/bus/fsl-mc/devices/dpsw.Y/net/ethX/brport/broadcast_flood”…”�”}”hjÚsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´Kzhjh²hubeh}”(h]”Œswitching-features”ah ]”h"]”Œswitching features”ah$]”h&]”uh1j[hj]h²hh³hÇh´KTubj\)�”}”(hhh]”(ja)�”}”(hŒOffloads”h]”hŒOffloads”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjðh²hh³hÇh´K}ubj\)�”}”(hhh]”(ja)�”}”(hŒ&Routing actions (redirect, trap, drop)”h]”hŒ&Routing actions (redirect, trap, drop)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hjh²hh³hÇh´K€ubj‘)�”}”(hŒ¸The 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]”hŒ¸The 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.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K‚hjh²hubj‘)�”}”(hŒ&The following flow keys are supported:”h]”hŒ&The following flow keys are supported:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K†hjh²hubj)�”}”(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))�”}”(hŒEthernet: dst_mac/src_mac”h]”j‘)�”}”(hj7h]”hŒEthernet: dst_mac/src_mac”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Kˆhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj2ubj))�”}”(hŒ IPv4: dst_ip/src_ip/ip_proto/tos”h]”j‘)�”}”(hjNh]”hŒ IPv4: dst_ip/src_ip/ip_proto/tos”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K‰hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj2ubj))�”}”(hŒ*VLAN: vlan_id/vlan_prio/vlan_tpid/vlan_dei”h]”j‘)�”}”(hjeh]”hŒ*VLAN: vlan_id/vlan_prio/vlan_tpid/vlan_dei”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KŠhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj2ubj))�”}”(hŒL4: dst_port/src_port ”h]”j‘)�”}”(hŒL4: dst_port/src_port”h]”hŒL4: dst_port/src_port”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K‹hjzubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj2ubeh}”(h]”h ]”h"]”h$]”h&]”j¢j£uh1j#h³hÇh´Kˆhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kˆhjh²hubj‘)�”}”(hŒXAlso, the matchall filter can be used to redirect the entire traffic received on a port.”h]”hŒXAlso, the matchall filter can be used to redirect the entire traffic received on a port.”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K�hjh²hubj‘)�”}”(hŒ1As per flow actions, the following are supported:”h]”hŒ1As per flow actions, the following are supported:”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K�hjh²hubj)�”}”(hŒ'* drop * mirred egress redirect * trap ”h]”j$)�”}”(hhh]”(j))�”}”(hŒdrop”h]”j‘)�”}”(hjÃh]”hŒdrop”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K’hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¾ubj))�”}”(hŒmirred egress redirect”h]”j‘)�”}”(hjÚh]”hŒmirred egress redirect”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K“hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¾ubj))�”}”(hŒtrap ”h]”j‘)�”}”(hŒtrap”h]”hŒtrap”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K”hjïubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj¾ubeh}”(h]”h ]”h"]”h$]”h&]”j¢j£uh1j#h³hÇh´K’hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K’hjh²hubj‘)�”}”(hŒIEach ACL entry (filter) can be setup with only one of the listed actions.”h]”hŒIEach ACL entry (filter) can be setup with only one of the listed actions.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K–hjh²hubj‘)�”}”(hŒSExample 1: send frames received on eth4 with a SA of 00:01:02:03:04:05 to the CPU::”h]”hŒRExample 1: send frames received on eth4 with a SA of 00:01:02:03:04:05 to the CPU:”…”�”}”(hj! h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K™hjh²hubjá)�”}”(hŒt$ 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”h]”hŒt$ 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&]”hÅhÆuh1jàh³hÇh´Kœhjh²hubj‘)�”}”(hŒCExample 2: drop frames received on eth4 with VID 100 and PCP of 3::”h]”hŒBExample 2: drop frames received on eth4 with VID 100 and PCP of 3:”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KŸhjh²hubjá)�”}”(hŒc$ tc filter add dev eth4 ingress protocol 802.1q flower skip_sw vlan_id 100 vlan_prio 3 action drop”h]”hŒc$ tc filter add dev eth4 ingress protocol 802.1q flower skip_sw vlan_id 100 vlan_prio 3 action drop”…”�”}”hjK sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´K¡hjh²hubj‘)�”}”(hŒ9Example 3: redirect all frames received on eth4 to eth1::”h]”hŒ8Example 3: redirect all frames received on eth4 to eth1:”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K£hjh²hubjá)�”}”(hŒP$ tc filter add dev eth4 ingress matchall action mirred egress redirect dev eth1”h]”hŒP$ tc filter add dev eth4 ingress matchall action mirred egress redirect dev eth1”…”�”}”hjg sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´K¥hjh²hubj‘)�”}”(hŒCExample 4: Use a single shared filter block on both eth5 and eth6::”h]”hŒBExample 4: Use a single shared filter block on both eth5 and eth6:”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K§hjh²hubjá)�”}”(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”h]”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”…”�”}”hjƒ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jàh³hÇh´K©hjh²hubj\)�”}”(hhh]”(ja)�”}”(hŒ Mirroring”h]”hŒ Mirroring”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj‘ h²hh³hÇh´K±ubj‘)�”}”(hŒ†The DPAA2 switch supports only per port mirroring and per VLAN mirroring. Adding mirroring filters in shared blocks is also supported.”h]”hŒ†The DPAA2 switch supports only per port mirroring and per VLAN mirroring. Adding mirroring filters in shared blocks is also supported.”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K³hj‘ h²hubj‘)�”}”(hŒ¸When 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]”hŒ¿When 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° h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K¶hj‘ h²hubjá)�”}”(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”h]”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&]”hÅhÆuh1jàh³hÇh´Kºhj‘ h²hubj‘)�”}”(hŒáIf 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]”hŒèIf 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Ì h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K¿hj‘ h²hubjá)�”}”(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”h]”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&]”hÅhÆuh1jàh³hÇh´KÃhj‘ h²hubj‘)�”}”(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è h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KÎhj‘ h²hubj‘)�”}”(hŒ•The 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]”hŒœThe 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ö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KÓhj‘ h²hubjá)�”}”(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”h]”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&]”hÅhÆuh1jàh³hÇh´KÖhj‘ h²hubeh}”(h]”Œ mirroring”ah ]”h"]”Œ mirroring”ah$]”h&]”uh1j[hjh²hh³hÇh´K±ubeh}”(h]”Œ"routing-actions-redirect-trap-drop”ah ]”h"]”Œ&routing actions (redirect, trap, drop)”ah$]”h&]”uh1j[hjðh²hh³hÇh´K€ubeh}”(h]”Œoffloads”ah ]”h"]”Œoffloads”ah$]”h&]”uh1j[hj]h²hh³hÇh´K}ubeh}”(h]”Œdpaa2-switch-driver”ah ]”h"]”Œdpaa2 switch driver”ah$]”h&]”uh1j[hhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(j`NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œ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”jU Œ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”}”(hóhçjhöjjj jj/j#j>j2jMjAj\jPjkj_jzjnj‰j}j˜jŒj§j›j¶jªjÅj¹jÔjÈjãj×jòjæjjõjjjjj.j"j=j1jLj@j[jOjjj^jyjmjˆj|j—j‹j¦jšjµj©jÄj¸jÓjÇjâjÖjñjåjjôjjjjj-j!j<j0jKj?jZjNjij]jxjlj‡j{j–jŠj¥j™j´j¨jÃj·jÒjÆjájÕjðjäjÿjójjjjj,j j;j/jJj>jYjMjhj\jwjkj†jzj•j‰j¤j˜j³j§jÂj¶jÑjÅjàjÔjïjãjþjòj jjjj+jj:j.jIj=jXjLuŒsubstitution_names”}”(Œamp”hóŒapos”jŒast”jŒbrvbar”j Œbsol”j/Œcent”j>Œcolon”jMŒcomma”j\Œcommat”jkŒcopy”jzŒcurren”j‰Œdarr”j˜Œdeg”j§Œdivide”j¶Œdollar”jÅŒequals”jÔŒexcl”jãŒfrac12”jòŒfrac14”jŒfrac18”jŒfrac34”jŒfrac38”j.Œfrac58”j=Œfrac78”jLŒgt”j[Œhalf”jjŒhorbar”jyŒhyphen”jˆŒiexcl”j—Œiquest”j¦Œlaquo”jµŒlarr”jÄŒlcub”jÓŒldquo”jâŒlowbar”jñŒlpar”jŒlsqb”jŒlsquo”jŒlt”j-Œmicro”j<Œmiddot”jKŒnbsp”jZŒnot”jiŒnum”jxŒohm”j‡Œordf”j–Œordm”j¥Œpara”j´Œpercnt”jÃŒperiod”jÒŒplus”jáŒplusmn”jðŒpound”jÿŒquest”jŒquot”jŒraquo”j,Œrarr”j;Œrcub”jJŒrdquo”jYŒreg”jhŒrpar”jwŒrsqb”j†Œrsquo”j•Œsect”j¤Œsemi”j³Œshy”jÂŒsol”jÑŒsung”jàŒsup1”jïŒsup2”jþŒsup3”j Œtimes”jŒtrade”j+Œuarr”j:Œverbar”jIŒyen”jXuŒrefnames”}”Œrefids”}”Œnameids”}”(j/ j, jjjíjêj' j$ j j j j uŒ nametypes”}”(j/ ‰j‰jí‰j' ‰j ‰j ‰uh}”(j, j]jjðjêjj$ jðj jj j‘ uŒ 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”]”hŒsystem_message”“”)�”}”(hhh]”j‘)�”}”(hŒfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.”h]”hŒhPossible title underline, too short for the title. Treating it as ordinary text because it’s so short.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œline”KŒsource”hÇuh1j hj]h²hh³hÇh´KubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”ŒRDocumentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rst”(NNNNt”†”aŒ decoration”Nh²hub.