Skip to content

Commit ebb264d

Browse files
committed
Client files for Qb2 Firmware 2.6.5 (30.01.2025)
1 parent 5d1b94e commit ebb264d

File tree

9 files changed

+223
-2
lines changed

9 files changed

+223
-2
lines changed

doc/antora.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
display_version: v2.5
1+
display_version: v2.6
22
name: Qb2
33
nav:
44
- modules/ROOT/nav.adoc
@@ -9,4 +9,4 @@ nav:
99
- modules/developer/nav.adoc
1010
- modules/service_and_maintenance/nav.adoc
1111
title: Qb2
12-
version: v2.5
12+
version: v2.6

doc/modules/protocol/pages/blickfeld/system/config/network.adoc

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ link-local prefix is FE80::/10 and is used to create a link-local IPv6 address o
3636
.2+| *wireless* | optional xref:blickfeld/system/config/network.adoc#_blickfeld_system_config_Network_Wireless[Wireless] | - | -
3737
3+| If the field is set, the device switches from the Ethernet to the WiFi interface.
3838
39+
.2+| *authentication* | optional xref:blickfeld/system/config/network.adoc#_blickfeld_system_config_Network_Authentication[Authentication] | - | -
40+
3+| Authentication configuration for joining a network.
41+
If this field is set the device starts to communicate with a authentication server (e.g. RADIUS).
42+
3943
|===
4044
4145
[#_blickfeld_system_config_Network_Static]
@@ -135,3 +139,97 @@ This mechanism is applied as the password is never returned via the GetConfig AP
135139
136140
|===
137141
142+
[#_blickfeld_system_config_Network_Authentication]
143+
== Authentication
144+
145+
Authentication for networks
146+
147+
Interface to netplan & networkd, see https://netplan.readthedocs.io/en/latest/netplan-yaml/#authentication.
148+
149+
.Available fields in blickfeld.system.config.Network.Authentication
150+
|===
151+
| Field | Type | Default | Unit
152+
153+
.2+| *key_management* | xref:blickfeld/system/config/network.adoc#_blickfeld_system_config_Network_Authentication_KeyManagement[KeyManagement] | - | -
154+
3+| Selected key management
155+
156+
.2+| *password* | string| - | -
157+
3+| Password in plain text corresponding the the account identity or username
158+
159+
.2+| *eap_method* | xref:blickfeld/system/config/network.adoc#_blickfeld_system_config_Network_Authentication_EapMethod[EapMethod] | - | -
160+
3+| Selected preferred EAP method
161+
162+
.2+| *identity* | string| - | -
163+
3+| The account identity or username
164+
165+
.2+| *anonymous_identity* | string| - | -
166+
3+| anonymous-identity (advanced configuration)
167+
168+
.2+| *ca_certificate* | xref:blickfeld/secure/config/certificate.adoc[secure.config.Certificate] | - | -
169+
3+| The RADIUS-server ca-certificate
170+
171+
For EAP-methods TLS, TTLS and PEAP this certificate is loaded and validated
172+
against the certificate presented from the server side.
173+
174+
The expected format is a x509, PEM in binary encoding.
175+
176+
.2+| *client_certificate* | xref:blickfeld/secure/config/certificate.adoc[secure.config.Certificate] | - | -
177+
3+| The Client-certificate
178+
179+
The certificate to be used by the client during authentication when EAP-TLS is selected.
180+
181+
.2+| *client_key* | xref:blickfeld/secure/config/private_key.adoc[secure.config.PrivateKey] | - | -
182+
3+| The client-key
183+
184+
Client key for the configured client certificate.
185+
186+
.2+| *client_key_password* | string| - | -
187+
3+| The client-key password
188+
189+
Password to use the configured client key (if encrypted).
190+
191+
.2+| *phase2_auth* | string| - | -
192+
3+| phase2-auth (advanced configuration)
193+
194+
|===
195+
196+
[#_blickfeld_system_config_Network_Authentication_KeyManagement]
197+
=== Key Management
198+
199+
Key management
200+
201+
[NOTE]
202+
Only 802.1X for wired network is supported (see https://en.wikipedia.org/wiki/IEEE_802.1X).
203+
204+
.Available values for blickfeld.system.config.Network.Authentication.KeyManagement enum
205+
[cols='25h,5,~']
206+
|===
207+
| Name | Value | Description
208+
209+
| KEY_MANAGEMENT_UNSPECIFIED ^| 0 | default (no key management)
210+
| KEY_MANAGEMENT_PSK ^| 1 | PSK (WPA with pre-shared key, common for home Wi-Fi).
211+
| KEY_MANAGEMENT_EAP ^| 2 | EAP (WPA with EAP, common for enterprise Wi-F).
212+
| KEY_MANAGEMENT_EAPSHA256 ^| 3 | EAP-SHA256 (used with WPA3-Enterprise).
213+
| KEY_MANAGEMENT_EAPSUITEB192 ^| 4 | EAP-SUITE-B-192 (used with WPA3-Enterprise).
214+
| KEY_MANAGEMENT_SAE ^| 5 | SAE (used by WPA3)
215+
| KEY_MANAGEMENT_IEEE8021X ^| 6 | 802.1X (used primarily for wired Ethernet connections).
216+
|===
217+
218+
[#_blickfeld_system_config_Network_Authentication_EapMethod]
219+
=== Eap Method
220+
221+
The Extensible Authentication Protocol (EAP) method to use.
222+
223+
.Available values for blickfeld.system.config.Network.Authentication.EapMethod enum
224+
[cols='25h,5,~']
225+
|===
226+
| Name | Value | Description
227+
228+
| EAP_METHOD_UNSPECIFIED ^| 0 | default (unset) - Let the RADIUS server propose a EAP method
229+
| EAP_METHOD_TLS ^| 1 | Prefer TLS
230+
| EAP_METHOD_PEAP ^| 2 | Prefer protected EAP (recommended)
231+
| EAP_METHOD_LEAP ^| 3 | Prefer lightweight EAP
232+
| EAP_METHOD_PWD ^| 4 | Prefer EAP password
233+
| EAP_METHOD_TTLS ^| 5 | Prefer tunneled TLS (recommended)
234+
|===
235+

doc/modules/protocol/pages/blickfeld/system/config/time_synchronization.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ The system time is used to fill timestamps in generated output data e.g. point c
1212
.2+| *ntp* | xref:blickfeld/system/config/time_synchronization.adoc#_blickfeld_system_config_TimeSynchronization_Ntp[Ntp] | - | -
1313
3+| Configuration for NTP time synchronization
1414
15+
.2+| *time_zone* | optional string| - | -
16+
3+| Configure time zone of device.
17+
18+
Use ListTimeZones to retrieve the available time zones.
19+
20+
Default: UTC
21+
1522
|===
1623
1724
[#_blickfeld_system_config_TimeSynchronization_Ntp]

doc/modules/protocol/pages/blickfeld/system/data/health.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ Status message for time synchronization
3939
.2+| *current_system_timestamp* | uint64| - | ns
4040
3+| Current timestamp
4141
42+
.2+| *current_time_zone* | string| - | -
43+
3+| Current time zone
44+
4245
.2+| *ntp* | xref:blickfeld/system/data/health.adoc#_blickfeld_system_data_Health_TimeSynchronization_Ntp[Ntp] | - | -
4346
3+| Status for NTP time synchronization
4447

doc/modules/protocol/pages/blickfeld/system/services/time_synchronization.adoc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ This service provides methods to configure the time synchronization of the devic
1010

1111
| *xref:#Set[]* | xref:blickfeld/system/services/time_synchronization.adoc#_blickfeld_system_services_TimeSynchronizationSetRequest[TimeSynchronizationSetRequest]| https://protobuf.dev/reference/protobuf/google.protobuf/#empty[google.protobuf.Empty]
1212
| *xref:#Get[]* | https://protobuf.dev/reference/protobuf/google.protobuf/#empty[google.protobuf.Empty]| xref:blickfeld/system/services/time_synchronization.adoc#_blickfeld_system_services_TimeSynchronizationGetResponse[TimeSynchronizationGetResponse]
13+
| *xref:#ListTimeZones[]* | https://protobuf.dev/reference/protobuf/google.protobuf/#empty[google.protobuf.Empty]| xref:blickfeld/system/services/time_synchronization.adoc#_blickfeld_system_services_TimeSynchronizationListTimeZonesResponse[TimeSynchronizationListTimeZonesResponse]
1314
|===
1415
[#Set]
1516
== Set
@@ -49,3 +50,20 @@ Response which is sent as answer for a GetConfig call
4950
5051
|===
5152
53+
[#ListTimeZones]
54+
== ListTimeZones
55+
56+
List available time zones
57+
58+
[#_blickfeld_system_services_TimeSynchronizationListTimeZonesResponse]
59+
=== Response
60+
61+
Response for ListTimeZones request
62+
63+
.Available fields in blickfeld.system.services.TimeSynchronizationListTimeZonesResponse
64+
|===
65+
| Field | Type | Default | Unit
66+
67+
| *time_zones* | repeated string| - | -
68+
|===
69+

protocol/blickfeld/system/config/network.proto

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
syntax = "proto2";
22

33
import "blickfeld/base/options.proto";
4+
import "blickfeld/secure/config/certificate.proto";
5+
import "blickfeld/secure/config/private_key.proto";
46
package blickfeld.system.config;
57

68
option (.blickfeld.base.access_control_file) = {
@@ -66,6 +68,77 @@ message Network {
6668
// This mechanism is applied as the password is never returned via the GetConfig API.
6769
optional string password = 2;
6870
}
71+
// Authentication for networks
72+
//
73+
// Interface to netplan & networkd, see https://netplan.readthedocs.io/en/latest/netplan-yaml/#authentication.
74+
message Authentication {
75+
// Key management
76+
//
77+
// [NOTE]
78+
// Only 802.1X for wired network is supported (see https://en.wikipedia.org/wiki/IEEE_802.1X).
79+
enum KeyManagement {
80+
// default (no key management)
81+
KEY_MANAGEMENT_UNSPECIFIED = 0;
82+
// PSK (WPA with pre-shared key, common for home Wi-Fi).
83+
KEY_MANAGEMENT_PSK = 1;
84+
// EAP (WPA with EAP, common for enterprise Wi-F).
85+
KEY_MANAGEMENT_EAP = 2;
86+
// EAP-SHA256 (used with WPA3-Enterprise).
87+
KEY_MANAGEMENT_EAPSHA256 = 3;
88+
// EAP-SUITE-B-192 (used with WPA3-Enterprise).
89+
KEY_MANAGEMENT_EAPSUITEB192 = 4;
90+
// SAE (used by WPA3)
91+
KEY_MANAGEMENT_SAE = 5;
92+
// 802.1X (used primarily for wired Ethernet connections).
93+
KEY_MANAGEMENT_IEEE8021X = 6;
94+
}
95+
// The Extensible Authentication Protocol (EAP) method to use.
96+
enum EapMethod {
97+
// default (unset) - Let the RADIUS server propose a EAP method
98+
EAP_METHOD_UNSPECIFIED = 0;
99+
// Prefer TLS
100+
EAP_METHOD_TLS = 1;
101+
// Prefer protected EAP (recommended)
102+
EAP_METHOD_PEAP = 2;
103+
// Prefer lightweight EAP
104+
EAP_METHOD_LEAP = 3;
105+
// Prefer EAP password
106+
EAP_METHOD_PWD = 4;
107+
// Prefer tunneled TLS (recommended)
108+
EAP_METHOD_TTLS = 5;
109+
}
110+
// Selected key management
111+
optional .blickfeld.system.config.Network.Authentication.KeyManagement key_management = 1;
112+
// Password in plain text corresponding the the account identity or username
113+
optional string password = 2;
114+
// Selected preferred EAP method
115+
optional .blickfeld.system.config.Network.Authentication.EapMethod eap_method = 3;
116+
// The account identity or username
117+
optional string identity = 4;
118+
// anonymous-identity (advanced configuration)
119+
optional string anonymous_identity = 5;
120+
// The RADIUS-server ca-certificate
121+
//
122+
// For EAP-methods TLS, TTLS and PEAP this certificate is loaded and validated
123+
// against the certificate presented from the server side.
124+
//
125+
// The expected format is a x509, PEM in binary encoding.
126+
optional .blickfeld.secure.config.Certificate ca_certificate = 6;
127+
// The Client-certificate
128+
//
129+
// The certificate to be used by the client during authentication when EAP-TLS is selected.
130+
optional .blickfeld.secure.config.Certificate client_certificate = 7;
131+
// The client-key
132+
//
133+
// Client key for the configured client certificate.
134+
optional .blickfeld.secure.config.PrivateKey client_key = 8;
135+
// The client-key password
136+
//
137+
// Password to use the configured client key (if encrypted).
138+
optional string client_key_password = 9;
139+
// phase2-auth (advanced configuration)
140+
optional string phase2_auth = 10;
141+
}
69142
// *
70143
// Specifies the persistent system-wide hostname which should be assigned to the network device
71144
optional string hostname = 1;
@@ -85,5 +158,8 @@ message Network {
85158
optional bool link_local = 4 [default = false];
86159
// If the field is set, the device switches from the Ethernet to the WiFi interface.
87160
optional .blickfeld.system.config.Network.Wireless wireless = 5 [(.blickfeld.base.optional) = true];
161+
// Authentication configuration for joining a network.
162+
// If this field is set the device starts to communicate with a authentication server (e.g. RADIUS).
163+
optional .blickfeld.system.config.Network.Authentication authentication = 6 [(.blickfeld.base.optional) = true];
88164
}
89165

protocol/blickfeld/system/config/time_synchronization.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,11 @@ message TimeSynchronization {
2222
// Configuration for NTP time synchronization
2323
.blickfeld.system.config.TimeSynchronization.Ntp ntp = 1;
2424
}
25+
// Configure time zone of device.
26+
//
27+
// Use ListTimeZones to retrieve the available time zones.
28+
//
29+
// Default: UTC
30+
string time_zone = 2 [(.blickfeld.base.optional) = true];
2531
}
2632

protocol/blickfeld/system/data/health.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ message Health {
3434
string state_reason = 2;
3535
// Current timestamp
3636
uint64 current_system_timestamp = 3 [(.blickfeld.base.unit) = "ns"];
37+
// Current time zone
38+
string current_time_zone = 5;
3739
// Current time synchronization status
3840
oneof type {
3941
// Status for NTP time synchronization

protocol/blickfeld/system/services/time_synchronization.proto

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ message TimeSynchronizationGetResponse {
2121
.blickfeld.system.config.TimeSynchronization config = 1;
2222
}
2323

24+
// Response for ListTimeZones request
25+
message TimeSynchronizationListTimeZonesResponse {
26+
repeated string time_zones = 1;
27+
}
28+
2429
// This service provides methods to configure the time synchronization of the device.
2530
service TimeSynchronization {
2631
option (.blickfeld.base.access_control_service) = {
@@ -37,5 +42,11 @@ service TimeSynchronization {
3742
read_only: true
3843
};
3944
}
45+
// List available time zones
46+
rpc ListTimeZones(.google.protobuf.Empty) returns (.blickfeld.system.services.TimeSynchronizationListTimeZonesResponse) {
47+
option (.blickfeld.base.access_control_method) = {
48+
read_only: true
49+
};
50+
}
4051
}
4152

0 commit comments

Comments
 (0)