aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/asn1_SUITE_data/Param.asn1
blob: 4eff0da7814173cab0f257818e0d78fcbb57b228 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
-- **************************************************************
--
-- Information Element Definitions
--
-- **************************************************************

Param -- { object identifier to be allocated }-- 
DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

-- A

Criticality		::= ENUMERATED { reject, ignore, notify }

Presence		::= ENUMERATED { optional, conditional, mandatory }

ProtocolExtensionID	::= INTEGER (0..65535)

RANAP-PROTOCOL-EXTENSION ::= CLASS {
	&id				ProtocolExtensionID 				UNIQUE,
	&criticality			Criticality,
	&Extension,
	&presence		Presence
}
WITH SYNTAX {
	ID				&id
	CRITICALITY			&criticality
	EXTENSION			&Extension
	PRESENCE		&presence
}

ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= 
	SEQUENCE (SIZE (1..10)) OF
	ProtocolExtensionField {{ExtensionSetParam}}

ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
	id  RANAP-PROTOCOL-EXTENSION.&id	({ExtensionSetParam}),
	criticality  RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
	extensionValue	RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}


AllocationOrRetentionPriority ::= SEQUENCE {
	priorityLevel			BOOLEAN,
	iE-Extensions			ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
	...
}

AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
	...
}

obj1 RANAP-PROTOCOL-EXTENSION ::= {
	ID id-one
	CRITICALITY ignore
	EXTENSION INTEGER
	PRESENCE optional
}

obj2 RANAP-PROTOCOL-EXTENSION ::= {
	ID id-two
	CRITICALITY ignore
	EXTENSION BOOLEAN
	PRESENCE optional
}

id-one		INTEGER ::= 1
id-two		INTEGER ::= 2

-- The following code for test of OTP-4242, ValueFromObject 
-- Similar use as in the Camel spec

CONFIG-DATA ::= CLASS {
  &minLevel   INTEGER,
  &maxLevel   INTEGER
}
WITH SYNTAX {
  MINLEVEL &minLevel
  MAXLEVEL &maxLevel
}

config-data CONFIG-DATA ::= {MINLEVEL 1 MAXLEVEL 3}

OS1 ::= OCTET STRING (SIZE (config-data.&minLevel .. config-data.&maxLevel))

POS2 {CONFIG-DATA:obj} ::= OCTET STRING (SIZE(obj.&minLevel .. obj.&maxLevel))

OS2 ::= POS2 {config-data}

--
-- Test a CLASS without the user-friendly syntax.
--

CL ::= CLASS {
  &code INTEGER UNIQUE,
  &Data
}

P{T} ::= CHOICE { a INTEGER, b T }

o1 CL ::= {
   &code 42,
   &Data P{BOOLEAN}
}

SetCL CL ::= { o1 }

Scl ::= SEQUENCE {
    code CL.&code ({SetCL}),
    data CL.&Data ({SetCL}{@code})
}

END