6Hsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget0/translations/zh_CN/networking/devlink/netdevsimmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/zh_TW/networking/devlink/netdevsimmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/it_IT/networking/devlink/netdevsimmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ja_JP/networking/devlink/netdevsimmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ko_KR/networking/devlink/netdevsimmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/sp_SP/networking/devlink/netdevsimmodnameN 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:spacepreserveuh1hhhhhhJ/var/lib/git/docbuild/linux/Documentation/networking/devlink/netdevsim.rsthKubhsection)}(hhh](htitle)}(hnetdevsim devlink supporth]hnetdevsim devlink support}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h^This document describes the ``devlink`` features supported by the ``netdevsim`` device driver.h](hThis document describes the }(hhhhhNhNubhliteral)}(h ``devlink``h]hdevlink}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh features supported by the }(hhhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh device driver.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Parametersh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubhtable)}(hhh](h)}(hGeneric parameters implementedh]hGeneric parameters implemented}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK2uh1j(hj%ubj))}(hhh]h}(h]h ]h"]h$]h&]j3K2uh1j(hj%ubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hNameh]hName}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjIubah}(h]h ]h"]h$]h&]uh1jGhjDubjH)}(hhh]h)}(hModeh]hMode}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1jGhjDubeh}(h]h ]h"]h$]h&]uh1jBhj?ubjC)}(hhh](jH)}(hhh]h)}(h ``max_macs``h]h)}(hjh]hmax_macs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jGhj}ubjH)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jGhj}ubeh}(h]h ]h"]h$]h&]uh1jBhj?ubeh}(h]h ]h"]h$]h&]uh1j=hj%ubeh}(h]h ]h"]h$]h&]colsKuh1j#hjubeh}(h]id1ah ]h"]h$]h&]uh1jhhhhhNhNubh)}(hRThe ``netdevsim`` driver also implements the following driver-specific parameters.h](hThe }(hjhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhA driver also implements the following driver-specific parameters.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubj)}(hhh](h)}(h&Driver-specific parameters implementedh]h&Driver-specific parameters implemented}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj$)}(hhh](j))}(hhh]h}(h]h ]h"]h$]h&]j3Kuh1j(hjubj))}(hhh]h}(h]h ]h"]h$]h&]j3Kuh1j(hjubj))}(hhh]h}(h]h ]h"]h$]h&]j3Kuh1j(hjubj))}(hhh]h}(h]h ]h"]h$]h&]j3KUuh1j(hjubj>)}(hhh](jC)}(hhh](jH)}(hhh]h)}(hNameh]hName}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ubah}(h]h ]h"]h$]h&]uh1jGhj,ubjH)}(hhh]h)}(hTypeh]hType}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjFubah}(h]h ]h"]h$]h&]uh1jGhj,ubjH)}(hhh]h)}(hModeh]hMode}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj]ubah}(h]h ]h"]h$]h&]uh1jGhj,ubjH)}(hhh]h)}(h Descriptionh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjtubah}(h]h ]h"]h$]h&]uh1jGhj,ubeh}(h]h ]h"]h$]h&]uh1jBhj)ubjC)}(hhh](jH)}(hhh]h)}(h ``test1``h]h)}(hjh]htest1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jGhjubjH)}(hhh]h)}(hBooleanh]hBoolean}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jGhjubjH)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jGhjubjH)}(hhh]h)}(hWTest parameter used to show how a driver-specific devlink parameter can be implemented.h]hWTest parameter used to show how a driver-specific devlink parameter can be implemented.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jGhjubeh}(h]h ]h"]h$]h&]uh1jBhj)ubeh}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]colsKuh1j#hjubeh}(h]id2ah ]colwidths-givenah"]h$]h&]uh1jhhhhhNhNubh)}(hFThe ``netdevsim`` driver supports reloading via ``DEVLINK_CMD_RELOAD``h](hThe }(hjhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh driver supports reloading via }(hjhhhNhNubh)}(h``DEVLINK_CMD_RELOAD``h]hDEVLINK_CMD_RELOAD}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhK$hhhhubeh}(h] parametersah ]h"] parametersah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hRegionsh]hRegions}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhhhhhK'ubh)}(hThe ``netdevsim`` driver exposes a ``dummy`` region as an example of how the devlink-region interfaces work. A snapshot is taken whenever the ``take_snapshot`` debugfs file is written to.h](hThe }(hj[hhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubh driver exposes a }(hj[hhhNhNubh)}(h ``dummy``h]hdummy}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubhb region as an example of how the devlink-region interfaces work. A snapshot is taken whenever the }(hj[hhhNhNubh)}(h``take_snapshot``h]h take_snapshot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubh debugfs file is written to.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hjJhhubeh}(h]regionsah ]h"]regionsah$]h&]uh1hhhhhhhhK'ubh)}(hhh](h)}(h Resourcesh]h Resources}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK.ubh)}(hThe ``netdevsim`` driver exposes resources to control the number of FIB entries, FIB rule entries and nexthops that the driver will allow.h](hThe }(hjhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhy driver exposes resources to control the number of FIB entries, FIB rule entries and nexthops that the driver will allow.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK0hjhhubh literal_block)}(hX$ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96 $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16 $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64 $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16 $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16 $ devlink dev reload netdevsim/netdevsim0h]hX$ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 96 $ devlink resource set netdevsim/netdevsim0 path /IPv4/fib-rules size 16 $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib size 64 $ devlink resource set netdevsim/netdevsim0 path /IPv6/fib-rules size 16 $ devlink resource set netdevsim/netdevsim0 path /nexthops size 16 $ devlink dev reload netdevsim/netdevsim0}hjsbah}(h]h ]h"]h$]h&]forcehighlight_args}hhlanguageshelluh1jhhhK3hjhhubeh}(h] resourcesah ]h"] resourcesah$]h&]uh1hhhhhhhhK.ubh)}(hhh](h)}(h Rate objectsh]h Rate objects}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK=ubh)}(hJThe ``netdevsim`` driver supports rate objects management, which includes:h](hThe }(hjhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh9 driver supports rate objects management, which includes:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK?hjhhubh bullet_list)}(hhh](h list_item)}(hAregisterging/unregistering leaf rate objects per VF devlink port;h]h)}(hj/h]hAregisterging/unregistering leaf rate objects per VF devlink port;}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj-ubah}(h]h ]h"]h$]h&]uh1j+hj(hhhhhNubj,)}(h$creation/deletion node rate objects;h]h)}(hjFh]h$creation/deletion node rate objects;}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjDubah}(h]h ]h"]h$]h&]uh1j+hj(hhhhhNubj,)}(hAsetting tx_share and tx_max rate values for any rate object type;h]h)}(hj]h]hAsetting tx_share and tx_max rate values for any rate object type;}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChj[ubah}(h]h ]h"]h$]h&]uh1j+hj(hhhhhNubj,)}(h.setting parent node for any rate object type. h]h)}(h-setting parent node for any rate object type.h]h-setting parent node for any rate object type.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjrubah}(h]h ]h"]h$]h&]uh1j+hj(hhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1j&hhhKAhjhhubh)}(hRate nodes and their parameters are exposed in ``netdevsim`` debugfs in RO mode. For example created rate node with name ``some_group``:h](h/Rate nodes and their parameters are exposed in }(hjhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh= debugfs in RO mode. For example created rate node with name }(hjhhhNhNubh)}(h``some_group``h]h some_group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKFhjhhubj)}(h`$ ls /sys/kernel/debug/netdevsim/netdevsim0/rate_groups/some_group rate_parent tx_max tx_shareh]h`$ ls /sys/kernel/debug/netdevsim/netdevsim0/rate_groups/some_group rate_parent tx_max tx_share}hjsbah}(h]h ]h"]h$]h&]forcehighlight_args}hhjshelluh1jhhhKIhjhhubh)}(hYSame parameters are exposed for leaf objects in corresponding ports directories. For ex.:h]hYSame parameters are exposed for leaf objects in corresponding ports directories. For ex.:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjhhubj)}(h_$ ls /sys/kernel/debug/netdevsim/netdevsim0/ports/1 dev ethtool rate_parent tx_max tx_shareh]h_$ ls /sys/kernel/debug/netdevsim/netdevsim0/ports/1 dev ethtool rate_parent tx_max tx_share}hjsbah}(h]h ]h"]h$]h&]forcehighlight_args}hhjshelluh1jhhhKQhjhhubeh}(h] rate-objectsah ]h"] rate objectsah$]h&]uh1hhhhhhhhK=ubh)}(hhh](h)}(hDriver-specific Trapsh]hDriver-specific Traps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKWubj)}(hhh](h)}(h9List of Driver-specific Traps Registered by ``netdevsim``h](h,List of Driver-specific Traps Registered by }(hjhhhNhNubh)}(h ``netdevsim``h]h netdevsim}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKYhjubj$)}(hhh](j))}(hhh]h}(h]h ]h"]h$]h&]j3Kuh1j(hj.ubj))}(hhh]h}(h]h ]h"]h$]h&]j3Kuh1j(hj.ubj))}(hhh]h}(h]h ]h"]h$]h&]j3KZuh1j(hj.ubj>)}(hhh](jC)}(hhh](jH)}(hhh]h)}(hNameh]hName}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjRubah}(h]h ]h"]h$]h&]uh1jGhjOubjH)}(hhh]h)}(hTypeh]hType}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjiubah}(h]h ]h"]h$]h&]uh1jGhjOubjH)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jGhjOubeh}(h]h ]h"]h$]h&]uh1jBhjLubjC)}(hhh](jH)}(hhh]h)}(h ``fid_miss``h]h)}(hjh]hfid_miss}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jGhjubjH)}(hhh]h)}(h ``exception``h]h)}(hjh]h exception}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jGhjubjH)}(hhh]h)}(hWhen a packet enters the device it is classified to a filtering identifier (FID) based on the ingress port and VLAN. This trap is used to trap packets for which a FID could not be foundh]hWhen a packet enters the device it is classified to a filtering identifier (FID) based on the ingress port and VLAN. This trap is used to trap packets for which a FID could not be found}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1jGhjubeh}(h]h ]h"]h$]h&]uh1jBhjLubeh}(h]h ]h"]h$]h&]uh1j=hj.ubeh}(h]h ]h"]h$]h&]colsKuh1j#hjubeh}(h]id3ah ]jah"]h$]h&]uh1jhjhhhNhNubeh}(h]driver-specific-trapsah ]h"]driver-specific trapsah$]h&]uh1hhhhhhhhKWubeh}(h]netdevsim-devlink-supportah ]h"]netdevsim devlink supportah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjGfootnote_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_handlerjCerror_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}substitution_names}refnames}refids}nameids}(jjjGjDjjjjjjjju nametypes}(jjGjjjjuh}(jhjDhjjJjjjjjjjjjjj ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jQKsRparse_messages]transform_messages] transformerN include_log] decorationNhhub.