pub struct RepeaterConfig {
pub enabled: bool,
pub regions: Vec<[u8; 2], 8>,
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_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 both for flood-forwarding eligibility checks and, when a flood-forwarded packet is untagged, as the local policy source for inserting a region code. When non-empty, packets carrying a non-matching region code are not flood-forwarded; when empty, forwarding does not impose a region check and the repeater has no local region to insert.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.
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_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)