Especifics Ioctl
O driver dlpi suporta as operações do ioctl.
O driver dlpi suporta as seguintes operações do ioctl:
- DL_ROUTE
- DL_TUNE_LLC
- DL_ZERO_STATS
- DL_SET_REMADDR
Estes comandos e suas estruturas de dados associadas estão descritos no arquivo de cabeçalho /usr/include/sys/dlpi_aix.h .
int
istr(int fd, int cmd, char *data, int len) {
struct strioctl ic;
ic.cmd = cmd;
ic.timout = -1;
ic.dp = data;
ic.dp = data;
ic.len = len;
return ioctl(fd, I_STR, &ic);
}
| Item | Descrição |
|---|---|
| DL_ROUTE | Desabilita o roteamento de origem no fluxo atual, consulta o Dynamic Route Discovery para uma rota de origem, ou estaticamente designa uma rota de origem para este fluxo. Ele só é aceito quando o fluxo é ocioso (DL_IDLE).
Como exemplo, o código a seguir pode ser usado para descobrir a rota de origem para um endereço arbitrário:
|
| DL_TUNE_LLC | Permite que o usuário do DLS altere os parâmetros ajustáveis LLC padrão. O argumento deve apontar para uma estrutura de dados llctune_t . O campo de bandeiras é examinado para determinar quais, se houver, os parâmetros devem ser alterados. Cada bit no campo flags corresponde a um campo nomeado similarmente no llctune_t; se o bit for configurado, o parâmetro correspondente será definido para o valor em llctune_t. Apenas o fluxo atual é afetado, e as mudanças são descartadas quando o fluxo é fechado. Se a sinalização F_LLC_SET for definida e o usuário possuir autoridade root, os parâmetros alterados serão salvos como os novos parâmetros padrão para todos os novos fluxos. Este comando retorna como seu argumento uma atualização dos parâmetros ajustáveis atuais. Por exemplo, para dobrar at1valor, o código a seguir pode ser usado:
Para consultar os ajustáveis, emita DL_TUNE_LLC com o campo de bandeiras configurado como zero. Isso não alterará nenhum parâmetro e retornará os valores ajustáveis atuais. |
| DL_ZERO_STATS | Redefine os contadores de estatísticas a zero. O motorista mantém dois conjuntos independentes de estatísticas, um para cada fluxo (local), e outro que é a estatística cumulativa para todos os fluxos (global). Este comando aceita um argumento booleano simples. Se o argumento for True (nonzero), as estatísticas globais são zeradas. Caso contrário, apenas as estatísticas do fluxo atual são zeradas. Por exemplo, para zerar os contadores de estatísticas sobre o fluxo atual, pode ser usado o seguinte código:
|
| DL_SET_REMADDR | Permite a troca de XID/TEST em fluxos orientados a conexão enquanto ainda no estado DL_IDLE . O driver dlpi utiliza tanto o endereço de origem (remoto) quanto o dl_sap para determinar onde rotear mensagens recebidas para fluxos orientados a conexão. O endereço remoto é ordinariamente especificado em DL_CONNECT_REQ. Se o usuário do DLS precisar trocar mensagens XID ou TEST antes de conectar-se à estação remota, DL_SET_REMADDR deve ser usado. Nota: Observe que este comando é not necessário se as mensagens XID e TEST devem ser trocadas apenas quando o estado for DL_DATAXFER.
O argumento para este comando é o endereço MAC remoto. Um possível fragmento de código pode ser:
|