
linux内核网络
picaso77
从事嵌入式linux软件开发工作
展开
-
netif_carrier_on/off
通常网络设备会定时地检测设备是否处于可传递状态。当状态发生变化时,会调用netif_carrier_on或者netif_carrier_off来通知内核;从网上设备插拔网线或者另一端的设备关闭或禁止,都会导致连接状态改变;netif_carrier_on—-设备驱动监测到设备传递信号时调用netif_carrier_off—-设备驱动监测到设备丢失信号时调用上述两个状态改变函数均会调用linkwatch_fire_event将事件加入到事件队列进行调度;相关函数的调用关系如下:原创 2021-06-28 20:49:56 · 4865 阅读 · 0 评论 -
linux内核网卡中断收发包
1、网卡中断收发包上半部注册 1.1、网卡驱动调用request_irq(dev->irq, i596_interrupt, 0, "i82596", dev)函数申请中断号并传入中断上半部处理函数; 1.2、request_irq将网卡驱动注册的中断号和中断上半部处理函数添加到ino_buket中断链表,cpu在收到硬件发出的中断时,通过在ino_buket中断链表查找对应中断号的中断上半部处理函数并执行; 1.3、中断上半部处理函数读取网卡寄存...原创 2020-07-19 21:38:32 · 820 阅读 · 0 评论 -
深入理解LINUX网络技术内幕总结 第一章----内核编码格式
内核空间时间测量: 内核经过一个定时器周期,将jiffies全局变量加1,jiffies从系统起机开始计数,当jiffies = n *定时器频率时表示经过了n秒; 可通过把jiffies的值保存在一个局部变量,稍后再拿jiffies与该局部变量相减来得到时间间隔。内核捕捉bug: BUG_TRAP:当传入的条件为假时,打印错误信息; ...原创 2019-11-24 22:45:42 · 161 阅读 · 0 评论