pub struct RepeaterConfig {Show 13 fields
pub enabled: bool,
pub regions: Vec<[u8; 2], 8>,
pub default_region: Option<[u8; 2]>,
pub min_rssi: Option<i16>,
pub min_snr: Option<i8>,
pub flood_contention_snr_low_db: i8,
pub flood_contention_snr_high_db: i8,
pub flood_contention_min_window_percent: u8,
pub flood_contention_max_window_frames: u8,
pub flood_contention_ack_guard_percent: u8,
pub flood_contention_max_deferrals: u8,
pub amateur_radio_mode: AmateurRadioMode,
pub station_callsign: Option<HamAddr>,
}Expand description
Configuration governing whether and how the node forwards received frames.
The UMSH MAC layer includes an optional built-in repeater that forwards packets it
successfully receives, extending the effective range of the network without requiring
dedicated infrastructure. RepeaterConfig controls every facet of that behavior:
enabled— master on/off switch. Whenfalse, all inbound forwarding logic is skipped even if the other fields are populated.regions— a local list of 2-byte ARNCE region codes used as the flood-forwarding eligibility filter. When non-empty, packets carrying region codes are flood-forwarded only if at least one of those codes appears here; when empty, forwarding imposes no region check and a tagged packet is forwarded whatever its region.default_region— the region code inserted into a flood-forwarded packet that carries none.None— the default — means the repeater never tags: untagged packets are forwarded untagged. Tagging is deliberately opt-in and independent ofregions, because inserting a code asserts where the packet is, not merely which regions the repeater will carry. An already-tagged packet is always forwarded with its codes unchanged.min_rssi/min_snr— signal-quality thresholds for flood forwarding. Packets received below these values are not flood-forwarded; this prevents marginal receptions from being re-injected into the network at full power, which would degrade SNR for nearby nodes rather than help. These thresholds do not apply to source-routed hops.- Flood contention tuning — controls the SNR-to-delay mapping used when several eligible repeaters contend to flood-forward the same frame. These values should usually remain aligned across the mesh.
amateur_radio_mode— determines whether the repeater may forward encrypted or blind-unicast frames, and whether it must inject a station callsign. SeeAmateurRadioMode.station_callsign— the ARNCE/HAM-64 callsign injected into the options block of every forwarded frame when operating inLicensedOnlyorHybridmode, satisfying the third-party identification requirements of FCC §97.119 and equivalent regulations.
The default configuration has enabled: false; repeating must be explicitly opted in.
Fields§
§enabled: boolWhether repeater forwarding is enabled.
regions: Vec<[u8; 2], 8>Allowed repeater region codes. Empty imposes no region check.
default_region: Option<[u8; 2]>Region code inserted into an untagged flood-forwarded packet.
None forwards untagged packets untagged.
min_rssi: Option<i16>Minimum RSSI threshold for flood forwarding.
min_snr: Option<i8>Minimum SNR threshold for flood forwarding.
flood_contention_snr_low_db: i8Lower clamp bound for SNR-based flood forwarding contention.
flood_contention_snr_high_db: i8Upper clamp bound for SNR-based flood forwarding contention.
flood_contention_min_window_percent: u8Minimum forwarding contention window as a percentage of T_frame.
flood_contention_max_window_frames: u8Maximum forwarding contention window as a multiple of T_frame.
flood_contention_ack_guard_percent: u8ACK protection interval as a percentage of T_frame, added to the
contention delay when flood-forwarding an ack-requested packet that was
received with no remaining source-route hops (see channel-access.md
§ ACK Protection Interval).
flood_contention_max_deferrals: u8Maximum number of overheard-repeat deferrals before abandoning a pending forward.
amateur_radio_mode: AmateurRadioModeAmateur-radio operating mode for forwarding.
station_callsign: Option<HamAddr>Optional station callsign injected on forwarded traffic.
Trait Implementations§
Source§impl Clone for RepeaterConfig
impl Clone for RepeaterConfig
Source§fn clone(&self) -> RepeaterConfig
fn clone(&self) -> RepeaterConfig
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RepeaterConfig
impl Debug for RepeaterConfig
Source§impl Default for RepeaterConfig
impl Default for RepeaterConfig
Source§impl PartialEq for RepeaterConfig
impl PartialEq for RepeaterConfig
impl Eq for RepeaterConfig
impl StructuralPartialEq for RepeaterConfig
Auto Trait Implementations§
impl Freeze for RepeaterConfig
impl RefUnwindSafe for RepeaterConfig
impl Send for RepeaterConfig
impl Sync for RepeaterConfig
impl Unpin for RepeaterConfig
impl UnwindSafe for RepeaterConfig
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)