AmateurRadioMode

Enum AmateurRadioMode 

Source
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.

ModeEncryptionOperator callsignRepeater station callsign
UnlicensedAllowedOptionalNot added
LicensedOnlyProhibitedRequiredRequired
HybridAllowed (local)OptionalAdded 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

Source§

fn clone(&self) -> AmateurRadioMode

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AmateurRadioMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for AmateurRadioMode

Source§

fn eq(&self, other: &AmateurRadioMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for AmateurRadioMode

Source§

impl Eq for AmateurRadioMode

Source§

impl StructuralPartialEq for AmateurRadioMode

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.