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.

Redes

Cada lugar do BIG-IP encontrado que conta a partir de 0 ou de 1, com o que é contado, como chegar ao primeiro e ao último, o que volta quando não há nada, e as fontes. Filtre por onde a contagem começa, ou pesquise.

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 no estilo de campo da F5 contam a partir de 1: campos de getfield, profundidades de URI::path, índices de path-segment 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 GTM, 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.
Conta a partir de
Experimente

Mostrando 76 de 76.

Tcl dentro de iRules (22)

string index0 Começa em 0

string index conta caracteres a partir de 0: o índice 0 é o primeiro caractere, end o último e end-1 o anterior. Um índice abaixo de 0, ou igual ou maior que o comprimento, devolve uma string vazia, não um erro.

Conta
caracteres
Primeiro
0
Último
end
Quando não há nada
""

Exemplo string index abcd end-1 devolve c

string range0 Começa em 0

string range recebe um índice inicial e um final, ambos contados a partir de 0 e ambos incluídos: string range $s 0 2 devolve três caracteres. Um índice inicial abaixo de 0 é lido como 0, e um índice final além do fim é lido como end.

Conta
caracteres, com as duas pontas incluídas
Primeiro
0
Último
end
Quando não há nada
""

Exemplo string range abcdef 2 3 devolve cd

Atenção Como o índice final está incluído, o resultado tem o final menos o inicial mais um caracteres. Os N primeiros caracteres são string range $s 0 N-1, não N.

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
string first, string last0 Começa em 0

string first e string last devolvem o índice onde o texto começa, contado a partir de 0, ou -1 quando ele não está lá. O índice de início opcional de string first (e o índice final de string last) usa a mesma numeração.

Conta
caracteres
Primeiro
0
Quando não há nada
-1

Exemplo string first q xyz devolve -1

Atenção Num if, 0 é falso e qualquer outro número é verdadeiro. Então if [string first ...] pula o corpo quando o texto está bem no início (índice 0) e roda o corpo quando o texto não existe (-1). Teste [string first ...] >= 0 em vez disso.

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
string compare=0 Zero é um valor

string compare devolve -1, 0 ou 1: 0 significa que as duas strings são iguais, -1 que a primeira vem antes da segunda na ordenação, e 1 que vem depois.

Conta
um resultado de comparação, não uma posição

Exemplo string compare a b devolve -1

Atenção Lido como condição, 0 é falso: if [string compare $a $b] roda quando as strings são diferentes. Para igualdade use string equal ou o operador eq, que dão 1 quando as strings são iguais.

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
true and false in if and expr=0 Zero é um valor

Na condição de um if, e sempre que expr lê um valor como verdadeiro ou falso, 0 é falso e qualquer outro número é verdadeiro, inclusive -1. O Tcl também aceita as palavras true, yes e on, e false, no e off, em maiúsculas ou minúsculas e abreviadas, desde que a abreviação não seja ambígua: n, t e of funcionam, enquanto o dá erro. O iRules Style Guide do DevCentral pede que você guarde estado só como 0 ou 1.

Conta
uma condição, não uma posição

Exemplo expr {-1 ? "taken" : "skipped"} devolve taken

Atenção string is true e string is false seguem regras diferentes das do if: aceitam só 0, 1 e as palavras, então string is true -1 devolve 0 embora o if trate -1 como verdadeiro. Sem -strict, também devolvem 1 para uma string vazia, que o if recusa com um erro.

string replace, wordstart, wordend, is -failindex0 Começa em 0

string replace recebe índices inicial e final como string range; string wordstart e string wordend recebem um índice e devolvem outro; string is com -failindex guarda o índice do primeiro caractere que falhou. Todos contam a partir de 0, e os argumentos de índice aceitam end.

Conta
caracteres
Primeiro
0
Último
end

Exemplo string replace abcdef 1 2 XY devolve aXYdef

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
end, end-N← Conta pela direita

end é o último índice, ou seja, o comprimento menos um, e end-1 é o anterior. Funciona em string index, string range, string replace, lindex, lrange, linsert, lreplace e lsort -index.

Conta
posições a partir do fim
Último
end

Exemplo lindex {a b c} end-1 devolve b

Atenção end não é o comprimento: numa string de 4 caracteres, end é 3. end-0 é o mesmo que end.

lindex0 Começa em 0

lindex conta elementos a partir de 0: o índice 0 é o primeiro elemento e end o último. Um índice negativo, ou igual ou maior que o número de elementos, devolve uma string vazia.

Conta
elementos de lista
Primeiro
0
Último
end
Quando não há nada
""

Exemplo lindex {a b c} 0 devolve a

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
lrange0 Começa em 0

lrange devolve os elementos do inicial ao final, contados a partir de 0 e ambos incluídos: lrange $l 0 1 são os dois primeiros. Um índice inicial abaixo de 0 é lido como 0, e um final além do fim como end.

Conta
elementos de lista, com as duas pontas incluídas
Primeiro
0
Último
end
Quando não há nada
""

Exemplo lrange {a b c d e} 0 1 devolve a b

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
lsearch0 Começa em 0

lsearch devolve o índice do primeiro elemento que casa, contado a partir de 0, ou -1 quando nada casa. -start recebe um índice na mesma numeração.

Conta
elementos de lista
Primeiro
0
Quando não há nada
-1

Exemplo lsearch {a b c} z devolve -1

Atenção A mesma armadilha de string first: um casamento no índice 0 é falso num if, e nenhum casamento (-1) é verdadeiro. Compare o resultado com -1.

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
linsert, lreplace, lset0 Começa em 0

linsert, lreplace e lset recebem índices contados a partir de 0. linsert em 0 (ou abaixo) coloca os novos elementos primeiro, e em end (ou além do fim) acrescenta no fim.

Conta
elementos de lista
Primeiro
0
Último
end

Exemplo linsert {a b c} 0 X devolve X a b c

lsort -index0 Começa em 0

lsort -index ordena uma lista de listas por um elemento de cada sublista, contado a partir de 0: -index 1 ordena pelo segundo elemento. end e end-N são aceitos.

Conta
elementos dentro de cada sublista
Primeiro
0
Último
end

Exemplo lsort -index 1 {{a 2} {b 1}} devolve {b 1} {a 2}

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
split, then lindex0 Começa em 0

split cria uma lista, e lindex a conta a partir de 0. Quando a string começa com o separador, o primeiro elemento é o texto vazio antes dele.

Conta
elementos da lista depois da divisão
Primeiro
0
Quando não há nada
""

Exemplo lindex [split /api/v2/users /] 1 devolve api

Atenção Um caminho começa com barra, então split /api/v2/users / dá quatro elementos, o primeiro vazio: o primeiro segmento, api, é o elemento 1, não o 0.

regexp -indices, -start0 Começa em 0

Com -indices, regexp guarda cada casamento como um par de índices, o primeiro e o último caractere, contados a partir de 0 e ambos incluídos. Um grupo que não participou do casamento recebe -1 -1. -start recebe um índice na mesma numeração.

Conta
caracteres
Primeiro
0
Quando não há nada
-1 -1

Exemplo regexp -indices {(b+)} abbbc m; set m devolve 1 3

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
regexp sub-matches, regsub \1 to \91 Começa em 1

Os grupos de captura contam a partir de 1, na ordem em que os parênteses de abertura aparecem: a primeira variável de sub-casamento de regexp recebe o grupo 1, e regsub o escreve como \1. O grupo 0 é o casamento inteiro: a variável de casamento de regexp, e & ou \0 em regsub.

Conta
grupos de captura
Primeiro
\1

Exemplo regsub {(a)(b)} ab {\2\1} devolve ba

Atenção Os números de grupo começam em 1 enquanto as posições na string começam em 0: na mesma chamada regexp -indices, o grupo 1 pode informar a posição 0.

format and scan %n$1 Começa em 1

Em format e scan, um especificador de posição como %2$s escolhe um argumento (ou uma variável) pelo número, e 1 é o primeiro. Quando um especificador é posicional, todos precisam ser.

Conta
argumentos e variáveis
Primeiro
%1$

Exemplo format {%2$s %1$s} a b devolve b a

scan %nn Uma contagem, não uma posição

%n guarda quanto da entrada scan já leu, então é igual ao índice onde o resto da string começa e pode alimentar string range.

Conta
entrada lida até ali

Exemplo scan "ab cd" {%s%n} w n; set n devolve 2

Atenção No Tcl 8.4.6 essa quantidade é contada em bytes de UTF-8, não em caracteres: depois de um caractere como é ela passa à frente de string range (o explicador de scan mostra isso).

clock format %w %H %M %S %U %W0 Começa em 0

Estes campos de clock format começam em 0: %w é o dia da semana com domingo 0, %H a hora de 00 a 23, %M e %S de 00 a 59, e %U e %W a semana do ano a partir de 00 (no tclsh 8.4.6, 1 de janeiro de 1970, uma quinta-feira, é a semana 00 nos dois).

Conta
dias da semana, horas, minutos, segundos, semanas
Primeiro
0 / 00

Exemplo clock format 0 -format {%w %H %U %W} -gmt 1 devolve 4 00 00 00

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
clock format %u %d %e %j %m %V %I1 Começa em 1

Estes campos de clock format começam em 1: %u é o dia da semana com segunda-feira 1 e domingo 7, %d e %e o dia do mês, %j o dia do ano a partir de 001, %m o mês a partir de 01, %I o relógio de 12 horas a partir de 01, e %V a semana ISO 8601 a partir de 01.

Conta
dias da semana, dias, meses, semanas
Primeiro
1 / 01 / 001

Exemplo clock format 0 -format {%u %d %j %m %V} -gmt 1 devolve 4 01 001 01 01

Atenção %w e %u numeram o mesmo dia de forma diferente: domingo é 0 em %w e 7 em %u, enquanto segunda-feira é 1 nos dois.

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
binary scan @0 Começa em 0

Em binary scan, @ leva o cursor a uma posição absoluta em bytes, e a posição 0 é o primeiro byte. Uma posição além do fim deixa o cursor depois do último byte.

Conta
bytes
Primeiro
@0

Exemplo binary scan ABC @1a1 x; set x devolve B

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6
info level, uplevel, upvar0 Começa em 0

info level é 0 no topo (o nível global) e 1 dentro de um proc chamado dali. uplevel e upvar recebem um nível relativo, em que 1 (quem chamou) é o padrão, ou um absoluto escrito com #: #0 é o nível global.

Conta
níveis da pilha de chamadas
Primeiro
#0

Exemplo proc lv {} { info level }; lv devolve 1

expr {int(rand()*N)}0 Começa em 0

rand() devolve um valor entre 0 e 1, nunca o próprio 1, então int(rand()*N) é um número inteiro de 0 a N-1: exatamente as posições de lindex numa lista com N elementos.

Conta
posições de lista
Primeiro
0
Último
N-1

Exemplo expr {int(rand()*3)} devolve 0, 1, 2

Grau de certeza: Afirmado pelo manual do Tcl e executado no tclsh 8.4.6

Comandos que a F5 acrescenta às iRules (30)

getfield1 Começa em 1

getfield divide uma string num caractere ou numa string e devolve um campo. Página da F5: o número do campo começa em 1, então o campo 1 é o texto antes do primeiro separador.

Conta
campos
Primeiro
1

Exemplo getfield "www.example.com:8080" ":" 1 devolve www.example.com

Atenção Quando a string começa com o separador, o campo 1 é o texto vazio antes dele, então o primeiro segmento de um caminho é o campo 2. A página da F5 não tem exemplo com separador no início; o tradutor sinaliza isso.

substr0 Começa em 0

substr começa num índice contado a partir de 0: a página da F5 diz que o skip é o índice do primeiro caractere devolvido, onde 0 é o primeiro caractere. O terminador é um comprimento ou um texto antes do qual parar.

Conta
caracteres
Primeiro
0

Exemplo substr "abcdefghijklm" 2 4 devolve cdef

As páginas da F5 discordam A regra da F5 diz que um terminador numérico devolve essa quantidade de caracteres, então 0 não devolveria nada, mas o exemplo publicado com 0 devolve o resto da string, e a página da API marca essa linha como não funcionando no 11.5.4 e no 11.6.0.

findstr0 Começa em 0

findstr encontra o texto procurado e então pula uma quantidade de caracteres contada a partir do primeiro caractere do casamento: 0, o padrão, devolve o próprio casamento. Para começar logo depois do texto procurado, pule o comprimento dele.

Conta
caracteres a partir do casamento
Primeiro
0

Exemplo findstr "aaa123456xxyz" "aaa" 3 "xyz" devolve 123456x

Atenção substr conta o skip a partir do início da string e findstr a partir do início do casamento, embora a página de substr da F5 diga que os dois usam esses argumentos do mesmo jeito.

domain← Conta pela direita

domain devolve os últimos N rótulos de um nome com pontos, contados a partir da direita: no exemplo da F5, 1 dá com e 2 dá domain.com. Uma contagem maior que o número de rótulos devolve o nome inteiro.

Conta
rótulos, a partir da direita
Último
1

Exemplo domain www.sub.my.domain.com 2 devolve domain.com

Atenção Num nome como www.sub.my.domain.co.uk, 2 devolve co.uk, não o nome da organização (exemplo da própria F5).

URI::path1 Começa em 1

URI::path com uma profundidade inicial (e uma final) devolve parte do caminho de diretórios, e a profundidade 1 é o primeiro diretório: a página da F5 diz que o intervalo exige início >= 1, e o exemplo mostra que 0 gera um erro de Tcl.

Conta
profundidade de diretório
Primeiro
1

Exemplo URI::path "/path/to/file.ext?param=value" 2 devolve /to/

As páginas da F5 discordam O exemplo da F5 se contradiz: um comentário diz que a profundidade é 3 onde a saída mostra 2, um início de 3 devolve / enquanto um início de 4 devolve /path/to/, e a cópia da página no tmsh omite essas linhas.

HTTP::request_num, HTTP2::requests1 Começa em 1

HTTP::request_num conta as transações HTTP da conexão atual incluindo a atual, então a primeira requisição devolve 1. HTTP2::requests conta do mesmo jeito na sessão HTTP/2 e devolve 0 quando o HTTP/2 não está ativo.

Conta
requisições na conexão
Primeiro
1

Exemplo HTTP::request_num devolve 1

HTTP::header at, HTTP::header value0 Começa em 0

HTTP::header at devolve o nome do cabeçalho num índice que começa em zero, então 0 é a primeira linha de cabeçalho. Pedir o valor de um cabeçalho que não existe devolve uma string vazia.

Conta
linhas de cabeçalho
Primeiro
0
Quando não há nada
""

Exemplo HTTP::header value header_1 devolve value_3

Atenção Quando um cabeçalho aparece mais de uma vez, HTTP::header value trabalha com o último, enquanto SIP::header sem índice devolve o primeiro. HTTP::header values devolve todos.

HTTP::payload, TCP::payload, UDP::payload, SSL::payload0 Começa em 0

Os comandos de payload recebem um deslocamento em bytes contado a partir de 0: a página de HTTP::payload da F5 diz que, para substituir o payload inteiro, o deslocamento deve ser 0, e as páginas de payload de TCP, UDP e SSL mostram a mesma base nos exemplos.

Conta
bytes
Primeiro
0

Exemplo TCP::payload replace 0 [TCP::payload length] "" devolve o payload TCP coletado fica vazio (exemplo da F5)

TCP::offsetn Uma contagem, não uma posição

Apesar do nome, TCP::offset não é uma posição: a página da F5 diz que ele devolve o número de bytes retidos na memória por TCP::collect.

Conta
bytes coletados (uma contagem)

Exemplo TCP::offset devolve o número de bytes coletados até agora

Atenção Use-o como comprimento, não como deslocamento do último byte: com N bytes retidos, o último fica no deslocamento N menos 1.

SSL::cert, SSL::cert issuer0 Começa em 0

SSL::cert e SSL::cert issuer recebem um índice a partir de 0: a página da F5 diz que zero indica o primeiro certificado da cadeia enviada pelo par e um o seguinte. SSL::cert count é o total, então o último índice é a contagem menos 1.

Conta
certificados na cadeia do par
Primeiro
0
Último
[SSL::cert count] - 1

Exemplo SSL::cert 0 devolve o primeiro certificado enviado pelo par (os exemplos da F5 o usam como o próprio certificado do cliente)

As páginas da F5 discordam Um dos exemplos da F5 tem o comentário "Check if there is more than one client cert" acima de um teste de contagem maior que 0, o que significa pelo menos um.

SSL::extensions -index0 Começa em 0

SSL::extensions -index devolve a N-ésima extensão, com índice a partir de zero nas palavras da F5, e SSL::extensions count é quantas chegaram.

Conta
extensões TLS
Primeiro
0
Último
[SSL::extensions count] - 1

Exemplo SSL::extensions -index 0 devolve a primeira extensão recebida, em bytes

Atenção O próprio exemplo da F5 percorre a partir de 0 e imprime o número mais um para pessoas: conte a partir de 0 no código e a partir de 1 nas mensagens.

class element, class match/search -index0 Começa em 0

Com -index, class match e class search devolvem índices de entradas, e class element recebe um; o exemplo da F5 lista os três primeiros casamentos como 0 1 2. Sem opção, class match devolve 1 quando casa e 0 quando não casa.

Conta
entradas do data group
Primeiro
0

Exemplo class search -all -index string_dg starts_with "abc" devolve 0 1 2

Atenção A F5 avisa que esses índices não têm garantia de continuar os mesmos quando o data group muda, nem entre eventos.

As páginas da F5 discordam Um comentário de exemplo na página da F5 chama lindex $element 1 de chave, mas no par de nome e valor esse índice é o valor.

matchclass (legacy)1 Começa em 1

O antigo matchclass devolve o índice da linha que casou contado a partir de 1, e 0 quando nada casa, então o resultado funciona como condição. A página da F5 lembra que lindex conta a partir de 0, daí o menos 1 no exemplo.

Conta
linhas do data group
Primeiro
1
Quando não há nada
0

Exemplo lindex $::color [expr {$idx - 1}] devolve a linha que casou, do antigo data group em forma de lista

As páginas da F5 discordam A mesma página afirma que nenhum casamento devolve 0, mas o exemplo testa o resultado contra -1.

TMM::cmp_unit, TMM::cmp_group0 Começa em 0

TMM::cmp_unit devolve o número (0-x) da CPU, a instância de TMM, que executa a regra, e o exemplo da F5 chama 0 de primeira instância de TMM. TMM::cmp_group devolve o grupo (0-x), que é sempre 0 em plataformas que não são chassis. TMM::cmp_count é quantos TMMs rodam.

Conta
instâncias e grupos de TMM
Primeiro
0
Último
[TMM::cmp_count] - 1

Exemplo TMM::cmp_unit devolve 0 na primeira instância de TMM

SIP::route, SIP::record-route, SIP::via0 Começa em 0

SIP::route e SIP::record-route recebem um índice numérico que começa em zero (ou a palavra top), e SIP::via também recebe um índice a partir de zero, segundo a cópia da página no tmsh. Sem índice, SIP::via devolve o primeiro Via.

Conta
entradas de cabeçalho SIP
Primeiro
0

Exemplo SIP::via 0 devolve a parte de protocolo do primeiro cabeçalho Via

DIAMETER::avp ... index0 Começa em 0

DIAMETER::avp escolhe o N-ésimo AVP com um código pelo índice que começa em zero, e omitir o índice funciona exatamente como o índice 0, o primeiro.

Conta
AVPs com o mesmo código
Primeiro
0

Exemplo DIAMETER::avp data get 8 octetstring index 1 vendor-id 3375 devolve mno

RADIUS::avp ... index0 Começa em 0

Os exemplos de RADIUS::avp da F5 leem atributos repetidos com index 0, 1, 2 e assim por diante, e param no primeiro resultado vazio. A página nunca diz a base com palavras.

Conta
ocorrências do atributo
Primeiro
0
Quando não há nada
""

Exemplo RADIUS::avp 26 "string" index 0 vendor-id 10415 vendor-type 13 devolve o primeiro atributo específico de fornecedor que casa, como string

MESSAGE::field value0 Começa em 0

MESSAGE::field value recebe um índice opcional que a página da F5 chama de baseado em 0. Um campo que não existe devolve uma string vazia, e a ordem dos campos repetidos depende do protocolo.

Conta
ocorrências do campo
Primeiro
0
Quando não há nada
""

Exemplo MESSAGE::field value Via 0 devolve o primeiro campo Via da mensagem

NAME::response address0 Começa em 0

NAME::response address recebe um índice de 0 a 15, inclusive; sem índice devolve a lista de até 16 registros, e nulo quando nada voltou. A F5 o descontinuou na versão 15.1 em favor dos comandos RESOLVER e DNSMSG.

Conta
registros de endereço
Primeiro
0
Último
15
Quando não há nada
null

Exemplo NAME::response address 0 devolve o primeiro endereço devolvido por NAME::lookup

JSON::array (BIG-IP 21.0)0 Começa em 0

Os comandos JSON::array, que a F5 lista como introduzidos no BIG-IP 21.0.0, contam posições a partir de 0: inserir num índice igual ao tamanho acrescenta no fim, e remover desliza os valores seguintes uma posição para baixo. A página nunca escreve a base com palavras.

Conta
valores do array
Primeiro
0
Último
[JSON::array size $ary] - 1

Exemplo JSON::array get $ary 0 devolve o primeiro valor do array

RESOLV::lookup, DNSMSG::section0 Começa em 0

RESOLV::lookup e DNSMSG::section devolvem listas Tcl, então lindex 0 é o primeiro item; a página de RESOLV::lookup da F5 usa exatamente isso para obter um único endereço.

Conta
endereços e registros
Primeiro
0
Último
end
Quando não há nada
""

Exemplo lindex [RESOLV::lookup $hostname] 0 devolve o primeiro endereço devolvido pela consulta

As páginas da F5 discordam O exemplo de DNSMSG::record da F5 guarda lindex $answer 1 numa variável chamada first_rr, mas o índice 1 é o segundo registro.

whereis0 Começa em 0

whereis devolve uma lista Tcl com o continente, o país e o estado, nessa ordem, então o exemplo da F5 lê o continente com lindex 0 e o país com lindex 1.

Conta
posições da lista
Primeiro
0

Exemplo lindex [whereis [IP::client_addr]] 1 devolve o código de país do cliente

active_members -list, members -list0 Começa em 0

active_members -list devolve uma lista Tcl de pares de endereço e porta dos membros ativos, e members -list cobre todos os membros, então lindex 0 é o primeiro par da lista.

Conta
membros do pool
Primeiro
0

Exemplo lindex [active_members -list my_pool] 0 devolve 192.168.1.1 80

Atenção As páginas da F5 não dizem em que ordem os membros vêm, então o primeiro par não é um membro específico: não baseie lógica numa posição.

table incr1 Começa em 1

table incr começa uma chave inexistente em 0, soma 1 a menos que se diga outro valor, e devolve o valor depois da soma, então a primeira chamada devolve 1.

Conta
um contador
Primeiro
1

Exemplo table incr hits devolve 1

STATS::incr fields1 Começa em 1

A página da F5 diz que os campos de um perfil Statistics são numerados de 1 a 32, mas STATS::incr recebe o nome do campo, não o número.

Conta
campos de um perfil Statistics
Primeiro
1
Último
32

Exemplo STATS::incr my_stats hits devolve o campo hits do perfil my_stats sobe 1

when ... priority0 Começa em 0

A prioridade de um evento vai de 0 a 1000, inclusive, tem 500 como padrão, e números menores rodam primeiro, então a prioridade 0 roda antes dos números maiores nesse evento. O iRules Style Guide do DevCentral pede uma prioridade em todo evento, com 500 quando não houver outro ponto de partida.

Conta
valores de prioridade de evento
Primeiro
0
Último
1000

Exemplo when HTTP_REQUEST priority 0 { ... } devolve este corpo de HTTP_REQUEST roda antes dos que estão no padrão 500

As páginas da F5 discordam A mesma página da F5 também diz que a prioridade pode ser atribuída entre 1 e 1000.

MR::message clone IDs1 Começa em 1

MR::message clone -count numera os novos clones a partir da contagem anterior de clones mais 1, então o primeiro clone de uma mensagem recebe o ID 1; o original não tem ID de clone (uma string vazia).

Conta
clones de mensagem
Primeiro
clone_count_before + 1

Exemplo MR::message clone -count 2 devolve dois clones, com IDs 1 e 2, para uma mensagem que não tinha nenhum

As páginas da F5 discordam A página da F5 descreve clone_count como o número de clones incluindo o original e, na mesma frase, diz que ele devolve 0 quando não há clones.

MR::connection_instance0 Começa em 0

MR::connection_instance devolve um texto na forma instância of total, e a página da F5 diz que conexões de entrada devolvem 0 of 1: a instância conta a partir de 0.

Conta
instâncias de conexão
Primeiro
0

Exemplo MR::connection_instance devolve 0 of 1

SSL::verify_result=0 Zero é um valor

SSL::verify_result devolve 0 para X509_V_OK, que a tabela da F5 descreve como operação bem-sucedida; os outros números são códigos de erro de verificação.

Conta
um código de resultado, não uma posição

Exemplo SSL::verify_result devolve 0

Atenção Lido como condição, o sucesso é falso: if [SSL::verify_result] roda quando a verificação falhou. Compare com 0 para dizer o que você quer.

LB::server priority, LB::server route_domain=0 Zero é um valor

LB::server priority devolve 1 quando o membro do pool não tem prioridade configurada, e LB::server route_domain devolve nulo quando o domínio de roteamento é 0, o padrão.

Conta
um valor de prioridade e um domínio de roteamento

Exemplo LB::server priority devolve 1

As páginas da F5 discordam A própria configuração do membro do pool, priority-group, tem 0 como padrão na referência do tmsh, então o 1 que LB::server informa para um membro não configurado não bate com o padrão configurado. Não testado num BIG-IP.

Objetos de configuração (12)

route domain ID (%ID)0 Começa em 0

O domínio de roteamento 0 é o padrão: o guia de roteamento da F5 diz que, sem domínios criados, toda rota pertence ao domínio 0, e que um endereço sem %ID usa o domínio padrão da partição, ou o domínio 0 em Common. A referência do tmsh acrescenta que, quando nenhuma rota é encontrada, o sistema procura no domínio 0.

Conta
domínios de roteamento
Primeiro
0

Exemplo 10.10.10.30%2:80 devolve um membro de pool em 10.10.10.30, porta 80, no domínio de roteamento 2

pool member priority-group, min-active-members0 Começa em 0

O priority-group de um membro de pool vai de 0 a 65535 e tem 0 como padrão, e números maiores recebem tráfego primeiro, então 0 é o grupo mais baixo: seus membros só recebem tráfego quando todos os membros dos grupos mais altos estão indisponíveis. Um min-active-members de 0 desliga a ativação por grupo de prioridade.

Conta
grupos de prioridade
Primeiro
0
Último
65535

Exemplo priority-group 0 devolve o grupo de prioridade mais baixo (o padrão)

Atenção Aqui o número maior ganha, o contrário da prioridade de evento, dos ordinais de política LTM e da ordem do GTM, onde o número menor vai primeiro.

ratio (pool member, wide IP pool, GTM member)1 Começa em 1

Os pesos de ratio têm 1 como padrão para membros de pool LTM, e o esquema AS3 também dá 1 como padrão para membros de pool GSLB; ele aceita de 0 a 100 para um membro de pool LTM.

Conta
peso de balanceamento
Primeiro
1

Exemplo ratio 1 devolve o peso padrão

connection-limit, queue-depth-limit, reselect-tries=0 Zero é um valor

Nesses campos 0 não é um tamanho, significa sem limite: um connection-limit de 0 permite conexões ilimitadas em servidores virtuais, membros de pool e domínios de roteamento, um queue-depth-limit de 0 significa sem limite, e reselect-tries 0 significa que o sistema não tenta outro membro do pool.

Conta
limites

Exemplo connection-limit 0 devolve sem limite de conexões

virtual server port 0 (any)=0 Zero é um valor

A porta 0 num servidor virtual significa todas as portas: a F5 descreve um servidor virtual curinga padrão como um que usa a porta 0 e atende o tráfego de todos os serviços. Os exemplos do tmsh escrevem a porta como any.

Conta
portas de serviço

Exemplo destination 11.11.11.12:any devolve um servidor virtual em 11.11.11.12 para todas as portas

ltm policy rule ordinal, conditions and actions0 Começa em 0

Dentro de uma regra de política LTM, condições e ações são numeradas 0, 1 e assim por diante, como mostra o exemplo de tmsh da F5. As regras têm um ordinal: o menor valor vem primeiro, e o artigo do DevCentral sobre estratégias de casamento diz que 0 é o padrão e não aparece.

Conta
regras, condições e ações
Primeiro
0

Exemplo conditions add { 0 { http-host host not values { askf5.com } request } } devolve a primeira condição da regra

As páginas da F5 discordam A referência do iControl REST descreve o ordinal como um inteiro positivo, enquanto o padrão é 0.

ltm policy path-segment index, unnamed-query-param index1 Começa em 1

Numa condição de política LTM, path-segment index e unnamed-query-param index contam a partir de 1, e valores negativos contam a partir da direita.

Conta
segmentos de caminho e parâmetros de query
Primeiro
1
Último
-1

Exemplo http-referer path-segment index 2 values { to } devolve a condição olha o segundo segmento do caminho do Referer

Atenção O primeiro segmento de /api/v2 é o index 1 numa política e o elemento 1 depois de split no Tcl, por motivos diferentes: a política conta a partir de 1, enquanto o Tcl conta a partir de 0 e tem um elemento vazio antes da barra inicial.

ltm policy-strategy precedence ordinal1 Começa em 1

A tabela de precedência de uma estratégia de política LTM começa em 1, e um valor menor é uma precedência maior: best-match a usa para decidir qual condição que casou é a mais específica.

Conta
níveis de precedência
Primeiro
1

Exemplo 1 request tcp port devolve a maior precedência da tabela

GTM wide IP pool order, pool member-order0 Começa em 0

No BIG-IP DNS, os pools de um wide IP e os membros de um pool têm uma ordem que começa em 0: o laboratório da F5 cria o primeiro pool com order 0, e o esquema AS3 tem memberOrder 0 como padrão. O Global Availability usa o primeiro pool da lista enquanto ele estiver disponível.

Conta
pools e membros, em ordem
Primeiro
0

Exemplo pools add { www.example.com_pool { order 0 } } devolve o primeiro pool do wide IP

traffic-group-1, traffic group unit ID1 Começa em 1

Todo BIG-IP vem com traffic-group-1, o grupo flutuante ao qual objetos flutuantes novos entram por padrão, e traffic-group-local-only: o grupo flutuante é numerado a partir de 1. O unit ID de um grupo de tráfego fica entre 1 e 15.

Conta
grupos de tráfego
Primeiro
1
Último
15

Exemplo traffic-group-1 devolve o grupo de tráfego flutuante pré-configurado

APM acl-order0 Começa em 0

acl-order posiciona uma ACL do APM na lista de ACLs, e um número menor fica mais acima na lista.

Conta
posições de ACL
Primeiro
0

Exemplo create acl MyACL { acl-order 3 ... } devolve a posição de MyACL na lista de ACLs

As páginas da F5 discordam A referência do tmsh descreve acl-order 3 como a terceira ACL da lista, o que conta a partir de 1, enquanto a documentação do módulo Ansible da F5 diz que o menor número, 0, é o do topo, o que faz de 3 a quarta.

Plataforma e hardware (5)

interface names (1.1, 1/1.1, mgmt)1 Começa em 1

As interfaces do BIG-IP se chamam slot.porta, como 1.1, 1.2 e 2.1 nos exemplos da F5, então os dois números começam em 1. Num VIPRION o slot da lâmina vem primeiro, como em 1/1.2 (slot 1, interface 1.2), e a interface de gerência se chama mgmt.

Conta
interfaces
Primeiro
1.1

Exemplo create vlan my_vlan interfaces add { 1.2 1.3 1.4 } devolve uma VLAN nas interfaces 1.2, 1.3 e 1.4

F5OS ports (rSeries 1.0, VELOS 1/1.0)1 Começa em 1

No F5OS, as portas do rSeries são numeradas de 1.0 até a última porta (10.0 na série r5000, 20.0 na série r10000). No VELOS uma porta agrupada é 1/1.0, e a mesma porta dividida em quatro é 1/1.1 a 1/1.4.

Conta
portas físicas
Primeiro
1.0

Exemplo interfaces interface 1.0 devolve a primeira porta de um appliance rSeries

Atenção O .0 não é uma porta 0: no VELOS ele marca uma porta que não está dividida, e as partes divididas são .1 a .4.

VIPRION slots, LCD slot 0, vCMP guest slots1 Começa em 1

Os slots do VIPRION contam a partir de 1: o artigo da F5 sobre o LCD diz que o ID do slot é contado a partir de 1, então a lâmina 2 é 2, e o tmsh lista os membros de cluster de 1 a 8. Num appliance os mesmos comandos do LCD usam o slot 0.

Conta
slots do chassi
Primeiro
1
Último
8

Exemplo lcdwarn -c 0 0 devolve limpa os avisos de nível 0 do LCD no slot 0, de um appliance

Atenção No vCMP, a configuração slots de um convidado é uma quantidade de slots (maior que zero, padrão 1), não um número de slot.

software volumes (HD1.1, MD1.1)1 Começa em 1

Os volumes de software se chamam HDX.Y (MDX.Y em RAID, CFX.Y em compact flash), onde X é o disco e Y o volume nele; os exemplos da F5 começam em HD1.1 e MD1.1.

Conta
discos e volumes
Primeiro
HD1.1

Exemplo reboot volume HD1.1 devolve reinicia no primeiro volume do primeiro disco

TMM and CPU IDs (tmm0, Sys::TMM 0.0)0 Começa em 0

As instâncias de TMM são numeradas a partir de 0: o tmsh mostra Sys::TMM: 0.0 a 0.7 numa plataforma com oito TMMs, e os processos começam em tmm.0. Com HTSplit só IDs pares são usados: o 10º TMM tem o ID 18.

Conta
instâncias de TMM
Primeiro
0

Exemplo tmsh show sys tmm-info | grep Sys::TMM devolve Sys::TMM: 0.0 ... Sys::TMM: 0.7

APIs e declarações (3)

iControl REST $skip, $top0 Começa em 0

Na paginação do iControl REST, $skip é quantos objetos pular, então a primeira página é $skip=0 (a nota de bug da F5 busca os 100 primeiros pools assim), e $top é quantos devolver.

Conta
objetos a pular
Primeiro
$skip=0

Exemplo GET /mgmt/tm/ltm/pool?$skip=0&$top=100 devolve os 100 primeiros pools

iControl REST pageIndex, startIndex1 Começa em 1

Os campos de paginação de uma resposta do iControl REST contam a partir de 1: no exemplo do DevCentral a primeira página informa pageIndex 1 e startIndex 1.

Conta
páginas e posições
Primeiro
1

Exemplo GET /mgmt/tm/ltm/pool?$top=2 devolve pageIndex: 1, startIndex: 1

Atenção Então a mesma primeira página é $skip=0 na requisição e startIndex 1 na resposta.

iControl SOAP Log::SyslogLevel1 Começa em 1

Os valores de Log::SyslogLevel do iControl SOAP ficam um acima dos números do syslog: LOG_LEVEL_EMERG é 1 e LOG_LEVEL_DEBUG 8, com 0 para nível desconhecido. ASM::SeverityName, no mesmo site, usa os números do syslog, EMERG 0 a DEBUG 7.

Conta
níveis de syslog
Primeiro
LOG_LEVEL_EMERG = 1

Exemplo LOG_LEVEL_EMERG devolve 1

Atenção Converter entre eles exige ajuste de um: um valor de SyslogLevel menos 1 é a severidade do syslog.

Logs e captura de pacotes (4)

syslog severity (0 to 7)0 Começa em 0

As severidades do syslog vão de 0, a mais grave (emerg), a 7 (debug). Numa linha de log do BIG-IP, o dígito entre os dois-pontos depois do código da mensagem é a severidade, com 0 sendo a mais alta.

Conta
níveis de severidade
Primeiro
0 = emerg
Último
7 = debug

Exemplo 01220001:3: devolve severidade 3, err

Atenção Número maior é menos grave: 3 (err) é pior que 6 (info).

syslog facility local0 to local70 Começa em 0

O BIG-IP usa as facilities local0 a local7 do syslog, e local0 é a do próprio BIG-IP: a F5 a associa a /var/log/ltm, onde caem as mensagens de iRule registradas com local0. A facility padrão de local-syslog é local0.

Conta
facilities do syslog
Primeiro
local0
Último
local7

Exemplo log local0. "hello" devolve uma linha em /var/log/ltm

tcpdump -i 0.0=0 Zero é um valor

No tcpdump de um BIG-IP, 0.0 não é a interface número 0: significa todas as interfaces do TMM de uma vez. Não captura a interface de gerência e não tem limite de taxa, então use filtros.

Conta
um nome de interface, não um número

Exemplo tcpdump -i 0.0 devolve o tráfego de todas as interfaces do TMM

F5 Ethernet trailer: slot and tmm0·1 0 e 1 juntos

O trailer Ethernet da F5 numa captura registra o slot do chassi e o TMM que tratou cada pacote, e o exemplo de Wireshark da F5 para TMM0 no Slot1 lê slot == 1 e tmm == 0: os slots contam a partir de 1, os TMMs a partir de 0.

Conta
lâminas e TMMs

Exemplo f5ethtrailer.slot == 1 and f5ethtrailer.tmm == 0 devolve pacotes tratados pelo primeiro TMM da primeira lâmina

Endpoint da APIGEThttps://ronutz.com/api/v1/f5-bigip-index-base-finderDocumentado, não servido. Abre a especificação.

Referências

Aparece nestes fluxos de trabalho