[20211014.B64驱动培训]转发模型初始化+网卡挂载设备链+网卡各项配置初始化+网卡使能
作者:互联网
-
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