[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,区分了多种调整时的当前状态,后续遇到每种场景时再做具体分析对应处理函数。
    • 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任务等。
  • VSR2000_Init_SystemInit_Post():

    • DRV_DLK_SetDevLinkInfo(pstCardEntry):会调用对应cardEntry的SetDevLinkInfo函数,来创建设备链节点,随后平台会依次调用设备链上所有设备的phyInit()及powerUp()函数。
    • 待续
上一篇:uniapp使用ucharts图表数据百分比显示


下一篇:uniapp 返回上一页动态刷新数据