1

libosmo-as​​n1-mapの C コードを使用して、GSM_MAP プロトコルの実装を取得しました。次に、「 Send authentication Info」メッセージをエンコードしようとします。3GPP TS 29.002で言及されているように、このメッセージには必須部分 (「imsi」など) とオプション部分 (「requestingNodeType」など) が含まれています。

/* SendAuthenticationInfoArg */
typedef struct SendAuthenticationInfoArg {
    IMSI_t   imsi;
    NumberOfRequestedVectors_t   numberOfRequestedVectors;
    NULL_t  *segmentationProhibited /* OPTIONAL */;
    NULL_t  *immediateResponsePreferred /* OPTIONAL */;
    struct Re_synchronisationInfo   *re_synchronisationInfo /* OPTIONAL */;
    struct ExtensionContainer   *extensionContainer /* OPTIONAL */;
    /*
     * This type is extensible,
     * possible extensions are below.
     */
    RequestingNodeType_t    *requestingNodeType /* OPTIONAL */;
    PLMN_Id_t   *requestingPLMN_Id  /* OPTIONAL */;
    NumberOfRequestedVectors_t  *numberOfRequestedAdditional_Vectors    /* OPTIONAL */;
    NULL_t  *additionalVectorsAreForEPS /* OPTIONAL */;

    /* Context for parsing across buffer boundaries */
    asn_struct_ctx_t _asn_ctx;
} SendAuthenticationInfoArg_t;

osmo-tcap-mapプロジェクトから着想を得た次の C コードを使用しました。

SendAuthenticationInfoArg_t ula;
memset(&ula, 0, sizeof(ula));

ASN1Common::OCTET_STRING_fromRevVal(&ula.imsi, 202015604083166);
ula.requestingNodeType = 0;
ula.numberOfRequestedVectors = 5;    
xer_fprint(stdout, &asn_DEF_SendAuthenticationInfoArg, &ula);

ただし、「 requestingNodeType」が初期化されている間、XER 出力にはオプションの部分はありません。

<SendAuthenticationInfoArg>
    <imsi>02 02 51 06 04 38 61 F6</imsi>
    <numberOfRequestedVectors>5</numberOfRequestedVectors>
</SendAuthenticationInfoArg>

オプション部分を有効にするにはどうすればよいですか (つまり、メッセージに「requestingNodeType」を追加します)?

4

1 に答える 1