pub enum AmateurRadioMode {
Unlicensed,
LicensedOnly,
Hybrid,
}Expand description
Controls how the coordinator and optional repeater handle amateur-radio legal requirements.
Amateur (ham) radio law in most jurisdictions prohibits encrypted transmissions and requires station identification on all transmitted frames. UMSH supports three operating modes to accommodate networks that mix licensed and unlicensed nodes, or that operate exclusively under one regulatory regime.
| Mode | Encryption | Operator callsign | Repeater station callsign |
|---|---|---|---|
Unlicensed | Allowed | Optional | Not added |
LicensedOnly | Prohibited | Required | Required |
Hybrid | Allowed (local) | Optional | Added to forwarded frames |
The mode appears on both OperatingPolicy (for locally-originated traffic) and
RepeaterConfig (for forwarding decisions) and they may differ independently — a node
might transmit its own encrypted application traffic (Unlicensed) while acting as a
licensed-identified repeater (LicensedOnly) for third-party frames it forwards.
Variants§
Unlicensed
Treat traffic as unlicensed operation only.
Local transmit policy does not require operator callsigns or amateur-only restrictions. Repeaters operating in this mode must not add a station callsign when forwarding and should only retransmit packets that can be handled under unlicensed rules.
LicensedOnly
Treat forwarded and locally originated traffic as amateur-only.
Encryption and blind unicast are disallowed, operator callsigns are required on originated packets, and repeaters must identify themselves with a station callsign on forwarded traffic.
Hybrid
Permit both unlicensed and amateur-qualified forwarding behavior.
Local transmit policy remains permissive, but repeaters identify forwarded packets with their station callsign and may still forward packets lacking an operator callsign when they can do so under unlicensed rules.
Trait Implementations§
Source§impl Clone for AmateurRadioMode
impl Clone for AmateurRadioMode
Source§fn clone(&self) -> AmateurRadioMode
fn clone(&self) -> AmateurRadioMode
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AmateurRadioMode
impl Debug for AmateurRadioMode
Source§impl PartialEq for AmateurRadioMode
impl PartialEq for AmateurRadioMode
impl Copy for AmateurRadioMode
impl Eq for AmateurRadioMode
impl StructuralPartialEq for AmateurRadioMode
Auto Trait Implementations§
impl Freeze for AmateurRadioMode
impl RefUnwindSafe for AmateurRadioMode
impl Send for AmateurRadioMode
impl Sync for AmateurRadioMode
impl Unpin for AmateurRadioMode
impl UnwindSafe for AmateurRadioMode
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)