Aller au contenu
Chappe 05
869,618 MHz 62,5 kHz · SF8 · CR8 ≤ 27 dBm PAR · duty cycle 10 % Relais dans le réseau 2 Sur point haut 1 Site validé 1 Sites à reconnaître 2 Liaison confirmée 9,9 km Région fr-05 Texte seulement · aucun service de secours

Chappe 05 · Régions et portée

Régions et portée

Jusqu'où un message est relayé. C'est le réglage le moins documenté de MeshCore, celui que presque tout le monde comprend de travers, et celui qui décide de ce qui traverse le département.

Un canal dit à qui un message s'adresse. Une région dit jusqu'où il est relayé. Les deux mécanismes sont indépendants.

Attention au mot : une région MeshCore est une étiquette de portée géographique, sans rapport avec les régions administratives françaises.

Vous découvrez les régions ? Suivez les encadrés « En clair » : lus à la suite, ils racontent tout le mécanisme, sans une seule commande. Vous configurez un répéteur ? Les sections techniques se lisent seules, et les réglages à poser sont dans « Ce que porte un nœud Chappe 05 ».

Le principe, en une image

Imaginez des villages reliés par des crieurs publics. Le télégraphe de Chappe ne fonctionnait pas autrement : un message passait de tour en tour.

Chaque répéteur est le crieur d'un village. Il entend ce qui se dit autour de lui et le répète plus fort, pour que le village suivant l'entende. Chaque compagnon est un habitant équipé d'une radio.

Une région, c'est un canton : un groupe de villages qui acceptent de se relayer entre eux. Une annonce criée peut porter le tampon d'un canton.

Sur le réseau Au village
Région Un canton
Étiquette de région Le tampon du canton, apposé sur l'annonce
Inondation Une annonce criée de village en village
Route directe Une lettre portée par des messagers, les villages de passage écrits sur l'enveloppe
Zéro saut Parler par-dessus la clôture
Répéteur Le crieur public
Liste des régions du répéteur Les cantons que ce crieur accepte de servir

Le lexique complet, et ce que fait un compagnon dans chaque situation, sont en annexe, en bas de page.

Le crieur applique une règle simple : il ne répète une annonce que si elle porte le tampon d'un canton qu'il sert. Une annonce sans tampon, il la répète aussi, par défaut. Une lettre, il la transmet toujours, sans regarder de tampon.

Le tampon est précis. Celui du canton de Gap n'est pas celui du département : un crieur qui sert le département mais pas le canton de Gap ne répète pas une annonce tamponnée « canton de Gap ». C'est pourquoi un répéteur déclare chacune des échelles où il se trouve.

Les trois idées à retenir

  1. Le tampon ne décide que de ce qui est répété. Tout le monde entend ce qui est crié à portée de voix, tampon ou pas. Et les lettres passent toujours.
  2. On ne crie qu'au début. Une fois le chemin connu, tout passe par lettre. Le tampon sert aux présentations, aux canaux, aux premiers messages et à la recherche de chemin.
  3. Un habitant répond avec le tampon de son propre canton, alors que le crieur reprend celui de la demande. Entre deux habitants de cantons différents, le message peut arriver et l'accusé de réception se perdre en route.

Deux acteurs, deux rôles

Acteur Ce qu'il fait
Le répéteur déclare la liste des régions où il se trouve
L'émetteur tague son canal avec la portée jusqu'où le message doit aller

Un répéteur relaie un message si et seulement si l'étiquette du message figure dans sa liste.

Et ce sont les compagnons qui portent les canaux, pas les répéteurs : un répéteur n'a aucun canal, il transporte des paquets sans les lire.

Comment fonctionnent les régions Le répéteur déclare où il se trouve. L'émetteur décide jusqu'où son message doit aller. DEUX RÔLES, DEUX DÉCISIONS Le répéteur déclare où il est Il porte toutes les échelles géographiques qui le concernent. eu fr fr-pac fr-05 * Il relaie un message si l'étiquette de ce message figure dans sa liste. Il ne lit rien, il ne filtre rien d'autre. L'émetteur décide jusqu'où Il tague chacun de ses canaux avec une portée. #gap fr-05 #fr fr C'est ici que se joue l'économie du temps d'antenne. OÙ S'ARRÊTE CHAQUE MESSAGE Trois messages émis depuis Gap, avec trois portées différentes. Chaque cercle est un répéteur, avec ce qu'il porte. Message tagué fr-05 reste dans le département Gap fr-05 R1 eu fr fr-pac fr-05 R2 eu fr fr-pac fr-05 R3 eu fr fr-pac fr-04 R4 eu fr fr-pac fr-04 R3 ne porte pas fr-05 Message tagué fr traverse la France, s'arrête aux frontières Gap R1 R2 R3 R4 Tous les répéteurs portent fr, donc tous relaient. Coût multiplié par le nombre de répéteurs traversés. Message non tagué ne s'arrête nulle part Gap R1 R2 R3 R4 Tous les répéteurs portent la région * par défaut, qui relaie tout ce qui n'a pas d'étiquette. Le trafic non tagué va donc plus loin que le trafic tagué. C'est le contraire de ce qu'on imagine. POURQUOI UN RÉPÉTEUR PORTE LES QUATRE NIVEAUX Ne porter que fr-05 Le répéteur coupe tout message tagué eu, fr ou fr-pac, y compris ceux d'un voisin qui a tagué correctement. Il devient un trou dans le réseau. Personne ne comprend pourquoi les messages s'arrêtent là. Et cela ne réduit pas le trafic national : il continue de circuler chez tous ceux qui portent fr. Porter les quatre Le répéteur accepte les différents degrés de précision que les émetteurs emploieront. Le filtrage se fait côté émetteur. C'est le tag des canaux qui préserve le temps d'antenne. Et si le trafic large devient un problème, il suffira de bloquer eu, sans toucher au trafic local. À RETENIR Le répéteur dit où il est. L'émetteur dit jusqu'où son message doit aller. Ce sont deux décisions distinctes. Un répéteur qui restreint sa liste ne réduit rien : il coupe des messages corrects et devient invisible aux autres. Ce qui préserve le réseau, c'est de taguer chaque canal à la plus petite portée qui couvre ses destinataires. Aussi local que possible, aussi loin que nécessaire.
Le répéteur déclare où il est, l'émetteur décide jusqu'où son message doit aller. Trois portées, trois issues : le message tagué fr-05 reste dans le département, celui tagué fr traverse la France, celui qui n'est pas tagué ne s'arrête nulle part.Ouvrir en grand

La région *, et le contre-sens qu'elle crée

Créée par défaut sur tout répéteur, * signifie : relaie tous les messages qui n'ont aucune région associée.

C'est elle qui fait tenir le réseau pendant la transition. Sans elle, quiconque n'a pas encore configuré ses canaux serait coupé sans comprendre pourquoi.

Elle produit une conséquence que personne n'attend :

Le trafic non tagué va plus loin que le trafic tagué. Il n'est arrêté par aucune frontière de région.

Ce qui est filtré, et ce qui ne l'est jamais

Un répéteur ne regarde la région que d'un seul genre de paquet : ceux qu'il reçoit en inondation et qu'il devrait relayer.

Mode du paquet Le répéteur vérifie-t-il la région ?
Inondation étiquetée oui : si aucune région de sa liste ne correspond, il ne relaie pas
Inondation sans étiquette traitée comme *, relayée dans la limite de flood.max.unscoped
Route directe, étiquetée ou non jamais
Zéro saut sans objet, rien n'est relayé

Deux conséquences surprennent souvent.

Restreindre les régions d'un répéteur ne coupe pas les échanges établis. Une conversation dont le chemin est connu passe en route directe, que la région ne contrôle pas. Ce qui est coupé, c'est la découverte.

Une région ne filtre jamais la réception. Un compagnon entend tout ce qui lui parvient. Sur un banc d'essai où tous les appareils s'entendent directement, les régions ne sont donc jamais sollicitées.

Pourquoi porter les quatre niveaux

La convention française suit le principe de la peau d'oignon : un répéteur déclare toutes les échelles géographiques où il se trouve, de la plus large à la plus fine.

Niveau Code Source
Europe eu usage international établi
Pays fr ISO 3166-1 alpha-2
Région fr-pac ISO 3166-2
Département fr-05 ISO 3166-2

L'imbrication existe dans le firmware mais elle est purement cosmétique : déclarer fr-05 comme enfant de fr-pac ne produit aucun héritage. Chaque étiquette doit être portée explicitement.

Un répéteur ne filtre pas pour protéger le réseau. Il accepte les différents degrés de précision que les émetteurs emploieront.

Un répéteur qui ne porterait que fr-05 couperait tout message tagué fr, fr-pac ou eu traversant son secteur, y compris ceux d'un voisin ayant tagué correctement. Il deviendrait un trou dans le réseau, sans que personne ne comprenne d'où vient le blocage.

Le filtrage utile se fait côté émetteur, en taguant chaque canal à la portée juste. C'est là que se joue la préservation du temps d'antenne, pas dans la liste du répéteur.

Le cas de eu

Porter eu expose au trafic européen tagué. C'est un coût réel. Mais l'alternative est pire : quelqu'un qui veut porter loin sans disposer de eu ne tague rien du tout, son message part sous *, et il va au-delà de l'Europe.

eu sert donc à séparer deux populations pour les traiter différemment.

Trafic Traitement possible
Non tagué limité par flood.max.unscoped
Tagué eu toléré tant qu'il reste raisonnable, blocable d'une commande

C'est ce qui rend une crise gérable. Si tout le monde tague proprement, bloquer eu dégage la bande sans toucher au trafic local. Sans cette séparation, il n'y a rien à bloquer : tout est mélangé sous *.

Ce que porte un nœud Chappe 05

Type de nœudregion putdefault
Répéteur de dorsale, niveau 1eu · fr · fr-pac · fr-05fr
Répéteur qui couvre le bassin gapençais, niveau 2eu · fr · fr-pac · fr-05 · fr-05-gapfr
Répéteur participant au routage d'un département voisinles mêmes, plus le code du voisinfr
Companion, terminal ou passerellesans effetfr

La région par défaut s'applique aux paquets que le nœud émet lui-même : adverts, tentatives de contact par inondation, reprise de chemin. Elle réduit la portée, elle ne l'augmente pas. Sans elle, ces paquets partent sous * et ne s'arrêtent nulle part.

Elle ne suffit pourtant pas, car un advert coûte autant qu'un message et se répète indéfiniment. Le réglage qui compte vraiment est :

set flood.advert.interval 0

default fr plus flood.advert.interval 0 : un répéteur qui n'inonde rien. C'est la combinaison à retenir.

Limiter le trafic non tagué

set flood.max.unscoped 5

Disponible en firmware 1.16, cette commande rejette les messages sans région ayant déjà effectué plus de cinq sauts. Sa valeur par défaut est 64 : sans réglage, le trafic non tagué n'est pratiquement pas limité.

C'est le levier le plus efficace contre le bruit : il coupe le trafic lointain non configuré tout en laissant passer celui des nouveaux arrivants du voisinage, qui n'ont pas encore paramétré leurs régions.

Valeur Usage
5 zone ordinaire
2 zone frontalière, trafic étranger important
1 à éviter, coupe les voisins immédiats

À ne pas confondre avec le blocage de *, qui coupe intégralement le trafic non tagué. Celui-là ne se justifie que sur un répéteur frontalier face à un volume étranger massif.

Deux compagnons, deux régions

Un compagnon étiquette tout ce qu'il émet avec sa propre région par défaut, y compris ses réponses. Sans région par défaut, il émet tout sans étiquette. Un répéteur ou un room server, eux, répondent avec la région de la demande reçue.

Conséquence : si deux compagnons ont des régions par défaut différentes, et qu'un répéteur du trajet ne sert que l'une des deux, l'aller passe mais le retour, chemin et accusé de réception, peut être arrêté. L'émetteur ne reçoit pas d'accusé et renvoie son message pour rien. Le message est arrivé, mais personne ne le sait.

Tant que ce comportement n'évolue pas dans le firmware, la parade est de donner la même région par défaut aux compagnons qui échangent souvent, ou de choisir une échelle que tous les répéteurs du trajet portent.

Un compagnon qui se déplace

L'advert d'un compagnon porte toujours sa région par défaut. La portée qu'on choisit sur le moment dans l'application s'applique aux messages, pas aux adverts. Un compagnon réglé sur sa commune est donc introuvable dès qu'il la quitte, sauf pour ceux qui l'entendent directement.

Ce que Chappe 05 recommande. En déplacement, passez votre compagnon en fr : c'est la seule échelle que portent tous les relais, il sera découvert partout en France.

Ce choix a un coût. Le firmware d'un compagnon n'a pas de minuterie d'advert, mais l'application qui le pilote en envoie d'elle-même : sur notre réseau, un compagnon actif s'annonce environ toutes les 83 minutes. En fr, chacune de ces annonces traverse le pays. La région par défaut étiquette aussi vos messages de canal et vos premiers messages à un contact dont le chemin est inconnu, qui traversent le pays à leur tour.

D'où deux conseils. Revenu chez vous, reprenez une échelle plus fine. Et si votre application permet de choisir une portée au moment d'envoyer, servez-vous-en pour vos messages : ce choix-là ne touche pas aux adverts.

Région par défaut du compagnon Découvrable Coût
Sa commune seulement dans sa commune le plus faible, mais introuvable dès qu'on en sort
L'échelle où l'on circule partout où l'on circule modéré
fr partout en France chaque advert inonde tout le pays

Deux règles de nommage

Les régions se définissent par la géographie, jamais par l'usage. Une région adrasec ou les-relais-des-copains n'a pas lieu d'être. Un canal, oui.

Codes ISO, jamais les codes IATA. Ces derniers ont été employés historiquement et cet usage est abandonné. Ils subsistent dans les analyseurs de paquets, ce qui ne concerne pas la configuration des répéteurs.

Trente caractères maximum, minuscules, chiffres et tirets. La longueur du nom ne pèse pas sur les messages : il ne voyage jamais, seul un code de deux octets est transmis.

Selon la version du firmware

Version Ce qu'il faut faire
avant 1.15.0 un region allowf <nom> après chaque region put
1.15.0 put active l'inondation automatiquement
1.16.0 region def en une ligne, et flood.max.unscoped

Vérifiez votre version avec ver avant de recopier une procédure trouvée ailleurs.

Annexe : le village, en détail

Chaque répéteur est le crieur public d'un village. Il entend ce qui se dit autour de lui et le répète plus fort pour que les villages suivants l'entendent. Chaque compagnon est un habitant qui a une radio pour envoyer et recevoir.

Le lexique complet

MeshCore Dans le village Ce que ça veut dire
Région Le canton Un groupe de villages qui décident de se relayer entre eux
Étiquette de région (transport_codes[0]) Le tampon du canton sur l'annonce Le crieur ne répète que les annonces qui portent le tampon d'un canton qu'il sert
Région par défaut d'un compagnon (default_scope) La commune inscrite sur sa carte d'identité Elle tamponne ses présentations où qu'il aille, même loin de chez lui
Région par défaut d'un répéteur (default_scope) L'adresse de la mairie Elle ne change pas : un crieur ne déménage pas
Inondation (TRANSPORT_FLOOD route 0 si étiquetée, FLOOD route 1 sinon) Annonce criée de village en village Tout le monde l'entend, chaque crieur la répète une fois
Route directe (DIRECT route 2, TRANSPORT_DIRECT route 3) Lettre portée par des messagers, avec la liste des villages de passage écrite sur l'enveloppe Seuls les crieurs cités la transmettent, pas besoin de tampon
Zéro saut (DIRECT route 2, chemin vide) Parler par-dessus la clôture Seuls les voisins immédiats entendent, personne ne répète
Répéteur Le crieur public Il vérifie le tampon avant de répéter une annonce, jamais une lettre
Room server Le panneau d'affichage de la mairie On s'y inscrit avec un mot de passe, il garde les messages
Annonce sans étiquette (FLOOD route 1, sans code de transport) Annonce « libre » Répétée par défaut, sauf si le crieur a décidé de ne répéter que les annonces tamponnées
Région inconnue du répéteur Tampon d'un canton que le crieur ne sert pas Il ne répète pas
Chemin de retour (PATH, type 8) « Pour me répondre, passe par tel et tel village » Ensuite on envoie des lettres au lieu de crier
Accusé de réception (ACK, type 3) L'accusé de réception Seulement pour les messages privés
Canal (GRP_TXT type 5, GRP_DATA type 6) Un message en langage codé crié pour une association Tout le monde l'entend, seuls les membres le comprennent, personne ne répond « reçu »
Code de transport (transport_codes[0], 2 octets) Un tampon fabriqué à partir du texte de l'annonce On ne peut pas le découper pour le coller sur une autre annonce

Ce que fait un compagnon

Action du compagnon Dans le village Tampon ? Retour ?
Advert en inondation (ADVERT, type 4) Crier « Je m'appelle X, j'habite ici » dans tout le canton Oui, toujours celui de sa carte d'identité, où qu'il soit * Non
Advert à zéro saut (ADVERT, type 4) Se présenter par-dessus la clôture Non Non
Message à un autre compagnon, chemin inconnu (TXT_MSG, type 2) Crier un message pour une personne précise Oui Oui : l'accusé de réception et le chemin, criés avec le tampon du canton du destinataire
Message à un autre compagnon, chemin connu (TXT_MSG, type 2) Envoyer une lettre par messagers Non Oui : accusé de réception par lettre
Commande CLI vers un répéteur (TXT_MSG, type 2) Donner un ordre au crieur Oui si on crie Oui : il répond, sans accusé de réception
Message sur un canal (GRP_TXT, type 5) Crier un message codé pour l'association Oui Non
Données sur un canal (GRP_DATA, type 6) Pareil, ou par lettre si on connaît le chemin Oui si on crie Non
Login sur un répéteur ou un room server (ANON_REQ, type 7) Donner le mot de passe à la mairie Oui si on crie Oui : « C'est bon » ou « refusé », avec le tampon de la demande
Requête anonyme, nœud hors contacts (ANON_REQ, type 7) Demander par-dessus la clôture Non Oui
Statut, télémétrie (REQ, type 0) Demander au crieur « Comment ça va, il te reste de la voix ? » Oui si on crie Oui
Découverte de chemin (REQ, type 0) Crier « Par où je passe pour te rejoindre ? » Oui, on crie toujours Oui : le chemin, puis on échange les chemins par lettre
Keep-alive (REQ, type 0) Petit mot régulier à la mairie : « Je suis toujours là » Non, c'est une lettre Oui : « Bien noté »
Traceroute (TRACE, type 9) Lettre qui fait noter à chaque crieur la qualité de ce qu'il a entendu Non Oui : la lettre revient avec les notes
Découverte des voisins (CONTROL, type 11) Demander par-dessus la clôture « Qui est crieur par ici ? » Non Oui : les crieurs proches répondent
Partage de contact (ADVERT, type 4) Montrer la carte de visite de quelqu'un à ses voisins Tampon « à ne pas répéter » Non
Données brutes (RAW_CUSTOM, type 15) Colis spécial par messagers Non Non
Paquet brut, forgé par l'application (tout type) On écrit et tamponne soi-même C'est l'application qui choisit Selon le cas

* En déplacement, votre compagnon doit être en fr : c'est la seule échelle que portent tous les relais, il sera découvert partout en France. Voir « Un compagnon qui se déplace ».

Pour aller plus loin

Le détail des configurations par type de répéteur, les zones frontalières et les annexes prêtes à copier sont dans la politique des relais.

Ce qui se tague côté émetteur, canal par canal, est dans la politique des canaux et des messages.