地址解析例程注册细节

dlpi 驱动程序可以支持所有通用接口类型。 实现 DLPI 是为了允许用户使用 STREAMS I_STR ioctl 指定用于输入和输出的地址解析例程或依赖于系统缺省例程。

操作系统提供特定于接口的缺省地址解析例程 (存储在 /usr/include/sys/ndd.h 文件中)。

缺省输入地址解析例程如下所示:

ndd->ndd_demuxer->nd_address_input

dlpi 驱动程序使用指向 MAC 头 (和 (可选) LLC 头) 的指针以及指向包含数据的内存缓冲区 (mbuf) 结构的指针来调用输入地址解析例程。 数据区的实际内容取决于指定的包格式类型。 (请参阅 包格式注册细节。)

缺省输出地址解析例程为:

ndd->ndd_demuxer->nd_address_resolve

dlpi 驱动程序使用指向 output_bundle 结构 (如 /usr/include/net/nd_lan.h中所述) , mbuf 结构和 ndd 结构的指针来调用输出地址解析例程。 驱动程序将目标地址分配给key_to_find并复制pkt_format和绑定时间llc变成帮手 如果用户提供了与绑定时设置的 DSAP 不同的 DSAP ,那么驱动程序还会将 DSAP 值复制到 helpers.The 输出解析例程完成 MAC 头并调用 ndd_output 子例程。

如果选择指定输入和/或输出地址解析例程,请使用以下样本代码:

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