Skip to content

Camera TLS Client Management Cluster Impl #38895

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7467,6 +7467,72 @@ provisional cluster Chime = 1366 {
command PlayChimeSound(): DefaultSuccess = 0;
}

/** This Cluster is used to provision TLS Endpoints with enough information to facilitate subsequent connection. */
provisional cluster TlsClientManagement = 2050 {
revision 1;

enum StatusCodeEnum : enum8 {
kEndpointAlreadyInstalled = 2;
kRootCertificateNotFound = 3;
kClientCertificateNotFound = 4;
kEndpointInUse = 5;
}

enum TLSEndpointStatusEnum : enum8 {
kProvisioned = 0;
kInUse = 1;
}

struct TLSEndpointStruct {
int16u endpointID = 0;
octet_string<253> hostname = 1;
int16u port = 2;
int16u caid = 3;
nullable int16u ccdid = 4;
TLSEndpointStatusEnum status = 5;
}

readonly attribute int8u maxProvisioned = 0;
readonly attribute TLSEndpointStruct provisionedEndpoints[] = 1;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;

request struct ProvisionEndpointRequest {
octet_string<253> hostname = 0;
int16u port = 1;
int16u caid = 2;
nullable int16u ccdid = 3;
nullable int16u endpointID = 4;
}

response struct ProvisionEndpointResponse = 1 {
int16u endpointID = 0;
}

request struct FindEndpointRequest {
int16u endpointID = 0;
}

response struct FindEndpointResponse = 3 {
TLSEndpointStruct endpoint = 0;
}

request struct RemoveEndpointRequest {
int16u endpointID = 0;
}

/** This command is used to provision a TLS Endpoint for the provided HostName / Port combination. */
fabric command access(invoke: administer) ProvisionEndpoint(ProvisionEndpointRequest): ProvisionEndpointResponse = 0;
/** This command is used to find a TLS Endpoint by its ID. */
fabric command FindEndpoint(FindEndpointRequest): FindEndpointResponse = 2;
/** This command is used to remove a TLS Endpoint by its ID. */
fabric command access(invoke: administer) RemoveEndpoint(RemoveEndpointRequest): DefaultSuccess = 4;
}

/** This Meter Identification Cluster provides attributes for determining advanced information about utility metering device. */
provisional cluster MeterIdentification = 2822 {
revision 1;
Expand Down Expand Up @@ -9827,6 +9893,22 @@ endpoint 1 {
handle command PlayChimeSound;
}

server cluster TlsClientManagement {
callback attribute maxProvisioned;
callback attribute provisionedEndpoints;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;

handle command ProvisionEndpoint;
handle command ProvisionEndpointResponse;
handle command FindEndpoint;
handle command FindEndpointResponse;
handle command RemoveEndpoint;
}

server cluster MeterIdentification {
callback attribute meterType;
callback attribute pointOfDelivery;
Expand Down
195 changes: 180 additions & 15 deletions examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
Original file line number Diff line number Diff line change
Expand Up @@ -1582,7 +1582,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand Down Expand Up @@ -21581,6 +21581,171 @@
}
]
},
{
"name": "TLS Client Management",
"code": 2050,
"mfgCode": null,
"define": "TLS_CLIENT_MANAGEMENT_CLUSTER",
"side": "server",
"enabled": 1,
"apiMaturity": "provisional",
"commands": [
{
"name": "ProvisionEndpoint",
"code": 0,
"mfgCode": null,
"source": "client",
"isIncoming": 1,
"isEnabled": 1
},
{
"name": "ProvisionEndpointResponse",
"code": 1,
"mfgCode": null,
"source": "server",
"isIncoming": 0,
"isEnabled": 1
},
{
"name": "FindEndpoint",
"code": 2,
"mfgCode": null,
"source": "client",
"isIncoming": 1,
"isEnabled": 1
},
{
"name": "FindEndpointResponse",
"code": 3,
"mfgCode": null,
"source": "server",
"isIncoming": 0,
"isEnabled": 1
},
{
"name": "RemoveEndpoint",
"code": 4,
"mfgCode": null,
"source": "client",
"isIncoming": 1,
"isEnabled": 1
}
],
"attributes": [
{
"name": "MaxProvisioned",
"code": 0,
"mfgCode": null,
"side": "server",
"type": "int8u",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "ProvisionedEndpoints",
"code": 1,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "GeneratedCommandList",
"code": 65528,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "AcceptedCommandList",
"code": 65529,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "AttributeList",
"code": 65531,
"mfgCode": null,
"side": "server",
"type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "FeatureMap",
"code": 65532,
"mfgCode": null,
"side": "server",
"type": "bitmap32",
"included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
"defaultValue": "0",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
"name": "ClusterRevision",
"code": 65533,
"mfgCode": null,
"side": "server",
"type": "int16u",
"included": 1,
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
"defaultValue": "1",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
}
]
},
{
"name": "Meter Identification",
"code": 2822,
Expand All @@ -21597,10 +21762,10 @@
"side": "server",
"type": "MeterTypeEnum",
"included": 1,
"storageOption": "RAM",
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21613,10 +21778,10 @@
"side": "server",
"type": "char_string",
"included": 1,
"storageOption": "RAM",
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21629,10 +21794,10 @@
"side": "server",
"type": "char_string",
"included": 1,
"storageOption": "RAM",
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21645,10 +21810,10 @@
"side": "server",
"type": "char_string",
"included": 1,
"storageOption": "RAM",
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21664,7 +21829,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21680,7 +21845,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21696,7 +21861,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21712,7 +21877,7 @@
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand All @@ -21725,10 +21890,10 @@
"side": "server",
"type": "bitmap32",
"included": 1,
"storageOption": "RAM",
"storageOption": "External",
"singleton": 0,
"bounded": 0,
"defaultValue": "0",
"defaultValue": null,
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
Expand Down
Loading