index.html-82V8Vzk2.js 8.3 KB

1
  1. import{_ as t,c as i,a,b as e,d as o,w as n,e as r,r as c,o as s}from"./app-CwV5sqDy.js";const h={},p=a("h1",{id:"sig-network",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#sig-network"},[a("span",null,"SIG-Network")])],-1),d=r('<h2 id="会议" tabindex="-1"><a class="header-anchor" href="#会议"><span>会议</span></a></h2><ul><li>SIG定期会议:<strong>北京时间 周五 10:00</strong> (每两周一次) <ul><li>会议记录和议程 (这里要指向对应的文档链接)</li><li>会议视频 (指向DragonOS社区官方bilibili账号下,每个SIG的合集链接)</li></ul></li></ul><h2 id="sig管理层" tabindex="-1"><a class="header-anchor" href="#sig管理层"><span>SIG管理层</span></a></h2><h3 id="主席" tabindex="-1"><a class="header-anchor" href="#主席"><span>主席</span></a></h3><p>SIG 主席负责管理 SIG 的运营和流程。</p><ul><li>戴吕琛,<a href="https://github.com/Samuka007" target="_blank" rel="noopener noreferrer"><code>@Samuka007</code></a>,华南理工大学</li></ul><h3 id="技术负责人" tabindex="-1"><a class="header-anchor" href="#技术负责人"><span>技术负责人</span></a></h3><ul><li>付鼎拔,<a href="https://github.com/Saga1718" target="_blank" rel="noopener noreferrer"><code>@Saga1718</code></a>,华南理工大学</li><li>蔡俊源,<a href="https://github.com/smallcjy" target="_blank" rel="noopener noreferrer"><code>@smallcjy</code></a>,华南理工大学</li></ul><h2 id="联系方式" tabindex="-1"><a class="header-anchor" href="#联系方式"><span>联系方式</span></a></h2><ul><li>BBS版块:<a href="https://bbs.dragonos.org.cn/c/sig-net" target="_blank" rel="noopener noreferrer">DragonOS开源社区 - SIG - Network</a></li><li>Github Team: <a href="https://github.com/DragonOS-Community" target="_blank" rel="noopener noreferrer"><code>@DragonOS-Community</code></a> / <a href="https://github.com/orgs/DragonOS-Community/teams/sig-network" target="_blank" rel="noopener noreferrer"><code>SIG-Network</code></a></li><li>PMC联络人:<a href="https://github.com/Samuka007" target="_blank" rel="noopener noreferrer"><code>@Samuka007</code></a></li></ul><h2 id="工作组" tabindex="-1"><a class="header-anchor" href="#工作组"><span>工作组</span></a></h2>',11),b=a("p",null,"暂无工作组",-1),k=a("h2",{id:"子项目列表",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#子项目列表"},[a("span",null,"子项目列表")])],-1),g=r('<h3 id="loopback网卡实现" tabindex="-1"><a class="header-anchor" href="#loopback网卡实现"><span>Loopback网卡实现</span></a></h3><p>Loopback网卡是一个虚拟网络设备,主要用于在本地机器上进行网络通信。</p><h4 id="子项目maintainer" tabindex="-1"><a class="header-anchor" href="#子项目maintainer"><span>子项目Maintainer</span></a></h4><ul><li>蔡俊源, <a href="https://github.com/smallcjy" target="_blank" rel="noopener noreferrer"><code>@smallcjy</code></a></li></ul><h3 id="解决actix-web与epoll的适配" tabindex="-1"><a class="header-anchor" href="#解决actix-web与epoll的适配"><span>解决actix-web与epoll的适配</span></a></h3><p>解决 epoll 管理 socket 所遇到的具体问题。</p><h4 id="子项目maintainer-1" tabindex="-1"><a class="header-anchor" href="#子项目maintainer-1"><span>子项目Maintainer</span></a></h4><ul><li>付鼎拔, <a href="https://github.com/Saga1718" target="_blank" rel="noopener noreferrer"><code>@Saga1718</code></a></li></ul><h2 id="子项目的详细信息" tabindex="-1"><a class="header-anchor" href="#子项目的详细信息"><span>子项目的详细信息</span></a></h2><h3 id="loopback网卡实现-1" tabindex="-1"><a class="header-anchor" href="#loopback网卡实现-1"><span>Loopback网卡实现</span></a></h3><blockquote><p>详见 <a href="https://bbs.dragonos.org.cn/t/topic/238" target="_blank" rel="noopener noreferrer">实现Loopback回环网卡设备及其驱动 - DragonOS开源社区</a></p></blockquote><p>LoopbackDevice的实现分为四层:</p><ul><li><h4 id="loopback层" tabindex="-1"><a class="header-anchor" href="#loopback层"><span>Loopback层</span></a></h4><p>实现的核心。其定义Loopback设备的数据结构,采用 <code>VecDeque&lt;Vec&gt;</code> 用来储存接受的数据包和代发送的数据包。</p></li><li><h4 id="loopbackinterface层" tabindex="-1"><a class="header-anchor" href="#loopbackinterface层"><span>LoopbackInterface层</span></a></h4><p>负责实现网卡接口设备的基本功能,实现Device、NetDevice、KObject的接口函数。</p></li><li><h4 id="loopbackdeviceinnerwapper层" tabindex="-1"><a class="header-anchor" href="#loopbackdeviceinnerwapper层"><span>LoopbackDeviceInnerWapper层</span></a></h4><p>用于封装底层,具有更好的封装性。</p></li><li><h4 id="loopbackdeviceinner层" tabindex="-1"><a class="header-anchor" href="#loopbackdeviceinner层"><span>LoopbackDeviceInner层</span></a></h4><p>负责实现网卡的基本功能,发包,收包等。</p></li></ul><h3 id="解决actix-web与epoll的适配-1" tabindex="-1"><a class="header-anchor" href="#解决actix-web与epoll的适配-1"><span>解决actix-web与epoll的适配</span></a></h3><blockquote><p>详见 <a href="https://bbs.dragonos.org.cn/t/topic/235" target="_blank" rel="noopener noreferrer">[Bug] 是否考虑资源限制对 epoll管理socket存在问题 - DragonOS开源社区</a></p></blockquote><p>解决在运行 test-backlog 程序时,行为与预期不符的问题。</p><h4 id="问题复现与跟踪" tabindex="-1"><a class="header-anchor" href="#问题复现与跟踪"><span>问题复现与跟踪</span></a></h4><p>使用 strace 跟踪 epoll_ctl 和 epoll_wait 系统调用。复现 test-backlog 程序的两个进程共享 epoll 实例管理 socket 的问题。</p><h4 id="原因分析" tabindex="-1"><a class="header-anchor" href="#原因分析"><span>原因分析</span></a></h4><p>分析 epoll_ctl 在 EPOLL_CTL_ADD 操作缺失的原因。调查 cgroup 或mmap map_fixed等资源限制有关功能缺失对 epoll 和 socket 管理的影响。</p>',20);function u(f,m){const l=c("RouteLink");return s(),i("div",null,[p,a("p",null,[e("该 "),o(l,{to:"/sigs/sig-network/charter.html"},{default:n(()=>[e("章程")]),_:1}),e(" 定义了 "),o(l,{to:"/sigs/sig-network/"},{default:n(()=>[e("SIG-Network")]),_:1}),e(" 的范围和治理相关的内容。")]),d,a("p",null,[a("s",null,[e("以下是SIG-template参与并支持的 "),o(l,{to:"/governance/dev-group.html#WG%EF%BC%88%E5%B7%A5%E4%BD%9C%E7%BB%84%EF%BC%89"},{default:n(()=>[e("工作组")]),_:1})])]),b,k,a("p",null,[e("以下 "),o(l,{to:"/governance/dev-group.html#%E5%AD%90%E9%A1%B9%E7%9B%AE"},{default:n(()=>[e("子项目")]),_:1}),e(" 归 "),o(l,{to:"/sigs/sig-network/"},{default:n(()=>[e("SIG-Network")]),_:1}),e(" 所有:")]),g])}const x=t(h,[["render",u],["__file","index.html.vue"]]),S=JSON.parse('{"path":"/sigs/sig-network/","title":"SIG-Network","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"会议","slug":"会议","link":"#会议","children":[]},{"level":2,"title":"SIG管理层","slug":"sig管理层","link":"#sig管理层","children":[{"level":3,"title":"主席","slug":"主席","link":"#主席","children":[]},{"level":3,"title":"技术负责人","slug":"技术负责人","link":"#技术负责人","children":[]}]},{"level":2,"title":"联系方式","slug":"联系方式","link":"#联系方式","children":[]},{"level":2,"title":"工作组","slug":"工作组","link":"#工作组","children":[]},{"level":2,"title":"子项目列表","slug":"子项目列表","link":"#子项目列表","children":[{"level":3,"title":"Loopback网卡实现","slug":"loopback网卡实现","link":"#loopback网卡实现","children":[]},{"level":3,"title":"解决actix-web与epoll的适配","slug":"解决actix-web与epoll的适配","link":"#解决actix-web与epoll的适配","children":[]}]},{"level":2,"title":"子项目的详细信息","slug":"子项目的详细信息","link":"#子项目的详细信息","children":[{"level":3,"title":"Loopback网卡实现","slug":"loopback网卡实现-1","link":"#loopback网卡实现-1","children":[]},{"level":3,"title":"解决actix-web与epoll的适配","slug":"解决actix-web与epoll的适配-1","link":"#解决actix-web与epoll的适配-1","children":[]}]}],"git":{"updatedTime":1716729993000,"contributors":[{"name":"Samuel Dai","email":"samuka007@qq.com","commits":1}]},"filePathRelative":"sigs/sig-network/README.md"}');export{x as comp,S as data};