Add utility function to generate E2Reset 72/10372/1
authorsubhash kumar singh <subh.singh@samsung.com>
Fri, 3 Feb 2023 09:16:52 +0000 (09:16 +0000)
committersubhash kumar singh <subh.singh@samsung.com>
Fri, 3 Feb 2023 09:16:52 +0000 (09:16 +0000)
Implemented utility function to generate E2Reset request and
response.

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

e2sim/src/encoding/encode_e2apv1.cpp
e2sim/src/encoding/encode_e2apv1.hpp

index e467d80..d5b0639 100755 (executable)
@@ -371,6 +371,62 @@ ASN_SEQUENCE_ADD(&e2configIE->value.choice.RANfunctions_List.list, e2configAddit
 
 }
 
+void encoding::generate_e2apv2_reset_request(E2AP_PDU *e2ap_pdu) {
+  E2AP_PDU_PR pr = E2AP_PDU_PR_initiatingMessage;
+  e2ap_pdu->present = pr;
+
+  e2ap_pdu->choice.initiatingMessage = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t));
+  e2ap_pdu->choice.initiatingMessage->procedureCode = ProcedureCode_id_Reset;
+  e2ap_pdu->choice.initiatingMessage->criticality = Criticality_reject;
+
+  e2ap_pdu->choice.initiatingMessage->value.present = InitiatingMessage__value_PR_ResetRequest;
+
+  auto *rrIEs1 = (ResetRequestIEs_t *)calloc(1, sizeof(ResetRequestIEs_t));
+  rrIEs1->id = ProtocolIE_ID_id_Cause;
+  rrIEs1->criticality = Criticality_ignore;
+
+  rrIEs1->value.present = ResetRequestIEs__value_PR_Cause;
+  rrIEs1->value.choice.Cause.present = Cause_PR_e2Node;
+  rrIEs1->value.choice.Cause.choice.ricRequest = CauseE2node_e2node_component_unknown;
+
+  auto *rrIEs2 = (ResetRequestIEs_t *)calloc(1, sizeof(ResetRequestIEs_t));
+  rrIEs2->id = ProtocolIE_ID_id_TransactionID;
+  rrIEs2->criticality = Criticality_ignore;
+  
+  rrIEs2->value.present = ResetRequestIEs__value_PR_TransactionID;
+  rrIEs2->value.choice.TransactionID = 1;
+
+  ASN_SEQUENCE_ADD(&e2ap_pdu->choice.initiatingMessage->value.choice.ResetRequest.protocolIEs.list, rrIEs2);
+  ASN_SEQUENCE_ADD(&e2ap_pdu->choice.initiatingMessage->value.choice.ResetRequest.protocolIEs.list, rrIEs1);
+}
+
+void encoding::generate_e2apv2_reset_response(E2AP_PDU *e2ap_pdu) {
+  e2ap_pdu->present = E2AP_PDU_PR_successfulOutcome;
+  e2ap_pdu->choice.successfulOutcome = (SuccessfulOutcome_t*)calloc(1, sizeof(SuccessfulOutcome));
+
+  e2ap_pdu->choice.successfulOutcome->procedureCode = ProcedureCode_id_Reset;
+  e2ap_pdu->choice.successfulOutcome->criticality = Criticality_ignore;
+
+  e2ap_pdu->choice.successfulOutcome->value.present = SuccessfulOutcome__value_PR_ResetResponse;
+
+  // auto *rrIEs1 = (ResetResponseIEs_t *)calloc(1, sizeof(ResetResponseIEs_t));
+  // rrIEs1->id = ProtocolIE_ID_id_CriticalityDiagnostics;
+  // rrIEs1->criticality = Criticality_ignore;
+
+  // rrIEs1->value.present = ResetResponseIEs__value_PR_CriticalityDiagnostics;
+  // rrIEs1->value.choice.CriticalityDiagnostics.procedureCode = &ProcedureCode_id_Reset;
+  // rrIEs1->value.choice.CriticalityDiagnostics.choice.ricRequest = CauseE2node_e2node_component_unknown;
+
+  auto *rrIEs2 = (ResetRequestIEs_t *)calloc(1, sizeof(ResetRequestIEs_t));
+  rrIEs2->id = ProtocolIE_ID_id_TransactionID;
+  rrIEs2->criticality = Criticality_ignore;
+  
+  rrIEs2->value.present = ResetRequestIEs__value_PR_TransactionID;
+  rrIEs2->value.choice.TransactionID = 1;
+
+  ASN_SEQUENCE_ADD(&e2ap_pdu->choice.successfulOutcome->value.choice.ResetResponse.protocolIEs.list, rrIEs2);
+}
+
 void encoding::generate_e2apv2_config_update(E2AP_PDU_t *e2ap_pdu){
  // txid
  auto *e2txidIE = (E2nodeConfigurationUpdate_IEs_t *)calloc(1, sizeof(E2nodeConfigurationUpdate_IEs_t));
index 3ad36a0..164ef1e 100644 (file)
@@ -59,6 +59,10 @@ namespace encoding {
   void generate_e2apv1_service_update(E2AP_PDU_t *e2ap_pdu, std::vector<ran_func_info> all_funcs);
 
   void generate_e2apv2_config_update(E2AP_PDU_t *e2ap_edu);
+
+  void generate_e2apv2_reset_request(E2AP_PDU_t *e2ap_pdu);
+
+  void generate_e2apv2_reset_response(E2AP_PDU_t *e2ap_pdu);
 }
 
 #endif