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

 

posted on 2019-12-04 19:40  SunnyPoem  阅读(1274)  评论(0编辑  收藏  举报