int s1ap_eNB_init(const char *mme_ip_address, const uint8_t eNB_id) { uint8_t args = eNB_id; if (sctp_connect_to_remote_host( mme_ip_address, 36412, &args, s1ap_sctp_connected_callback, s1ap_sctp_recv_callback) < 0) { S1AP_ERROR("[eNB %02d] Failed to setup SCTP\n", eNB_id); return -1; } S1AP_DEBUG("[eNB %02d] successfully connected to MME\n", eNB_id); return 0; }
int main(int argc, char *argv[]) { asn_enc_rval_t retVal; int i; for (i = 0; i < nb_eNB; i++) { sctp_connect_to_remote_host(ip_addr, 36412, NULL, sctp_connected, recv_callback); } while (1) { sleep(1); } sctp_terminate(); return(0); }
int main ( int argc, char *argv[]) { asn_enc_rval_t retVal; uint8_t *buffer; uint32_t len; SupportedTAs_Item_t ta; PLMNidentity_t plmnIdentity; asn_debug = 0; asn1_xer_print = 0; S1SetupRequestIEs s1SetupRequest; memset (&s1SetupRequest, 0, sizeof (S1SetupRequestIEs)); s1SetupRequest.global_ENB_ID.eNB_ID.present = ENB_ID_PR_macroENB_ID; s1SetupRequest.global_ENB_ID.eNB_ID.choice.macroENB_ID.buf = id; s1SetupRequest.global_ENB_ID.eNB_ID.choice.macroENB_ID.size = 3; s1SetupRequest.global_ENB_ID.eNB_ID.choice.macroENB_ID.bits_unused = 4; OCTET_STRING_fromBuf (&s1SetupRequest.global_ENB_ID.pLMNidentity, identity, 3); s1SetupRequest.presenceMask |= S1SETUPREQUESTIES_ENBNAME_PRESENT; OCTET_STRING_fromBuf (&s1SetupRequest.eNBname, "ENB 1 eurecom", strlen ("ENB 1 eurecom")); memset (&ta, 0, sizeof (SupportedTAs_Item_t)); memset (&plmnIdentity, 0, sizeof (PLMNidentity_t)); OCTET_STRING_fromBuf (&ta.tAC, tac, 2); OCTET_STRING_fromBuf (&plmnIdentity, identity, 3); ASN_SEQUENCE_ADD (&ta.broadcastPLMNs, &plmnIdentity); ASN_SEQUENCE_ADD (&s1SetupRequest.supportedTAs, &ta); s1SetupRequest.defaultPagingDRX = PagingDRX_v64; s1ap_eNB_encode_s1setuprequest (&s1SetupRequest, &buffer, &len); assoc[0] = sctp_connect_to_remote_host (ip_addr, 36412, &recv_callback); sctp_send_msg (0, 0, buffer, len); free (buffer); // generateUplinkNASTransport(&buffer, &len); // sctp_send_msg(assoc[0], 0, buffer, len); // s1ap_mme_decode_pdu(buffer, len); pthread_join (sctp_get_receiver_thread (assoc[0]), NULL); return (0); }