コード例 #1
0
ファイル: oam_main.c プロジェクト: Undrizzle/yolanda
void oam_init()
/*                                                                           */
/* INPUTS  : N/A                                                             */
/* OUTPUTS : N/A                                                             */
/* DESCRIPTION:                                                              */
/* oam init process                                                          */
/* $rtn_hdr_end                                                              */
/*****************************************************************************/
{
    oam_core_init();

    oam_control_handler_init(oam_link_complete,oam_link_lost,
            (oam_build_oampdu_t)oam_build_pdu_info);

    oam_vendor_register_handler_init();

    oam_timer_init();

    oam_event_init();

    oam_plat_onu_evt_reg(EPON_EVENT_REG_CHANGE,
            (void*)oam_port_reg_change_event_handler, NULL);

						/*修改原因: OAM 包处理放在最后(oam_init_step2 函数放在初始化的最后),
			以保证onu 先恢复保存的配置数据,后接受olt 下发的配置。这样可以
			保证在onu 保存配置数据和olt 下发配置同时存在时,onu 的实际状态为
			olt 下发的配置*/
			#if (ONU_REGISTER_LAST == MODULE_YES)

			#else
    app_pkt_reg_parser(CS_PKT_OAM, oam_pkt_parser);
    app_pkt_reg_handler(CS_PKT_OAM, oam_pkt_proc);
		#endif

    oam_printf("OAM init done \n");
}
コード例 #2
0
ファイル: oam_main.c プロジェクト: slade87/HuaweiP9Kernel
/*****************************************************************************
 函 数 名  : oam_main_init
 功能描述  : OAM模块初始化总入口,包含OAM模块内部所有特性的初始化。
 输入参数  : 无
 输出参数  : 无
 返 回 值  : 初始化返回值,成功或失败原因
 调用函数  : 无
 被调函数  : 无

 修改历史      :
  1.日    期   : 2012年9月18日
    作    者   : 康国昌
    修改内容   : 新生成函数

*****************************************************************************/
oal_int32  oam_main_init(oal_void)
{
    oal_uint32 ul_rslt;

    /* 初始化可维可测试FILE路径 */
    ul_rslt = oam_set_file_path(WLAN_OAM_FILE_PATH, (OAL_STRLEN(WLAN_OAM_FILE_PATH) + 1));
    if (OAL_SUCC != ul_rslt)
    {
        OAL_IO_PRINT("oam_main_init call oam_set_file_path fail %d\n",ul_rslt);
        OAL_BUG_ON(1);
        return -OAL_EFAIL;
    }

    /* 初始化可维可测输出方式 */
    ul_rslt = oam_set_output_type(OAM_OUTPUT_TYPE_SDT);
    if (OAL_SUCC != ul_rslt)
    {
        OAL_IO_PRINT("oam_main_init call oam_set_output_type fail %d\n",ul_rslt);
        OAL_BUG_ON(1);
        return -OAL_EFAIL;
    }

    /* 完成LOG模块的初始化操作 */
    ul_rslt = oam_log_init();
    if (OAL_SUCC != ul_rslt)
    {
        OAL_IO_PRINT("oam_main_init call oam_log_init fail %d\n",ul_rslt);
        OAL_BUG_ON(1);
        return -OAL_EFAIL;
    }

    /* 完成EVENT模块的初始化操作 */
    ul_rslt = oam_event_init();
    if (OAL_SUCC != ul_rslt)
    {
        OAL_IO_PRINT("oam_main_init call oam_event_init fail %d\n",ul_rslt);
        OAL_BUG_ON(1);
        return -OAL_EFAIL;
    }

    /* 初始化5115timer,用于代码中获取高精度时间戳 */
    oal_5115timer_init();

#ifdef _PRE_PROFILING_MODE
    /* 完成PROFILING模块的初始化操作 */
    ul_rslt = oam_profiling_init();
    if (OAL_SUCC != ul_rslt)
    {
        OAL_IO_PRINT("oam_main_init call oam_profiling_init fail %d\n",ul_rslt);
        OAL_BUG_ON(1);
        return -OAL_EFAIL;
    }
#endif

    /* 初始化oam模块的钩子函数 */
    oam_drv_func_hook_init();

    /* 统计模块初始化 */
    oam_statistics_init();

/*TBD,待命令触发定制化初始操作*/
#if 0
    /* 从配置文件中获取配置信息,保存到OAM内部结构中 */
    for (ul_counter= 0; ul_counter < OM_MODULEID_BUTT; ul_counter++)
    {
        if (OAL_PTR_NULL != g_oam_customize.customize_init[ul_counter])
        {
            g_oam_customize.customize_init[ul_counter]();
        }
    }
#endif

#ifdef _PRE_WLAN_DFT_REG
    oam_reg_init();
#endif

#if ((_PRE_OS_VERSION_RAW != _PRE_OS_VERSION) && (_PRE_OS_VERSION_WIN32_RAW != _PRE_OS_VERSION))
        /* ??netlink */
 #if (_PRE_PRODUCT_ID == _PRE_PRODUCT_ID_HI1151)
    /* 所用的端口号在系统中已被占用,02无法使用这个接口,需要修改 TBD */
        ul_rslt = oam_netlink_kernel_create();
        if (OAL_SUCC != ul_rslt)
        {
            OAL_IO_PRINT("oam_main_init call oam_netlink_kernel_create fail %d\n",ul_rslt);
            OAL_BUG_ON(1);
            return -OAL_EFAIL;
        }
 #endif
#endif
#if (_PRE_PRODUCT_ID == _PRE_PRODUCT_ID_HI1102_HOST)
    hcc_rx_register(hcc_get_default_handler(),HCC_ACTION_TYPE_OAM,oam_rx_post_action_function,NULL);
#endif
    return OAL_SUCC;
}