标签:初始化 使能 定时器 FWD DRV 网卡 转发 CPU
-
DRV_FWD_Init():转发模型初始化
- FWD_CpuInfoInit():CPU信息初始化
关键结构体:g_stDrvCpuInfo
获取并设置CPU Mask到全局结构体;同时多核情况下设置Hash分流数为不小于数据核心数目的2的幂数;同时设置Hash掩码g_ulHashLenMask
为分流数-1. - FWD_SmInit():转发系统中的控制管理线程初始化
- DRV_Hdisk_ReadFlowLoad():
??,先记录下使用的结构体:g_astFlowLoadSave
- FWD_SmTimerInit():转发管理定时器初始化
关键结构体:g_stFwdSmTimerRc
创建转发定时器消息队列(标识:“FWD_SM_TIMER”
),监听定时器任务,处理函数为DRV_TimerQueProc(),最终调用的是队列消息实体里的pstTimerMsg->pfProc(pstTimerMsg->pArg);最后创建定时器任务pstTast,其执行的函数FWD_SmTimerTask(),其实就是每次有消息时直接调用前面提到的DRV_TimerQueProc(). - FWD_SmThreadCreate(): 创建转发系统管理线程
工作模式同定时器任务,区别在于其消息队列标识为"kDrvFwd_SMQ"
,每次有消息时调用FWD_SmThreadProc(),获取到消息实体后传参调用FWD_SysMonitor()进行实际转发模型调整.- FWD_SysMonitor():
??g_ulFwdSmStatus,区分了多种调整时的当前状态
,后续遇到每种场景时再做具体分析对应处理函数。
- FWD_SysMonitor():
- DRV_Hdisk_ReadFlowLoad():
- DRV_FwdGroupInitAuto(),DRV_Hdisk_ReadBindFG(),DRV_FwdGroupCheck_Init(),DRV_FwdGroupEnable():转发组初始化和设置
(暂时先跳过)
- FWD_CreateIPSecTxQueue():ipsec报文相关转发,
(暂时先跳过)
- FWD_FsbufCacheInit():快转相关,
(暂时先跳过)
- FWD_HashInit():hash函数初始化,
g_pfHash2Words
[重点]
FWD_FwdTypeInit():转发模型初始化
包括生成CPU任务分配表;根据任务分配表进行初始化;转发模型类别;创建数据核CPU的任务队列并监听调度通知;启动CPU任务等。
- FWD_CpuInfoInit():CPU信息初始化
-
VSR2000_Init_SystemInit_Post():
- DRV_DLK_SetDevLinkInfo(pstCardEntry):会调用对应cardEntry的SetDevLinkInfo函数,来创建设备链节点,随后平台会依次调用设备链上所有设备的phyInit()及powerUp()函数。
待续
标签:初始化,使能,定时器,FWD,DRV,网卡,转发,CPU 来源: https://blog.csdn.net/markey1/article/details/120954221
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。