pub struct Unt<'a> {
pub action_type: u8,
pub oui_hash: u8,
pub version_number: u8,
pub current_next_indicator: bool,
pub section_number: u8,
pub last_section_number: u8,
pub oui: u32,
pub processing_order: u8,
pub common_descriptors: DescriptorLoop<'a>,
pub platform_loop: &'a [u8],
}Expand description
Update Notification Table (UNT).
Typed fields cover the fixed header (action_type through processing_order).
Variable-length regions are kept as raw &[u8] borrows to avoid pulling in
the full ISO/IEC 13818-6 compatibilityDescriptor parser:
common_descriptors— the body of thecommon_descriptor_loop(), i.e. the bytes AFTER the 12-bit length field (standard SI descriptor format).platform_loop— the entire remaining payload between thecommon_descriptor_loopand the CRC. This region contains zero or more platform entries, each starting with acompatibilityDescriptor()(an ISO/IEC 13818-6 groupInfo block — not a standard tag/length SI descriptor) followed by a 16-bitplatform_loop_lengthand the corresponding target / operational descriptor loops. Callers that need to walk individual platform entries must parse this field manually.
Fields§
§action_type: u8Action type (Table 12 of ETSI TS 102 006): 0x01 = System Software Update, 0x80–0xFF = user defined.
oui_hash: u8OUI hash: OUI[23:16] ^ OUI[15:8] ^ OUI[7:0] (XOR of the three OUI
bytes, used as a quick equality check before comparing the full OUI).
version_number: u85-bit version_number of this sub-table.
current_next_indicator: boolcurrent_next_indicator: true means this section is currently
applicable; false means it applies starting from the next version.
section_number: u8Index of this section within the sub-table.
last_section_number: u8Index of the last section in the sub-table.
oui: u3224-bit IEEE Organizationally Unique Identifier.
Stored in the low 24 bits of a u32 (high byte is always zero).
The DVB-reserved generic OUI 0x00015A means the receiver should
analyse the UNT payload to determine applicability.
processing_order: u8Processing order (Table 13): 0x00 = first action, 0x01–0xFE = subsequent (ascending), 0xFF = no ordering implied.
common_descriptors: DescriptorLoop<'a>Body of common_descriptor_loop() — the bytes AFTER the 12-bit length
field. Contains zero or more standard SI descriptors (tag + length +
payload), as defined in §9.4.2.1. Serializes as the typed descriptor
sequence; .raw() yields the wire bytes.
platform_loop: &'a [u8]Raw bytes of the entire platform loop region — everything after
common_descriptor_loop() up to (but not including) the CRC_32.
Each platform entry starts with a compatibilityDescriptor() block
(ISO/IEC 13818-6 §11 groupInfo form — a 2-byte length prefix +
descriptor list, not a standard SI tag/length descriptor), followed
by a 16-bit platform_loop_length then zero or more platform entries
each containing target and operational descriptor loops.
To walk platform entries, parse this field according to ETSI TS 102 006 §9.4.2.2–9.4.2.4.
Trait Implementations§
impl<'a> Eq for Unt<'a>
Source§impl Serialize for Unt<'_>
impl Serialize for Unt<'_>
Source§type Error = Error
type Error = Error
Parse impl, but need not be).Source§fn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
serialize_into will write.