地址解析例程注册细节
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);
}