diff --git a/docs/proposals/onqc-scopes.fr.md b/docs/proposals/onqc-scopes.fr.md index baeb305..3db4fc0 100644 --- a/docs/proposals/onqc-scopes.fr.md +++ b/docs/proposals/onqc-scopes.fr.md @@ -69,8 +69,9 @@ premiers. joignent tout le monde. - **Les canaux locaux** comme `#public` sont réglés sur votre ville, pour que les échanges restent locaux. -- **Les messages sans portée** continuent de fonctionner pendant le projet - pilote. +- **Les messages sans portée** fonctionnent encore dans chaque ville. Les + répéteurs passerelles entre les villes les rejettent, pour qu’ils n’inondent + pas la ville voisine. ## Qu’est-ce qu’une portée? @@ -382,15 +383,25 @@ codes de ville. Par exemple, un répéteur à **Rigaud** se trouve dans la zone ```text region def yow|* yul|* qc|* onqc|* can -region allowf * +region denyf * region default yow region save ``` -Il relaie les messages de ville d’Ottawa et de Montréal, ainsi que `qc`, -`onqc` et `can`. Ses propres annonces restent dans sa zone, `yow`. 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. +
+
region def …
Porte les deux codes de ville, ainsi que qc, onqc et can.
+
region denyf *
Rejette les messages sans portée. C’est la seule différence avec un répéteur normal. Les nouveaux utilisateurs sans portée joignent quand même tout le monde dans leur ville; leurs messages ne passent simplement pas dans la ville voisine. Voir Qui reçoit quoi.
+
region default yow
Ses propres annonces restent dans sa zone, yow.
+
+ +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. + +
+**Ça fonctionne seulement si la passerelle est le seul lien.** Tout répéteur +qui entend des répéteurs des deux secteurs est aussi une passerelle et devrait +rejeter `*` lui aussi. Sinon, les messages sans portée la contournent. +
### Permettre ou rejeter : aide-mémoire @@ -453,12 +464,72 @@ l’Ontario et le Québec. C’est pourquoi l’étape 2 de la configuration du téléphone règle les canaux locaux sur votre ville. +## Qui reçoit quoi + +Quand les passerelles rejettent les messages sans portée, un nouvel utilisateur +qui n’a pas encore réglé de portée joint quand même tout le monde dans sa ville. +Ses messages ne passent simplement pas dans la ville voisine. Voici le lien +Ottawa–Montréal par Rigaud. + +
+
+
Nouvel utilisateur à Ottawa, sans portée aucuneTout le secteur d’Ottawa
+
    +
  1. Nouvel utilisateur, Ottawasans portée
  2. +
  3. Répéteur d’Ottawapermet *
  4. +
  5. Passerelle de Rigaudrejette *
  6. +
  7. Répéteur de Montréalpermet *
  8. +
  9. Utilisateur de Montréalne le voit jamais
  10. +
+

Chaque répéteur de la zone d’Ottawa le relaie, donc le nouvel utilisateur joint tout le secteur d’Ottawa. Rigaud l’entend mais ne le relaie pas, donc Montréal n’est jamais inondé.

+
+
+
Robot d’Ottawa ou MeshMapper, avec portée yowZone d’Ottawa seulement
+
    +
  1. Robot, Ottawaenvoie yow
  2. +
  3. Répéteur d’Ottawayow on onqc can
  4. +
  5. Passerelle de Rigaudyow yul qc onqc can
  6. +
  7. Répéteur de Montréalyul qc onqc can
  8. +
  9. Utilisateur de Montréalne le voit jamais
  10. +
+

Rigaud porte yow, donc il relaie le message. Les répéteurs de Montréal ne portent pas yow, donc le message s’arrête à la limite de la zone.

+
+
+
MP avec la portée par défaut onqcTout le réseau
+
    +
  1. Vous, Ottawaenvoie onqc
  2. +
  3. Répéteur d’Ottawayow on onqc can
  4. +
  5. Passerelle de Rigaudyow yul qc onqc can
  6. +
  7. Répéteur de Montréalyul qc onqc can
  8. +
  9. Ami, Montréaldéfaut onqc
  10. +
+

Tous les répéteurs portent onqc, y compris la passerelle, donc les MP traversent encore tout le réseau.

+
+
La même chose se produit à chaque passerelle entre deux villes.
+
+ +D’autres exemples sur le même lien : + +| Message | Répéteurs d’Ottawa
`* yow on onqc can` | Passerelle de Rigaud
`yow yul qc onqc can` | Répéteurs de Montréal
`* yul qc onqc can` | Qui le reçoit | +| --- | --- | --- | --- | --- | +| Nouvel utilisateur à Ottawa, sans portée | ✅ Relaie | ❌ Rejette | Jamais atteint | Tout le secteur d’Ottawa | +| Nouvel utilisateur à Montréal, sans portée | Jamais atteint | ❌ Rejette | ✅ Relaie | Tout le secteur de Montréal | +| Ancienne appli ou annonce d’un ancien répéteur, sans portée | ✅ Relaie | ❌ Rejette | ✅ Relaie | Reste dans la ville d’origine | +| Canal ou robot d’Ottawa, `yow` | ✅ Relaie | ✅ Relaie | ❌ Rejette | Zone d’Ottawa seulement | +| Canal ou robot de Montréal, `yul` | ❌ Rejette | ✅ Relaie | ✅ Relaie | Zone de Montréal seulement | +| Canal de tout le Québec, `qc` | ❌ Rejette | ✅ Relaie | ✅ Relaie | Côté québécois, y compris Gatineau | +| MP avec la portée par défaut, `onqc` | ✅ Relaie | ✅ Relaie | ✅ Relaie | Tout le réseau ON/QC | + +C’est pourquoi les robots et MeshMapper devraient avoir la portée de leur ville : +ils restent contenus quoi qu’il arrive, et les nouveaux utilisateurs qui n’ont +pas encore réglé de portée fonctionnent quand même localement. + ## Déploiement
    -
  1. Répéteurs

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

  2. +
  3. Répéteurs

    Les propriétaires effacent les anciennes régions et ajoutent leurs codes. Les répéteurs normaux gardent * permis; les passerelles le rejettent. Rien ne brise dans aucune ville.

  4. Téléphones

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

  5. -
  6. 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.

  7. +
  8. Seulement au besoin

    Si les messages sans portée sont encore trop bruyants dans une ville, les répéteurs peuvent aussi lancer set flood.max.unscoped 3. Les messages avec portée atteignent encore 16 sauts.

## À savoir diff --git a/docs/proposals/onqc-scopes.md b/docs/proposals/onqc-scopes.md index 30a0890..a20b461 100644 --- a/docs/proposals/onqc-scopes.md +++ b/docs/proposals/onqc-scopes.md @@ -63,7 +63,8 @@ There are four levels of scope. Every repeater carries one code from each: its c - **Repeaters** carry their city, their province, `onqc` and `can`. - **Phones** use `onqc` as their default, so direct messages reach anyone. - **Local channels** such as `#public` are set to your city, so chatter stays local. -- **Messages with no scope** keep working during the pilot. +- **Messages with no scope** still work inside each city. Bridge repeaters + between cities drop them, so they don't flood the next city. ## What a scope is @@ -366,15 +367,25 @@ side, and links it to the Montréal zone: ```text region def yow|* yul|* qc|* onqc|* can -region allowf * +region denyf * region default yow region save ``` -It forwards Ottawa and Montréal city messages, plus `qc`, `onqc` and `can`. Its own -adverts stay in its home zone, `yow`. Only add a neighbouring city when the -repeater really links the two areas, or city messages will leak further than -people expect. +
+
region def …
Carries both city codes, plus qc, onqc and can.
+
region denyf *
Drops messages with no scope. This is the one difference from a normal repeater. New users with no scope still reach everyone in their own city; their messages just don't cross into the next one. See Who hears what.
+
region default yow
Its own adverts stay in its home zone, yow.
+
+ +Only add a neighbouring city when the repeater really links the two areas, or +city messages will leak further than people expect. + +
+**This only works if the bridge is the only link.** Any repeater that can hear +repeaters in both areas is also a bridge and should drop `*` too. Otherwise, +messages with no scope go around it. +
### Allow or drop, quick reference @@ -432,12 +443,71 @@ phone the path comes back using **your contact's** default scope. Québec. That is why step 2 of the phone setup sets local channels to your city. +## Who hears what + +With bridges dropping messages with no scope, a new user who hasn't set a scope +yet still reaches everyone in their own city. Their messages just don't cross +into the next city. Here is the Ottawa to Montréal link through Rigaud. + +
+
+
New user in Ottawa, no scope noneWhole Ottawa area
+
    +
  1. New user, Ottawano scope
  2. +
  3. Ottawa repeaterallows *
  4. +
  5. Rigaud bridgedrops *
  6. +
  7. Montréal repeaterallows *
  8. +
  9. Montréal usernever sees it
  10. +
+

Every Ottawa-zone repeater passes it on, so the new user reaches the whole Ottawa area. Rigaud hears it but does not pass it on, so Montréal is never flooded.

+
+
+
Ottawa bot or MeshMapper, scoped yowOttawa zone only
+
    +
  1. Bot, Ottawasends yow
  2. +
  3. Ottawa repeateryow on onqc can
  4. +
  5. Rigaud bridgeyow yul qc onqc can
  6. +
  7. Montréal repeateryul qc onqc can
  8. +
  9. Montréal usernever sees it
  10. +
+

Rigaud carries yow, so it passes the message on. Montréal repeaters do not carry yow, so it stops at the edge of the zone.

+
+
+
DM with the phone default onqcWhole mesh
+
    +
  1. You, Ottawasends onqc
  2. +
  3. Ottawa repeateryow on onqc can
  4. +
  5. Rigaud bridgeyow yul qc onqc can
  6. +
  7. Montréal repeateryul qc onqc can
  8. +
  9. Friend, Montréaldefault onqc
  10. +
+

Every repeater carries onqc, including the bridge, so DMs still cross the whole mesh.

+
+
The same thing happens at every bridge between two cities.
+
+ +More examples on the same link: + +| Message | Ottawa repeaters
`* yow on onqc can` | Rigaud bridge
`yow yul qc onqc can` | Montréal repeaters
`* yul qc onqc can` | Who gets it | +| --- | --- | --- | --- | --- | +| New user in Ottawa, no scope | ✅ Forward | ❌ Drop | Never reached | Whole Ottawa area | +| New user in Montréal, no scope | Never reached | ❌ Drop | ✅ Forward | Whole Montréal area | +| Old app or old repeater advert, no scope | ✅ Forward | ❌ Drop | ✅ Forward | Stays in whichever city sent it | +| Ottawa channel or bot, `yow` | ✅ Forward | ✅ Forward | ❌ Drop | Ottawa zone only | +| Montréal channel or bot, `yul` | ❌ Drop | ✅ Forward | ✅ Forward | Montréal zone only | +| Québec-wide channel, `qc` | ❌ Drop | ✅ Forward | ✅ Forward | Québec side, including Gatineau | +| DM with the phone default, `onqc` | ✅ Forward | ✅ Forward | ✅ Forward | Whole ON/QC mesh | + +This is why bots and MeshMapper should be scoped to their city: they stay +contained no matter what, and new users who haven't set a scope yet still work +locally. + ## Rollout
    -
  1. Repeaters

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

  2. +
  3. Repeaters

    Owners clear old regions and add their codes. Normal repeaters keep * allowed; bridge repeaters drop it. Nothing breaks inside any city.

  4. Phones

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

  5. -
  6. 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.

  7. +
  8. Only if needed

    If messages with no scope are still too noisy inside a city, repeaters can also run set flood.max.unscoped 3. Scoped messages still reach 16 hops.

## Things to know