+void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu,
+ long requestorId,
+ long instanceId,
+ long ranFunctionId,
+ long actionId,
+ long seqNum,
+ uint8_t *ind_header_buf,
+ int header_length,
+ uint8_t *ind_message_buf,
+ int message_length) {
+
+ fprintf(stderr, "ind1\n");
+ RICindication_IEs_t *ricind_ies = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies2 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies3 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies4 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies5 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies6 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies7 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+ RICindication_IEs_t *ricind_ies8 = (RICindication_IEs_t*)calloc(1, sizeof(RICindication_IEs_t));
+
+ RICindication_IEs__value_PR pres3;
+
+ pres3 = RICindication_IEs__value_PR_RICrequestID;
+ ricind_ies->id = ProtocolIE_ID_id_RICrequestID;
+ ricind_ies->criticality = 0;
+ ricind_ies->value.present = pres3;
+ ricind_ies->value.choice.RICrequestID.ricRequestorID = requestorId;
+ ricind_ies->value.choice.RICrequestID.ricInstanceID = instanceId;
+
+ fprintf(stderr, "ind2\n");
+
+ pres3 = RICindication_IEs__value_PR_RANfunctionID;
+ ricind_ies2->id = ProtocolIE_ID_id_RANfunctionID;
+ ricind_ies2->criticality = 0;
+ ricind_ies2->value.present = pres3;
+ ricind_ies2->value.choice.RANfunctionID = ranFunctionId;
+
+
+ ricind_ies3->id = ProtocolIE_ID_id_RICactionID;
+ ricind_ies3->criticality = 0;
+ pres3 = RICindication_IEs__value_PR_RICactionID;
+ ricind_ies3->value.present = pres3;
+ ricind_ies3->value.choice.RICactionID = actionId;
+
+
+ pres3 = RICindication_IEs__value_PR_RICindicationSN;
+ ricind_ies4->id = ProtocolIE_ID_id_RICindicationSN;
+ ricind_ies4->criticality = 0;
+ ricind_ies4->value.present = pres3;
+ ricind_ies4->value.choice.RICindicationSN = seqNum;
+
+ //Indication type is REPORT
+ pres3 = RICindication_IEs__value_PR_RICindicationType;
+ ricind_ies5->id = ProtocolIE_ID_id_RICindicationType;
+ ricind_ies5->criticality = 0;
+ ricind_ies5->value.present = pres3;
+ ricind_ies5->value.choice.RICindicationType = 0;
+
+
+ uint8_t *buf2 = (uint8_t *)"reportheader";
+ OCTET_STRING_t *hdr_str = (OCTET_STRING_t*)calloc(1,sizeof(OCTET_STRING_t));
+
+ hdr_str->buf = (uint8_t*)calloc(1,header_length);
+ hdr_str->size = header_length;
+ memcpy(hdr_str->buf, ind_header_buf, header_length);
+
+ fprintf(stderr, "ind3\n");
+
+ ricind_ies6->value.choice.RICindicationHeader.buf = (uint8_t*)calloc(1,header_length);
+
+ pres3 = RICindication_IEs__value_PR_RICindicationHeader;
+ ricind_ies6->id = ProtocolIE_ID_id_RICindicationHeader;
+ ricind_ies6->criticality = 0;
+ ricind_ies6->value.present = pres3;
+ ricind_ies6->value.choice.RICindicationHeader.size = header_length;
+ memcpy(ricind_ies6->value.choice.RICindicationHeader.buf, ind_header_buf, header_length);
+
+ ricind_ies7->value.choice.RICindicationMessage.buf = (uint8_t*)calloc(1,8192);
+
+
+
+
+ pres3 = RICindication_IEs__value_PR_RICindicationMessage;
+ ricind_ies7->id = ProtocolIE_ID_id_RICindicationMessage;
+ fprintf(stderr, "after encoding message 1\n");
+
+ ricind_ies7->criticality = 0;
+ ricind_ies7->value.present = pres3;
+
+ fprintf(stderr, "after encoding message 2\n");
+
+ fprintf(stderr, "after encoding message 3\n");
+ ricind_ies7->value.choice.RICindicationMessage.size = message_length;
+
+ fprintf(stderr, "after encoding message 4\n");
+ memcpy(ricind_ies7->value.choice.RICindicationMessage.buf, ind_message_buf, message_length);
+
+ fprintf(stderr, "after encoding message 5\n");
+
+ uint8_t *cpid_buf = (uint8_t *)"cpid";
+ OCTET_STRING_t cpid_str;
+
+ printf("5.1\n");
+
+ int cpid_buf_len = strlen((char*)cpid_buf);
+ pres3 = RICindication_IEs__value_PR_RICcallProcessID;
+ ricind_ies8->id = ProtocolIE_ID_id_RICcallProcessID;
+
+ ricind_ies8->criticality = 0;
+ ricind_ies8->value.present = pres3;
+
+ ricind_ies8->value.choice.RICcallProcessID.buf = (uint8_t*)calloc(1,cpid_buf_len);
+ ricind_ies8->value.choice.RICcallProcessID.size = cpid_buf_len;
+
+ memcpy(ricind_ies8->value.choice.RICcallProcessID.buf, cpid_buf, cpid_buf_len);
+
+ printf("5.2\n");
+
+ RICindication_t *ricindication = (RICindication_t*)calloc(1, sizeof(RICindication_t));
+
+
+ int ret;
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies);
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies2);
+
+ printf("5.3\n");
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies3);
+
+ printf("5.35\n");
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies4);
+
+ printf("5.36\n");
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies5);
+
+ printf("5.4\n");
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies6);
+
+ printf("5.5\n");
+
+ ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies7);
+
+ // ret = ASN_SEQUENCE_ADD(&ricindication->protocolIEs.list, ricind_ies8);
+
+
+ InitiatingMessage__value_PR pres4;
+ pres4 = InitiatingMessage__value_PR_RICindication;
+ InitiatingMessage_t *initmsg = (InitiatingMessage_t*)calloc(1, sizeof(InitiatingMessage_t));
+ initmsg->procedureCode = 5;
+ initmsg->criticality = 1;
+ initmsg->value.present = pres4;
+ initmsg->value.choice.RICindication = *ricindication;
+
+ E2AP_PDU_PR pres5;
+ pres5 = E2AP_PDU_PR_initiatingMessage;
+
+ e2ap_pdu->present = pres5;
+ e2ap_pdu->choice.initiatingMessage = initmsg;
+
+ char *error_buf = (char*)calloc(300, sizeof(char));
+ size_t errlen;
+
+ asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu, error_buf, &errlen);
+ printf("error length %d\n", errlen);
+ printf("error buf %s\n", error_buf);