qsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/networking/generic-hdlcmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/networking/generic-hdlcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/networking/generic-hdlcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/networking/generic-hdlcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/networking/generic-hdlcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/pt_BR/networking/generic-hdlcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/networking/generic-hdlcmodnameN 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:spacepreserveuh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/networking/generic-hdlc.rsthKubhsection)}(hhh](htitle)}(hGeneric HDLC layerh]hGeneric HDLC layer}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h Krzysztof Halasa h](hKrzysztof Halasa <}(hhhhhNhNubh reference)}(h khc@pm.waw.plh]h khc@pm.waw.pl}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:khc@pm.waw.pluh1hhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h&Generic HDLC layer currently supports:h]h&Generic HDLC layer currently supports:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhenumerated_list)}(hhh](h list_item)}(hX:Frame Relay (ANSI, CCITT, Cisco and no LMI) - Normal (routed) and Ethernet-bridged (Ethernet device emulation) interfaces can share a single PVC. - ARP support (no InARP support in the kernel - there is an experimental InARP user-space daemon available on: http://www.kernel.org/pub/linux/utils/net/hdlc/). h](h)}(h+Frame Relay (ANSI, CCITT, Cisco and no LMI)h]h+Frame Relay (ANSI, CCITT, Cisco and no LMI)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubh bullet_list)}(hhh](j)}(hcNormal (routed) and Ethernet-bridged (Ethernet device emulation) interfaces can share a single PVC.h]h)}(hcNormal (routed) and Ethernet-bridged (Ethernet device emulation) interfaces can share a single PVC.h]hcNormal (routed) and Ethernet-bridged (Ethernet device emulation) interfaces can share a single PVC.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ubah}(h]h ]h"]h$]h&]uh1jhj,ubj)}(hARP support (no InARP support in the kernel - there is an experimental InARP user-space daemon available on: http://www.kernel.org/pub/linux/utils/net/hdlc/). h]h)}(hARP support (no InARP support in the kernel - there is an experimental InARP user-space daemon available on: http://www.kernel.org/pub/linux/utils/net/hdlc/).h](hmARP support (no InARP support in the kernel - there is an experimental InARP user-space daemon available on: }(hjKhhhNhNubh)}(h/http://www.kernel.org/pub/linux/utils/net/hdlc/h]h/http://www.kernel.org/pub/linux/utils/net/hdlc/}(hjShhhNhNubah}(h]h ]h"]h$]h&]refurijUuh1hhjKubh).}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjGubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]bullet-uh1j*hhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(hBraw HDLC - either IP (IPv4) interface or Ethernet device emulationh]h)}(hjh]hBraw HDLC - either IP (IPv4) interface or Ethernet device emulation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h Cisco HDLCh]h)}(hjh]h Cisco HDLC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hPPPh]h)}(hjh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hX.25 (uses X.25 routines). h]h)}(hX.25 (uses X.25 routines).h]hX.25 (uses X.25 routines).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1jhhhhhhhK ubh)}(hbGeneric HDLC is a protocol driver only - it needs a low-level driver for your particular hardware.h]hbGeneric HDLC is a protocol driver only - it needs a low-level driver for your particular hardware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hEthernet device emulation (using HDLC or Frame-Relay PVC) is compatible with IEEE 802.1Q (VLANs) and 802.1D (Ethernet bridging).h]hEthernet device emulation (using HDLC or Frame-Relay PVC) is compatible with IEEE 802.1Q (VLANs) and 802.1D (Ethernet bridging).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hMake sure the hdlc.o and the hardware driver are loaded. It should create a number of "hdlc" (hdlc0 etc) network devices, one for each WAN port. You'll need the "sethdlc" utility, get it from:h]hMake sure the hdlc.o and the hardware driver are loaded. It should create a number of “hdlc” (hdlc0 etc) network devices, one for each WAN port. You’ll need the “sethdlc” utility, get it from:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh block_quote)}(h0http://www.kernel.org/pub/linux/utils/net/hdlc/ h]h)}(h/http://www.kernel.org/pub/linux/utils/net/hdlc/h]h)}(hjh]h/http://www.kernel.org/pub/linux/utils/net/hdlc/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhhhK$hhhhubh)}(hCompile sethdlc.c utility::h]hCompile sethdlc.c utility:}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hhhhubh literal_block)}(h"gcc -O2 -Wall -o sethdlc sethdlc.ch]h"gcc -O2 -Wall -o sethdlc sethdlc.c}hjFsbah}(h]h ]h"]h$]h&]hhuh1jDhhhK(hhhhubh)}(hDMake sure you're using a correct version of sethdlc for your kernel.h]hFMake sure you’re using a correct version of sethdlc for your kernel.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hhhhubh)}(hUse sethdlc to set physical interface, clock rate, HDLC mode used, and add any required PVCs if using Frame Relay. Usually you want something like::h]hUse sethdlc to set physical interface, clock rate, HDLC mode used, and add any required PVCs if using Frame Relay. Usually you want something like:}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hhhhubjE)}(hNsethdlc hdlc0 clock int rate 128000 sethdlc hdlc0 cisco interval 10 timeout 25h]hNsethdlc hdlc0 clock int rate 128000 sethdlc hdlc0 cisco interval 10 timeout 25}hjpsbah}(h]h ]h"]h$]h&]hhuh1jDhhhK0hhhhubh)}(hor::h]hor:}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hhhhubjE)}(hsethdlc hdlc0 rs232 clock ext sethdlc hdlc0 fr lmi ansi sethdlc hdlc0 create 99 ifconfig hdlc0 up ifconfig pvc0 localIP pointopoint remoteIPh]hsethdlc hdlc0 rs232 clock ext sethdlc hdlc0 fr lmi ansi sethdlc hdlc0 create 99 ifconfig hdlc0 up ifconfig pvc0 localIP pointopoint remoteIP}hjsbah}(h]h ]h"]h$]h&]hhuh1jDhhhK5hhhhubh)}(hvIn Frame Relay mode, ifconfig master hdlc device up (without assigning any IP address to it) before using pvc devices.h]hvIn Frame Relay mode, ifconfig master hdlc device up (without assigning any IP address to it) before using pvc devices.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hhhhubh)}(hSetting interface:h]hSetting interface:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hhhhubj+)}(hhh](j)}(hv35 | rs232 | x21 | t1 | e1 - sets physical interface for a given port if the card has software-selectable interfaces loopback - activate hardware loopback (for testing only)h]hdefinition_list)}(hhh](hdefinition_list_item)}(hwv35 | rs232 | x21 | t1 | e1 - sets physical interface for a given port if the card has software-selectable interfacesh](hterm)}(hv35 | rs232 | x21 | t1 | e1h]hv35 | rs232 | x21 | t1 | e1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKBhjubh definition)}(hhh]j+)}(hhh]j)}(hWsets physical interface for a given port if the card has software-selectable interfacesh]h)}(hWsets physical interface for a given port if the card has software-selectable interfacesh]hWsets physical interface for a given port if the card has software-selectable interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKBhjubj)}(h8loopback - activate hardware loopback (for testing only)h](j)}(hloopbackh]hloopback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKDhj ubj)}(hhh]j+)}(hhh]j)}(h-activate hardware loopback (for testing only)h]h)}(hj$h]h-activate hardware loopback (for testing only)}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhj"ubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKEhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhhhKDhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(h1clock ext - both RX clock and TX clock externalh]j)}(hhh]j)}(h/clock ext - both RX clock and TX clock externalh](j)}(h clock exth]h clock ext}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKFhj^ubj)}(hhh]j+)}(hhh]j)}(h#both RX clock and TX clock externalh]h)}(hjxh]h#both RX clock and TX clock external}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjvubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKGhjpubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhhhKFhj[ubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(h1clock int - both RX clock and TX clock internalh]j)}(hhh]j)}(h/clock int - both RX clock and TX clock internalh](j)}(h clock inth]h clock int}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKHhjubj)}(hhh]j+)}(hhh]j)}(h#both RX clock and TX clock internalh]h)}(hjh]h#both RX clock and TX clock internal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKIhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKHhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(h4clock txint - RX clock external, TX clock internalh]j)}(hhh]j)}(h2clock txint - RX clock external, TX clock internalh](j)}(h clock txinth]h clock txint}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKJhjubj)}(hhh]j+)}(hhh]j)}(h$RX clock external, TX clock internalh]h)}(hj h]h$RX clock external, TX clock internal}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(hDclock txfromrx - RX clock external, TX clock derived from RX clockh]j)}(hhh]j)}(hBclock txfromrx - RX clock external, TX clock derived from RX clockh](j)}(hclock txfromrxh]hclock txfromrx}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKLhjZubj)}(hhh]j+)}(hhh]j)}(h1RX clock external, TX clock derived from RX clockh]h)}(hjth]h1RX clock external, TX clock derived from RX clock}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjrubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKMhjlubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhhhKLhjWubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(hCrate - sets clock rate in bps (for "int" or "txint" clock only) h]j)}(hhh]j)}(hArate - sets clock rate in bps (for "int" or "txint" clock only) h](j)}(hrateh]hrate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKPhjubj)}(hhh]j+)}(hhh]j)}(h:sets clock rate in bps (for "int" or "txint" clock only) h]h)}(h8sets clock rate in bps (for "int" or "txint" clock only)h]h@sets clock rate in bps (for “int” or “txint” clock only)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1j*hhhKOhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubeh}(h]h ]h"]h$]h&]jx*uh1j*hhhKAhhhhubh)}(hSetting protocol:h]hSetting protocol:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhhhhubj+)}(hhh](j)}(hhdlc - sets raw HDLC (IP-only) mode nrz / nrzi / fm-mark / fm-space / manchester - sets transmission code no-parity / crc16 / crc16-pr0 (CRC16 with preset zeros) / crc32-itu crc16-itu (CRC16 with ITU-T polynomial) / crc16-itu-pr0 - sets parity h](h)}(h#hdlc - sets raw HDLC (IP-only) modeh]h#hdlc - sets raw HDLC (IP-only) mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjubh)}(hEnrz / nrzi / fm-mark / fm-space / manchester - sets transmission codeh]hEnrz / nrzi / fm-mark / fm-space / manchester - sets transmission code}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubh)}(hCno-parity / crc16 / crc16-pr0 (CRC16 with preset zeros) / crc32-ituh]hCno-parity / crc16 / crc16-pr0 (CRC16 with preset zeros) / crc32-itu}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubh)}(hEcrc16-itu (CRC16 with ITU-T polynomial) / crc16-itu-pr0 - sets parityh]hEcrc16-itu (CRC16 with ITU-T polynomial) / crc16-itu-pr0 - sets parity}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hOhdlc-eth - Ethernet device emulation using HDLC. Parity and encoding as above. h]h)}(hNhdlc-eth - Ethernet device emulation using HDLC. Parity and encoding as above.h]hNhdlc-eth - Ethernet device emulation using HDLC. Parity and encoding as above.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjVubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hcisco - sets Cisco HDLC mode (IP, IPv6 and IPX supported) interval - time in seconds between keepalive packets timeout - time in seconds after last received keepalive packet before we assume the link is down h](h)}(h9cisco - sets Cisco HDLC mode (IP, IPv6 and IPX supported)h]h9cisco - sets Cisco HDLC mode (IP, IPv6 and IPX supported)}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjnubh)}(h4interval - time in seconds between keepalive packetsh]h4interval - time in seconds between keepalive packets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjnubj)}(hhh]j)}(hatimeout - time in seconds after last received keepalive packet before we assume the link is down h](j)}(hEtimeout - time in seconds after last received keepalive packet beforeh]hEtimeout - time in seconds after last received keepalive packet before}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKdhjubj)}(hhh]h)}(hwe assume the link is downh]hwe assume the link is down}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKdhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubj)}(h ppp - sets synchronous PPP mode h]h)}(hppp - sets synchronous PPP modeh]hppp - sets synchronous PPP mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hx25 - sets X.25 mode h]h)}(hx25 - sets X.25 modeh]hx25 - sets X.25 mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hXfr - Frame Relay mode lmi ansi / ccitt / cisco / none - LMI (link management) type dce - Frame Relay DCE (network) side LMI instead of default DTE (user). It has nothing to do with clocks! - t391 - link integrity verification polling timer (in seconds) - user - t392 - polling verification timer (in seconds) - network - n391 - full status polling counter - user - n392 - error threshold - both user and network - n393 - monitored events count - both user and network h](h)}(hfr - Frame Relay modeh]hfr - Frame Relay mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjubh)}(h.h](h%For patches and other info look at: <}(hjhhhNhNubh)}(h/http://www.kernel.org/pub/linux/utils/net/hdlc/h]h/http://www.kernel.org/pub/linux/utils/net/hdlc/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubh>.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]board-specific-issuesah ]h"]board-specific issuesah$]h&]uh1hhhhhhhhKubeh}(h]generic-hdlc-layerah ]h"]generic hdlc layerah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN 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_handlerj?error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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}(jjjju nametypes}(jjuh}(jhjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.