永发信息网

怎么设置xmit

答案:1  悬赏:50  手机版
解决时间 2021-03-31 17:16
怎么设置xmit
最佳答案
int (*hard_start_xmit)( struct sk_buff *skb, struct net_device *dev ); skb是待发送的数据缓冲区,dev是该网络设备接口本身的一个指针。
  环回设备接口由于是把数据报发给本机,所以其发送数据报函数比较特殊,它把skb稍加处理后,又转回给协议栈的数据报接收函数netif_rx。其发送函数的函数名是loopback_xmit。
  首先,loopback_xmit调用skb_orphan把skb孤立,使它跟发送socket和协议栈不再有任何联系,也即对本机来说,这个skb的数据内容已经发送出去了,而skb相当于已经被释放掉了。skb_orphan所做的实际事情是,首先从skb->sk(发送这个skb的那个socket)的sk_wmem_alloc减去skb->truesize,也即从socket的已提交发送队列的字节数中减去这个skb,表示这个skb已经发送出去了,同时,如果有进程在这个socket上写等待,则唤醒这些进程继续发送数据报,然后把socket的引用计数减1,最后,令sk->destructor和skb->sk都为NULL,使skb完全孤立。实际上,对于环回设备接口来说,数据的发送工作至此已经全部完成,接下来,只要把这个实际上还未被释放的skb传回给协议栈的接收函数即可。 在传回去之前,还需要做一些工作,因为协议栈在发送数据报时,为数据报打以太网首部时,skb->data是指向以太网首部的开始位置的,网络设备接口传回的数据报是需要已经剥离了以太网首部的,所以令skb->data加上ETH_HLEN(14),令skb->mac.raw指向原来data的位置,即以太网首部。然后,需要确定skb->pkt_type的值,即该数据报的类型,如果以太网首部中的目的mac地址是个组播或广播地址,则skb->pkt_type为PACKET_BROADCAST或PACKET_MULTICAST,关于MAC地址类型的判断方法以后再详细分析。否则,如果目的mac地址不等于本接口设备的mac地址,则skb->pkt_type为PACKET_OTHERHOST,否则就为默认值PACKET_HOST。最后,设置skb->protocol(ETH_P_IP,ETH_P_ARP或其它),设置skb->dev,再更新一下统计值,把skb交回给协议协栈即可。
  struct net_device还有一些跟协议栈的处理流程关系比较密切的成员函数,下面一一介绍。
  hard_header,该成员被以太网设备驱动程序用于为每一个待发送数据报构建以太网首部,系统中所有以太网设备驱动程序共享一个函数即eth_header。所有数据报在传递给该函数之前,其skb头部预留了以太网首部的空间,data成员指向网络层首部,eth_header将data成员指向以太网首部,并为以太网首部填入目的以太网地址,源以太网地址和网络层协议类型(ETH_P_IP或ETH_P_ARP),该函数在协议栈中主要有两处被用到,一是ARP模块中,发送ARP请求或应答前,构建以太网首部用;另一处是在IP数据发送过程中,构建以太网首部用。
  hard_header_cache,用于创建以太网首部的高速缓冲,每一个邻居节点都有一个struct hh_cache *hh成员,用于缓冲该邻居节点的以太网首部,有了这个缓冲,以后再向这个邻居发数IP数据的时候,不必再调用hard_header构建以太网首部,而是直接从hh中拷贝即可。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
get round to do的意思
单选题2008年12月12日,1美元兑人民币6.8451
口袋妖怪复刻用什么属性攻击虫和毒最好
罗莱蚕丝被不透气
两只小兔拔萝卜,白兔拔了10个,给灰兔3个后
正泰万能断路器d15跳闸后怎么恢复
刚榨完汁的橙子皮哪里有人回收?
泼茶香歌词
我偷玩手机了,妈妈生气了,该怎么办?
基金持仓相关计算公式?
梦见被一条蛇追着跑
安尔心保险柜因为之前修改了密码,现在密码又
2、某人准备存入银行一笔钱,以便在以后10年
爬山虎的脚触着墙的时候,六七根细丝的头上就
AccA怎么样
推荐资讯
想要造芯片,上大学读哪个专业
李清照 诉衷情
(6十6)除以4乘以8等于24,能想出四种以上的算
清平乐 曹勋
这把剪刀是日本剪刀吗
java 面试题目 用最有效率的方法算出2乘以8等
亲情淡漠 到底是什么让亲情渐行渐远
上海迅发建设工程有限公司怎么样?
为什么危房扶贫项目国家给四万,而村里只说给
感性型女孩子故意删掉你是什么意思
777为什么有两个流量控制活门
是“惊艳世俗”还是“惊世艳俗”?! 急,到
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?