You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ADN-DMR-Peer-Server/docs/es/server/protocols/openbridge.md

4.6 KiB

OpenBridge (FreeBridge / DMRE)

DMRE y «OpenBridge v5»

En cable, OpenBridge extendido usa el opcode DMRE. El byte de versión de protocolo embebido dentro de la trama (ver disposición DMRE v5) selecciona el diseño: versión > 4 es el formato v5 de 89 bytes (saltos, campo repetidor fuente, MAC BLAKE2b). En documentación y conversaciones de operadores, «DMRE v5» y «OpenBridge v5» son lo mismo: tramas DMRE con versión embebida 5 (no el camino corto solo DMRD).

Recomendación (red ADN Systems): todos los enlaces inter-servidor que participen en la malla ADN Systems deberían usar DMRE v5 (PROTO_VER: 5 en YAML, que fija VER / versión embebida negociada) y ENHANCED_OBP: true para que BCSQ, BCKA y el control de bucle multipath se comporten igual. Los pares (otros servidores) deben configurarse igual. DMRD v1 (solo HMAC) permanece como modo de compatibilidad, pero no es el modo preferido para nuevos despliegues ADN.

Qué es OpenBridge

OpenBridge es un protocolo UDP entre servidores (y algunos gateways). Transporta voz DMR usando:

  • DMRD versión 1 — carga autenticada HMAC-SHA1 (modo de compatibilidad); o
  • DMRE — trama extendida con MAC BLAKE2b, versión embebida, marcas de tiempo, saltos, IDs servidor/repetidor de origen, etc. (DMRE v5 = versión embebida 5, recomendada arriba).

Esta pila implementa el modo par OPENBRIDGE en udp_hbp.py y el enrutado de bridges en BridgeUseCases.

Ingreso (DMRE)

  1. Verificar BLAKE2b sobre el prefijo autenticado.
  2. Comprobar NETWORK_ID, socket TARGET / RELAX_CHECKS, slot (TS1 para ingreso OBP).
  3. Incrementar saltos; si > 10, descartar y opcionalmente enviar BCSQ.
  4. Reconstruir un pseudo-DMRD para el bridge y llamar dmrd_received con metadatos de salto.

Egreso (send_system)

  • Construir DMRE o DMRD v1 según VER negociada y versión embebida.
  • Preservar saltos, BER/RSSI, source_server / source_rptr según haga falta para interoperar.

Control de bucle (malla multipath)

Para voz de grupo en OpenBridge:

  1. Finalizado / timeout 180 s — descartar flujos obsoletos.
  2. Eco HBP — si un sistema no-OBP ya tiene este stream_id en RX, esta pata OBP se trata como eco.
  3. Varios OBP — entre patas OBP con el mismo stream_id y TG, solo el 1ST más temprano (min(perf_counter)) reenvía; las demás paran y pueden enviar BCSQ si ENHANCED_OBP es true.

BCSQ (Bridge Control — Source Quench)

  • Significado: «No reenvíes este stream_id en esta TG hacia mi pata.»
  • Lo envía el OBP perdedor en control de bucle hacia su par (no es broadcast global).
  • Se respeta al reenviar a otro OBP: si el _bcsq del destino coincide, omitir send_system.

BCKA (keepalive)

  • ENHANCED_OBP — si el keepalive del par está obsoleto, bloquear reenvío hasta que se refresque.

Reenvío de bridge (to_target)

Por fila de destino: deduplicar (SYSTEM, TS), comprobar BCSQ, BCKA, ACL, reescribir LC / TGID, forzar patrón de bit TS1 para OBP, llamar send_system.

Filtros de ingreso (TG de grupo)

Para tráfico de grupo (y vcsbk), OpenBridge aplica filtros TG antes de que el flujo llegue al router de bridges. Los flujos descartados pueden disparar BCSQ hacia el par. Las reglas exactas difieren entre DMRD v1 y DMRE en udp_hbp.py; en general rechazan tráfico tratado como solo local o servidor incorrecto para el destino, por ejemplo:

  • TG bajas (p. ej. ≤ 79 en DMRE; DMRD v1 también combina 9990–9999, 92–199, 900999 en una comprobación).
  • 9990–9999 y 900999 (rangos de servicio / servidor local en DMRE).
  • 92–199 salvo que el ID de servidor de origen coincida con el ID principal de tu servidor (DMRE).
  • 80–89 y 800–899 salvo que el prefijo MCC coincida (DMRE).

Las llamadas privadas (unitarias) no están sujetas al mismo bloqueo de filtro TG de grupo de la misma forma; configura ACL por separado.

Resumen orientado al operador: Números especiales — ingreso OpenBridge.

Eventos de monitor (adn-monitor)

  • INGRESS — primera vista de depuración por pata.
  • START — canónico después de ganar el bucle (estado del panel).

Ver también: disposición DMRE v5, Monitor.

Powered by TurnKey Linux.