深入理解网络技术内幕 阅读笔记(四)

第五章 网络设备初始化


一个网络设备可用,就必须被认可,并且关联正确的驱动程序。
初始化的几个阶段:
        硬件初始化
                由设备驱动程序和通用总线合作完成。驱动程序把每个设备的功能配置成IRQ和I/O地址,使其能与内核交互。
        软件初始化
                在设备能够被使用之前,依赖于所开启和配置的网络协议而定,用户需要提供其他一些配置参数,如IP地址等。
        功能初始化
                因为有些选项需要针对每个设备进行配置,因此设备初始化引导必须负责这些选项。
硬件中断
        每个中断事件都会执行一个函数,被成为中断处理例程。一般而言,当设备驱动程序注册一个NIC时,会请求并分派一个IRQ。注册和IRQ使用与体系结构相关的request_irq和free_irq函数。
  • 中断类型
  • 接收一帧
  • 传输失败
  • DMA传输已成功完成
  • 设备有足够的内存处理新传输


设备处理层初始化
网络初始化代码的重要部分,在引导期间由定义在net/core/dev.c中的net_dev_init完成。
  • 由两个软中断(NET_TX_SOFTIRQ, NET_RX_SOFTIRQ)所使用的对应各个CPU的数据结构(per-cpu变量)被初始化(struct softnet_data)。
  • 当内核被编译为支持/proc文件系统时,有一些文件会通过dev_proc_init和dev_mcast_init添加到/proc。
  • 用以协议无光的目的缓存,会以dst_init做初始化 。
  • 协议处理例程向量ptype_base初始化,用于分离入口流量的多路合并传输。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值