Message handler for e2nodeConfigUpdate 39/8339/1
authorsubhash kumar singh <subh.singh@samsung.com>
Wed, 18 May 2022 16:14:03 +0000 (16:14 +0000)
committersubhash kumar singh <subh.singh@samsung.com>
Wed, 18 May 2022 18:53:31 +0000 (18:53 +0000)
Enable message handler for e2nodeConfigUpdate.

Signed-off-by: subhash kumar singh <subh.singh@samsung.com>
Change-Id: I8afcc83a5dfc0a298f4c4cbad236e9b11b641b70

e2sim/src/messagerouting/e2ap_message_handler.cpp
e2sim/src/messagerouting/e2ap_message_handler.hpp

index ca2d400..57d28c2 100755 (executable)
@@ -189,6 +189,20 @@ void e2ap_handle_sctp_data(int &socket_fd, sctp_buffer_t &data, bool xmlenc, E2S
         }\r
       break;\r
 \r
+    case ProcedureCode_id_E2nodeConfigurationUpdate:\r
+      switch (index)\r
+        {\r
+          case E2AP_PDU_PR_successfulOutcome:\r
+          LOG_I("[E2AP] Received E2nodeConfigurationUpdate")\r
+          break;\r
+\r
+          default:\r
+            LOG_E("[E2AP] Invalid message index=%d in E2AP-PDU %d", index,\r
+                                    (int)ProcedureCode_id_E2nodeConfigurationUpdate);\r
+          break;\r
+        }\r
+      break;\r
+\r
     case ProcedureCode_id_RICserviceUpdate:\r
       switch (index)\r
         {\r
@@ -269,6 +283,42 @@ void e2ap_handle_E2SeviceRequest(E2AP_PDU_t* pdu, int &socket_fd, E2Sim *e2sim)
   }\r
 }\r
 \r
+void e2ap_send_e2nodeConfigUpdate(int &socket_fd) {\r
+\r
+  auto buffer_size = MAX_SCTP_BUFFER;\r
+  unsigned char buffer[MAX_SCTP_BUFFER];\r
+  E2AP_PDU_t* pdu = (E2AP_PDU_t*)calloc(1,sizeof(E2AP_PDU));\r
+\r
+  LOG_D("about to call e2nodeconfigUpdate encode\n");\r
+\r
+  encoding::generate_e2apv2_config_update(pdu);\r
+\r
+  LOG_D("[E2AP] Created E2nodeConfigUpdate");\r
+\r
+  e2ap_asn1c_print_pdu(pdu);\r
+\r
+  sctp_buffer_t data;\r
+\r
+  char error_buf[300] = {0, };\r
+  size_t errlen = 0;\r
+\r
+  asn_check_constraints(&asn_DEF_E2AP_PDU, pdu, error_buf, &errlen);\r
+\r
+  auto er = asn_encode_to_buffer(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pdu, buffer, buffer_size);\r
+\r
+  data.len = er.encoded;\r
+  fprintf(stderr, "er encoded is %d\n", er.encoded);\r
+\r
+  memcpy(data.buffer, buffer, er.encoded);\r
+\r
+  //send response data over sctp\r
+  if(sctp_send_data(socket_fd, data) > 0) {\r
+    LOG_I("[SCTP] Sent E2nodeConfigUpdate");\r
+  } else {\r
+    LOG_E("[SCTP] Unable to send E2nodeConfigUpdate to peer");\r
+  }\r
+}\r
+\r
 void e2ap_handle_E2SetupRequest(E2AP_PDU_t* pdu, int &socket_fd) {\r
 \r
   \r
index f937745..f49f76c 100644 (file)
@@ -47,4 +47,6 @@ void e2ap_handle_ResourceStatusRequest(E2AP_PDU_t* pdu, int &socket_fd);
 \r
 void e2ap_handle_E2SeviceRequest(E2AP_PDU_t* pdu, int &socket_fd, E2Sim *e2sim);\r
 \r
+void e2ap_send_e2nodeConfigUpdate(int &socket_fd);\r
+\r
 #endif\r