Chinaunix首页 | 论坛 | 博客
  • 博客访问: 993242
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 216
  • 用 户 组: 普通用户
  • 注册时间: 2018-11-27 17:55
文章分类
文章存档

2019年(21)

我的朋友

发布时间:2019-02-05 10:43:24

Linux数据包NAPI处理流程1. 概念NAPI:linux新的网卡数据包处理API,采用新的数据包处理流程。round-robin:轮询调度调度算法。硬中断:由外设产生,主要是用来通知通过操作系统外设发生变化。比如当网卡收到数据包的时候,就会产生一个硬中断。软中断:为了满足实时性需要,中断处理应该是越快越好,当中断发生时,硬.........【阅读全文】

阅读(2890) | 评论(0) | 转发(0)

发布时间:2019-02-04 23:26:36

软中断是可以被硬中断打断的,有一点需要注意:假设当前有3个softirq处于pending状态,然后__do_softirq正在处理第1个软中断,这个时候硬中断发生了,硬中断里面trigger了1个新的更高优先级的softirq,当中断返回的时候,检查in_interrupt不为0,所以不会重新调用do_softirq,而是返回中断前的__do_softirq中。软中断的注.........【阅读全文】

阅读(3178) | 评论(0) | 转发(0)

发布时间:2019-02-04 23:15:40

数据包在网卡驱动的中断处理中enqueue后,由process_backlog做后续的处理。process_backlog是由软中断处理函数net_rx_action调用的。process_backlog调用netif_receive_skb(已经到协议栈的入口了)对在queue中的报文进行处理(有个时间的配额).......【阅读全文】

阅读(2128) | 评论(0) | 转发(0)

发布时间:2019-02-03 16:29:44

网卡是用结构体net_device表述的,通过函数register_netdev来注册具体的网卡。mini2440的的网卡放在driver/net/dm9000.c中。网卡的数据发送在net_device->netdev_ops中定义。net_device->netdev_ops也是一个结构体(const struct net_device_ops *netdev_ops),其定义了如下操作:struct net_device_ops { n.........【阅读全文】

阅读(2604) | 评论(0) | 转发(0)

发布时间:2019-02-03 15:13:47

网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。这一层的存在使得上层协议独立于具体的设备。......【阅读全文】

阅读(1735) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册