// // This file is a part of UERANSIM project. // Copyright (c) 2023 ALİ GÜNGÖR. // // https://github.com/aligungr/UERANSIM/ // See README, LICENSE, and CONTRIBUTING files for licensing details. // #pragma once #include #include #include #include #include namespace app { struct GnbCliCommand { enum PR { STATUS, INFO, AMF_LIST, AMF_INFO, UE_LIST, UE_COUNT, UE_RELEASE_REQ, HANDOVER_TRIGGER, HANDOVER_RESET, } present; // AMF_INFO int amfId{}; // UE_RELEASE_REQ int ueId{}; // HANDOVER_TRIGGER int triggerUeId{}; int targetCellId{}; int targetGnbId{}; explicit GnbCliCommand(PR present) : present(present) { } }; struct UeCliCommand { enum PR { INFO, STATUS, TIMERS, PS_ESTABLISH, PS_RELEASE, PS_RELEASE_ALL, PS_LIST, DE_REGISTER, RLS_STATE, COVERAGE, } present; // DE_REGISTER EDeregCause deregCause{}; // PS_RELEASE std::array psIds{}; int psCount{}; // PS_ESTABLISH std::optional sNssai{}; std::optional apn{}; bool isEmergency{}; explicit UeCliCommand(PR present) : present(present) { } }; std::unique_ptr ParseGnbCliCommand(std::vector &&tokens, std::string &error, std::string &output); std::unique_ptr ParseUeCliCommand(std::vector &&tokens, std::string &error, std::string &output); } // namespace app