static inline
int s1ap_eNB_encode_ue_capability_info_indication(
    S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
    uint8_t                             **buffer,
    uint32_t                             *length)
{
    S1ap_UECapabilityInfoIndication_t  ueCapabilityInfoIndication;
    S1ap_UECapabilityInfoIndication_t *ueCapabilityInfoIndication_p =
        &ueCapabilityInfoIndication;

    memset((void *)ueCapabilityInfoIndication_p, 0,  sizeof(ueCapabilityInfoIndication));

    if (s1ap_encode_s1ap_uecapabilityinfoindicationies(
        ueCapabilityInfoIndication_p, ueCapabilityInfoIndicationIEs) < 0)
    {
        return -1;
    }

    return s1ap_generate_initiating_message(buffer,
                                            length,
                                            S1ap_ProcedureCode_id_UECapabilityInfoIndication,
                                            S1ap_Criticality_ignore,
                                            &asn_DEF_S1ap_UECapabilityInfoIndication,
                                            ueCapabilityInfoIndication_p);
}
Пример #2
0
int s1ap_eNB_encode_s1_setup_request(S1SetupRequestIEs_t  *s1SetupRequestIEs,
                                     uint8_t           **buffer,
                                     uint32_t           *length) {
    S1SetupRequest_t  s1SetupRequest;
    S1SetupRequest_t *s1SetupRequest_p = &s1SetupRequest;

    memset((void *)s1SetupRequest_p, 0, sizeof(S1SetupRequest_t));

    if (s1ap_encode_s1setuprequesties(s1SetupRequest_p, s1SetupRequestIEs) < 0)
        return -1;

    return s1ap_generate_initiating_message(buffer,
        length,
        ProcedureCode_id_S1Setup,
        Criticality_reject,
        &asn_DEF_S1SetupRequest,
        s1SetupRequest_p);
}
Пример #3
0
int s1ap_eNB_encode_initial_ue_message(InitialUEMessageIEs_t  *initialUEmessageIEs_p,
                                       uint8_t             **buffer,
                                       uint32_t             *length) {
    InitialUEMessage_t  initialUEMessage;
    InitialUEMessage_t *initialUEMessage_p = &initialUEMessage;

    memset((void *)initialUEMessage_p, 0, sizeof(InitialUEMessage_t));

    if (s1ap_encode_initialuemessageies(initialUEMessage_p, initialUEmessageIEs_p) < 0)
        return -1;

    return s1ap_generate_initiating_message(buffer,
        length,
        ProcedureCode_id_initialUEMessage,
        Criticality_reject,
        &asn_DEF_InitialUEMessage,
        initialUEMessage_p);
}
static inline
int s1ap_mme_encode_initial_context_setup_request(s1ap_message *message_p,
    uint8_t **buffer, uint32_t *length)
{
  S1ap_InitialContextSetupRequest_t  initialContextSetupRequest;
  S1ap_InitialContextSetupRequest_t *initialContextSetupRequest_p =
    &initialContextSetupRequest;

  memset(initialContextSetupRequest_p, 0, sizeof(S1ap_InitialContextSetupRequest_t));

  if (s1ap_encode_s1ap_initialcontextsetuprequesties(initialContextSetupRequest_p,
      &message_p->msg.s1ap_InitialContextSetupRequestIEs) < 0) {
    return -1;
  }

  return s1ap_generate_initiating_message(buffer,
                                          length,
                                          S1ap_ProcedureCode_id_InitialContextSetup,
                                          S1ap_Criticality_reject,
                                          &asn_DEF_S1ap_InitialContextSetupRequest,
                                          initialContextSetupRequest_p);
}
static inline
int s1ap_mme_encode_ue_context_release_command(s1ap_message *message_p,
    uint8_t **buffer, uint32_t *length)
{
  S1ap_UEContextReleaseCommand_t  ueContextReleaseCommand;
  S1ap_UEContextReleaseCommand_t *ueContextReleaseCommand_p = &ueContextReleaseCommand;

  memset(ueContextReleaseCommand_p, 0, sizeof(S1ap_UEContextReleaseCommand_t));

  /* Convert IE structure into asn1 message_p */
  if (s1ap_encode_s1ap_uecontextreleasecommandies(ueContextReleaseCommand_p,
      &message_p->msg.s1ap_UEContextReleaseCommandIEs) < 0) {
    return -1;
  }

  return s1ap_generate_initiating_message(buffer,
                                          length,
                                          S1ap_ProcedureCode_id_UEContextRelease,
                                          message_p->criticality,
                                          &asn_DEF_S1ap_UEContextReleaseCommand,
                                          ueContextReleaseCommand_p);
}
static inline
int s1ap_mme_encode_downlink_nas_transport(
  s1ap_message *message_p, uint8_t **buffer, uint32_t *length)
{
  S1ap_DownlinkNASTransport_t  downlinkNasTransport;
  S1ap_DownlinkNASTransport_t *downlinkNasTransport_p = &downlinkNasTransport;

  memset(downlinkNasTransport_p, 0, sizeof(S1ap_DownlinkNASTransport_t));

  /* Convert IE structure into asn1 message_p */
  if (s1ap_encode_s1ap_downlinknastransporties(downlinkNasTransport_p,
      &message_p->msg.s1ap_DownlinkNASTransportIEs) < 0) {
    return -1;
  }

  /* Generate Initiating message_p for the list of IEs */
  return s1ap_generate_initiating_message(buffer,
                                          length,
                                          S1ap_ProcedureCode_id_downlinkNASTransport,
                                          message_p->criticality,
                                          &asn_DEF_S1ap_DownlinkNASTransport,
                                          downlinkNasTransport_p);
}
static inline
int s1ap_eNB_encode_trace_failure(
    S1ap_TraceFailureIndicationIEs_t *trace_failure_ies_p,
    uint8_t                         **buffer,
    uint32_t                         *length)
{
    S1ap_TraceFailureIndication_t  trace_failure;
    S1ap_TraceFailureIndication_t *trace_failure_p = &trace_failure;

    memset((void *)trace_failure_p, 0, sizeof(trace_failure));

    if (s1ap_encode_s1ap_tracefailureindicationies(
        trace_failure_p, trace_failure_ies_p) < 0)
    {
        return -1;
    }

    return s1ap_generate_initiating_message(buffer,
                                            length,
                                            S1ap_ProcedureCode_id_TraceFailureIndication,
                                            S1ap_Criticality_reject,
                                            &asn_DEF_S1ap_TraceFailureIndication,
                                            trace_failure_p);
}
static inline
int s1ap_eNB_encode_initial_ue_message(
    S1ap_InitialUEMessageIEs_t *initialUEmessageIEs_p,
    uint8_t                   **buffer,
    uint32_t                   *length)
{
    S1ap_InitialUEMessage_t  initialUEMessage;
    S1ap_InitialUEMessage_t *initialUEMessage_p = &initialUEMessage;

    memset((void *)initialUEMessage_p, 0, sizeof(initialUEMessage));

    if (s1ap_encode_s1ap_initialuemessageies(
        initialUEMessage_p, initialUEmessageIEs_p) < 0)
    {
        return -1;
    }

    return s1ap_generate_initiating_message(buffer,
                                            length,
                                            S1ap_ProcedureCode_id_initialUEMessage,
                                            S1ap_Criticality_reject,
                                            &asn_DEF_S1ap_InitialUEMessage,
                                            initialUEMessage_p);
}
static inline
int s1ap_eNB_encode_nas_non_delivery(
    S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs,
    uint8_t                            **buffer,
    uint32_t                            *length)
{
    S1ap_NASNonDeliveryIndication_t  nasNonDeliveryIndication;
    S1ap_NASNonDeliveryIndication_t *nasNonDeliveryIndication_p = &nasNonDeliveryIndication;

    memset((void *)nasNonDeliveryIndication_p, 0, sizeof(nasNonDeliveryIndication));

    if (s1ap_encode_s1ap_nasnondeliveryindication_ies(
        nasNonDeliveryIndication_p, nasNonDeliveryIndicationIEs) < 0)
    {
        return -1;
    }

    return s1ap_generate_initiating_message(buffer,
                                            length,
                                            S1ap_ProcedureCode_id_NASNonDeliveryIndication,
                                            S1ap_Criticality_ignore,
                                            &asn_DEF_S1ap_NASNonDeliveryIndication,
                                            nasNonDeliveryIndication_p);
}
static inline
int s1ap_eNB_encode_uplink_nas_transport(
    S1ap_UplinkNASTransportIEs_t *uplinkNASTransportIEs,
    uint8_t                     **buffer,
    uint32_t                     *length)
{
    S1ap_UplinkNASTransport_t  uplinkNASTransport;
    S1ap_UplinkNASTransport_t *uplinkNASTransport_p = &uplinkNASTransport;

    memset((void *)uplinkNASTransport_p, 0, sizeof(uplinkNASTransport));

    if (s1ap_encode_s1ap_uplinknastransporties(
        uplinkNASTransport_p, uplinkNASTransportIEs) < 0)
    {
        return -1;
    }

    return s1ap_generate_initiating_message(buffer,
                                            length,
                                            S1ap_ProcedureCode_id_uplinkNASTransport,
                                            S1ap_Criticality_ignore,
                                            &asn_DEF_S1ap_UplinkNASTransport,
                                            uplinkNASTransport_p);
}