ProtoCore v0.0.2
Deterministic, zero-heap network stack for embedded targets
Loading...
Searching...
No Matches
goose.h File Reference

IEC 61850 GOOSE publisher + subscriber codec (PC_ENABLE_GOOSE). More...

#include "protocore_config.h"
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Detailed Description

IEC 61850 GOOSE publisher + subscriber codec (PC_ENABLE_GOOSE).

GOOSE (Generic Object Oriented Substation Event) is the fast raw-L2 multicast publish IEC 61850 uses for protection trips. A GOOSE frame is an Ethernet frame (ethertype 0x88B8, see services/fieldbus/rawl2) with an 8-octet GOOSE header (APPID, length, two reserved) followed by the BER-encoded IECGoosePdu:

61 len { 80 gocbRef 81 timeAllowedToLive 82 datSet 83 goID 84 t(UtcTime,8) 85 stNum 86 sqNum 87 simulation(BOOL) 88 confRev 89 ndsCom(BOOL) 8A numDatSetEntries AB allData }

This builds the control PDU (all fields above) with allData supplied as a caller-encoded BER blob (a SEQUENCE of Data elements), then wraps it in the GOOSE header + Ethernet frame; pc_goose_parse_frame decodes a received frame the other way (the subscriber side), walking the BER TLVs into a pc_goose_rx. Pure, zero heap, no stdlib, host-testable; the raw-L2 transmit / receive is the device step.

Definition in file goose.h.