[发明专利]一种针对GMAC网卡连通性的优化方法在审
申请号: | 202211463413.4 | 申请日: | 2022-11-22 |
公开(公告)号: | CN115941477A | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 张向前;崔蕾蕾;苏璟;孙文豪;张瑞琼 | 申请(专利权)人: | 麒麟软件有限公司 |
主分类号: | H04L41/0823 | 分类号: | H04L41/0823 |
代理公司: | 北京汇智英财专利代理有限公司 11301 | 代理人: | 吴怀权 |
地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 gmac 网卡 连通性 优化 方法 | ||
本发明涉及一种针对GMAC网卡连通性的优化方法,增加对Phy设备状态的判断,确保在数据发送阶段或EthX网口为UP状态时,Phy设备已经处于RUNING状态,具体通过stmmac_xmit函数或stmmac_open函数对Phy设备状态进行判断。本方法在国产操作系统平台特别是3A3000、腾锐D2000等CPU硬件环境下,能够达到网络正常通信的目的。
技术领域
本专利申请属于Linux网络通信领域技术领域,特别指龙芯国产硬件平台下GMAC网卡的通信技术,在内核模块的基础上提供一种保证GMAC网卡连通性的优化方法。
背景技术
由于国家对自主可控的大力支持,以龙芯GMAC网卡为代表的通信设备被广泛采用,但随着各个设备厂商的广泛验证,发现龙芯GMAC网卡并不能很好的适应各种复杂的硬件环境,比如在飞腾和龙芯国产硬件平台下,GMAC网卡硬件存在着不同程度的兼容问题。
首先结合表1和图1、图2介绍一下GMAC网络发送,从表1的Phy设备部分状态说起,其中的Phy设备状态是指物理设备Phy芯片的状态。
表1Phy设备部分状态说明
图1介绍的是GMAC网络发送UML过程图,简述为:
①NetworkManage通过ifconfig对EthX网口进行UP操作。
②EthX网口调用Stmmac驱动的stmmac_open函数启用网口。
③Stmmac驱动在执行stmmac_open的过程中调用phy_start,使Phy处于UP状态。
④stmmac驱动执行完stmmac_open后返回,此时EthX网口被设置为UP状态(只有EthX为UP状态时应用程序才能创建socket进行通讯)。
⑤EthX网口UP状态被NetworkManage服务获取,此时上层应用才能进行数据收发。
⑥Application通过EthX中Socket进行数据发送。
⑦EthX网口调用Stmmac驱动的stmmac_xmit函数进行数据发送。
⑧Stmmac对MAC芯片写入send dma cmd(图中显示的是“send cmd”),MAC和Phy会通过该信息进行相关dma操作。
⑨MAC和PHY进行dma操作之后将dma完成的结果返回。
⑩Stmmac驱动收到dma完成的消息后,将发送完成的结果返回给EthX中的Socket。
当前存在的问题:
因为Phy设备在phy_start之后才进入UP状态,而UP之后还要经历AN状态,最后才进入RUNING状态,由于实际网络环境的复杂性以及Phy设备的兼容性等问题AN状态可能要持续较长一段时间,这将导致上层应用发送数据时Phy设备不在RUNING状态,此时网络链路没有链接完成,第⑧步send dma cmd写入后,Phy在做dma的过程中会阻塞,导致dma无法完成,最终表现为网络不通,如图2所示的异常状态,已经出现了phy tx block。
因此,必须对上述异常进行对应处理,以杜绝克服上述异常现象。
发明内容
本发明需要解决的技术问题是在国产操作系统平台特别是3A3000、腾锐D2000等CPU硬件环境下,提供一种针对GMAC网卡连通性的优化方法,以达到网络正常通信的目的。
为了解决上述问题,本发明所采用的技术方案是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211463413.4/2.html,转载请声明来源钻瓜专利网。