- 1、本文档共108页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟硬件-串口 串口的驱动在Xen VMM中,在BIOS中屏蔽,避免domain0发现。 通过hypercall提供读写API给domain0,domain0 console驱动使用hypercall完成com设备的读写。 domainU console驱动使用QEMU仿真的com设备,最终落到domain0的console。 Xen VMM的输出日志,通过io-ring旁路一份给domain0上的consoled落地成文件记录 虚拟硬件-网口(1) * 虚拟硬件-网口(2)-base Linux 3.14 netback netfront Probe Xenbus上的后端设备 在Xenstore上输出sg/gso tcpv4/gso tcpv6/ipv6 csum offload/rx copy/split event channels/rx tx slip特性 分配网络设备, 设置上面的属性,分配256个page的tx pending queue, 设置设备的队列处理函数(tx队列是napi函数), 后将设备关闭 连接netfront 从Xenstore上读取前端的 tx rx的io ring ref以及evtchn port;对sg/gso/csum offload是否支持 分配线性空间, 将前端tx rx的ref grant map, 连接tx rx的evtchn, 并绑定处理函数 创建rx队列的处理线程, 将设备开启,并使能该设备的napi 从Xenstore读取网卡的mac以及rate, 设置该设备的负载配额为rate dma发送中断响应 如果dma有未消费的request, 启动设备队列处理函数 后端网络设备发送dma处理函数 从tx io ring中取出一个reqeust 请求长度是否超过该设备配额 将设备的配额初始化为128kb, 退出 Probe Xenbus上的前端设备 分配网络设备,单队列,队列长度为io ring容量, 设置该网络设备队列的处理函数(rx队列为napi函数), 设置设备支持csum rxcsum, gso, sg, tso特性 为rx tx各分配一个grant ref 将设备关闭 Xenbus发现前端状态变化 初始化 为tx/rx io ring各分配一个page,并通过grant授权该页面访问.分配tx rx的evtchn, 绑定到各自中断处理函数 通过Xenstore输出tx/rx-ring-ref, tx/rx event-channel信息, request-rx-copy, feature-rx-notify, feature-sg, feature-gso-tcpv4, csum offload等支持的特性 连接已经建立 应用发包,前端网络设备队列处理函数 该skb可能包含头/gso/frags, 每个从tx io ring中取request描述, 各个请求都申请ref,并grant给后端. 并在shadow列表中记录;最后根据skb信息设置csum计算方式 发送dma发送中断通知后端 更新网卡统计, 回收io ring中的respone,如果网卡的tx io ring满, 将设备的队列停止 设备配额 -= 请求长度 从tx io ring中将该请求可能有的gso/gso prefix/所有的数据frag读出 分配skb, 根据读出的请求信息初始化该skb,插入到待处理队列, 将请求的各部分通过grant map, 获取访问权限 dma发送中断 虚拟硬件-网口(3)-base Linux 3.14 netback netfront 将请求的数据复制到skb的数据页面, 重新计算头部的checksum, 通过netif_receive_skb函数,将skb送入协议栈 dma接收中断响应 唤醒rx队列处理函数 后端网络设备接收dma处理函数 从接收队列中取出skb, 从rx io ring中依次读取该skb的gso/data/frag信息, 使用信息设置该skb后,加入待处理skb队列 将待处理skb队列中的所有skb涉及到的请求ref指向的页面通过grant copy方式获得页面访问权限后,将内容复制到该页面 从待处理skb队列取出skb,为该skb的gso/data/frag从rx io ring中获得respones, 使用skb信息初始化 中断通知前端dma接收已经完成 前端网络设备接收队列处理函数 从rx io ring中取出一个response dma接收中断 请求长度是否超过该设备配额 将设备的配额初始化为128kb, 退出 根据Xen_NETIF_EXTRA_FLAG_M
您可能关注的文档
- Test 2场景词汇知识讲稿.ppt
- The adventures of Huckleberry Finn教学幻灯片.ppt
- The Adventures of Tom Sawyer培训讲解.ppt
- The Age of Realism教学幻灯片.ppt
- The beauties of Chongqing - 重庆美景介绍英文PPT讲解材料.pptx
- The Neoclassical Period 新古典主义教材课程.ppt
- The Story of Snow White白雪公主教学文稿.ppt
- The_adventures_of_Huckleberry_Finn教学幻灯片.ppt
- Those unforgettable persons格利高里·派克教材课程.ppt
- THP发动机介绍教学文稿.ppt
文档评论(0)