IgH详解四、数据报接收流程

本文详细介绍了网络驱动如何通过ec_device_poll接口与协议栈交互,注册接收函数,并在驱动中调用协议栈的ecdev_receive进行数据处理。接收到的数据报文首先去除以太网报文头,随后通过ec_master_receive_datagrams进行解析,这一过程是发送流程的逆操作,将报文数据逐条解析出来。
摘要由CSDN通过智能技术生成

        IgH通过调用ecrt_master_receive接口接收数据报文。

 

 ec_device_poll接口调用的就是我们在实时网卡驱动中注册的ec_poll接口,以e1000为例

 在初始化网卡驱动的时候会调用ecdev接口给协议栈注册网卡的轮询接收接口。

到这里也只是注册了接收接口,那又是怎么把报文传递给协议栈的呢?接收的数据报文是怎么处理的呢? 也是通过在网卡驱动中调用协议栈接收函数来实现的。

 在网卡驱动中调用了协议栈的ecdev_receive函数,可以看到skb->data就是接收到的报文数据。

首先要去掉以太网报文头,不需要这部分数据,然后调用ec_master_receive_datagrams对接收的数据进行解析。

报文解析其实就是之前发送流程报文拼装的一个逆过程,把报文中的数据一条一条的解析出来 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值