From 73aa52ba53b99ac4ffd40b6d8bb793047ead8a77 Mon Sep 17 00:00:00 2001 From: MrAlders0n Date: Thu, 24 Sep 2026 15:02:45 -0400 Subject: [PATCH] Revise ON/QC scopes proposal: clean-up step, MeshMapper zones, Rigaud bridge --- docs/assets/styles/scopes-proposal.css | 27 ------ docs/proposals/onqc-scopes.fr.md | 110 ++++++++++++++++--------- docs/proposals/onqc-scopes.md | 98 ++++++++++++++-------- 3 files changed, 135 insertions(+), 100 deletions(-) diff --git a/docs/assets/styles/scopes-proposal.css b/docs/assets/styles/scopes-proposal.css index 87753630..8c9d883d 100644 --- a/docs/assets/styles/scopes-proposal.css +++ b/docs/assets/styles/scopes-proposal.css @@ -503,33 +503,6 @@ color: #172033; } -.scp-compare { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); - gap: var(--mc-space-4); - margin-top: var(--mc-space-6); -} - -.scp-compare__item { - padding: var(--mc-space-4); - border: 1px solid var(--mc-color-border); - border-top: 0.3rem solid var(--scp-compare, var(--mc-color-border)); - border-radius: var(--mc-radius-md); - background: var(--mc-color-surface-raised); -} - -.scp-compare__item[data-result="ok"] { --scp-compare: var(--scp-ok); } -.scp-compare__item[data-result="meh"] { --scp-compare: var(--mc-color-warning); } - -.md-typeset .scp-compare__item p { - margin: 0 0 var(--mc-space-2); - font-size: 0.85rem; -} - -.md-typeset .scp-compare__item .scp-tree { - background: var(--mc-color-surface); -} - /* ---------- Diagram 4: DM route ---------- */ .scp-route + .scp-route { diff --git a/docs/proposals/onqc-scopes.fr.md b/docs/proposals/onqc-scopes.fr.md index e8a08569..f6837e6d 100644 --- a/docs/proposals/onqc-scopes.fr.md +++ b/docs/proposals/onqc-scopes.fr.md @@ -35,8 +35,9 @@ page_styles: ## En bref -Chaque répéteur porte trois codes. Vous choisissez jusqu’où va un message en -choisissant l’un d’eux. +Il y a trois niveaux de portée. Chaque répéteur porte un code de chaque +niveau : sa ville, sa province et `onqc`. Quand vous envoyez un message, vous +choisissez le niveau à utiliser, et c’est ce qui décide jusqu’où il va.
@@ -100,7 +101,7 @@ avec cinq messages différents.
-
Le répéteur entend quand même tous les messages. La portée décide seulement s’il les relaie. Votre téléphone reçoit aussi tout ce qui l’atteint.
+
Le MP porte onqc parce que onqc est la portée par défaut du téléphone dans cette proposition. Voir pourquoi plus bas. Le répéteur entend quand même tous les messages. La portée décide seulement s’il les relaie. Votre téléphone reçoit aussi tout ce qui l’atteint.
Trois détails piègent souvent : @@ -135,7 +136,7 @@ Trois détails piègent souvent :

on Ontario

-
yowOttawa, Lanark, Calabogie, Renfrew, Alfred
+
yowOttawa, Lanark, Calabogie, Renfrew, Alfred, Hawkesbury
yyzToronto
ygkKingston
ykfWaterloo
@@ -145,7 +146,7 @@ Trois détails piègent souvent :

qc Québec

-
yulMontréal, Trois-Rivières
+
yulMontréal, Trois-Rivières, Rigaud
yqbVille de Québec
yowGatineau (partagé avec Ottawa)
ytfSaguenay–Lac-Saint-Jean
@@ -168,7 +169,9 @@ Trois détails piègent souvent : `yow.meshmapper.net`. - Il n’y a ni accent ni majuscule à se tromper. `montréal`, `Montreal` et `montreal` seraient trois portées différentes. -- Ils sont neutres. Renfrew fait partie de la « zone YOW », pas d’« Ottawa ». +- Ils sont faciles à diviser plus tard. Si Renfrew veut un jour son propre + secteur, il peut prendre son propre code d’aéroport et garder `on` et `onqc`. + Rien d’autre ne change. La première fois, écrivez toujours le code avec son secteur, par exemple `yow` (secteur Ottawa–Gatineau), pour que les gens l’apprennent. @@ -204,23 +207,7 @@ La première fois, écrivez toujours le code avec son secteur, par exemple ├ on └ onqc
-
-
-

Avec |* : une liste à plat.

-
* -├ yow -├ on -└ onqc
-
-
-

Sans |* (region def yow on onqc) : chaque nom s’emboîte dans le précédent.

-
* -└ yow - └ on - └ onqc
-
-
-
Les deux versions relaient exactement les mêmes messages, parce que les répéteurs ignorent l’emboîtement. La version à plat est plus facile à lire et à vérifier. Le nom surligné indique la position du curseur.
+
Le résultat est une liste à plat : tous les codes sont côte à côte sous *. Le nom surligné indique la position du curseur.
@@ -231,7 +218,32 @@ complète. ## Configuration du répéteur -### Réglages standard de MeshCore Canada +### Étape 1 : Effacer les anciennes régions + +Beaucoup de répéteurs ont déjà des régions de l’ancienne configuration, comme +`can`, `on-alg` ou `ott`. `region def` ne supprime jamais rien, alors effacez-les +d’abord. + +1. Lancez `region` pour voir ce qui s’y trouve. +2. Retirez chaque nom sauf `*` avec `region remove `. Commencez par la + ligne la plus en retrait et remontez. Si vous voyez `Err - not empty`, un + nom est encore en retrait sous celui-ci; retirez-le d’abord. +3. Lancez `region save`. + +Par exemple, un répéteur configuré avec l’ancien chemin d’Ottawa : + +```text +region remove ott +region remove on-alg +region remove on +region remove can +region save +``` + +Retirer `on` ne pose pas de problème. Les réglages de région de l’étape 3 le +remettent. Lancez `region` de nouveau : vous ne devriez voir que `* F`. + +### Étape 2 : Réglages standard de MeshCore Canada ```text set path.hash.mode 2 @@ -247,10 +259,20 @@ set flood.max 16
flood.max 16
Aucune diffusion ne fait plus de 16 sauts, avec ou sans portée.
-### Réglages de région +### Étape 3 : Réglages de région + +Votre code de ville est votre **zone MeshMapper**. Ouvrez +[MeshMapper](https://meshmapper.net/), trouvez la zone où se trouve votre +répéteur et utilisez son code. C’est une carte que tout le monde utilise déjà, +donc rien de nouveau à chercher. + +Le modèle est toujours le même : + +```text +region def |* |* onqc +``` -Choisissez votre secteur. Lanark, Calabogie, Renfrew et Alfred utilisent la -configuration d’Ottawa. Trois-Rivières utilise celle de Montréal. +Exemples : === "Ottawa" @@ -295,7 +317,7 @@ configuration d’Ottawa. Trois-Rivières utilise celle de Montréal.
region save
Conserve les réglages de région après un redémarrage. Les commandes set s’enregistrent d’elles-mêmes.
-Pour vérifier, lancez `region`. Vous devriez voir : +Pour vérifier, lancez `region`. Pour Ottawa, vous devriez voir : ```text * F @@ -306,8 +328,23 @@ Pour vérifier, lancez `region`. Vous devriez voir : `F` veut dire « diffusion permise » : le répéteur relaie ce nom. -Un **répéteur passerelle** qui relie volontairement deux secteurs, par exemple -entre Ottawa et Montréal, peut aussi porter le code de la ville voisine. +### Répéteurs passerelles + +Un répéteur qui relie volontairement deux zones de ville porte **les deux** +codes de ville. Par exemple, un répéteur à **Rigaud** se trouve dans la zone +`yul` et relie Montréal à la zone d’Ottawa : + +```text +region def yul|* yow|* qc|* onqc +region allowf * +region default yul +region save +``` + +Il relaie les messages de ville d’Ottawa et de Montréal, ainsi que `qc` et +`onqc`. Ses propres annonces restent dans sa zone, `yul`. N’ajoutez une ville +voisine que si le répéteur relie vraiment les deux secteurs; sinon, les +messages de ville iront plus loin que prévu. ### Permettre ou rejeter : aide-mémoire @@ -372,20 +409,15 @@ téléphone règle les canaux locaux sur votre ville. ## Déploiement
    -
  1. Répéteurs

    Les propriétaires ajoutent leurs trois codes et gardent * permis. Rien ne brise pour personne.

  2. -
  3. Téléphones

    Les utilisateurs règlent leur portée par défaut sur onqc et leurs canaux locaux sur leur ville.

  4. -
  5. Bascule

    À une date convenue, les répéteurs lancent set flood.max.unscoped 3. Les messages sans portée restent alors à 3 sauts ou moins, tandis que les messages avec portée atteignent encore 16 sauts.

  6. +
  7. Répéteurs

    Les propriétaires effacent les anciennes régions, ajoutent leurs trois codes et gardent * permis. Rien ne brise pour personne.

  8. +
  9. Téléphones

    Les utilisateurs règlent leur portée par défaut sur onqc et leurs canaux locaux sur leur ville.

  10. +
  11. Bascule

    À une date convenue, les répéteurs lancent set flood.max.unscoped 3. Les messages sans portée restent alors à 3 sauts ou moins, tandis que les messages avec portée atteignent encore 16 sauts.

## À savoir - **Les annonces des répéteurs restent dans leur ville.** Les utilisateurs de Montréal ne verront pas les répéteurs d’Ottawa par les annonces diffusées. -- **Les répéteurs qui ont déjà d’anciennes régions**, comme `can`, `on-alg` ou - `ott`, devraient les retirer. Lancez d’abord la nouvelle ligne - `region def`, qui déplace `on` au sommet. Lancez ensuite `region` pour voir - ce qui reste, retirez les anciens noms du bas vers le haut avec - `region remove `, puis terminez avec `region save`. - **16 sauts doivent suffire.** `flood.max` s’applique aussi à `onqc`. Si le plus long chemin réel dans le réseau dépasse 16 sauts, les messages qui traversent le réseau s’arrêteront en chemin. diff --git a/docs/proposals/onqc-scopes.md b/docs/proposals/onqc-scopes.md index 462a3479..d1ce6a4d 100644 --- a/docs/proposals/onqc-scopes.md +++ b/docs/proposals/onqc-scopes.md @@ -35,7 +35,7 @@ page_styles: ## The short version -Every repeater carries three codes. You pick how far a message travels by picking one of them. +There are three levels of scope. Every repeater carries one code from each level: its city, its province, and `onqc`. When you send a message, you choose which level to use, and that decides how far it travels.
@@ -95,7 +95,7 @@ different messages.
  • yow Ottawa channelForwarded
  • -
  • onqc DM to Québec CityForwarded
  • +
  • onqc DM to Québec City, sent with the phone defaultForwarded
  • none Older app, no scopeForwarded
  • yul Montréal channelDropped
  • qc Québec-wide channelDropped
  • @@ -107,7 +107,7 @@ different messages.
    No scope at all: it counts as *. Forward it only if * is allowed.
    Too many hops: dropped once it passes flood.max, whatever its scope.
-
The repeater still hears every message. A scope only decides whether it passes the message on. Your phone also receives everything that reaches it.
+
The DM is tagged onqc because onqc is the phone default in this proposal. See why further down. The repeater still hears every message. A scope only decides whether it passes the message on. Your phone also receives everything that reaches it.
Three details catch people out: @@ -128,7 +128,7 @@ Three details catch people out:

on Ontario

-
yowOttawa, Lanark, Calabogie, Renfrew, Alfred
+
yowOttawa, Lanark, Calabogie, Renfrew, Alfred, Hawkesbury
yyzToronto
ygkKingston
ykfWaterloo
@@ -138,7 +138,7 @@ Three details catch people out:

qc Québec

-
yulMontréal, Trois-Rivières
+
yulMontréal, Trois-Rivières, Rigaud
yqbQuébec City
yowGatineau (shared with Ottawa)
ytfSaguenay–Lac-Saint-Jean
@@ -161,7 +161,8 @@ Three details catch people out: `yow.meshmapper.net`. - There are no accents or capital letters to get wrong. `montréal`, `Montreal` and `montreal` would be three different scopes. -- They are neutral. Renfrew is in the "YOW zone", not in "Ottawa". +- They are easy to split later. If Renfrew wants its own area one day, it can + use its own airport code and still keep `on` and `onqc`. Nothing else changes. Always write the code with its area the first time, for example `yow` (Ottawa / NCR area), so people learn it. @@ -197,23 +198,7 @@ the cursor back to the top. ├ on └ onqc
-
-
-

With |*: a flat list.

-
* -├ yow -├ on -└ onqc
-
-
-

Without |* (region def yow on onqc): each name nests inside the last.

-
* -└ yow - └ on - └ onqc
-
-
-
Both versions forward exactly the same messages, because repeaters ignore nesting. The flat version is easier to read and check. The highlighted name is where the cursor is.
+
The result is a flat list: every code sits side by side under *. The highlighted name is where the cursor is.
@@ -223,7 +208,31 @@ there. Run `region` afterwards to see the full list. ## Repeater setup -### Standard MeshCore Canada settings +### Step 1: Clear any old regions + +Many repeaters already have regions from the older setup, such as `can`, +`on-alg` or `ott`. `region def` never deletes anything, so clear them first. + +1. Run `region` to list what is there. +2. Remove every name except `*` with `region remove `. Start with the + most indented line and work up. If you see `Err - not empty`, a name is + still indented under it, so remove that one first. +3. Run `region save`. + +For example, a repeater set up with the old Ottawa path: + +```text +region remove ott +region remove on-alg +region remove on +region remove can +region save +``` + +Removing `on` is fine. The region settings in step 3 add it back. Run `region` again, and you +should only see `* F`. + +### Step 2: Standard MeshCore Canada settings ```text set path.hash.mode 2 @@ -239,9 +248,19 @@ set flood.max 16
flood.max 16
No flood message travels more than 16 hops, scoped or not.
-### Region settings +### Step 3: Region settings + +Your city code is your **MeshMapper zone**. Open [MeshMapper](https://meshmapper.net/), +find the zone your repeater sits in, and use its code. It is a map everyone +already uses, so there is nothing new to look up. + +The pattern is always the same: + +```text +region def |* |* onqc +``` -Pick your area. Lanark, Calabogie, Renfrew and Alfred use the Ottawa setup. Trois-Rivières uses the Montréal setup. +Examples: === "Ottawa" @@ -286,7 +305,7 @@ Pick your area. Lanark, Calabogie, Renfrew and Alfred use the Ottawa setup. Troi
region save
Keeps the region settings after a reboot. The set commands save by themselves.
-To check, run `region`. You should see: +To check, run `region`. For Ottawa you should see: ```text * F @@ -297,8 +316,23 @@ To check, run `region`. You should see: `F` means "flood allowed": the repeater forwards that name. -A **bridge repeater** that links two areas on purpose, for example between -Ottawa and Montréal, can also carry the neighbouring city code. +### Bridge repeaters + +A repeater that links two city zones on purpose carries **both** city codes. +For example, a repeater in **Rigaud** sits in the `yul` zone and links Montréal +to the Ottawa zone: + +```text +region def yul|* yow|* qc|* onqc +region allowf * +region default yul +region save +``` + +It forwards Ottawa and Montréal city messages, plus `qc` and `onqc`. Its own +adverts stay in its home zone, `yul`. Only add a neighbouring city when the +repeater really links the two areas, or city messages will leak further than +people expect. ### Allow or drop, quick reference @@ -359,7 +393,7 @@ Québec. That is why step 2 of the phone setup sets local channels to your city. ## Rollout
    -
  1. Repeaters

    Owners add their three codes and keep * allowed. Nothing breaks for anyone.

  2. +
  3. Repeaters

    Owners clear old regions, add their three codes and keep * allowed. Nothing breaks for anyone.

  4. Phones

    Users set their default to onqc and set local channels to their city.

  5. Cutover

    On an agreed date, repeaters run set flood.max.unscoped 3. Messages with no scope then stay within 3 hops, while scoped messages still reach 16.

@@ -368,10 +402,6 @@ Québec. That is why step 2 of the phone setup sets local channels to your city. - **Repeater adverts stay in their city.** Montréal users will not see Ottawa repeaters through flood adverts. -- **Repeaters that already have older regions** such as `can`, `on-alg` or `ott` - should clear them. Run the new `region def` line first, which moves `on` to - the top. Then run `region` to see what is left, remove the old names from the - bottom up with `region remove `, and finish with `region save`. - **16 hops has to be enough.** `flood.max` applies to `onqc` too. If the longest real path across the mesh is longer than 16 hops, cross-mesh messages will stop part way.