# Set Ethernet Datalink State

This sample application demonstrates how to set the Ethernet datalink state.

1. Implement the IDataLinkListener class to receive SSR events and Ethernet data link state changes.

class DataLinkListener : public telux::data::IDataLinkListener {
    public:
        void onServiceStatusChange(telux::common::ServiceStatus status) {
            switch(status) {
                case telux::common::ServiceStatus::SERVICE_AVAILABLE:
                    std::cout << " SERVICE_AVAILABLE";
                    break;
                case telux::common::ServiceStatus::SERVICE_UNAVAILABLE:
                    std::cout << " SERVICE_UNAVAILABLE";
                    break;
                default:
                    std::cout << " Unknown service status";
                    break;
            }
        }
    
        void onEthDataLinkStateChange(telux::data::LinkState linkState) {
            switch(linkState) {
                case telux::data::LinkState::UP:
                    std::cout << "Ethernet datalink state is UP";
                    break;
                case telux::data::LinkState::DOWN:
                    std::cout << "Ethernet datalink state is DOWN";
                    break;
                default:
                    std::cout << " Unknown Ethernet datalink state";
                    break;
            }
        }
    };
    Copy to clipboard

2. Optionally, create a callback to obtain the status of the initialization of the data link
manager.

std::promise<telux::common::ServiceStatus> p{};
    auto dataLinkMgrIntCb = [&p](telux::common::ServiceStatus status) {
         p.set_value(status);
    };
    Copy to clipboard

3. Get the data factory and data link manager (as described below) and wait until the service is
available.

auto &dataFactory = telux::data::DataFactory::getInstance();
    
    dataLinkMgr_  = dataFactory.getDataLinkManager(dataLinkMgrIntCb);
    serviceStatus = p1.get_future().get();
    std::cout << "Initialization complete for data link manager" << std::endl;
    Copy to clipboard

4. Register a data link listener to receive SSR events and Ethernet data link state changes.

status = dataLinkMgr_->registerListener(dataLinkListener);
    if (status != telux::common::Status::SUCCESS) {
        std::cout << "Can't register listener, err " <<
            static_cast<int>(status) << std::endl;
    }
    Copy to clipboard

5. Bring up the Ethernet datalink state.

telux::data::LinkState linkState = telux::data::LinkState::UP;
    
    telux::common::ErrorCode errorCode = dataLinkMgr_->setEthDataLinkState(linkState);
    Copy to clipboard

Last Published: May 20, 2026

[Previous Topic
Set Data Stall Params](https://docs.qualcomm.com/bundle/publicresource/80-PF458-7/topics/set_data_stall_params.md) [Next Topic
Location](https://docs.qualcomm.com/bundle/publicresource/80-PF458-7/topics/location.md)