€•)³Œ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”Œ"/translations/zh_CN/networking/ila”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/zh_TW/networking/ila”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/networking/ila”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/networking/ila”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/networking/ila”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/pt_BR/networking/ila”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/sp_SP/networking/ila”Œ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³Œhj;ubj?)”}”(hŒÇLocator A network prefix that routes to a physical host. Locators provide the topological location of an addressed node. ILA locators are sixty-four bit prefixes. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ£Locator A network prefix that routes to a physical host. Locators provide the topological location of an addressed node. ILA locators are sixty-four bit prefixes. ”h]”(jP)”}”(hŒLocator”h]”hŒLocator”…””}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K)hj‘ubj`)”}”(hhh]”hï)”}”(hŒšA network prefix that routes to a physical host. Locators provide the topological location of an addressed node. ILA locators are sixty-four bit prefixes.”h]”hŒšA network prefix that routes to a physical host. Locators provide the topological location of an addressed node. ILA locators are sixty-four bit prefixes.”…””}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K'hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K)hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hŒÛILA mapping A mapping of an ILA identifier to a locator (or to a locator and meta data). An ILA domain maintains a database that contains mappings for all destinations in the domain. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ·ILA mapping A mapping of an ILA identifier to a locator (or to a locator and meta data). An ILA domain maintains a database that contains mappings for all destinations in the domain. ”h]”(jP)”}”(hŒ ILA mapping”h]”hŒ ILA mapping”…””}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K.hjÓubj`)”}”(hhh]”hï)”}”(hŒªA mapping of an ILA identifier to a locator (or to a locator and meta data). An ILA domain maintains a database that contains mappings for all destinations in the domain.”h]”hŒªA mapping of an ILA identifier to a locator (or to a locator and meta data). An ILA domain maintains a database that contains mappings for all destinations in the domain.”…””}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K,hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K.hjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hX,SIR address An IPv6 address composed of a SIR prefix (upper sixty- four bits) and an identifier (lower sixty-four bits). SIR addresses are visible to applications and provide a means for them to address nodes independent of their location. ”h]”jE)”}”(hhh]”jJ)”}”(hŒðSIR address An IPv6 address composed of a SIR prefix (upper sixty- four bits) and an identifier (lower sixty-four bits). SIR addresses are visible to applications and provide a means for them to address nodes independent of their location. ”h]”(jP)”}”(hŒ SIR address”h]”hŒ SIR address”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K5hjubj`)”}”(hhh]”hï)”}”(hŒãAn IPv6 address composed of a SIR prefix (upper sixty- four bits) and an identifier (lower sixty-four bits). SIR addresses are visible to applications and provide a means for them to address nodes independent of their location.”h]”hŒãAn IPv6 address composed of a SIR prefix (upper sixty- four bits) and an identifier (lower sixty-four bits). SIR addresses are visible to applications and provide a means for them to address nodes independent of their location.”…””}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K1hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K5hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hŒÐILA address An IPv6 address composed of a locator (upper sixty-four bits) and an identifier (low order sixty-four bits). ILA addresses are never visible to an application. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ¬ILA address An IPv6 address composed of a locator (upper sixty-four bits) and an identifier (low order sixty-four bits). ILA addresses are never visible to an application. ”h]”(jP)”}”(hŒ ILA address”h]”hŒ ILA address”…””}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K:hjWubj`)”}”(hhh]”hï)”}”(hŒŸAn IPv6 address composed of a locator (upper sixty-four bits) and an identifier (low order sixty-four bits). ILA addresses are never visible to an application.”h]”hŒŸAn IPv6 address composed of a locator (upper sixty-four bits) and an identifier (low order sixty-four bits). ILA addresses are never visible to an application.”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K8hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K:hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hŒtILA host An end host that is capable of performing ILA translations on transmit or receive. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ\ILA host An end host that is capable of performing ILA translations on transmit or receive. ”h]”(jP)”}”(hŒILA host”h]”hŒILA host”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K>hj™ubj`)”}”(hhh]”hï)”}”(hŒRAn end host that is capable of performing ILA translations on transmit or receive.”h]”hŒRAn end host that is capable of performing ILA translations on transmit or receive.”…””}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K=hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K>hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hŒvILA router A network node that performs ILA translation and forwarding of translated packets. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ^ILA router A network node that performs ILA translation and forwarding of translated packets. ”h]”(jP)”}”(hŒ ILA router”h]”hŒ ILA router”…””}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´KBhjÛubj`)”}”(hhh]”hï)”}”(hŒRA network node that performs ILA translation and forwarding of translated packets.”h]”hŒRA network node that performs ILA translation and forwarding of translated packets.”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KAhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´KBhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hŒwILA forwarding cache A type of ILA router that only maintains a working set cache of mappings. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ_ILA forwarding cache A type of ILA router that only maintains a working set cache of mappings. ”h]”(jP)”}”(hŒILA forwarding cache”h]”hŒILA forwarding cache”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´KFhjubj`)”}”(hhh]”hï)”}”(hŒIA type of ILA router that only maintains a working set cache of mappings.”h]”hŒIA type of ILA router that only maintains a working set cache of mappings.”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KEhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´KFhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubj?)”}”(hŒ—ILA node A network node capable of performing ILA translations. This can be an ILA router, ILA forwarding cache, or ILA host. ”h]”jE)”}”(hhh]”jJ)”}”(hŒILA node A network node capable of performing ILA translations. This can be an ILA router, ILA forwarding cache, or ILA host. ”h]”(jP)”}”(hŒILA node”h]”hŒILA node”…””}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´KKhj_ubj`)”}”(hhh]”hï)”}”(hŒtA network node capable of performing ILA translations. This can be an ILA router, ILA forwarding cache, or ILA host.”h]”hŒtA network node capable of performing ILA translations. This can be an ILA router, ILA forwarding cache, or ILA host.”…””}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KIhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hj_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´KKhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j9h³hÇh´K!hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j3h³hÇh´K!hj"h²hubeh}”(h]”Œila-terminology”ah ]”h"]”Œila terminology”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Operation”h]”hŒ Operation”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj°h²hh³hÇh´KNubhï)”}”(hŒ.There are two fundamental operations with ILA:”h]”hŒ.There are two fundamental operations with ILA:”…””}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KPhj°h²hubj4)”}”(hŒÁ- Translate a SIR address to an ILA address. This is performed on ingress to an ILA overlay. - Translate an ILA address to a SIR address. This is performed on egress from the ILA overlay. ”h]”j:)”}”(hhh]”(j?)”}”(hŒ[Translate a SIR address to an ILA address. This is performed on ingress to an ILA overlay. ”h]”hï)”}”(hŒZTranslate a SIR address to an ILA address. This is performed on ingress to an ILA overlay.”h]”hŒZTranslate a SIR address to an ILA address. This is performed on ingress to an ILA overlay.”…””}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KRhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÓubj?)”}”(hŒ]Translate an ILA address to a SIR address. This is performed on egress from the ILA overlay. ”h]”hï)”}”(hŒ\Translate an ILA address to a SIR address. This is performed on egress from the ILA overlay.”h]”hŒ\Translate an ILA address to a SIR address. This is performed on egress from the ILA overlay.”…””}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KUhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÓubeh}”(h]”h ]”h"]”h$]”h&]”j j¡uh1j9h³hÇh´KRhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j3h³hÇh´KRhj°h²hubhï)”}”(hŒæILA can be deployed either on end hosts or intermediate devices in the network; these are provided by "ILA hosts" and "ILA routers" respectively. Configuration and datapath for these two points of deployment is somewhat different.”h]”hŒîILA can be deployed either on end hosts or intermediate devices in the network; these are provided by “ILA hosts†and “ILA routers†respectively. Configuration and datapath for these two points of deployment is somewhat different.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KXhj°h²hubhï)”}”(hŒhThe diagram below illustrates the flow of packets through ILA as well as showing ILA hosts and routers::”h]”hŒgThe diagram below illustrates the flow of packets through ILA as well as showing ILA hosts and routers:”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K]hj°h²hubhŒ literal_block”“”)”}”(hXa +--------+ +--------+ | Host A +-+ +--->| Host B | | | | (2) ILA (') | | +--------+ | ...addressed.... ( ) +--------+ V +---+--+ . packet . +---+--+ (_) (1) SIR | | ILA |----->-------->---->| ILA | | (3) SIR addressed +->|router| . . |router|->-+ addressed packet +---+--+ . IPv6 . +---+--+ packet / . Network . / . . +--+-++--------+ +--------+ / . . |ILA || Host | | Host +--+ . .- -|host|| | | | . . +--+-++--------+ +--------+ ................”h]”hXa +--------+ +--------+ | Host A +-+ +--->| Host B | | | | (2) ILA (') | | +--------+ | ...addressed.... ( ) +--------+ V +---+--+ . packet . +---+--+ (_) (1) SIR | | ILA |----->-------->---->| ILA | | (3) SIR addressed +->|router| . . |router|->-+ addressed packet +---+--+ . IPv6 . +---+--+ packet / . Network . / . . +--+-++--------+ +--------+ / . . |ILA || Host | | Host +--+ . .- -|host|| | | | . . +--+-++--------+ +--------+ ................”…””}”hj0sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´K`hj°h²hubeh}”(h]”Œ operation”ah ]”h"]”Œ operation”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KNubhÉ)”}”(hhh]”(hÎ)”}”(hŒTransport checksum handling”h]”hŒTransport checksum handling”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjFh²hh³hÇh´Kqubhï)”}”(hX=When an address is translated by ILA, an encapsulated transport checksum that includes the translated address in a pseudo header may be rendered incorrect on the wire. This is a problem for intermediate devices, including checksum offload in NICs, that process the checksum. There are three options to deal with this:”h]”hX=When an address is translated by ILA, an encapsulated transport checksum that includes the translated address in a pseudo header may be rendered incorrect on the wire. This is a problem for intermediate devices, including checksum offload in NICs, that process the checksum. There are three options to deal with this:”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KshjFh²hubj:)”}”(hhh]”(j?)”}”(hŒ±no action Allow the checksum to be incorrect on the wire. Before a receiver verifies a checksum the ILA to SIR address translation must be done. ”h]”jE)”}”(hhh]”jJ)”}”(hŒ•no action Allow the checksum to be incorrect on the wire. Before a receiver verifies a checksum the ILA to SIR address translation must be done. ”h]”(jP)”}”(hŒDno action Allow the checksum to be incorrect on the wire. Before”h]”hŒDno action Allow the checksum to be incorrect on the wire. Before”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K{hjoubj`)”}”(hhh]”hï)”}”(hŒOa receiver verifies a checksum the ILA to SIR address translation must be done.”h]”hŒOa receiver verifies a checksum the ILA to SIR address translation must be done.”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kzhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K{hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjhubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjeh²hh³Nh´Nubj?)”}”(hXadjust transport checksum When ILA translation is performed the packet is parsed and if a transport layer checksum is found then it is adjusted to reflect the correct checksum per the translated address. ”h]”jE)”}”(hhh]”jJ)”}”(hŒÌadjust transport checksum When ILA translation is performed the packet is parsed and if a transport layer checksum is found then it is adjusted to reflect the correct checksum per the translated address. ”h]”(jP)”}”(hŒadjust transport checksum”h]”hŒadjust transport checksum”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´Khj±ubj`)”}”(hhh]”hï)”}”(hŒ±When ILA translation is performed the packet is parsed and if a transport layer checksum is found then it is adjusted to reflect the correct checksum per the translated address.”h]”hŒ±When ILA translation is performed the packet is parsed and if a transport layer checksum is found then it is adjusted to reflect the correct checksum per the translated address.”…””}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K~hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´Khj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjªubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjeh²hh³Nh´Nubj?)”}”(hXÊchecksum neutral mapping When an address is translated the difference can be offset elsewhere in a part of the packet that is covered by the checksum. The low order sixteen bits of the identifier are used. This method is preferred since it doesn't require parsing a packet beyond the IP header and in most cases the adjustment can be precomputed and saved with the mapping. ”h]”jE)”}”(hhh]”jJ)”}”(hXvchecksum neutral mapping When an address is translated the difference can be offset elsewhere in a part of the packet that is covered by the checksum. The low order sixteen bits of the identifier are used. This method is preferred since it doesn't require parsing a packet beyond the IP header and in most cases the adjustment can be precomputed and saved with the mapping. ”h]”(jP)”}”(hŒchecksum neutral mapping”h]”hŒchecksum neutral mapping”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jOh³hÇh´K‰hjóubj`)”}”(hhh]”hï)”}”(hX\When an address is translated the difference can be offset elsewhere in a part of the packet that is covered by the checksum. The low order sixteen bits of the identifier are used. This method is preferred since it doesn't require parsing a packet beyond the IP header and in most cases the adjustment can be precomputed and saved with the mapping.”h]”hX^When an address is translated the difference can be offset elsewhere in a part of the packet that is covered by the checksum. The low order sixteen bits of the identifier are used. This method is preferred since it doesn’t require parsing a packet beyond the IP header and in most cases the adjustment can be precomputed and saved with the mapping.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K„hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j_hjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1jIh³hÇh´K‰hjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjeh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j j¡uh1j9h³hÇh´KyhjFh²hubhï)”}”(hXNote that the checksum neutral adjustment affects the low order sixteen bits of the identifier. When ILA to SIR address translation is done on egress the low order bits are restored to the original value which restores the identifier as it was originally sent.”h]”hXNote that the checksum neutral adjustment affects the low order sixteen bits of the identifier. When ILA to SIR address translation is done on egress the low order bits are restored to the original value which restores the identifier as it was originally sent.”…””}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‹hjFh²hubeh}”(h]”Œtransport-checksum-handling”ah ]”h"]”Œtransport checksum handling”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KqubhÉ)”}”(hhh]”(hÎ)”}”(hŒIdentifier types”h]”hŒIdentifier types”…””}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjJh²hh³hÇh´K’ubhï)”}”(hŒCILA defines different types of identifiers for different use cases.”h]”hŒCILA defines different types of identifiers for different use cases.”…””}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K”hjJh²hubhï)”}”(hŒThe defined types are:”h]”hŒThe defined types are:”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K–hjJh²hubj4)”}”(hX0: interface identifier 1: locally unique identifier 2: virtual networking identifier for IPv4 address 3: virtual networking identifier for IPv6 unicast address 4: virtual networking identifier for IPv6 multicast address 5: non-local address identifier ”h]”(hï)”}”(hŒ0: interface identifier”h]”hŒ0: interface identifier”…””}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K˜hjwubhï)”}”(hŒ1: locally unique identifier”h]”hŒ1: locally unique identifier”…””}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kšhjwubhï)”}”(hŒ12: virtual networking identifier for IPv4 address”h]”hŒ12: virtual networking identifier for IPv4 address”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kœhjwubhï)”}”(hŒ93: virtual networking identifier for IPv6 unicast address”h]”hŒ93: virtual networking identifier for IPv6 unicast address”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kžhjwubhï)”}”(hŒ;4: virtual networking identifier for IPv6 multicast address”h]”hŒ;4: virtual networking identifier for IPv6 multicast address”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hjwubhï)”}”(hŒ5: non-local address identifier”h]”hŒ5: non-local address identifier”…””}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¢hjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1j3h³hÇh´K˜hjJh²hubhï)”}”(hŒ›In the current implementation of kernel ILA only locally unique identifiers (LUID) are supported. LUID allows for a generic, unformatted 64 bit identifier.”h]”hŒ›In the current implementation of kernel ILA only locally unique identifiers (LUID) are supported. LUID allows for a generic, unformatted 64 bit identifier.”…””}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¤hjJh²hubeh}”(h]”Œidentifier-types”ah ]”h"]”Œidentifier types”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K’ubhÉ)”}”(hhh]”(hÎ)”}”(hŒIdentifier formats”h]”hŒIdentifier formats”…””}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjëh²hh³hÇh´Kªubhï)”}”(hŒºKernel ILA supports two optional fields in an identifier for formatting: "C-bit" and "identifier type". The presence of these fields is determined by configuration as demonstrated below.”h]”hŒÂKernel ILA supports two optional fields in an identifier for formatting: “C-bit†and “identifier typeâ€. The presence of these fields is determined by configuration as demonstrated below.”…””}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¬hjëh²hubhï)”}”(hŒIf the identifier type is present it occupies the three highest order bits of an identifier. The possible values are given in the above list.”h]”hŒIf the identifier type is present it occupies the three highest order bits of an identifier. The possible values are given in the above list.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K°hjëh²hubhï)”}”(hŒ¦If the C-bit is present, this is used as an indication that checksum neutral mapping has been done. The C-bit can only be set in an ILA address, never a SIR address.”h]”hŒ¦If the C-bit is present, this is used as an indication that checksum neutral mapping has been done. The C-bit can only be set in an ILA address, never a SIR address.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K³hjëh²hubhï)”}”(hŒ§In the simplest format the identifier types, C-bit, and checksum adjustment value are not present so an identifier is considered an unstructured sixty-four bit value::”h]”hŒ¦In the simplest format the identifier types, C-bit, and checksum adjustment value are not present so an identifier is considered an unstructured sixty-four bit value:”…””}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K·hjëh²hubj/)”}”(hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”h]”hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”…””}”hj4sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´K»hjëh²hubhï)”}”(hŒáThe checksum neutral adjustment may be configured to always be present using neutral-map-auto. In this case there is no C-bit, but the checksum adjustment is in the low order 16 bits. The identifier is still sixty-four bits::”h]”hŒàThe checksum neutral adjustment may be configured to always be present using neutral-map-auto. In this case there is no C-bit, but the checksum adjustment is in the low order 16 bits. The identifier is still sixty-four bits:”…””}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÁhjëh²hubj/)”}”(hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”h]”hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”…””}”hjPsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´KÆhjëh²hubhï)”}”(hŒ{The C-bit may used to explicitly indicate that checksum neutral mapping has been applied to an ILA address. The format is::”h]”hŒzThe C-bit may used to explicitly indicate that checksum neutral mapping has been applied to an ILA address. The format is:”…””}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÌhjëh²hubj/)”}”(hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |C| Identifier | | +-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”h]”hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |C| Identifier | | +-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”…””}”hjlsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´KÏhjëh²hubhï)”}”(hŒÿThe identifier type field may be present to indicate the identifier type. If it is not present then the type is inferred based on mapping configuration. The checksum neutral adjustment may automatically used with the identifier type as illustrated below::”h]”hŒþThe identifier type field may be present to indicate the identifier type. If it is not present then the type is inferred based on mapping configuration. The checksum neutral adjustment may automatically used with the identifier type as illustrated below:”…””}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÕhjëh²hubj/)”}”(hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type| Identifier | +-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”h]”hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type| Identifier | +-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”…””}”hjˆsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´KÚhjëh²hubhï)”}”(hŒfIf the identifier type and the C-bit can be present simultaneously so the identifier format would be::”h]”hŒeIf the identifier type and the C-bit can be present simultaneously so the identifier format would be:”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kàhjëh²hubj/)”}”(hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type|C| Identifier | +-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”h]”hXI+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type|C| Identifier | +-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Checksum-neutral adjustment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+”…””}”hj¤sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´Kãhjëh²hubeh}”(h]”Œidentifier-formats”ah ]”h"]”Œidentifier formats”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KªubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Configuration”h]”hŒ Configuration”…””}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjºh²hh³hÇh´Këubhï)”}”(hŒÏThere are two methods to configure ILA mappings. One is by using LWT routes and the other is ila_xlat (called from NFHOOK PREROUTING hook). ila_xlat is intended to be used in the receive path for ILA hosts .”h]”hŒÏThere are two methods to configure ILA mappings. One is by using LWT routes and the other is ila_xlat (called from NFHOOK PREROUTING hook). ila_xlat is intended to be used in the receive path for ILA hosts .”…””}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kíhjºh²hubhï)”}”(hŒjAn ILA router has also been implemented in XDP. Description of that is outside the scope of this document.”h]”hŒjAn ILA router has also been implemented in XDP. Description of that is outside the scope of this document.”…””}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kñhjºh²hubhï)”}”(hŒ#The usage of for ILA LWT routes is:”h]”hŒ#The usage of for ILA LWT routes is:”…””}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kôhjºh²hubhï)”}”(hŒKip route add DEST/128 encap ila LOC csum-mode MODE ident-type TYPE via ADDR”h]”hŒKip route add DEST/128 encap ila LOC csum-mode MODE ident-type TYPE via ADDR”…””}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Köhjºh²hubhï)”}”(hX)Destination (DEST) can either be a SIR address (for an ILA host or ingress ILA router) or an ILA address (egress ILA router). LOC is the sixty-four bit locator (with format W:X:Y:Z) that overwrites the upper sixty-four bits of the destination address. Checksum MODE is one of "no-action", "adj-transport", "neutral-map", and "neutral-map-auto". If neutral-map is set then the C-bit will be present. Identifier TYPE one of "luid" or "use-format." In the case of use-format, the identifier type field is present and the effective type is taken from that.”h]”hXADestination (DEST) can either be a SIR address (for an ILA host or ingress ILA router) or an ILA address (egress ILA router). LOC is the sixty-four bit locator (with format W:X:Y:Z) that overwrites the upper sixty-four bits of the destination address. Checksum MODE is one of “no-actionâ€, “adj-transportâ€, “neutral-mapâ€, and “neutral-map-autoâ€. If neutral-map is set then the C-bit will be present. Identifier TYPE one of “luid†or “use-format.†In the case of use-format, the identifier type field is present and the effective type is taken from that.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Køhjºh²hubhï)”}”(hŒThe usage of ila_xlat is:”h]”hŒThe usage of ila_xlat is:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjºh²hubhï)”}”(hŒAip ila add loc_match MATCH loc LOC csum-mode MODE ident-type TYPE”h]”hŒAip ila add loc_match MATCH loc LOC csum-mode MODE ident-type TYPE”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjºh²hubhï)”}”(hŒçMATCH indicates the incoming locator that must be matched to apply a the translaiton. LOC is the locator that overwrites the upper sixty-four bits of the destination address. MODE and TYPE have the same meanings as described above.”h]”hŒçMATCH indicates the incoming locator that must be matched to apply a the translaiton. LOC is the locator that overwrites the upper sixty-four bits of the destination address. MODE and TYPE have the same meanings as described above.”…””}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjºh²hubeh}”(h]”Œ configuration”ah ]”h"]”Œ configuration”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KëubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Some examples”h]”hŒ Some examples”…””}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjCh²hh³hÇh´M ubj/)”}”(hX¥# Configure an ILA route that uses checksum neutral mapping as well # as type field. Note that the type field is set in the SIR address # (the 2000 implies type is 1 which is LUID). ip route add 3333:0:0:1:2000:0:1:87/128 encap ila 2001:0:87:0 \ csum-mode neutral-map ident-type use-format # Configure an ILA LWT route that uses auto checksum neutral mapping # (no C-bit) and configure identifier type to be LUID so that the # identifier type field will not be present. ip route add 3333:0:0:1:2000:0:2:87/128 encap ila 2001:0:87:1 \ csum-mode neutral-map-auto ident-type luid ila_xlat configuration # Configure an ILA to SIR mapping that matches a locator and overwrites # it with a SIR address (3333:0:0:1 in this example). The C-bit and # identifier field are used. ip ila add loc_match 2001:0:119:0 loc 3333:0:0:1 \ csum-mode neutral-map-auto ident-type use-format # Configure an ILA to SIR mapping where checksum neutral is automatically # set without the C-bit and the identifier type is configured to be LUID # so that the identifier type field is not present. ip ila add loc_match 2001:0:119:0 loc 3333:0:0:1 \ csum-mode neutral-map-auto ident-type use-format”h]”hX¥# Configure an ILA route that uses checksum neutral mapping as well # as type field. Note that the type field is set in the SIR address # (the 2000 implies type is 1 which is LUID). ip route add 3333:0:0:1:2000:0:1:87/128 encap ila 2001:0:87:0 \ csum-mode neutral-map ident-type use-format # Configure an ILA LWT route that uses auto checksum neutral mapping # (no C-bit) and configure identifier type to be LUID so that the # identifier type field will not be present. ip route add 3333:0:0:1:2000:0:2:87/128 encap ila 2001:0:87:1 \ csum-mode neutral-map-auto ident-type luid ila_xlat configuration # Configure an ILA to SIR mapping that matches a locator and overwrites # it with a SIR address (3333:0:0:1 in this example). The C-bit and # identifier field are used. ip ila add loc_match 2001:0:119:0 loc 3333:0:0:1 \ csum-mode neutral-map-auto ident-type use-format # Configure an ILA to SIR mapping where checksum neutral is automatically # set without the C-bit and the identifier type is configured to be LUID # so that the identifier type field is not present. ip ila add loc_match 2001:0:119:0 loc 3333:0:0:1 \ csum-mode neutral-map-auto ident-type use-format”…””}”hjTsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j.h³hÇh´MhjCh²hubeh}”(h]”Œ some-examples”ah ]”h"]”Œ some examples”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M ubeh}”(h]”Œ!identifier-locator-addressing-ila”ah ]”h"]”Œ#identifier locator addressing (ila)”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œ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”j•Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jojljjj­jªjCj@jGjDjèjåj·j´j@j=jgjduŒ nametypes”}”(jo‰j‰j­‰jC‰jG‰jè‰j·‰j@‰jg‰uh}”(jlhÊjhÝjªj"j@j°jDjFjåjJj´jëj=jºjdjCuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.