//------------------------------------------------------------------------------
static int veth_close(struct net_device* pNetDevice_p)
{
    DEBUG_LVL_VETH_TRACE("veth_close\n");

    dllk_deregAsyncHandler(veth_receiveFrame);
    netif_stop_queue(pNetDevice_p);     //stop the interface queue for the network subsystem
    return 0;
}
//------------------------------------------------------------------------------
tOplkError veth_delInstance(void)
{
    tOplkError ret = kErrorOk;

    // Unregister the receive callback function
    ret = dllk_deregAsyncHandler(receiveFrameCb);

    return ret;
}
//------------------------------------------------------------------------------
static int vethStop(struct net_device* pNetDevice_p)
{
    DEBUG_LVL_VETH_TRACE("%s()\n", __func__);

    dllk_deregAsyncHandler(receiveFrameCb);
    netif_stop_queue(pNetDevice_p);     //stop the interface queue for the network subsystem

    return 0;
}
//------------------------------------------------------------------------------
tOplkError veth_exit(void)
{
    tOplkError ret;

    // Unregister the receive callback function
    ret = dllk_deregAsyncHandler(receiveFrameCb);

    // stop receive thread by setting its stop flag
    vethInstance_l.fStop = TRUE;
    pthread_join(vethInstance_l.threadHandle, NULL);
    close(vethInstance_l.fd);

    return ret;
}