#[non_exhaustive]pub struct FabricEntry {
pub fabric_id: u64,
pub ipk: [u8; 16],
pub rcac_cert: MatterCertificate,
pub commissioner: CommissionerIdentity,
pub devices: Vec<DeviceEntry>,
pub group_keys: Vec<GroupKeySetConfig>,
pub outbound_group_counter: u32,
pub icd_clients: Vec<IcdRegistration>,
pub icac: Option<IcacIdentity>,
/* private fields */
}Expand description
One fabric the controller administers: trust root, IPK, the commissioner identity, and the devices commissioned onto it.
#[non_exhaustive]: persisted record that may gain fields (e.g. an ICAC
tier, fabric label); marking it keeps such additions non-breaking. Only
constructed inside matter-controller.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.fabric_id: u64Matter fabric identifier.
ipk: [u8; 16]16-byte Identity Protection Key for this fabric.
rcac_cert: MatterCertificateSelf-signed root (RCAC) certificate.
commissioner: CommissionerIdentityThe controller’s stable identity on this fabric.
devices: Vec<DeviceEntry>Devices commissioned onto this fabric.
group_keys: Vec<GroupKeySetConfig>Group key sets programmed on this fabric (persisted for outbound group message encryption). Empty until the controller programs group keys.
outbound_group_counter: u32The reserved ceiling of the outbound group message counter for this fabric: the lowest counter value this controller may not yet have sent.
Persisted so counters survive restarts (spec §4.6.7 prohibits counter reuse across sessions / resets). The controller hands out counters below the ceiling from memory and only persists when it raises the ceiling by a block, so a restart resumes here — skipping at most a block of never-sent values, never reusing a sent one.
Snapshots written before block reservation stored the next counter to send, which is the same quantity (the smallest never-sent value), so they are read back correctly with no migration.
icd_clients: Vec<IcdRegistration>ICD (Intermittently Connected Device) client registrations on this
fabric. Each holds the shared key + counter floor the check-in listener
uses to verify a registered device’s Check-In messages. Empty until the
controller calls register_icd_client.
icac: Option<IcacIdentity>Optional per-fabric intermediate CA. None for a flat RCAC->NOC
fabric (the default); Some once the fabric adopts an ICAC tier.
Trait Implementations§
Source§impl Clone for FabricEntry
impl Clone for FabricEntry
Source§fn clone(&self) -> FabricEntry
fn clone(&self) -> FabricEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more