내용없음9
내용없음10














Objective Systems
ASN1C ASN.1 Compiler (한글)
 
 
 평가판 다운로드 : (http://obj-sys.com/download/index.php)
 제품 브로셔 :  ASN1C.pdf(149.1KB)
제품설명

ASN1C ASN.1 Compiler

 ASN.1 개요 및 필요성
  ASN.1은 Abstract Syntax Notation #1을 말하며, 국제전기통신 연합(ITU)에서 정의한 네트웍상의 데이터 교환을 정의한 프로토콜로 X.208에 정의되어 있습니다. OSI 참조 모델에서 ASN.1 은 네트워크 관리 시스템에 있는 관리되는 개체와 같이 데이터 Structure를 기술하는데 사용되는 표시법입니다. ASN.1 은 많은 독립적인 네트웍 기기의 콘텍스트에서 사용됩니다. 예를 들면 OSI 네트워크 관리 프레임워크와 인터넷 TCP/IP 프로토콜에서 온 SNMP와 같이 양쪽 모두의 어플리케이션층의 패킷을 기술하는데 사용됩니다. ASN.1은 각 끝점에서 다른 변조 시스템을 사용할 수 있는 ES(End System) 사이의 정보를 전송하기 위한 공동 Systax로서 기능을 가지고 있습니다. 네트워크상에 존재하는 다양한 종류의 시스템들은 각각 데이터를 표현하는 독특한 방식을 가지고 있습니다. 따라서 네트워크 상에서 메시지를 교환하기 위해서는 모든 시스템에서 받아들일 수 있는 형태의 호환성있는 데이터 표현 방식을 정의 할 필요가 있습니다. 이러한 제반 환경에 의해서 ASN.1은 정의되게 되었다. ASN.1에서는 INTEGER나 각종 STRING형태의 데이터를 비롯하여 그러한 ASN.1 content들의 모임인 SEQUENCE나 SET등의 데이터 표현 방식을 정의함으로써 대부분의 네트워크 상에서 교환 되어지는 메시지들을 ASN.1 방식에 따라서 표현할 수 있도록 하였다.

 ASN.1 syntax의 기본 형식

 기본적인 ASN1의 기본 타입들은 tag number와 클래스의(class) 종류, construced 인가 primitive인지를 나타내는 플래그등으로 구성된 헤더와 base contents의 길이 그리고 base contents등으로 구성됩니다. CHOICE와 ANY타입을 제외한 모든 ASN.1의 타입은 class와 음이아닌 tag number로 구성된 tag를 가지고 있습니다. tag의 클래스에는 Universal, Application, Private, Context-specific등의 클래스가 있습니다. Base content의 길이는 직접 지정하는 definite 형식과 길이를 0으로 설정하고 base contents가 오고 마지막에 eoc(End of octet)를 나타내는 0000으로 base contents의 끝을 나타내는 indefinite형식이 있습니다.

 BER과 DER
  네트워크 상에서 교환 되는 메시지는 ASN.1형태로 구성되어 교환 된다고 하였지만, ASN.1은 그 자체로는 추상적인 데이터 형식이기 때문에 그것을 그대로 전송할 수 없습니다. 따라서 ASN.1 형태의 추상 데이터 형식을 네트워크 상에서 전송할 수 있는 형식으로 변환 시켜야 할 필요성이 있습니다. 이때 사용되는 것이 BER(Basic Encoding Rule)과 DER(Distinguished Encoding Rule)이다. BER과 DER은 각 ASN.1 형태의 데이터 형식을 네트워크 상에서 전송할 수 있는 형태로 encoding해주고 그것을 다시 ASN.1 형태로 decoding해주는 방법에 대하여 정의하고 있습니다.

대부분의 ASN.1 형식에 대해서 BER과 DER방식의 encoding 방법은 큰 차이를 보이지 않습니다. 다만 경우에 따라서 약간의 다른 점들이 존재하며, BER이 DER보다 더 큰 범위의 encoding 방법을 정의하고 있습니다.

  ASN1C ASN.1 COMPILER
  ASN1C는 ASN.1의 C/C++, C#, Java, Python, Go 소스 코드 생성 컴파일러입니다. 이 컴파일러는 ASN.1 또는 XML schema(XSD)의 소스 파일을 입력으로 취하여 C/C++/C#/Java/Python/Go 의 헤더 파일과 encode(BER, CER, DER, PER, UPER, OER, COER or XER)와 decode 함수들을 포함하는 소스 파일을 생성하여 줍니다. 또한 ASN.1 run-time library를 포함하고 있는데 이것은 컴파일러에 의해 생성된 코드가 ASN.1 메시지의 encoding과 decoding을 위해서 완벽한 패키지를 제공합니다. 컴파일러는 여러 종류의 플랫폼에 대한 포팅을 허용할 수 있는 ANSI 표준의 실시간 C 코드를 생성합니다. ASN1C는 ASN.1의 C/C++/C# 뿐만 아니라 Java, Python, Go을 지원 합니다. 

ASN1C C++/Java 버전 역시 동일한 기본 파일 셑과 라이브러리로 동작하며, 또한 encode/decode 함수호출에 대한 정확한 내용을 포함한 wrapper 클래스를 생성합니다. 이는 원래의 C/Java함수와의 인터페이스 에 관계없이 C++/Java 환경의 작업을 가능하게 합니다.

 다음은 다른 ASN.1 컴파일러 벤더들과 비교되는 특징들입니다.

  • 생성된 코드의 사용에 대한 라이센스 비용이 없습니다. 
  • 다양한 플랫폼에서 사용하기 위한 런타임 라이브러리들을 포함한 소스코드 제공. 
  • ITU X.680에서 정의한 ASN.1 구문을 파싱하는 능력.
  • object specification (X.681) 과 parameterized type (X.683) 구문에 대한 정보를 지원
  • Basic Encoding Rules (BER), Distinguished Encoding Rules (DER) 그리고 Packed Encoding Rules (PER)에 따르는 인코더/디코더들를 만들 수 있다. 
  • 컴파일러는 또한 더 오래된 x.208와 x.209 표준들과 하위 상호 교환성을 갖는다. 
  ASN1C v7.6.2 이 공식 발표 되었습니다!
  • C/C++, Java, C#, Python, Go 언어 지원 
  • Cross-Platform(Linux/UNIX/MS-Windows) GUI Wizard 지원 
  • XML Decode 성능 개선 
  • C++ Stream Classes 를 새롭게 디자인 
  • Visual Studio Project Files 작업 지원 
  • Distinguished Encoding Rules (DER)의 지원
  • X.509, PKIX와 PKCS.같은 ASN.1의 안전한 스팩을 위한 파싱과 코드생성
  • 5G NR, 4G, LTE Release 10/11/12/13/14/15/16/17 등 새로운 3GPP 스팩을 위한 파싱과 코드생성
  • large integers(> 32 비트)를 위한 지원
★ 임베디드 환경을 위한 작고 경제적인 코드생성에 대한 추가적으로 향상된 기능들. Android 4.x, iOS 3.x/4.x/5.x/6.x/7.x/8.x, Windows CE/Embedded Cpmpact 7/NT/2000/2003/2008/2012/XP/XPE/Vista/7/8, UNIX, IBM AIX, Solaris, Linux, Mac OSX 를 위한 Trial version이 있습니다. 다른 시스템을 위한 버전이 필요하시면 연락 주십시오. 
  ASN1C 특징
  • ASN1C는 Packed Encoding Rules (PER)을 지원합니다!!! 
  • 런타임 라이브러리 소스코드는 이종의 오퍼레이팅 환경으로 커스터마이징하거나 포팅하는 기능을 제공합니다.
  • Standards Based 최신의 ITU ASN.1 표준을 지원합니다. 이전의 표준도 같이 사용가능 합니다.
  • Flexible Architecture 생성된 모든 소스와 런타임 코드는 ANSI 표준C/C++ 코드이므로 다양한 플랫폼으로 포팅할 수 있습니다. 
  • ASN1C 컴파일러는 ASN.1의 논리적인 표현과 일치하는 C/C++, Java 소스코드를 생성합니다.

 ASN1C ASN.1 SDK 응용 사례
 TELEMATICS(텔레메틱스) 

  • ISO TC204 (Transport Information/Control)
  • C-ITS (차세대 지능형 교통체계) 
  • V2X (SAE International Standard J2735) 
  • ITS (지능형 교통 시스템) 
  • ISO 14827 (ISO14827-MESSAGE)
  • ISO 15784 (ISO15784-MESSAGE)
  • ISO 14906 (EfcModule)
  • Hi-pass 단말기 (DSRC/OBU)
  • 노변기지국 (LCU 안테나)
  • 기지국 (RSE/MCU)
  • 교통정보센터 등 ASN.1 으로 정의된 DATEX-ASN (DatexDataPacket)
  • ITS WAVE : IEEE Standard 1609™ Family (Std 1609.1,1609.2,1609.3,1609.4)
예) ASN.1 Syntax 사용 사례

DatexDataPacket ::= SEQUENCE 
{
datex-Version-number ENUMERATED 
{
experimental (0), 
version1 (1),
...
}, 
datex-Data OCTET STRING , 
datex-Crc-nbr OCTET STRING (SIZE (2))
}

 기본교통정보 교환 기술기준 IV (무선통신 기술을 이용한 교통정보 수집  제공 기술표준)
    자료출처: 건설교통부 제정 2008.1.28 건설교통부 고시 제2008-45호 

 TELEPHONY(전화 통신) 
예) ASN.1 Syntax 용용 사례 5G NR, LTE-RRC Release 14/15/16/17 Message 처리 

  -> Android 4/5/6/7/8/9/10/11/12 지원

  

  • 5G NR (NAS, LTE-RRC, S1AP, X2AP Release 15/16/17)
  • LTE-Advanced (NAS, LTE-RRC, S1AP, X2AP Release 10/11/12/13/14)
  • 3GPP(NBAP, RANAP, RNSAP, RRC Release 10/11/12/13/14/15/16/17)
  • ECMA CSTAp1 / CSTAp2 / CSTAp3
  • IETF PKIX
  • ITU-T H.323
  • GSM TAP3 (Transferred Account Procedure)
  • NGTP
  • TTON
  • Internet FAX T.38
  • Security X.509
  • PKI
  • Network Management SNMP/CMIP
  • Aeronautical Telecommunications Networks 등 

3GPP Application Programming Interfaces (API's) are pre-compiled and optimized C function libraries for encoding and decoding protocol messages defined within 3GPP standards documents

API's are available for ASN.1-based protocols for 5G (New Radio) (LTE-NR-RRC, E1AP, F1AP, NGAP, XnAP, NRPPa) and LTE (Long Term Evolution) (EUTRA-RRC, S1AP, X2AP, M2AP, M3AP).

API's are also available for other (non-ASN.1) Layer 3 protocols for LTE/5GS (NAS), UTRAN, and GERAN.

NAS & non ASN.1 API's

5G NR ASN.1 API's

4G LTE ASN.1 API's


Non-Access Stratum (NAS) LTE and 5GS, and GERAN-RRC

3GPP TS 24.007 24.008 24.011 24.301 24.501 44.018

Mobile radio interface signalling layer 3; General Aspects, Core network protocols, RRC, and SMS
 

NAS/RRC add-on for ASN1C SDK

This add-on allows C or Java code to be generated for encoding and decoding 3GPP protocols defined in the above specifications.

 

NAS/RRC standalone C-based DLL with security handling

This DLL provides a C language API for encoding and decoding 3GPP protocols defined in the above specifications.

 

NAS/RRC C add-on documentation

 

NAS 5GS Java add-on documentation



5G New Radio (NR) LTE API's

NOTE: The packages below should be unzipped in the c subdirectory of your ASN1C installation.

3GPP TS  38.331 

New Radio (NR); Radio Resource Control (RRC); Protocol specification.
 LTE-RRC NR Release 15 C API (v15.17)WindowsLinux
 LTE-RRC NR Release 16 C API (v16.8)WindowsLinux
 LTE-RRC NR Release 17 C API (v17.0)WindowsLinux


3GPP TS  37.483 (formerly 38.463)  

New Radio (NR); E1 Application Protocol (E1AP)

 E1AP Release 15 C API (v15.10)WindowsLinux
 E1AP Release 16 C API (v16.9)WindowsLinux
 E1AP Release 17 C API (v17.0)WindowsLinux

3GPP TS  38.473 

New Radio (NR); F1 Application Protocol (F1AP)
 F1AP Release 15 C API (v15.16)WindowsLinux
 F1AP Release 16 C API (v16.9)WindowsLinux
 F1AP Release 17 C API (v17.0)WindowsLinux

3GPP TS  38.413   
New Radio (NR); NG Application Protocol (NGAP)

 NGAP Release 15 C API (v15.13)WindowsLinux
 NGAP Release 16 C API (v16.9)WindowsLinux
 NGAP Release 17 C API (v17.0)WindowsLinux

3GPP TS  38.423 

New Radio (NR); Xn Application Protocol (XnAP)

 XnAP Release 15 C API (v15.15)WindowsLinux
 XnAP Release 16 C API (v16.9)WindowsLinux
 XnAP Release 17 C API (v17.0)WindowsLinux

3GPP TS  38.455 

New Radio (NR); Positioning Protocol A (NRPPa)

 NRPPa Release 15 C API (v15.4)WindowsLinux
 NRPPa Release 16 C API (v16.7)WindowsLinux
 NRPPa Release 17 C API (v17.0)WindowsLinux


LTE API's

NOTE: The packages below should be unzipped in the c subdirectory of your ASN1C installation.

3GPP TS  36.413  

Evolved Universal Terrestrial Radio Access Network (E-UTRAN); S1 Application Protocol (S1AP)
 S1AP Release 15 C API (v15.11)WindowsLinux
 S1AP Release 16 C API (v16.9)WindowsLinux
 S1AP Release 17 C API (v17.0)WindowsLinux

3GPP TS  36.423 

Evolved Universal Terrestrial Radio Access Network (E-UTRAN); X2 Application Protocol (X2AP)
 X2AP Release 15 C API (v15.13)WindowsLinux
 X2AP Release 16 C API (v16.9)WindowsLinux
 X2AP Release 17 C API (v17.0)WindowsLinux

3GPP TS  36.443 

Evolved Universal Terrestrial Radio Access Network (E-UTRAN); M2 Application Protocol (M2AP)
 M2AP Release 15 C API (v15.0)WindowsLinux
 M2AP Release 16 C API (v16.1)WindowsLinux
 M2AP Release 17 C API (v17.0)WindowsLinux

3GPP TS  36.444 

Evolved Universal Terrestrial Radio Access Network (E-UTRAN); M3 Application Protocol (M3AP)
 M3AP Release 15 C API (v15.0)WindowsLinux
 M3AP Release 16 C API (v16.0)WindowsLinux
 M3AP Release 17 C API (v17.0)WindowsLinux



(153-803) 서울시 금천구 가산동 371-59 신한이노플렉스 703호 (주)엔엘텔레콤
TEL: 02-813-7474 / FAX: 02-813-6355 / E-mail: sales1@nltelecom.com