BSI 23/30476568 DC 2023
$24.66
BS EN IEC 63510-4-1. Household appliances network and grid connectivity – Part 4-1. Communication Protocol Specific Aspects: SPINE, SPINE-IoT and SHIP (fast track)
Published By | Publication Date | Number of Pages |
BSI | 2023 | 194 |
PDF Catalog
PDF Pages | PDF Title |
---|---|
6 | European foreword (to be replaced with IEC IS foreword) |
7 | Introduction |
8 | 1 Scope 2 Normative references 3 Terms and definitions |
12 | 4 SPINE-IoT Protocol 4.1 General Figure 1 — Overview of transport protocols within EN 50631-4-1 |
13 | 4.2 Architecture overview 4.2.1 Introduction |
14 | 4.2.2 API versioning Table 1 — Properties of “api” information 4.3 Device model 4.3.1 General |
15 | Figure 2 — Primary device model 4.3.2 Device Table 2 — Properties of “device” information 4.3.3 Entity |
16 | Table 3 — Properties of “entity” information 4.3.4 Feature |
17 | Table 4 — Properties of “feature” information of a single featureObjType instance |
18 | Table 5 — Supported featureType-featureObjType combinations 4.4 Use Case model 4.4.1 General Figure 3 — Use Case instance examples |
19 | 4.4.2 Use Case information and instances Figure 4 — Announcement of potential Use Case instance |
20 | Figure 5 — Potential Use Case with real instance Table 6 — Properties of “Use Case” information |
21 | 4.4.3 Use Case interface 4.5 Binding 4.5.1 General |
22 | 4.5.2 Binding information and instances Table 7 — Request body for POST /bindings Table 8 — Properties of bindingRequestFeatures |
23 | Table 9 — Properties of bindingRequestUsecaseInterfaces |
24 | Table 10 — Response body upon accepted binding request Table 11 — Renew all bindings Table 12 — Renew a single bindingId Table 13 — Request body for the deletion of one or all bindings 4.6 Subscription 4.6.1 General 4.6.2 Subscription management |
25 | Table 14 — Request body for POST /subscriptions |
27 | Table 15 — Response body upon accepted subscription request Table 16 — Renew all subscriptions Table 17 — Renew a single subscriptionId Table 18 — Request body for the deletion of one or all subscriptions 4.6.3 Callbacks |
28 | Table 19 — Properties of a “device change description” callback Table 20 — Properties of an “entity change description” callback |
29 | Table 21 — Properties of a “feature change description” callback Table 22 — Properties of a “Use Case information change description” callback 4.7 Requesting feature changes 4.7.1 General |
30 | 4.7.2 Requesting changes information and instances Table 23 — Properties of a “feature” change request Table 24 — Properties of type featureModifyCreateReplace |
31 | Table 25 — Properties of type featureModifyDelete Table 26 — Properties of type featureModifyPatchUnset |
32 | 5 SPINE Protocol 5.1 General 5.2 Architecture overview 5.2.1 General rules |
33 | 5.2.2 Common data types 5.2.2.1 General 5.2.2.2 ElementTagType 5.2.2.3 LabelType 5.2.2.4 DescriptionType 5.2.2.5 SpecificationVersionType 5.2.2.6 EnumExtendType |
34 | 5.2.2.7 RoleType 5.2.2.8 FeatureGroupType 5.2.2.9 DeviceTypeType 5.2.2.10 DeviceTypeEnumType 5.2.2.11 EntityTypeType 5.2.2.12 EntityTypeEnumType 5.2.2.13 FeatureTypeType 5.2.2.14 FeatureTypeEnumType 5.2.2.15 FunctionType 5.2.2.16 FunctionEnumType 5.2.2.17 PossibleOperationsClassifierType |
35 | 5.2.2.18 PossibleOperationsReadType 5.2.2.19 PossibleOperationsWriteType 5.2.2.20 PossibleOperationsType Figure 6 — PossibleOperationsType 5.2.2.21 MaxResponseDelayType 5.2.2.22 AbsoluteOrRelativeTimeType 5.2.2.23 AddressDeviceType 5.2.2.24 AddressEntityType 5.2.2.25 AddressFeatureType 5.2.2.26 DeviceAddressType |
36 | Figure 7 — DeviceAddressType 5.2.2.27 EntityAddressType Figure 8 — EntityAddressType 5.2.2.28 FeatureAddressType Figure 9 — FeatureAddressType |
37 | 5.2.3 Address level details |
38 | 5.3 SPINE Datagram 5.3.1 Introduction 5.3.1.1 General information |
39 | Figure 10 — SPINE datagram 5.3.1.2 Structure Table 27 — Structure of the SPINE datagram 5.3.2 Header 5.3.2.1 General information |
40 | Figure 11 — SPINE header 5.3.2.2 Address information 5.3.2.2.1 addressSource and addressDestination |
41 | 5.3.2.2.2 addressOriginator 5.3.2.3 Message counter 5.3.2.3.1 General 5.3.2.3.2 msgCounter |
42 | 5.3.2.3.3 msgCounterReference 5.3.2.4 Message classifiers Table 28 — cmdClassifier values and kind of messages for a message “M” and the scope of related acknowledgement messages |
43 | 5.3.2.5 Acknowledgement concept 5.3.2.5.1 Acknowledgement request |
44 | 5.3.2.5.2 Acknowledgement message 5.3.2.5.3 Delayed application response |
45 | 5.3.2.6 Time information in “timestamp” 5.3.2.7 Structure |
46 | Table 29 — Structure of the SPINE header |
47 | 5.3.3 Payload 5.3.3.1 General information Figure 12 — SPINE payload 5.3.3.2 Elements and usage |
48 | Table 30 — Elements of the SPINE payload |
49 | 5.3.3.3 Ownership |
50 | 5.3.3.4 Restricted function exchange with cmdOptions 5.3.3.4.1 Overview |
51 | Table 31 — Example table (template): This template is used in the subsequent sections for specific cmdOptions combinations. In this template, each “…” is just a placeholder |
52 | 5.3.3.4.2 “write” cmdOptions combinations Table 32 — Considered cmdOptions combinations for classifier “write” |
53 | 5.3.3.4.3 “notify” cmdOptions combinations Table 33 — Considered cmdOptions combinations for classifier “notify” |
54 | 5.3.3.4.4 “read” cmdOptions combinations Table 34 — Considered cmdOptions combinations for classifier “read” |
55 | 5.3.3.4.5 “reply” cmdOptions combinations Table 35 — Considered cmdOptions combinations for classifier “reply” 5.3.3.4.6 identifiers – Implicit list item selection 5.3.3.4.6.1 General |
56 | 5.3.3.4.6.2 Identifier hierarchy and completeness of list identifiers 5.3.3.4.7 – Explicit list item selection 5.3.3.4.7.1 General 5.3.3.4.7.2 Common rules and description |
58 | 5.3.3.4.7.3 Selectors with address elements Table 36 — Address path examples |
59 | Figure 13 — Example of selectors part (extract) with entity address part 5.3.3.4.8 – Selection of “elements” |
60 | 5.3.3.4.9 Minimum restricted function exchange support 5.4 Communication modes 5.4.1 General Figure 14 — Communication modes of SPINE devices A, B and C. The circle in device B symbolises the “message forwarding” task of device B. 5.4.2 Simple communication mode |
61 | 5.4.3 Enhanced communication mode 5.5 Functional commissioning 5.5.1 General |
62 | 5.5.2 Detailed discovery 5.5.2.1 General Figure 15 — Discovery example Figure 16 — Hierarchy types. Entities can contain child-entities; “entityAddress” contains all “entity” parts starting from the respective root entity. |
63 | Figure 17 — Function Discovery Example over Feature Description 5.5.2.2 Basic definitions and rules 5.5.2.2.1 General |
64 | 5.5.2.2.2 Rules for devices 5.5.2.2.3 Rules for entities |
65 | 5.5.2.2.4 Rules for features 5.5.2.2.5 Rules for specific element usage 5.5.2.2.5.1 General 5.5.2.2.5.2 Usage of element “deviceAddress. device” 5.5.2.2.5.3 Usage of element networkManagementResponsibleAddress 5.5.2.2.5.4 Usage of element networkFeatureSet |
66 | 5.5.2.2.5.5 Usage of element minimumTrustLevel 5.5.2.2.5.6 Usage of element possibleOperations |
67 | 5.5.2.3 Detailed discovery “all at once” Figure 18 — nodeManagementDetailedDiscoveryData function overview, part 1 Figure 19 — nodeManagementDetailedDiscoveryData function overview, part 2: deviceInformation.description |
68 | Figure 20 — nodeManagementDetailedDiscoveryData function overview, part 3: entityInformation.description |
69 | Figure 21 — nodeManagementDetailedDiscoveryData function overview, part 4: featureInformation.description Table 37 — Notify/response list of entities and their corresponding features with nodeManagementDetailedDiscoveryData |
74 | 5.5.2.4 Partial Detailed Discovery |
75 | Table 38: nodeManagementDetailedDiscoveryDataSelectors 5.5.2.5 Using detailed discovery for automatisms (informative) |
76 | 5.5.2.6 Changes during runtime 5.5.3 Destination list 5.5.3.1 Introduction |
77 | 5.5.3.2 Architecture requirements 5.5.3.3 Rules 5.5.3.3.1 Rules for devices |
78 | 5.5.3.3.2 Rules for specific element usage 5.5.3.3.2.1 Usage of element deviceAddress. device 5.5.3.3.2.2 Usage of element networkFeatureSet 5.5.3.4 Exchanging DestinationList 5.5.3.4.1 Requesting DestinationList Figure 22 — nodeManagementDestinationListData function overview, part 1 Figure 23 — nodeManagementDestinationListData function overview, part 2 |
79 | Table 39 — Notify/response of DestinationList information with nodeManagementDestinationListData 5.5.3.4.2 Notification of DestinationList 5.5.4 Binding 5.5.4.1 General |
80 | 5.5.4.2 Basic definitions and rules |
81 | 5.5.4.3 Create Binding Figure 24 — Binding request Figure 25 — nodeManagementBindingRequestCall function overview Table 40 — Binding request with nodeManagementBindingRequestCall |
82 | 5.5.4.4 Reading binding-information |
83 | Figure 26 — nodeManagementBindingData function overview |
84 | Table 41 — nodeManagementBindingData holds list of binding entries 5.5.4.5 Release of a binding |
85 | Figure 27 — nodeManagementBindingDeleteCall function overview |
86 | Table 42 — Remove Binding with nodeManagementBindingDeleteCall |
87 | 5.5.4.6 Renew lost binding 5.5.4.7 Considerations on broken bindings (informative) |
88 | 5.5.5 Subscription 5.5.5.1 Basic definitions and rules |
89 | 5.5.5.2 Create Subscription Figure 28 — Subscription request |
90 | Figure 29 — nodeManagementSubscriptionRequestCall function overview Table 43 — Subscription request with nodeManagementSubscriptionRequestCall |
91 | 5.5.5.3 Reading subscription information Figure 30 — nodeManagementSubscriptionData function overview |
92 | Table 44 — nodeManagementSubscriptionData holds list of subscription entries |
93 | 5.5.5.4 Release of a subscription |
94 | Figure 31 — nodeManagementSubscriptionDeleteCall function overview |
95 | Table 45 — Remove subscription with nodeManagementSubscriptionDeleteCall 5.5.5.5 Renewal of subscription |
96 | 5.5.5.6 Considerations on broken subscriptions (informative) 5.5.6 Use Case discovery 5.5.6.1 Basic definitions and rules 5.5.6.2 Use Case Discovery “all at once” |
97 | Figure 32 — nodeManagementUseCaseData function Table 46 — nodeManagementUseCaseData |
98 | 5.5.6.3 Partial Use Case Discovery |
99 | 5.5.6.4 Changes during runtime 6 SHIP 6.1 General 6.2 Architecture overview 6.2.1 General Figure 33 — Physical Connections in the Overall System |
100 | Figure 34 — SHIP Stack Overview 6.2.2 General Considerations on Closing Communication Channels 6.2.3 SHIP Node Parameters Table 47 — SHIP Parameters Default Values |
101 | 6.3 Registration 6.3.1 General |
103 | 6.3.2 Successful Registration 6.3.3 Registration details and recommendations (informative) |
104 | 6.4 Reconnection 6.4.1 General 6.4.2 Reconnection details in case of changed key material (informative) |
105 | 6.5 Discovery 6.5.1 General 6.5.2 Service Instance 6.5.3 Service Name 6.5.4 Multicast DNS Name 6.5.4.1 General 6.5.4.2 Default Records |
106 | 6.5.4.3 TXT Record Table 48 — Mandatory Parameters in the TXT Record Table 49 — Optional Parameters in the TXT Record |
107 | 6.5.5 Recommendations for re-discovery 6.6 TCP 6.6.1 General 6.6.2 Limited Connection Capabilities |
108 | 6.6.3 Online Detection 6.6.4 TCP Connection Establishment |
109 | 6.6.5 Retransmission Timeout 6.7 TLS 6.7.1 General |
110 | Figure 35 — Full TLS 1.2 Handshake with mutual authentication 6.7.2 Cipher Suites 6.7.3 Maximum Fragment Length |
111 | 6.7.4 TLS Compression 6.7.4.1 General 6.7.4.2 Server Name Indication 6.7.5 Renegotiation 6.7.6 Session Resumption Figure 36 — Quick TLS Handshake with Session Resumption |
112 | 6.7.7 TLS extension for ECC 6.7.8 TLS Probing |
113 | 6.8 WebSocket 6.8.1 General 6.8.2 TLS Dependencies 6.8.3 Opening Handshake 6.8.4 Data Framing |
114 | 6.8.5 Connection Keepalive 6.9 Message Representation Using JSON Text Format 6.9.1 Introduction 6.9.2 Definitions |
115 | 6.9.3 Examples For Each Type 6.9.4 XML to JSON Transformation 6.9.4.1 Scope 6.9.4.2 XSD Types |
116 | Table 50 — Mapping from the XSD Types to JSON Types 6.9.4.3 Element Occurrences 6.9.4.4 Simple Types Table 51 — Transformation of a simple type 6.9.4.5 Complex Types |
117 | Table 52 — Mapping from the XSD compositors to JSON Types 6.9.4.6 Rules |
118 | 6.9.4.7 Example Transformations Table 53 — Examples for XML and JSON representations |
120 | Table 54 — Example transformation of several combined XSD item types |
122 | 6.9.5 JSON to XML Transformation 6.9.5.1 Scope 6.9.5.2 Rules 6.9.5.3 Example Transformation Table 55 — Example for JSON to XML transformation 6.10 Key Management 6.10.1 General |
123 | 6.10.2 Certificates 6.10.2.1 SHIP Node Certificates |
124 | 6.10.2.2 Web Server Based SHIP Node Certificates 6.10.2.3 Certificate updates 6.10.2.3.1 General 6.10.2.3.2 Overview |
125 | 6.10.2.3.3 Transmitting certificate updates |
126 | 6.10.2.3.4 Receiving certificate updates 6.10.2.3.5 Recognizing certificate updates |
127 | 6.10.2.3.6 Effects for verification modes 6.10.3 SHIP Node Specific Public Key 6.10.3.1 General 6.10.3.2 Public Key Presentation |
128 | 6.10.3.3 Public Key Storage |
129 | 6.10.3.4 Optional Storage 6.10.3.5 Prevent Double Connections with SKI Comparison 6.10.4 Verification Procedure 6.10.4.1 General |
130 | 6.10.4.2 Public Key Verification Modes 6.10.4.3 Auto Accept |
131 | 6.10.4.4 Auto Accept with PIN 6.10.4.5 User Verification 6.10.4.5.1 General |
132 | 6.10.4.5.2 Manufacturer Specific Commissioning 6.10.4.5.3 User Input 6.10.4.5.4 SHIP Commissioning |
134 | 6.10.4.6 Trust Level |
135 | Table 56 — Trust Levels 6.10.5 Symmetric Key |
136 | 6.10.6 SHIP Node PIN Figure 37 — Easy Mutual Authentication with QR-codes and Smart Phone |
137 | 6.10.7 SHIP Commissioning Tool |
139 | 6.10.8 QR Code |
141 | Figure 38 — QR Code Model 2, “low” ECC level, 0,33 mm/Module, with SKI and PIN Figure 39 — QR Code Model 2, “low” ECC level, 0,33 mm/module, with all values |
142 | Figure 40 — QR Code Model 2, “low” ECC level, 0,33 mm/module, with brainpoolP256r1 SKI and brainpoolP384r1 SKI 6.11 SHIP Data Exchange 6.11.1 Introduction 6.11.2 Terms in the context of SHIP Data Exchange |
144 | 6.11.3 Protocol Architecture / Hierarchy 6.11.3.1 Overview Figure 41 — Protocol Architecture and Hierarchy |
145 | 6.11.3.2 SHIP Message Exchange (SME), SME User 6.11.3.3 SHIP Transport 6.11.4 SHIP Message Exchange 6.11.4.1 Basic Definitions and Responsibilities |
146 | 6.11.4.2 Basic Message Structure Table 57 — MessageType Values 6.11.4.3 Connection Mode Initialisation (CMI) |
148 | Figure 42 — CMI Message Sequence Example 6.11.4.4 Connection Data Preparation 6.11.4.4.1 General |
149 | 6.11.4.4.2 Connection State “Hello” 6.11.4.4.2.1 Basic Definitions Table 58 — Structure of SmeHelloValue of SME “hello” Message 6.11.4.4.2.2 Process Overview |
150 | 6.11.4.4.2.3 Process Details |
155 | Figure 43 — Connection State “Hello” Sequence Example Without Prolongation Request: “A” and “B” already trust each other; “B” is slower/delayed. |
156 | Figure 44 — Connection State “Hello” Sequence Example With Prolongation Request. |
157 | 6.11.4.4.3 Connection State “Protocol handshake” 6.11.4.4.3.1 Basic Definitions Table 59 —Structure of SmeProtocolHandshakeValue of SME “Protocol Handshake” Message |
158 | Table 60 — Structure of SmeProtocolHandshakeErrorValue of SME “Protocol Handshake Error” Message 6.11.4.4.3.2 Compatibility Aspects 6.11.4.4.3.3 Protocol Handshake Process |
161 | Table 61 — Values of Sub-element “error” of messageProtocolHandshakeError Figure 45 — Connection State “Protocol Handshake” Message Sequence Example |
162 | 6.11.4.4.4 Connection State “PIN Verification” 6.11.4.4.4.1 Introduction (Informative) 6.11.4.4.4.2 Basic Definitions Table 62 — Structure of SmeConnectionPinStateValue of SME “Pin state” message |
163 | Table 63 — Structure of SmeConnectionPinInputValue of SME “Pin input” message Table 64 — Structure of SmeConnectionPinErrorValue of SME “Pin error” message 6.11.4.4.4.3 Basic Rules 6.11.4.4.4.4 Protection Against Brute Force Attempts |
164 | 6.11.4.4.4.5 Process Details PIN Requirement — Communicated PIN States |
165 | Process States |
169 | Table 65 — Values of Sub-element “error” of connectionPinError |
170 | Figure 46 — Connection State “PIN verification” Message Sequence Example (Begin) 6.11.4.5 Connection Data Exchange 6.11.4.5.1 General Rules |
171 | 6.11.4.5.2 Message “data” 6.11.4.5.2.1 Purpose and Structure Table 66 — Structure of MessageValue of “data” Message |
172 | 6.11.4.5.2.2 Extensibility Rules 6.11.4.5.2.3 Element “header” 6.11.4.5.2.4 Element “protocolId” 6.11.4.5.2.5 Element “payload” |
173 | 6.11.4.5.2.6 Element “extension” 6.11.4.6 Access Methods Identification 6.11.4.6.1 Introduction 6.11.4.6.2 Basic Definitions 6.11.4.6.2.1 General |
174 | Table 67 — Structure of SmeConnectionAccessMethodsRequestValue of SME “Access methods request” message Table 68 — Structure of SmeConnectionAccessMethodsValue of SME “Access methods” message |
175 | 6.11.4.6.2.2 Process Details 6.11.4.6.2.3 Recommendations 6.11.4.7 Key material exchange 6.11.4.7.1 Introduction |
176 | 6.11.4.7.2 SME “commissioning request” Message Table 69 — Structure of SmeConnectionCommissioningRequestValue of SME “commissioning request” message 6.11.4.7.3 SME “commissioning response” Message Table 70 — Structure of SmeConnectionCommissioningResponseValue of SME “commissioning response” message 6.11.4.7.4 SME “key material request” Message |
177 | Table 71 — Structure of SmeConnectionKeyMaterialRequestValue of SME “key material request” message 6.11.4.7.5 SME “key material” Message Table 72 — Structure of SmeConnectionKeyMaterialValue of SME “key material” message |
178 | 6.11.4.7.6 SME “key material response” Message |
179 | Table 73 — Structure of SmeConnectionKeyMaterialResponseValue of SME “key material response” message 6.11.4.7.7 SME “key material delete” Message Table 74 — Structure of SmeConnectionKeyMaterialDeleteValue of SME “key material delete” message |
180 | 6.11.4.7.8 SME “key material delete response” Message Table 75 — Structure of SmeConnectionKeyMaterialDeleteResponseValue of SME “key material delete response” message |
181 | 6.11.4.7.9 SME “key material state” message Table 76 — Structure of SmeConnectionKeyMaterialStateValue of SME “key material state” message 6.11.4.7.10 SME “key material state response” message |
182 | Table 77 — Structure of SmeConnectionKeyMaterialStateResponseValue of SME “key material state response” message 6.11.4.7.11 SME “key material state request” message |
183 | Table 78 — Structure of SmeConnectionKeyMaterialStateRequestValue of SME “key material state request” message 6.11.4.8 Connection Termination 6.11.4.8.1 Basic Definitions 6.11.4.8.1.1 General Table 79 — Structure of SmeCloseValue of SME “close” Message |
184 | 6.11.4.8.1.2 Process Overview 6.11.4.8.1.3 Process Details |
185 | 6.12 Well-known protocolId |
186 | Annex A (normative) SHIP XSD |
193 | Bibliography |