...
IEC 104 Protocol stack configuration
The IEC 104 protocol stack configuration specifies communication parameters and is a collection of entries containing information about OSI Transport and OSI Application layers objects.
Each entry is comprised of attributes that describe the object. All the configuration data are structured using JSON.
Each entry shall be mapped with the corresponding configuration function in the chosen implementation protocol library.
Attributes definition
Attribute | Description | Expected values | Mandatory | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
name | this identifies the protocol stack | iec104client, iec104server, tase2client, tase2server, 61850client, 61850server, etc... | Yes | |||||||||
version | version number of the configuration file | 2 digits x.y => x = major change, y = minor change | Yes | |||||||||
bind_on_ip | bind on a dedicated local IP address | TRUE, FALSE, default = FALSE | No | |||||||||
srv_ip | Server IP address | IP address, machine's default IP for a given interface | No | |||||||||
port | This defines the TCP/IP port to be used by the server. | default = 2404 | No | |||||||||
tls | activation of TLS (see tls configuration chapter for details) | TRUE, FALSE, default = FALSE | No | |||||||||
k_value | Maximum number of outstanding (unacknowledged) APDU's at a given time | default = 12 | No | |||||||||
w_value | Acknowledge the reception latest after this number of APDU's | default = 8 | No | |||||||||
t0_timeout | time out of connection establishment | default = 10 | No | |||||||||
t1_timeout | time out for send or test APDU's | default = 15 | No | |||||||||
t2_timeout | time out for acknowledges in case of no data messages (t2 < t1) | default = 10 | No | |||||||||
t3_timeout | time out for sending test frames | default = 20 | No | |||||||||
openorig_new_path | bind_on_active | addr | Originator Address | default = 0 | No | disc_on_iframe | orig_size | orig_addr | ||||
ca_asdu_sizestruct_addr | asdu_size | default_class | time_sync | comm_exec_timeout | comm_recv_timeout | auto_comm_actcon | auto_comm_actterm | cmd_block_sel | abs_time | size of "Common Address of ASDU" | default = 2 (byte) | No |
ioaddr_size | size of 'Information Object Address' | default = 3 (byte) | No | |||||||||
asdu_size | maximum ASDU size in transmission direction, if set to "0" => maximum possible value is automatically used. | default = 0 (byte) | No | |||||||||
time_sync | If set on "TRUE" this parameter allows to synchronize the clock of the local computer by the server. If set on "FALSE", the clock is not synchronized. | TRUE, FALSE, default = FALSE | No | |||||||||
comm_exec_timeout | Defines the command execution monitoring timeout in milliseconds. The default setting is 20 seconds. | default = 20 seconds (20 000 ms) | No | |||||||||
comm_recv_timeout | This parameter defines the highest allowable deviation of received command time tag and local clock. If the difference is too big, command is ignored. | default = 0 (disabled) | No | |||||||||
tsiv | specifies what to do with a time stamp marked as 'invalid' | remove, process, default = remove | No | |||||||||
reset | reset/restart the system on C_RP_NA_1 ASDU (=TRUE) or not (=FALSE) | TRUE, FALSE, default = FALSE | No | |||||||||
filter_orig | accept commands only originated from an authorized originator (=TRUE) or accept all originators (=FALSE) | TRUE, FALSE, default = FALSE | ||||||||||
filter_list | List of Authorized Originators | No | tzsource | set_wday | tsiv | spon_in_passive | reset | filter_orig | lifeact | startup | active |
Configuration JSON file structure
Code Block | ||
---|---|---|
| ||
{ "protocol_stack": { "name": "iec104server", "version": "1.0", "transport_layer": { "bind_on_ip": "FALSE", "port": 2404, "tsecurity": "NONE", "k_value": 12, "w_value": 8, "t0_timeout":10, "t1_timeout": 15, "t2_timeout": 10, "t3_timeout": 20, "open_new_path": "TRUE", "bind_on_active": "FALSE", "disc_on_iframe": "TRUE" }, "application_layer": { "orig_size": 1, "orig_addr": "0", "ca_asdu_size": 2, "ioaddr_size": 3, "struct_addr": "FALSE", "asdu_size": 0, "default_class": "CLASS1", "time_sync": "FALSE", "comm_exec_timeout": 20000, "comm_recv_timeout": 5000, "auto_comm_actcon": "FALSE", "auto_comm_actterm": "TRUE", "cmd_block_sel": "FALSE", "abs_time": "TRUE", "tzsource": "OS", "set_wday": "TRUE", "tsiv": "IGNORE", "spon_in_passive": "TRUE", "reset": "TRUE", "filter_orig": "FALSE", "lifeact": "TRUE", "startup": "FALSE", "active": "TRUE" } } } |
...