# Localizador zero-ou-um do BIG-IP

> Zero ou um? Veja onde cada comando Tcl, comando de iRules, objeto de configuração, API e ferramenta do BIG-IP começa a contar, com as palavras da própria F5 e a data em que cada fonte foi lida, e traduza uma posição para o número de cada comando, executando-o. Local, sem rede.

- Tool: https://ronutz.com/pt-BR/tools/f5-bigip-index-base-finder
- Family: Redes

---

## O que faz

Num BIG-IP, "isto começa em 0 ou em 1?" não tem uma resposta única. O Tcl, a linguagem por baixo dos iRules, conta toda posição a partir de 0. Vários comandos que a F5 acrescentou contam a partir de 1. Contadores devolvem 1 para o primeiro item. Muitos zeros da configuração são valores e não posições. O localizador reúne 76 desses lugares, cada um com a sua fonte, para você conferir aquele em que vai confiar.

Ele tem dois modos:

- **Consultar** lista os lugares, agrupados por parte do sistema: Tcl dentro dos iRules, comandos que a F5 acrescenta aos iRules, objetos de configuração, plataforma e hardware, APIs, e logs e captura de pacotes. Busque por comando ou termo, ou filtre por onde a contagem começa.
- **Traduzir uma posição** recebe uma posição do jeito que as pessoas contam, em que 1 é o primeiro, converte no número que cada comando precisa, executa cada comando no motor didático de Tcl 8.4.6 do site e mostra ao lado a versão com um a mais ou a menos.

## Como ler uma entrada

- **O selo** diz como o lugar conta: `0` começa em 0, `1` começa em 1, `←` conta pela direita (`end`, `end-1`, os N últimos), `0·1` significa que as duas bases se encontram no mesmo lugar, `=0` significa que 0 é um valor com significado (padrão, sem limite, todos, sucesso, igual) e `n` indica uma contagem fácil de confundir com uma posição.
- **Conta**, **Primeiro**, **Último** e **Quando não há nada** dizem o que é contado, como chegar ao primeiro e ao último item e o que volta quando não há nada (-1, 0 ou uma string vazia).
- **Exemplo** mostra o código e o que ele devolve. Todo exemplo de Tcl foi executado num tclsh 8.4.6 de verdade.
- **Atenção** é a armadilha pela qual aquela entrada é conhecida.
- **As páginas da F5 discordam** aparece quando duas afirmações da F5 não podem estar certas ao mesmo tempo.
- **Grau de certeza** separa quatro níveis: afirmado pelo manual do Tcl e executado no tclsh 8.4.6; afirmado pela fonte; mostrado só por um exemplo na página da fonte; e duas afirmações da F5 que discordam.
- **Fontes** lista cada página em que a entrada se apoia, com a data em que foi lida.

## Regras práticas

1. As posições do Tcl contam a partir de 0, e `end` é o último índice, o comprimento menos um.
2. Os números em estilo de campo da F5 contam a partir de 1: campos de `getfield`, profundidades de `URI::path`, índices de segmento de caminho das políticas LTM, o antigo `matchclass`.
3. Contadores devolvem 1 para o primeiro item: `HTTP::request_num`, `table incr`.
4. Muitos zeros são valores, não posições: domínio de roteamento 0, porta 0, `connection-limit 0`, `SSL::verify_result` 0 e o `0.0` do tcpdump.
5. O menor vai primeiro quase sempre (prioridade de evento, ordinais de política, ordem do BIG-IP DNS, severidade do syslog), exceto nos grupos de prioridade de pool, onde o maior ganha.
6. Num `if`, 0 é falso e qualquer outro número é verdadeiro, inclusive -1: compare um índice com `>= 0` em vez de testá-lo, e guarde suas próprias flags como 0 ou 1, como pede o iRules Style Guide do DevCentral.

## O tradutor

Escolha uma pergunta, informe um valor e N (1 é o primeiro):

- **O N-ésimo caractere**: `string index` e `string range` com N-1, e o `substr` da F5, ao lado de `string index` com N.
- **O N-ésimo campo depois de dividir**: o `getfield` da F5 com N, e `split` seguido de `lindex` com N-1, ao lado dos dois contados do jeito errado.
- **O N-ésimo segmento de um caminho**: os mesmos dois comandos, levando em conta o pedaço vazio antes de uma barra inicial, ao lado da versão que se esquece dele.
- **Os últimos N rótulos de um nome de host**: o `domain` da F5, e `split`, `lrange` a partir do fim e `join`, ao lado da versão que pega um rótulo a mais.
- **O N-ésimo elemento de uma lista Tcl**: `lindex` com N-1, ao lado de `lindex` com N.
- **Onde um texto aparece primeiro**: `string first`, e o teste `>= 0`, ao lado de um `if` sobre o próprio índice.

Cada linha é marcada como **A numeração do próprio comando** (o número certo para aquele comando), **Erro de um** ou **Uma resposta relacionada**. A resposta no topo é o que a primeira linha certa devolveu, e uma nota aparece quando linhas certas discordam entre si. As notas explicam os casos que mudam os números: um valor que começa com o separador, um caminho com query string (`HTTP::uri` a inclui, `HTTP::path` não), um separador de mais de um caractere (`split` trata cada caractere como separador, `getfield` usa a string inteira) e um casamento no índice 0 ou uma ausência em -1.

## Onde as páginas da F5 discordam

Ler as fontes com atenção revelou lugares em que duas afirmações da F5 não podem estar certas ao mesmo tempo. Nenhum foi testado num BIG-IP para esta ferramenta, então trate cada um como uma pergunta a confirmar na sua versão: a contagem 0 do `substr`, os comentários do exemplo de `URI::path`, o valor do `matchclass` quando nada casa, o intervalo na página de `priority`, o nome da variável no exemplo de `DNSMSG::record`, a descrição do ordinal de política no iControl REST, a ordem das listas de controle de acesso (ACLs) do APM e a prioridade que `LB::server` informa para um membro sem prioridade configurada. Cada conflito aparece na sua entrada, com as duas fontes.

## Limites

- O tradutor aceita um valor de até 2.000 caracteres, N de 1 a 1.000, um separador de até 20 caracteres e um texto de busca de até 200 caracteres, e cada comando para depois de 200 passos.
- Os comandos da F5 no tradutor se comportam como as páginas da F5 os descrevem. Onde uma página é omissa, a linha avisa: a página de `getfield` da F5 não tem exemplo em que a string começa com o separador, então a leitura da ferramenta para esse caso é marcada como suposição.
- As entradas de plataforma, configuração e API vêm da documentação da F5 e não foram testadas em hardware para esta ferramenta.
- Tudo roda no seu navegador. Nada é enviado para lugar nenhum, e nada roda num BIG-IP.

## Fontes

A ferramenta lista cada fonte com a data em que foi lida, 109 no total. As principais:

- [F5 K6091: The version of Tcl used to develop iRules](https://my.f5.com/manage/s/article/K6091) (lido em 2026-10-03)
- [F5 K36322151: List of disabled Tcl commands for iRules (12.x - 17.x)](https://my.f5.com/manage/s/article/K36322151) (lido em 2026-10-03)
- [Manual do Tcl 8.4: string](https://www.tcl-lang.org/man/tcl8.4/TclCmd/string.htm) (lido em 2026-10-03)
- [Manual do Tcl 8.4: lindex](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lindex.htm) (lido em 2026-10-03)
- [Manual do Tcl 8.4: split](https://www.tcl-lang.org/man/tcl8.4/TclCmd/split.htm) (lido em 2026-10-03)
- [Manual do Tcl 8.4: if](https://www.tcl-lang.org/man/tcl8.4/TclCmd/if.htm) (lido em 2026-10-03)
- [Referência de iRules da F5: getfield](https://clouddocs.f5.com/api/irules/getfield.html) (lido em 2026-10-03)
- [Referência de iRules da F5: substr](https://clouddocs.f5.com/api/irules/substr.html) (lido em 2026-10-03)
- [Referência de iRules da F5: domain](https://clouddocs.f5.com/api/irules/domain.html) (lido em 2026-10-03)
- [Referência de iRules da F5: URI::path](https://clouddocs.f5.com/api/irules/URI__path.html) (lido em 2026-10-03)
- [Referência de iRules da F5: priority](https://clouddocs.f5.com/api/irules/priority.html) (lido em 2026-10-03)
- [Referência do tmsh da F5: ltm policy](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_policy.html) (lido em 2026-10-03)
- [Referência do tmsh da F5: ltm pool](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_pool.html) (lido em 2026-10-03)
- [F5 K411: Overview of packet tracing with the tcpdump utility](https://my.f5.com/manage/s/article/K411) (lido em 2026-10-03)
- [F5 DevCentral: iRules Style Guide](https://community.f5.com/t/irules-style-guide/71151) (lido em 2026-10-03)

## Standards and references

- [F5 K6091: The version of Tcl used to develop iRules](https://my.f5.com/manage/s/article/K6091) - the iRules command set was developed from Tcl base version 8.4.6, which is used in all BIG-IP versions
- [F5 K36322151: List of disabled Tcl commands for iRules (12.x - 17.x)](https://my.f5.com/manage/s/article/K36322151) - the disabled commands (file, exec, socket, namespace, rename, time and others); every Tcl command in this tool is available
- [Tcl 8.4 manual: string](https://www.tcl-lang.org/man/tcl8.4/TclCmd/string.htm) - string index, range, first, last, compare, replace, wordstart, wordend and is -failindex: a charIndex of 0 is the first character; end and end-N; -1 when not found; out-of-range index returns an empty string
- [Tcl 8.4 manual: lindex](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lindex.htm) - 0 refers to the first element; a negative or too large index returns an empty string; end and end-N
- [Tcl 8.4 manual: lrange](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lrange.htm) - elements first through last, inclusive; lrange {a b c d e} 0 1 selects the first two
- [Tcl 8.4 manual: lsearch](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lsearch.htm) - returns the index of the first matching element, or -1; -start
- [Tcl 8.4 manual: linsert](https://www.tcl-lang.org/man/tcl8.4/TclCmd/linsert.htm) - index 0 or less inserts at the beginning; end or a larger index appends; end-integer counts back from the last element
- [Tcl 8.4 manual: lreplace](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lreplace.htm) - first and last are list indexes with the same forms as lindex
- [Tcl 8.4 manual: lset](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lset.htm) - replaces the element at an index (Tcl 8.4 and later)
- [Tcl 8.4 manual: lsort](https://www.tcl-lang.org/man/tcl8.4/TclCmd/lsort.htm) - -index extracts the index'th element of each sublist; end and end-index are allowed
- [Tcl 8.4 manual: split](https://www.tcl-lang.org/man/tcl8.4/TclCmd/split.htm) - empty elements when the first or last character of the string is a separator, or two separators are adjacent
- [Tcl 8.4 manual: regexp](https://www.tcl-lang.org/man/tcl8.4/TclCmd/regexp.htm) - -indices gives the indexes of the first and last characters; -1 -1 for a subexpression that took no part; -start; sub-match variables follow the parentheses left to right
- [Tcl 8.4 manual: regsub](https://www.tcl-lang.org/man/tcl8.4/TclCmd/regsub.htm) - & or \0 is the whole match; \n, where n is a digit between 1 and 9, is the n-th parenthesized subexpression
- [Tcl 8.4 manual: format](https://www.tcl-lang.org/man/tcl8.4/TclCmd/format.htm) - XPG3 position specifiers: 1 corresponds to the first argument
- [Tcl 8.4 manual: scan](https://www.tcl-lang.org/man/tcl8.4/TclCmd/scan.htm) - XPG3 position specifiers (1 corresponds to the first varName) and the %n conversion
- [Tcl 8.4 manual: clock](https://www.tcl-lang.org/man/tcl8.4/TclCmd/clock.htm) - %w Sunday = 0; %u Monday = 1; %U and %W weeks 00 - 52; %V ISO-8601 week; %j 001 - 366; %m 01 - 12; %d 01 - 31; %H 00 - 23; %I 01 - 12
- [Tcl 8.4 manual: binary](https://www.tcl-lang.org/man/tcl8.4/TclCmd/binary.htm) - @ moves to an absolute location; position 0 refers to the first byte
- [Tcl 8.4 manual: info](https://www.tcl-lang.org/man/tcl8.4/TclCmd/info.htm) - info level: 1 refers to the top-most active procedure; 0 to the current level
- [Tcl 8.4 manual: uplevel](https://www.tcl-lang.org/man/tcl8.4/TclCmd/uplevel.htm) - # followed by a number is an absolute level; a plain number is relative; the default is 1
- [Tcl 8.4 manual: upvar](https://www.tcl-lang.org/man/tcl8.4/TclCmd/upvar.htm) - level takes the forms uplevel accepts and defaults to 1
- [Tcl 8.4 manual: expr](https://www.tcl-lang.org/man/tcl8.4/TclCmd/expr.htm) - rand() returns a pseudo-random floating-point value in the range (0,1)
- [Tcl 8.4 manual: if](https://www.tcl-lang.org/man/tcl8.4/TclCmd/if.htm) - the condition must be a boolean: a numeric value, where 0 is false and anything else is true, or a string such as true or yes, false or no
- [Tcl 8.4 manual: Tcl_GetBoolean](https://www.tcl-lang.org/man/tcl8.4/TclLib/GetInt.htm) - 0, false, no and off are false; 1, true, yes and on are true; any of them may be abbreviated, in any case
- [Tcl 8.4.6 source code, tag core-8-4-6 on GitHub](https://github.com/tcltk/tcl/tree/core-8-4-6) - the reference interpreter every Tcl example here was run in (commit bf3eeadc)
- [F5 iRules reference: getfield](https://clouddocs.f5.com/api/irules/getfield.html) - the field_number parameter is 1 indexed
- [F5 iRules reference: findstr](https://clouddocs.f5.com/api/irules/findstr.html) - skip_count defaults to zero and is counted from the match; F5's examples
- [F5 iRules reference: substr](https://clouddocs.f5.com/api/irules/substr.html) - skip_count is the index of the first character returned, where 0 indicates the first character; the terminator 0 example and its annotation
- [F5 iRules reference: domain](https://clouddocs.f5.com/api/irules/domain.html) - returns the last count portions of the domain name; examples 1, 2, 5 and 6
- [F5 iRules reference: URI::path](https://clouddocs.f5.com/api/irules/URI__path.html) - start and end depths with start >= 1; the example and its comments
- [F5 iRules reference: HTTP::request_num](https://clouddocs.f5.com/api/irules/HTTP__request_num.html) - the number of HTTP transactions on the connection, including the current transaction
- [F5 iRules reference: HTTP2::requests](https://clouddocs.f5.com/api/irules/HTTP2__requests.html) - the count of requests in the HTTP/2 session, including the current one; 0 when HTTP/2 is not active
- [F5 iRules reference: HTTP::header](https://clouddocs.f5.com/api/irules/HTTP__header.html) - at returns the header name at a zero-based index; value operates on the last of repeated headers
- [F5 iRules reference: SIP::header](https://clouddocs.f5.com/api/irules/SIP__header.html) - if index is not provided, the first match is returned
- [F5 iRules reference: HTTP::payload](https://clouddocs.f5.com/api/irules/HTTP__payload.html) - to replace the entire payload, the offset should be 0
- [F5 iRules reference: TCP::payload](https://clouddocs.f5.com/api/irules/TCP__payload.html) - replace offset and length; examples starting at offset 0
- [F5 iRules reference: UDP::payload](https://clouddocs.f5.com/api/irules/UDP__payload.html) - replace offset and length; examples starting at offset 0
- [F5 iRules reference: SSL::payload](https://clouddocs.f5.com/api/irules/SSL__payload.html) - optional offset and length; the example reads from offset 0
- [F5 iRules reference: TCP::offset](https://clouddocs.f5.com/api/irules/TCP__offset.html) - returns the number of bytes currently held in memory via TCP::collect
- [F5 iRules reference: SSL::cert](https://clouddocs.f5.com/api/irules/SSL__cert.html) - a value of zero denotes the first certificate in the chain; count; the example comment
- [F5 iRules reference: SSL::extensions](https://clouddocs.f5.com/api/irules/SSL__extensions.html) - the N-th (zero-indexed) extension; the example loop
- [F5 iRules reference: class](https://clouddocs.f5.com/api/irules/class.html) - -index, class element, class search -all -index (0 1 2), 1 or 0 without an option, indexes not guaranteed to stay the same
- [F5 iRules reference: matchclass](https://clouddocs.f5.com/api/irules/matchclass.html) - matchclass index starts at 1 while lindex uses a 0 based index; 0 if no match is found; the example
- [F5 iRules reference: TMM::cmp_unit](https://clouddocs.f5.com/api/irules/TMM__cmp_unit.html) - the number (0-x) of the CPUs executing the rule
- [F5 iRules reference: TMM::cmp_group](https://clouddocs.f5.com/api/irules/TMM__cmp_group.html) - the number (0-x) of the group; always 0 on other platforms
- [F5 iRules reference: SIP::route](https://clouddocs.f5.com/api/irules/SIP__route.html) - a numeric zero-based index, or the keyword top
- [F5 iRules reference: SIP::via](https://clouddocs.f5.com/api/irules/SIP__via.html) - the first Via when no index is given; the example SIP::via 0
- [F5 tmsh reference: ltm rule command SIP via](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_rule_command_SIP_via.html) - <index> is a numeric zero-based index (in the page source; a browser hides the placeholder)
- [F5 iRules reference: DIAMETER::avp](https://clouddocs.f5.com/api/irules/DIAMETER__avp.html) - the zero-based index; the first AVP when no index is given
- [F5 tmsh reference: ltm rule command DIAMETER avp](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_rule_command_DIAMETER_avp.html) - no index works exactly the same as index 0; the worked example where index 1 returns mno
- [F5 iRules reference: RADIUS::avp](https://clouddocs.f5.com/api/irules/RADIUS__avp.html) - the example loops index from 0 and stops at the first empty result
- [F5 iRules reference: MESSAGE::field](https://clouddocs.f5.com/api/irules/MESSAGE__field.html) - the value at the 0-based index; an empty string when the field is absent
- [F5 iRules reference: NAME::response](https://clouddocs.f5.com/api/irules/NAME__response.html) - valid index values are 0 through 15 inclusive
- [F5 iRules reference: JSON::array](https://clouddocs.f5.com/api/irules/JSON__array.html) - insert at an index equal to the size appends; remove slides the values down; introduced in BIG-IP 21.0.0
- [F5 iRules reference: RESOLV::lookup](https://clouddocs.f5.com/api/irules/RESOLV__lookup.html) - multiple values come back as a list; lindex 0 for a single address
- [F5 iRules reference: DNSMSG::record](https://clouddocs.f5.com/api/irules/DNSMSG-record.html) - the example that names lindex $answer 1 first_rr
- [F5 iRules reference: whereis](https://clouddocs.f5.com/api/irules/whereis.html) - returns a list with the continent, country and state in that order; the lindex 0 and 1 example
- [F5 iRules reference: active_members](https://clouddocs.f5.com/api/irules/active_members.html) - a Tcl list of lists, each with the IP and port of an active member; no order is stated
- [F5 iRules reference: members](https://clouddocs.f5.com/api/irules/members.html) - counts or lists all members (address and port) of a pool, not just active ones
- [F5 iRules reference: table](https://clouddocs.f5.com/api/irules/table.html) - incr: a missing key starts at 0, the default delta is 1, and the value after the increment is returned
- [F5 iRules reference: STATS::incr](https://clouddocs.f5.com/api/irules/STATS__incr.html) - fields are numbered from 1 to 32, but you must provide the name
- [F5 iRules reference: priority](https://clouddocs.f5.com/api/irules/priority.html) - 0 to 1000 inclusive, default 500, lower runs first; the sentence that says between 1 and 1000
- [F5 iRules reference: MR::message](https://clouddocs.f5.com/api/irules/MR__message.html) - clone IDs count from (clone_count_before + 1); the clone_count wording
- [F5 iRules reference: MR::connection_instance](https://clouddocs.f5.com/api/irules/MR__connection_instance.html) - incoming connections return 0 of 1
- [F5 iRules reference: SSL::verify_result](https://clouddocs.f5.com/api/irules/SSL__verify_result.html) - 0 is X509_V_OK, the operation was successful
- [F5 iRules reference: LB::server](https://clouddocs.f5.com/api/irules/LB__server.html) - the default priority value of 1 is returned when none is configured; route_domain is null for route domain 0
- [F5 iRules reference: log](https://clouddocs.f5.com/api/irules/log.html) - log entries go to /var/log/ltm; the examples use the local0 facility
- [F5 tmsh reference: ltm policy](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_policy.html) - ordinal and the numbered conditions and actions; path-segment and unnamed-query-param indexes start at 1, negative values count from the right
- [F5 tmsh reference: ltm policy-strategy](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_policy-strategy.html) - the precedence table starts at 1; a lower value is a higher precedence
- [F5 tmsh reference: ltm pool](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_pool.html) - priority-group 0 through 65535 (default 0), ratio default 1, min-active-members, connection-limit, reselect-tries and queue-depth-limit defaults
- [F5 tmsh reference: ltm virtual](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/ltm/ltm_virtual.html) - a connection limit of 0 allows an unlimited number; destination any:any
- [F5 tmsh reference: net route-domain](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/net/net_route-domain.html) - if no route is found, the system searches route domain 0; connection-limit 0 is unlimited
- [F5 tmsh reference: net interface](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/net/net_interface.html) - interface names such as 3.1 (slot 3, port 1) and mgmt
- [F5 tmsh reference: net vlan](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/net/net_vlan.html) - a tag of 1 through 4094, or 4096
- [F5 tmsh reference: sys software volume](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/sys/sys_software_volume.html) - volume names HDX.Y, CFX.Y and MDX.Y
- [F5 tmsh reference: sys cluster](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/sys/sys_cluster.html) - cluster members 1 to 8, identified by the slot number
- [F5 tmsh reference: vcmp guest](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/vcmp/vcmp_guest.html) - slots is a number greater than zero, default 1
- [F5 tmsh reference: cm traffic-group](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/cm/cm_traffic-group.html) - the unit ID is between 1 and 15
- [F5 tmsh reference: sys log-config destination local-syslog](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/sys/sys_log-config_destination_local-syslog.html) - default-facility is local0; the options are local0 to local7
- [F5 tmsh reference: gtm pool a](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/gtm/gtm_pool_a.html) - member-order specifies the order number of the pool member
- [F5 tmsh reference: gtm wideip a](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/gtm/gtm_wideip_a.html) - global-availability selects the first pool in the list for as long as it is available
- [F5 tmsh reference: apm acl](https://clouddocs.f5.com/cli/tmsh-reference/latest/modules/apm/apm_acl.html) - the example where acl-order 3 is the third ACL in the list
- [F5 TechDocs: TMOS Routing Administration 14.0, Route Domains](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/big-ip-tmos-routing-administration-14-0-0/09.html) - the default route domain has an ID of 0; the A.B.C.D%ID notation
- [F5 TechDocs: Interface naming conventions (TMOS Routing Administration)](https://techdocs.f5.com/en-us/bigip-14-1-0/big-ip-tmos-routing-administration-14-1-0/interfaces/interface-properties/interface-naming-conventions.html) - <s>.<p> names such as 1.1, 1.2 and 2.1; the management interface
- [F5 TechDocs: VLANs, VLAN Groups, and VXLAN (TMOS Routing Administration)](https://techdocs.f5.com/en-us/bigip-14-1-0/big-ip-tmos-routing-administration-14-1-0/vlans-vlan-groups-and-vxlan.html) - a VLAN tag can be between 1 and 4094
- [F5 TechDocs: Platform Guide: VIPRION 2400 Series](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/pg_viprion2400/1.html) - interface 1/1.2 is slot 1, interface 1.2
- [F5 TechDocs: About Pools (Local Traffic Management Basics)](https://techdocs.f5.com/en-us/bigip-21-1-0/big-ip-local-traffic-management-basics/about-pools.html) - higher priority groups get traffic first; priority group 0 is the lowest; 0 disables priority group activation
- [F5 TechDocs: About Virtual Servers (Local Traffic Management Basics)](https://techdocs.f5.com/en-us/bigip-21-1-0/big-ip-local-traffic-management-basics/about-virtual-servers.html) - a wildcard virtual server uses port 0 and handles traffic for all services
- [F5 TechDocs: Disk Management (BIG-IP System Essentials 15.1)](https://techdocs.f5.com/en-us/bigip-15-1-0/big-ip-system-essentials/disk-management.html) - volumes named MD1.1, MD1.2, MD1.3 and HD1.1, HD1.2
- [F5 TechDocs: Device Service Clustering Administration 13.1, Managing Failover](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-system-device-service-clustering-administration-13-1-0/6.html) - the two pre-configured traffic groups, traffic-group-1 and traffic-group-local-only
- [F5 K411: Overview of packet tracing with the tcpdump utility](https://my.f5.com/manage/s/article/K411) - tcpdump -i 0.0 views the traffic on all TMM interfaces, not the management interface; not rate-limited
- [F5 K11094: Clearing the LCD and the Alarm LED remotely](https://my.f5.com/manage/s/article/K11094) - slot values 0 to 8; on a VIPRION platform the slot ID is counted from 1
- [F5 K14358: Overview of Clustered Multiprocessing (11.3.0 and later)](https://my.f5.com/manage/s/article/K14358) - Sys::TMM: 0.0 to 0.7, tmm.0 --tmid 0, TMM0
- [F5 K15003: Data and control plane tasks use separate logical cores (Hyper-Threading)](https://my.f5.com/manage/s/article/K15003) - with HTSplit, TMMs have only even-numbered IDs; the 10th TMM has the ID of 18
- [F5 K16197: Reviewing BIG-IP log files](https://my.f5.com/manage/s/article/K16197) - the severity level digit, with 0 being the highest severity level
- [F5 K15934495: Configuring the level of information that syslog-ng sends to log files (12.x - 17.x)](https://my.f5.com/manage/s/article/K15934495) - the local0 to local7 facility table; local0 is BIG-IP specific messages in /var/log/ltm
- [F5 K33749970: Managing local traffic policies on the BIG-IP system using tmsh (12.1.0 and later)](https://my.f5.com/manage/s/article/K33749970) - the example policy with conditions add { 0 { ... } } and actions add { 0 { ... } }
- [F5 K13637: Capturing internal TMM information with tcpdump](https://my.f5.com/manage/s/article/K13637) - the Slot and TMM trailer fields; the filter for TMM0 on Slot1; Ingress 0 means TMM is sending
- [F5 iControl REST API reference: tm/ltm/policy/rules](https://clouddocs.f5.com/api/icontrol-rest/APIRef_tm_ltm_policy_rules.html) - ordinal is described as a positive integer
- [F5 iControl SOAP reference: Log::SyslogLevel](https://clouddocs.f5.com/api/icontrol-soap/Log__SyslogLevel.html) - LOG_LEVEL_UNKNOWN 0, LOG_LEVEL_EMERG 1 to LOG_LEVEL_DEBUG 8
- [F5 iControl SOAP reference: ASM::SeverityName](https://clouddocs.f5.com/api/icontrol-soap/ASM__SeverityName.html) - SEVERITY_LOG_EMERG 0 to SEVERITY_LOG_DEBUG 7
- [F5 BIG-IP AS3 3.57.0 schema reference](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/refguide/schema-reference.html) - priorityGroup default 0, ratio default 1 [0, 100], connectionLimit 0, memberOrder default 0, defaultRouteDomain 0
- [F5 Bug ID 547581 (iControl REST paging)](https://cdn.f5.com/product/bugtracker/ID547581.html) - the first 100 objects with $skip=0&$top=100
- [F5 DevCentral: Demystifying iControl REST Part 3, query parameters and tmsh options](https://community.f5.com/t/demystifying-icontrol-rest-part-3-how-to-pass-query-parameters-and-tmsh-options/68038) - $skip behaves as 0 when omitted; the example response with pageIndex 1 and startIndex 1
- [F5 DevCentral: LTM Policy, Matching Strategies](https://community.f5.com/t/ltm-policy-matching-strategies/64116) - the lower ordinal wins; ordinal 0 is the default and not shown
- [F5 DevCentral: iRules Style Guide (JRahm, from Jim Deucker's notes, 2022)](https://community.f5.com/t/irules-style-guide/71151) - always express or store state as 0 or 1; always give an event a priority, and use the default of 500 when there is no other starting point
- [F5 Agility lab: BIG-IP DNS, wide IPs and pools](https://f5-agility-labs-dns.readthedocs.io/en/latest/_sources/class1/module5/module5.rst.txt) - tmsh create gtm wideip a with pools add { ... { order 0 } }
- [F5 Ansible module documentation: bigip_apm_acl](https://clouddocs.f5.com/products/orchestration/ansible/devel/modules/bigip_apm_acl_module.html) - the lower the number, the higher the ACL in the order, with the lowest number 0 being the topmost
- [F5 rSeries training: rSeries Networking](https://clouddocs.f5.com/training/community/rseries-training/html/rseries_networking.html) - interfaces are numbered starting with 1.0
- [F5 VELOS training: VELOS Networking](https://clouddocs.f5.com/training/community/velos-training/html/velos_networking.html) - <blade#>/<port#> names: 1/1.0 when bundled, 1/1.1 to 1/1.4 when not

## Related reading

- [iRules LX, explicado: o que roda onde quando o Tcl chama o Node.js](https://ronutz.com/pt-BR/learn/irules-lx-explained.md): O iRules LX coloca um processo Node.js ao lado do Traffic Management Microkernel e deixa uma iRule em Tcl chamá-lo com ILX::call, esperar no máximo três segundos por padrão e receber a resposta como um valor Tcl. Este é o mecanismo inteiro, objeto por objeto e comando por comando, a partir da referência da própria F5: workspaces, extensões, plugins e a LX rule; ILX::init, ILX::call e ILX::notify; os modos de processo dedicado e único; o npm sem conexão com a internet; o runtime Node.js 6.9.1 que o BIG-IP 21.1 ainda entrega depois de remover o 0.12; a atualização que costumava quebrar workspaces; e as perguntas a fazer antes de um projeto depender dele.
- [O iRules Style Guide do DevCentral, regra por regra, com os motivos](https://ronutz.com/pt-BR/learn/irules-style-guide-explained.md): O DevCentral da F5 publicou em 2022 um iRules Style Guide: configurações de editor e vinte regras numeradas. Algumas são questão de gosto, mas várias evitam falhas reais: um iRule que não carrega, um switch que um atacante consegue manipular, uma expressão que roda dados da requisição como código, uma tempestade de log. Veja as regras agrupadas pelo que protegem, com o motivo de cada uma, o que os comentários do guia corrigiram e o que mudou desde que ele foi escrito.
- [Zero ou um: onde o BIG-IP começa a contar](https://ronutz.com/pt-BR/learn/bigip-zero-or-one.md): O Tcl conta a partir de 0, vários comandos que a F5 acrescenta contam a partir de 1, contadores devolvem 1 para o primeiro item, muitos zeros da configuração são valores e não posições, e o mesmo segmento de caminho é o elemento 1, o campo 2 ou o índice 1 dependendo de quem pergunta. Veja de onde vem cada um, nas palavras da própria F5, com as armadilhas e os lugares em que as páginas da F5 se contradizem.
