/*
 * Initialize sysevnt 
 *   return 0 if success and -1 if failture.
 */
int 
EvtDispterEventInits(void)
{
    int rc;

    snprintf(server_ip, sizeof(server_ip), "127.0.0.1");
    server_port = SE_SERVER_WELL_KNOWN_PORT;

    se_fd = sysevent_open(server_ip, server_port, SE_VERSION, "common_master", &token);
    if (!se_fd) {
        return(EVENT_ERROR);
    }

    /*you can register the event as you want*/

	//register lan-status event
    sysevent_set_options(se_fd, token, "lan-status", TUPLE_FLAG_EVENT);
    rc = sysevent_setnotification(se_fd, token, "lan-status", &async_id[0]);
    if (rc) {
       return(EVENT_ERROR);
    } 

	//register wan-status event
    sysevent_set_options(se_fd, token, "wan-status", TUPLE_FLAG_EVENT);
    rc = sysevent_setnotification(se_fd, token, "wan-status", &async_id[1]);
    if (rc) {
       return(EVENT_ERROR);
    } 

    
    return(EVENT_OK);
}
ANSC_STATUS 
CosaDml_CGreInit(void)
{
    sysevent_fd = sysevent_open("127.0.0.1", SE_SERVER_WELL_KNOWN_PORT, 
            SE_VERSION, "cisco-gre-dm", &sysevent_token);
    if (sysevent_fd < 0) {
        AnscTraceError(("sysevent_open failed\n"));
        return ANSC_STATUS_FAILURE;
    }

    return ANSC_STATUS_SUCCESS;
}
ANSC_STATUS 
CosaDml_GreInit(void)
{
    int shmid;
    void *params = NULL;

    sysevent_fd = sysevent_open(
            "127.0.0.1", SE_SERVER_WELL_KNOWN_PORT, 
            SE_VERSION, kHotspotfd_events, 
            &sysevent_token
    );

    if (sysevent_fd < 0)
    {
        AnscTraceError(("sysevent_open failed\n"));
    } else {
        AnscTraceWarning(("sysevent_open success\n"));
    }

    if ((shmid = shmget(kKeepAlive_Statistics, kKeepAlive_SharedMemSize, IPC_CREAT | 0666)) < 0) {
        AnscTraceError(("shmget: %s\n", strerror(errno)));
        return ANSC_STATUS_FAILURE;
    }

    if ((g_hsfdStat = shmat(shmid, NULL, 0)) == (hotspotfd_statistics_s *)-1) {
        AnscTraceError(("shmat: %s\n", strerror(errno)));
        g_hsfdStat = NULL;
        return ANSC_STATUS_FAILURE;
    }
    
    AnscCreateTask(circuit_id_init_thread, USER_DEFAULT_TASK_STACK_SIZE, USER_DEFAULT_TASK_PRIORITY, params, "CircuitIDInitThread");

    AnscTraceDebug(("Init Hotspot GRE Done\n"));

    return ANSC_STATUS_SUCCESS;
}