- GOOSE publisher: fixed merge problem in GOOSE security extension handling

- GOOSE publisher: preserve simulation flag when security extension is added
v1.6_develop_329_GOOSE_signatures
Michael Zillgith 4 months ago
parent c7a4ef42df
commit 36d99e55ed

@ -332,6 +332,8 @@ prepareGooseBuffer(GoosePublisher self, CommParameters* parameters, const char*
} }
/* EtherType GOOSE */ /* EtherType GOOSE */
self->gooseStart = bufPos;
self->buffer[bufPos++] = 0x88; self->buffer[bufPos++] = 0x88;
self->buffer[bufPos++] = 0xB8; self->buffer[bufPos++] = 0xB8;
@ -538,7 +540,8 @@ GoosePublisher_publish(GoosePublisher self, LinkedList dataSet)
secExtLength = L2Security_addSecurityExtension(self->l2Security, self->buffer, secExtLength = L2Security_addSecurityExtension(self->l2Security, self->buffer,
self->gooseStart, self->payloadStart + self->payloadLength - self->gooseStart, GOOSE_MAX_MESSAGE_SIZE, false); self->gooseStart, self->payloadStart + self->payloadLength - self->gooseStart, GOOSE_MAX_MESSAGE_SIZE, false);
self->buffer[self->gooseStart + 6] = (uint8_t)((secExtLength >> 8) & 0x0f); /* encode security extension length and keep simulation flag when present */
self->buffer[self->gooseStart + 6] += (uint8_t)((secExtLength >> 8) & 0x0f);
self->buffer[self->gooseStart + 7] = (uint8_t)(secExtLength & 0xff); self->buffer[self->gooseStart + 7] = (uint8_t)(secExtLength & 0xff);
/* calculate crc */ /* calculate crc */

Loading…
Cancel
Save