Created: 12 Sep 2005
Status: Not Applicable
Part: Part 8-1 (2004)
Clause: Annex A
Issue: According to 8-1 (6.3.2), GOOSE datagrams are coded in BER, and therefore datagrams are of variable size, BER prescribing that an integer may be coded in the minimum number of octets needed to represent it (8825-1).
Within the GOOSE allData section however, subrange types are used such as Integer32, but there is no restriction to fixed-size integers (except for ENUMS are fixed length)
The coding / decoding time for telegrams is quite high since a whole datagram must be compiled/parsed to find out the position of the values, but savings in terms of datagram size are modest, since most GOOSE values are bitstrings, timestamps, integers or floats.
GOOSE is not intended to transmit variable length strings.
Therefore, it is suggested that a restriction is applied to the values so the data section of GOOSE has a fixed size.
Is there a possibility to prescribe fixed-size GOOSE telegrams ?
Proposal: Add the following text to 8-1
If bit xxx is set in the header, the allData segment of the GOOSE datagrams of this source shall be of fixed length.
All MMS Types of type Data (see ISO/IEC 9506-2, §7.5.2) shall take as many octets as the maximum size of their subrange. Variable lenght elements such as strings or bitstrings shall be transmitted up to their maximum length, even if not all elements are significant, as indicated in the configuration file. Constructed types shall not be used, elements of constructed types shall be transmitted individually. (This is backward-compatible).