zoukankan      html  css  js  c++  java
  • ASN.1

     简介:

    原文:

    https://www.itu.int/dms_pub/itu-t/oth/0B/04/T0B040000492C01PDFC.pdf

     

    ASN.1是一种能够以独立于语言、平台和编码的形式,对计算机间交流的信息内容 进行定义的符号,并将这一定义称为“用于通信的抽象语法”。 如将它与“有效语法”的ABNF或“有效文件”的XSD概念进行比较,后一种概念 完全侧重于数据的有效编码,不关心任何可能附加给这类编码的意义,即没有任何 必要的语义联系。

    ASN.1定义可方便地映射至C、C++、C#或Java数据结构等格式,用于应用编码, 并通过以XML或TLV(类型-长度-价值)或极紧密排列的编码格式提供表示形式编 解码的存储库而得到支持。 ASN.1广泛用于需要有效(低带宽、低交易成本)计算机通信的行业部门以及需要 高速信息编解码的部门(例如,生物计量信息和电话交换的传送)。

     

     

    例子:

    3GPP RANAP V6.2.0.asn

     

    -- FILE: @(#)RANAP-PDU-Descriptions.asn13.2  04/09/14

     

    -- 3GPP TS 25.413 V6.2.0 (2004-06)

    -- 9.3.2Elementary Procedure Definitions

    -- **************************************************************

    --

    -- Elementary Procedure definitions

    --

    -- **************************************************************

     

    RANAP-PDU-Descriptions  {

    itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)

    umts-Access (20) modules (3) ranap (0) version1 (1) ranap-PDU-Descriptions (0)}

     

    DEFINITIONS AUTOMATIC TAGS ::=

     

    BEGIN

     

    -- **************************************************************

    --

    -- IE parameter types from other modules.

    --

    -- **************************************************************

     

    IMPORTS

    Criticality,

    ProcedureCode

    FROM RANAP-CommonDataTypes

     

    Iu-ReleaseCommand,

    Iu-ReleaseComplete,

    RelocationCommand,

    RelocationPreparationFailure,

    RelocationRequired,

    RelocationRequest,

    RelocationRequestAcknowledge,

    RelocationFailure,

    RelocationCancel,

    RelocationCancelAcknowledge,

    SRNS-ContextRequest,

    SRNS-ContextResponse,

    SecurityModeCommand,

    SecurityModeComplete,

    SecurityModeReject,

    DataVolumeReportRequest,

    DataVolumeReport,

    Reset,

    ResetAcknowledge,

    RAB-ReleaseRequest,

    Iu-ReleaseRequest,

    RelocationDetect,

    RelocationComplete,

    Paging,

    CommonID,

    CN-InvokeTrace,

    CN-DeactivateTrace,

    LocationReportingControl,

    LocationReport,

    InitialUE-Message,

    DirectTransfer,

    Overload,

    ErrorIndication,

    SRNS-DataForwardCommand,

    ForwardSRNS-Context,

    RAB-AssignmentRequest,

    RAB-AssignmentResponse,

    RAB-ModifyRequest,

    PrivateMessage,

    ResetResource,

    ResetResourceAcknowledge,

    RANAP-RelocationInformation,

    LocationRelatedDataRequest,

    LocationRelatedDataResponse,

    LocationRelatedDataFailure,

    InformationTransferIndication,

    InformationTransferConfirmation,

    InformationTransferFailure,

    UESpecificInformationIndication,

    DirectInformationTransfer,

    UplinkInformationTransferIndication,

    UplinkInformationTransferConfirmation,

    UplinkInformationTransferFailure

    FROM RANAP-PDU-Contents

     

    id-LocationRelatedData,

    id-CN-DeactivateTrace,

    id-CN-InvokeTrace,

    id-CommonID,

    id-DataVolumeReport,

    id-DirectTransfer,

    id-ErrorIndication,

    id-ForwardSRNS-Context,

    id-InformationTransfer,

    id-InitialUE-Message,

    id-Iu-Release,

    id-Iu-ReleaseRequest,

    id-LocationReport,

    id-LocationReportingControl,

    id-OverloadControl,

    id-Paging,

    id-privateMessage,

    id-RAB-Assignment,

    id-RAB-ReleaseRequest,

    id-RAB-ModifyRequest,

    id-RANAP-Relocation,

    id-RelocationCancel,

    id-RelocationComplete,

    id-RelocationDetect,

    id-RelocationPreparation,

    id-RelocationResourceAllocation,

    id-Reset,

    id-SRNS-ContextTransfer,

    id-SRNS-DataForward,

    id-SecurityModeControl,

    id-ResetResource,

    id-UESpecificInformation,

    id-DirectInformationTransfer,

    id-UplinkInformationTransfer

    FROM RANAP-Constants;

     

    -- **************************************************************

    --

    -- Interface Elementary Procedure Class

    --

    -- **************************************************************

     

    RANAP-ELEMENTARY-PROCEDURE ::= CLASS {

    &InitiatingMessage,

    &SuccessfulOutcomeOPTIONAL,

    &UnsuccessfulOutcomeOPTIONAL,

    &OutcomeOPTIONAL,

    &procedureCodeProcedureCode UNIQUE,

    &criticalityCriticality DEFAULT ignore

    }

    WITH SYNTAX {

    INITIATING MESSAGE&InitiatingMessage

    [SUCCESSFUL OUTCOME&SuccessfulOutcome]

    [UNSUCCESSFUL OUTCOME&UnsuccessfulOutcome]

    [OUTCOME&Outcome]

    PROCEDURE CODE&procedureCode

    [CRITICALITY&criticality]

    }

     

    -- **************************************************************

    --

    -- Interface PDU Definition

    --

    -- **************************************************************

     

    RANAP-PDU ::= CHOICE {

    initiatingMessageInitiatingMessage,

    successfulOutcomeSuccessfulOutcome,

    unsuccessfulOutcomeUnsuccessfulOutcome,

    outcomeOutcome,

    ...

    }

     

    InitiatingMessage ::= SEQUENCE {

    procedureCodeRANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),

    criticalityRANAP-ELEMENTARY-PROCEDURE.&criticality({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),

    valueRANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})

    }

     

    SuccessfulOutcome ::= SEQUENCE {

    procedureCodeRANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),

    criticalityRANAP-ELEMENTARY-PROCEDURE.&criticality({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),

    valueRANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})

    }

     

    UnsuccessfulOutcome ::= SEQUENCE {

    procedureCodeRANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),

    criticalityRANAP-ELEMENTARY-PROCEDURE.&criticality({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),

    valueRANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})

    }

     

    Outcome ::= SEQUENCE {

    procedureCodeRANAP-ELEMENTARY-PROCEDURE.&procedureCode({RANAP-ELEMENTARY-PROCEDURES}),

    criticalityRANAP-ELEMENTARY-PROCEDURE.&criticality({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),

    valueRANAP-ELEMENTARY-PROCEDURE.&Outcome({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})

    }


    应用方式:

    http://harmony.apache.org/subcomponents/classlibrary/asn1_framework.html#Overview

     

  • 相关阅读:
    数据库范式那些事[转]
    C# 之值类型与引用类型参数[基础]
    C# 实体类生成工具
    《浅谈线程池》笔记
    提高网站性能之 —— 减少图片HTTP 请求的方案
    SQL Server 2005 For XML[学习]
    关于数据类型导致的精确计算
    SQL Server 数据库实现之TSQL语句[备忘]
    C# 关键字ref 和out 的详细区别
    关于XML中的名称空间
  • 原文地址:https://www.cnblogs.com/sunnypoem/p/11985010.html
Copyright © 2011-2022 走看看