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

Update protocol decoder with information about some in-progress features #30935

Closed
Closed
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
40 changes: 40 additions & 0 deletions src/lib/format/protocol_messages.matter
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,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 {
int64u node_id = 3;
int16u group_id = 4;
// }

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

int8u fabric_index = 0xFE;
}

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

cluster_event_payload data = 7;

AttributionData attribution_data = 8;
}

struct EventReportIB {
Expand All @@ -286,6 +306,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 @@ -321,10 +342,29 @@ client cluster IMProtocol = 0xFFFF0001 {
cluster_command_payload data = 1;
}

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 {
boolean suppress_response = 0;
boolean timed_request = 1;
CommandDataIB invoke_requests[] = 2;
int16u command_ref = 2; // specific to batch processing

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

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