Skip to content

Commit 692567c

Browse files
Multicast prototype: EXPERIMENTAL.
1 parent d3df54e commit 692567c

File tree

95 files changed

+7282
-128
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+7282
-128
lines changed

docs/ids_and_codes/zap_clusters.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ Generally regenerate using one of:
7171
| 96 | 0x60 | OperationalState |
7272
| 97 | 0x61 | RvcOperationalState |
7373
| 98 | 0x62 | ScenesManagement |
74+
| 100 | 0x64 | Multicast |
7475
| 113 | 0x71 | HepaFilterMonitoring |
7576
| 114 | 0x72 | ActivatedCarbonFilterMonitoring |
7677
| 128 | 0x80 | BooleanStateConfiguration |

examples/lighting-app/silabs/data_model/lighting-thread-app.matter

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,6 +2015,46 @@ provisional cluster ScenesManagement = 98 {
20152015
fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
20162016
}
20172017

2018+
/** The Multicast Cluster. */
2019+
cluster Multicast = 100 {
2020+
revision 1; // NOTE: Default/not specifically set
2021+
2022+
bitmap Feature : bitmap32 {
2023+
kCacheAndSync = 0x1;
2024+
}
2025+
2026+
fabric_scoped struct MulticastTargetStruct {
2027+
group_id groupId = 1;
2028+
endpoint_no endpoints[] = 2;
2029+
fabric_idx fabricIndex = 254;
2030+
}
2031+
2032+
attribute access(write: manage) MulticastTargetStruct targets[] = 0;
2033+
readonly attribute command_id generatedCommandList[] = 65528;
2034+
readonly attribute command_id acceptedCommandList[] = 65529;
2035+
readonly attribute attrib_id attributeList[] = 65531;
2036+
readonly attribute bitmap32 featureMap = 65532;
2037+
readonly attribute int16u clusterRevision = 65533;
2038+
2039+
request struct SetTargetRequest {
2040+
group_id groupId = 0;
2041+
endpoint_no endpoints[] = 1;
2042+
octet_string<16> key = 2;
2043+
int32u gracePeriod = 3;
2044+
}
2045+
2046+
request struct RemoveTargetRequest {
2047+
group_id groupId = 0;
2048+
endpoint_no endpoints[] = 1;
2049+
int32u gracePeriod = 2;
2050+
}
2051+
2052+
/** Set a multicast target. */
2053+
fabric command access(invoke: administer) SetTarget(SetTargetRequest): DefaultSuccess = 0;
2054+
/** Set a multicast target. */
2055+
fabric command access(invoke: administer) RemoveTarget(RemoveTargetRequest): DefaultSuccess = 1;
2056+
}
2057+
20182058
/** Attributes and commands for controlling the color properties of a color-capable light. */
20192059
cluster ColorControl = 768 {
20202060
revision 7;
@@ -2591,6 +2631,18 @@ endpoint 0 {
25912631
handle command KeySetReadAllIndices;
25922632
handle command KeySetReadAllIndicesResponse;
25932633
}
2634+
2635+
server cluster Multicast {
2636+
callback attribute targets;
2637+
callback attribute generatedCommandList;
2638+
callback attribute acceptedCommandList;
2639+
callback attribute attributeList;
2640+
ram attribute featureMap default = 0;
2641+
ram attribute clusterRevision default = 1;
2642+
2643+
handle command SetTarget;
2644+
handle command RemoveTarget;
2645+
}
25942646
}
25952647
endpoint 1 {
25962648
device type ma_extendedcolorlight = 269, version 1;

examples/lighting-app/silabs/data_model/lighting-thread-app.zap

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3135,6 +3135,130 @@
31353135
"reportableChange": 0
31363136
}
31373137
]
3138+
},
3139+
{
3140+
"name": "Multicast",
3141+
"code": 100,
3142+
"mfgCode": null,
3143+
"define": "MULTICAST_CLUSTER",
3144+
"side": "server",
3145+
"enabled": 1,
3146+
"commands": [
3147+
{
3148+
"name": "SetTarget",
3149+
"code": 0,
3150+
"mfgCode": null,
3151+
"source": "client",
3152+
"isIncoming": 1,
3153+
"isEnabled": 1
3154+
},
3155+
{
3156+
"name": "RemoveTarget",
3157+
"code": 1,
3158+
"mfgCode": null,
3159+
"source": "client",
3160+
"isIncoming": 1,
3161+
"isEnabled": 1
3162+
}
3163+
],
3164+
"attributes": [
3165+
{
3166+
"name": "Targets",
3167+
"code": 0,
3168+
"mfgCode": null,
3169+
"side": "server",
3170+
"type": "array",
3171+
"included": 1,
3172+
"storageOption": "External",
3173+
"singleton": 0,
3174+
"bounded": 0,
3175+
"defaultValue": "",
3176+
"reportable": 1,
3177+
"minInterval": 1,
3178+
"maxInterval": 65534,
3179+
"reportableChange": 0
3180+
},
3181+
{
3182+
"name": "GeneratedCommandList",
3183+
"code": 65528,
3184+
"mfgCode": null,
3185+
"side": "server",
3186+
"type": "array",
3187+
"included": 1,
3188+
"storageOption": "External",
3189+
"singleton": 0,
3190+
"bounded": 0,
3191+
"defaultValue": "",
3192+
"reportable": 1,
3193+
"minInterval": 1,
3194+
"maxInterval": 65534,
3195+
"reportableChange": 0
3196+
},
3197+
{
3198+
"name": "AcceptedCommandList",
3199+
"code": 65529,
3200+
"mfgCode": null,
3201+
"side": "server",
3202+
"type": "array",
3203+
"included": 1,
3204+
"storageOption": "External",
3205+
"singleton": 0,
3206+
"bounded": 0,
3207+
"defaultValue": "",
3208+
"reportable": 1,
3209+
"minInterval": 1,
3210+
"maxInterval": 65534,
3211+
"reportableChange": 0
3212+
},
3213+
{
3214+
"name": "AttributeList",
3215+
"code": 65531,
3216+
"mfgCode": null,
3217+
"side": "server",
3218+
"type": "array",
3219+
"included": 1,
3220+
"storageOption": "External",
3221+
"singleton": 0,
3222+
"bounded": 0,
3223+
"defaultValue": "",
3224+
"reportable": 1,
3225+
"minInterval": 1,
3226+
"maxInterval": 65534,
3227+
"reportableChange": 0
3228+
},
3229+
{
3230+
"name": "FeatureMap",
3231+
"code": 65532,
3232+
"mfgCode": null,
3233+
"side": "server",
3234+
"type": "bitmap32",
3235+
"included": 1,
3236+
"storageOption": "RAM",
3237+
"singleton": 0,
3238+
"bounded": 0,
3239+
"defaultValue": "0",
3240+
"reportable": 1,
3241+
"minInterval": 1,
3242+
"maxInterval": 65534,
3243+
"reportableChange": 0
3244+
},
3245+
{
3246+
"name": "ClusterRevision",
3247+
"code": 65533,
3248+
"mfgCode": null,
3249+
"side": "server",
3250+
"type": "int16u",
3251+
"included": 1,
3252+
"storageOption": "RAM",
3253+
"singleton": 0,
3254+
"bounded": 0,
3255+
"defaultValue": "1",
3256+
"reportable": 1,
3257+
"minInterval": 1,
3258+
"maxInterval": 65534,
3259+
"reportableChange": 0
3260+
}
3261+
]
31383262
}
31393263
]
31403264
},

scripts/tools/zap/tests/outputs/lighting-app/app-templates/gen_config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
#define MATTER_DM_OPERATIONAL_STATE_CLUSTER_SERVER_ENDPOINT_COUNT (0)
8181
#define MATTER_DM_OPERATIONAL_STATE_RVC_CLUSTER_SERVER_ENDPOINT_COUNT (0)
8282
#define MATTER_DM_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT (1)
83+
#define MATTER_DM_MULTICAST_CLUSTER_SERVER_ENDPOINT_COUNT (0)
8384
#define MATTER_DM_HEPA_FILTER_MONITORING_CLUSTER_SERVER_ENDPOINT_COUNT (0)
8485
#define MATTER_DM_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER_SERVER_ENDPOINT_COUNT (0)
8586
#define MATTER_DM_BOOLEAN_STATE_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT (0)
@@ -221,6 +222,7 @@
221222
#define MATTER_DM_OPERATIONAL_STATE_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
222223
#define MATTER_DM_OPERATIONAL_STATE_RVC_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
223224
#define MATTER_DM_SCENES_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
225+
#define MATTER_DM_MULTICAST_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
224226
#define MATTER_DM_HEPA_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
225227
#define MATTER_DM_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
226228
#define MATTER_DM_BOOLEAN_STATE_CONFIGURATION_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright (c) 2025 Project CHIP Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
group("multicast-server") {
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) 2025 Project CHIP Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
app_config_dependent_sources = [ "multicast-server.cpp" ]

0 commit comments

Comments
 (0)