aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/goose/goose.asn
blob: 3ed831f8c1bff131510da99dbb4cac0cf30da0a3 (plain)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
IEC61850 DEFINITIONS ::= BEGIN

GOOSEpdu ::= CHOICE {
	gseMngtPdu	[APPLICATION 0] IMPLICIT GSEMngtPdu,
	goosePdu	[APPLICATION 1] IMPLICIT IECGoosePdu,
	...
}

GSEMngtPdu ::= SEQUENCE {
	stateID		[0] IMPLICIT INTEGER,
--	security	[3] ANY OPTIONAL,
					-- reserved for future definition
	requestResp	RequestResponse
--	CHOICE {
--		requests	[1] IMPLICIT GSEMngtRequests,
--		responses	[2] IMPLICIT GSEMngtResponses
--	}
}

RequestResponse ::= CHOICE {
	requests	[1] IMPLICIT GSEMngtRequests,
	responses	[2] IMPLICIT GSEMngtResponses
}

GSEMngtRequests ::= CHOICE {
	getGoReference			[1] IMPLICIT GetReferenceRequestPdu,
	getGOOSEElementNumber	[2] IMPLICIT GetElementRequestPdu,
	getGsReference			[3] IMPLICIT GetReferenceRequestPdu,
	getGSSEDataOffset		[4] IMPLICIT GetElementRequestPdu,
	...
}

GSEMngtResponses ::= CHOICE {
	gseMngtNotSupported		[0] IMPLICIT NULL,
	getGoReference			[1] IMPLICIT GSEMngtResponsePdu,
	getGOOSEElementNumber	[2] IMPLICIT GSEMngtResponsePdu,
	getGsReference			[3] IMPLICIT GSEMngtResponsePdu,
	getGSSEDataOffset		[4] IMPLICIT GSEMngtResponsePdu,
	...
}

GetReferenceRequestPdu ::= SEQUENCE {
	ident	[0] IMPLICIT VisibleString, -- size shall support up to 65 octets
	offset	[1] IMPLICIT SEQUENCE OF INTEGER,
	...
}

GetElementRequestPdu ::= SEQUENCE {
	ident		[0] IMPLICIT VisibleString, -- size shall support up to 65 octets
	references	[1] IMPLICIT SEQUENCE OF VisibleString,
	...
}

GSEMngtResponsePdu ::= SEQUENCE {
	ident		[0] IMPLICIT VisibleString, -- echos the value of the request
	confRev		[1] IMPLICIT INTEGER OPTIONAL,
	posNeg		PositiveNegative,
--	CHOICE {
--		responsePositive	[2] IMPLICIT SEQUENCE {
--			datSet				[0] IMPLICIT VisibleString OPTIONAL,
--			result				[1] IMPLICIT SEQUENCE OF RequestResults
--		},
--		responseNegative	[3] IMPLICIT GlbErrors
--	},
	...
}

PositiveNegative ::= CHOICE {
	responsePositive	[2] IMPLICIT SEQUENCE {
		datSet				[0] IMPLICIT VisibleString OPTIONAL,
		result				[1] IMPLICIT SEQUENCE OF RequestResults
	},
	responseNegative	[3] IMPLICIT GlbErrors
}

RequestResults::= CHOICE {
	offset		[0] IMPLICIT INTEGER,
	reference	[1] IMPLICIT IA5String,
	error		[2] IMPLICIT ErrorReason
}

GlbErrors ::= INTEGER {
	other(0),
	unknownControlBlock(1),
	responseTooLarge(2),
	controlBlockConfigurationError(3) --,
--	...
}

ErrorReason ::= INTEGER {
	other (0),
	notFound (1) --,
--	...
}

IECGoosePdu ::= SEQUENCE {
	gocbRef				[0] IMPLICIT VisibleString,
	timeAllowedtoLive	[1] IMPLICIT INTEGER,
	datSet				[2] IMPLICIT VisibleString,
	goID				[3] IMPLICIT VisibleString OPTIONAL,
	t					[4] IMPLICIT UtcTime,
	stNum				[5] IMPLICIT INTEGER,
	sqNum				[6] IMPLICIT INTEGER,
	test				[7] IMPLICIT BOOLEAN DEFAULT FALSE,
	confRev				[8] IMPLICIT INTEGER,
	ndsCom				[9] IMPLICIT BOOLEAN DEFAULT FALSE,
	numDatSetEntries	[10] IMPLICIT INTEGER,
	allData				[11] IMPLICIT SEQUENCE OF Data --,
--	security			[12] ANY OPTIONAL
							 -- reserved for digital signature
}

UtcTime ::= OCTET STRING -- format and size defined in 8.1.3.6.

TimeOfDay ::= OCTET STRING -- (SIZE (4 | 6))
FloatingPoint ::= OCTET STRING


Data ::= CHOICE
	{
	-- context tag 0 is reserved for AccessResult
	array			    [1] IMPLICIT SEQUENCE OF Data,
	structure		    [2] IMPLICIT SEQUENCE OF Data,
	boolean			    [3] IMPLICIT BOOLEAN,	
	bit-string		    [4] IMPLICIT BIT STRING,
	integer			    [5] IMPLICIT INTEGER,
	unsigned		    [6] IMPLICIT INTEGER,
	floating-point		[7] IMPLICIT FloatingPoint,
	real		 	    [8] IMPLICIT REAL,
	octet-string		[9] IMPLICIT OCTET STRING,
	visible-string		[10] IMPLICIT VisibleString,
	binary-time		    [12] IMPLICIT TimeOfDay,
	bcd			        [13] IMPLICIT INTEGER,
	booleanArray		[14] IMPLICIT BIT STRING,
    objId               [15] IMPLICIT OBJECT IDENTIFIER,
  ...,
    mMSString           [16] IMPLICIT MMSString,
    utc-time            [17] IMPLICIT UtcTime				-- added by IEC61850 8.1 G3	
    }

MMSString ::= UTF8String

END