Skip to content
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

Add protocol decoding information for latest spec updates #31687

Merged
merged 3 commits into from
Jan 25, 2024
Merged
Changes from 2 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
44 changes: 43 additions & 1 deletion src/lib/format/protocol_messages.matter
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ client cluster IMProtocol = 0xFFFF0001 {
optional EventFilterIB event_filters[] = 2;
optional boolean fabric_filtered = 3;
optional DataVersionFilterIB data_version_filters[] = 4;
optional boolean include_attribution_data = 5;

// 10.2.2.2. Context Tag Encoded Action Information
int8u interaction_model_revison = 0xFF;
Expand Down Expand Up @@ -237,6 +238,24 @@ client cluster IMProtocol = 0xFFFF0001 {
StatusIB status = 1;
}

struct AttributionData {
// NOTE: 0 is missing
int8u context_information = 1;
int32u source_context = 2;

// at-most-one-of {
optional int64u node_id = 3;
optional int16u group_id = 4;
// }

// at-most-one-of {
optional int64u epoch_timestamp = 5;
optional int64u system_timestamp = 6;
// }

int8u fabric_index = 0xFE;
}

struct AttributeData {
optional int32u data_version = 0;
AttributePathIB path = 1;
Expand Down Expand Up @@ -266,6 +285,8 @@ client cluster IMProtocol = 0xFFFF0001 {
// }

cluster_event_payload data = 7;

AttributionData attribution_data = 8;
}

struct EventReportIB {
Expand All @@ -288,6 +309,7 @@ client cluster IMProtocol = 0xFFFF0001 {
int32u data_version = 0;
AttributePathIB path = 1;
cluster_attribute_payload data = 2;
AttributionData attribution_data = 3;
}

struct WriteRequestMessage {
Expand Down Expand Up @@ -320,7 +342,26 @@ client cluster IMProtocol = 0xFFFF0001 {

struct CommandDataIB {
CommandPathIB path = 0;
cluster_command_payload data = 1;
optional cluster_command_payload data = 1;
optional int16u command_ref = 2;

// at-most-one-of {
optional SuppliedAttribution supplied_attribution_data = 3;
optional int16u supplied_attribution_data_repeat = 4;
// }
}

enum SuppliedAttributionContextInformation : enum8 {
kDefaultClientAction = 0;
kUserInteraction = 1;
kClientAutomationRule = 2;
kClientSchedule = 3;
kClientTimer = 4;
}

struct SuppliedAttribution {
SuppliedAttributeContextInformation context_information = 0;
int32u source_context = 1;
}

struct InvokeRequestMessage {
Expand All @@ -345,6 +386,7 @@ client cluster IMProtocol = 0xFFFF0001 {
struct InvokeResponseMessage {
boolean suppress_response = 0;
InvokeResponseIB invoke_responses[] = 1;
optional boolean more_chunked_messages = 2;

// 10.2.2.2. Context Tag Encoded Action Information
int8u interaction_model_revison = 0xFF;
Expand Down
Loading