Skip to content

Commit

Permalink
Add KpmManager Module
Browse files Browse the repository at this point in the history
  • Loading branch information
muriloAvlis committed Jun 3, 2024
1 parent b633dd4 commit 802f88a
Show file tree
Hide file tree
Showing 8 changed files with 406 additions and 9 deletions.
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.15)
project(iqos_xapp VERSION 0.0.1 LANGUAGES CXX)
project(xapp_iqos VERSION 0.0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)

Expand All @@ -20,17 +20,17 @@ FetchContent_Declare(
FetchContent_MakeAvailable(spdlog)

## Config executable
add_executable(iqos_xapp src/main.cpp
add_executable(xapp_iqos src/main.cpp
src/logger.cpp
src/logger.hpp
src/kpmManager.cpp
)

## Link libraries
target_include_directories(iqos_xapp PUBLIC
target_include_directories(xapp_iqos PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/libs/flexric/src/xApp
)
target_link_libraries(iqos_xapp PUBLIC
target_link_libraries(xapp_iqos PUBLIC
e42_xapp
spdlog::spdlog $<$<BOOL:${MINGW}>:ws2_32>
-pthread
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Build the xApp.
cd iqos-xapp
mkdir -p build && cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DE2AP_VERSION=E2AP_V3 -DKPM_VERSION=KPM_V3_00 ..
ninja iqos-xapp
ninja xapp_iqos
```

### Running the xApp
Expand Down
19 changes: 19 additions & 0 deletions docs/SM_KPM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Service Model KPM_V3_00

## Supported Report Style Types
- **RIC Style Type 1**: E2 Node Measurement. Used to carry measurement report from a target E2 Node. More in details,
it contains measurement types that Near-RT RIC is requesting to subscribe followed by a list
of subcounters to be measured for each measurement type, and a granularity period
indicating collection interval of those measurements.


- **RIC Style Type 2**: Used to carry measurement report for a single UE of interest from a target E2 Node.


- **RIC Style Type 3**: Used to carry UE-level measurement report for a group of UEs per measurement type matching subscribed conditions from a target E2 Node.


- **RIC Style Type 4**: Used to carry measurement report for a group of UEs across a set of measurement types satisfying common subscribed conditions from a target E2 Node


- **RIC Style Type 5**: Used to carry measurement report for multiple UE of interest from a target E2 Node
23 changes: 23 additions & 0 deletions include/kpmManager.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#ifndef KPMMANAGER
#define KPMMANAGER

#include "../libs/flexric/src/xApp/e42_xapp_api.h"
#include "spdlog/spdlog.h"
#include "defer.hpp"

#include "chrono"
#include <cassert>

namespace KpmManager
{
// used to check message latency
u_int64_t get_time_now_us();

// type to filter and handle with report styles
using fill_kpm_act_def = kpm_act_def_t (*)(ric_report_style_item_t const* report_item);

// start KPM Manager
void start(e2_node_arr_xapp_t const& e2Nodes);
};

#endif // KPMMANAGER
2 changes: 1 addition & 1 deletion src/logger.hpp → include/logger.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#include <string>

#include "spdlog/spdlog.h"
#include "../cmake-build-debug/_deps/spdlog-src/include/spdlog/spdlog.h"

void configureLogger(const std::string& xAppName, spdlog::level::level_enum logLevel);

Expand Down
Loading

0 comments on commit 802f88a

Please sign in to comment.