Particularidades De Registro De Rotina De Resolução De Endereços

O driver dlpi pode suportar todos os tipos de interface genérica. O DLPI é implementado para permitir que o usuário especifique rotinas de resolução de endereço para entrada e saída usando o ioctl STREAMS I_STR ou para contar com as rotinas padrão do sistema.

O sistema operacional fornece rotinas de resolução de endereço padrão (armazenadas no arquivo /usr/include/sys/ndd.h ) que são específicas de interface.

A rotina de resolução de endereço de entrada padrão é a seguinte:

ndd->ndd_demuxer->nd_address_input

O driver dlpi chama a rotina de resolução de endereço de entrada com um ponteiro para o cabeçalho MAC (e, opcionalmente, o cabeçalho LLC) e um ponteiro para uma estrutura de buffer de memória (mbuf) contendo dados. Os conteúdos reais da área de dados dependem de qual tipo de formato de pacote foi especificado. (Ver Particulars de Registro de Formato de Packet.)

A rotina de resolução do endereço de saída padrão é:

ndd->ndd_demuxer->nd_address_resolve

O driver dlpi chama a rotina de resolução de endereço de saída com um ponteiro para uma estrutura output_bundle (descrita em /usr/include/net/nd_lan.h), uma estrutura mbuf e uma estrutura ndd. O motorista designa o endereço de destino parakey_to_finde copia opkt_formate tempo de ligaçãollcem ajudantes. Se o usuário tiver fornecido um DSAP diferente do que foi configurado no tempo de ligação, o driver também copiará os valores DSAP nos auxiliares do helpers.The conclui o cabeçalho MAC e chama a sub-rotina ndd_output .

Se você optar por especificar uma rotina de resolução de endereço de entrada ou saída ou ambos, use o código de amostra a seguir:

noinres(int fd) {
       return istr(fd, DL_INPUT_RESOLVE, 0);
}