Packet #18369942 Success

TRACEROUTE_APP packet from ViRus (ViRu) to KULT_base biruli (KULT)

2
Total Receptions
2
Unique Gateways
3
Hop Count
89
Payload Bytes
Packet Information
Database ID: 18369942
Mesh Packet ID: 0x4b0bf171
Used for correlation across gateways
Timestamp: 2026-06-09 20:21:41 UTC
From Node: ViRus (ViRu)
To Node: KULT_base biruli (KULT)
Success: Processed
Protocol: TRACEROUTE_APP
Port: 70
Gateway: Tsaritsyno_KB_U_868 (KBU8)
Channel: MediumFast
RSSI: -114 dBm
SNR: -7.5 dBm
Hop Info: 3/6 hops
Start: 6, Limit: 3
Payload Data
Protocol: TRACEROUTE_APP
Size: 89 bytes
Decoded: Yes
Decoded Data:
Route Information
Route Path: Yangel 838 (YNG) Meshtastic 703c (703c) OwearBot-S2 (S2) Meshtastic a780 (R2D2)
Hop Count: 3 hops
Status: Forward complete, Return in progress
SNR Towards: -14.75 dB -12.5 dB -14.5 dB -10.25 dB 2.0 dB
Return Path: Meshtastic a780 (R2D2) Tower-0 (T000) !a35bac20
SNR Back: 0.25 dB 2.0 dB -12.75 dB
Route Visualization
Loading...

Loading route map...

Map shows the geographic path if nodes have shared location data.
Traceroute Steps
Hop From Node To Node Distance SNR (dB) Direction Analysis
1 KULT_base biruli (KULT) Yangel 838 (YNG) 2.43 km -14.75 dB Origin Hops
2 Yangel 838 (YNG) Meshtastic 703c (703c) Unknown -12.5 dB Relay Hops
3 Meshtastic 703c (703c) OwearBot-S2 (S2) Unknown -14.5 dB Relay Hops
4 OwearBot-S2 (S2) Meshtastic a780 (R2D2) Unknown -10.25 dB Relay Hops
5 Meshtastic a780 (R2D2) ViRus (ViRu) 2.22 km 2.0 dB Destination Hops
Return Path Steps
Hop From Node To Node Distance SNR (dB) Direction Analysis
1 ViRus (ViRu) Meshtastic a780 (R2D2) 2.22 km 0.25 dB Return Start Hops
2 Meshtastic a780 (R2D2) Tower-0 (T000) Unknown 2.0 dB Return Relay Hops
3 Tower-0 (T000) !a35bac20 Unknown -12.75 dB Return End Hops
Total Forward Distance
4.66 km
Total Return Distance
2.22 km
Combined Traceroute Graph
Controls: Drag nodes to rearrange • Mouse wheel to zoom • Click and drag background to pan • Hover for details
Loading graph...

Building graph...

Legend & Paths
Nodes
🔄 Router Node
📡 Gateway Node
🚀 Source Node
🎯 Target Node
Connections
RF Link
Gateway Connection
Direct Reception (0 hops)
Packet Paths
Loading paths...
Raw Packet Analysis
Complete field breakdown and MQTT privacy/exposure analysis
Packet Structure
MQTT Packet Flow:
ServiceEnvelope (MQTT layer) → MeshPacket (Mesh layer) → Decoded Payload (Application data)
Total Size:89 bytes
Gateway:!db2964b0
Channel:MediumFast
Payload Type:TRACEROUTE_APP
Hop Count:3 / 6
Privacy Summary
Exposure Level:
Direct Message
Privacy Features:
✓ Direct LoRa transmission (not via MQTT)
✓ Acknowledgment requested
+ 3 more...
Exposure Risks:
⚠ Packet visible to MQTT subscribers
⚠ Multi-hop path visible (3 hops)
+ 1 more...
MQTT ServiceEnvelope Fields

MQTT ServiceEnvelope contains the MeshPacket plus routing metadata

FieldValue
gateway_id !db2964b0
Node ID format
channel_id MediumFast
packet MeshPacket (89 bytes)
Contains the actual mesh network packet
MeshPacket Fields

Core mesh packet with routing and payload information

FieldValueType
from 1770320048
Source node ID
uint32
to 463547688
Target node ID
uint32
decoded.portnum 70
TRACEROUTE_APP
enum
decoded.payload_length 89 bytes size
hop_limit 3
Remaining hops allowed
uint32
hop_start 6
Initial hop limit
uint32
hops_taken 3
Calculated: hop_start - hop_limit
derived
rx_rssi -114.0 dBm
Signal strength at gateway
int32
rx_snr -7.50 dB
Signal quality at gateway
float
rx_time 1781025700
Receive timestamp
fixed32
via_mqtt False
Direct LoRa transmission
bool
want_ack True
Acknowledgment requested
bool
priority Not set enum
delayed Not set enum
channel Not set uint32
pki_encrypted False
Standard encryption
bool
next_hop Not set uint32
relay_node 32
Relay node ID
uint32
tx_after Not set uint32
timestamp 1781025701.3001025
Unix timestamp
uint32
MQTT Privacy & Exposure Analysis

Analysis of privacy features and exposure risks when packet is shared via MQTT

Exposure Level: Direct Message
Privacy Features:
  • ✓ Direct LoRa transmission (not via MQTT)
  • ✓ Acknowledgment requested
  • ✓ Targeted to specific node
  • ✓ Custom channel: MediumFast
  • ✓ Gateway node ID tracked
Exposure Risks:
  • ⚠ Packet visible to MQTT subscribers
  • ⚠ Multi-hop path visible (3 hops)
  • ⚠ RF signal metrics exposed (location inference possible)
MQTT-Specific Fields
Want ack: True
Gateway ID: !db2964b0
Signal Metrics: RSSI: -114.0 dBm
SNR: -7.50 dB
Complete Payload Analysis

Detailed breakdown of all payload fields and decoded data

Payload Metadata:
Protocol:TRACEROUTE_APP
Size:89 bytes
Decoded: Yes
Complete Payload Data (JSON):
{ "route_nodes": [ 3679956788, 463630396, 2740696180, 1770366848 ], "snr_towards": [ -14.75, -12.5, -14.5, -10.25, 2.0 ], "route_back": [ 1770366848, 2658649652, 2740694048 ], "snr_back": [ 0.25, 2.0, -12.75 ], "route_node_names": { "1770366848": "Meshtastic a780 (R2D2)", "2740694048": "!a35bac20", "463547688": "KULT_base biruli (KULT)", "1770320048": "ViRus (ViRu)", "2740696180": "OwearBot-S2 (S2)", "2658649652": "Tower-0 (T000)", "3679956788": "Yangel 838 (YNG)", "463630396": "Meshtastic 703c (703c)" }, "traceroute_packet": { "packet_data": { "id": 18369942, "timestamp": 1781025701.3001025, "from_node_id": 1770320048, "to_node_id": 463547688, "portnum": 70, "portnum_name": "TRACEROUTE_APP", "gateway_id": "!db2964b0", "channel_id": "MediumFast", "mesh_packet_id": 1259073905, "rssi": -114, "snr": -7.5, "hop_limit": 3, "hop_start": 6, "payload_length": 89, "processed_successfully": 1, "raw_payload": "0a1034af57db3c70a21b74b45ba380a785691229c5ffffffffffffffff01ceffffffffffffffff01c6ffffffffffffffff01d7ffffffffffffffff01081a0c80a7856934c6779e20ac5ba3220c0108cdffffffffffffffff01", "via_mqtt": 0, "want_ack": 1, "priority": 0, "delayed": 0, "channel_index": null, "rx_time": 1781025700, "pki_encrypted": 0, "next_hop": 0, "relay_node": 32, "tx_after": 0, "timestamp_str": "2026-06-09 20:21:41", "hop_count": 3, "has_payload": true, "success": 1, "from_node_name": "ViRus (ViRu)", "to_node_name": "KULT_base biruli (KULT)", "gateway_name": "Tsaritsyno_KB_U_868 (KBU8)", "gateway_location": { "node_id": 3676923056, "latitude": 55.6273, "longitude": 37.6425, "altitude": 200, "timestamp": 1780921025.7120063, "timestamp_str": "2026-06-08 15:17:05", "display_name": "Tsaritsyno_KB_U_868", "long_name": "Tsaritsyno_KB_U_868", "short_name": "KBU8", "hw_model": "HELTEC_V3" } }, "resolve_names": true, "packet_id": 18369942, "from_node_id": 1770320048, "to_node_id": 463547688, "timestamp": 1781025701.3001025, "gateway_id": "!db2964b0", "raw_payload": "0a1034af57db3c70a21b74b45ba380a785691229c5ffffffffffffffff01ceffffffffffffffff01c6ffffffffffffffff01d7ffffffffffffffff01081a0c80a7856934c6779e20ac5ba3220c0108cdffffffffffffffff01", "hop_limit": 3, "hop_start": 6, "from_node_name": "ViRus (ViRu)", "to_node_name": "KULT_base biruli (KULT)", "route_data": { "route_nodes": [ 3679956788, 463630396, 2740696180, 1770366848 ], "snr_towards": [ -14.75, -12.5, -14.5, -10.25, 2.0 ], "route_back": [ 1770366848, 2658649652, 2740694048 ], "snr_back": [ 0.25, 2.0, -12.75 ] }, "forward_path": { "path_type": "forward_with_return", "node_ids": [ 463547688, 3679956788, 463630396, 2740696180, 1770366848, 1770320048 ], "node_names": [ "KULT_base biruli (KULT)", "Yangel 838 (YNG)", "Meshtastic 703c (703c)", "OwearBot-S2 (S2)", "Meshtastic a780 (R2D2)", "ViRus (ViRu)" ], "snr_values": [ -14.75, -12.5, -14.5, -10.25, 2.0 ], "hops": [ { "hop_number": 1, "from_node_id": 463547688, "to_node_id": 3679956788, "from_node_name": "KULT_base biruli (KULT)", "to_node_name": "Yangel 838 (YNG)", "snr": -14.75, "direction": "forward", "is_target_hop": false, "distance_meters": 2434.603047446645, "from_location_timestamp": 1780993827.8147264, "to_location_timestamp": 1781023234.9680033, "from_location_age_warning": "from 8.9h ago", "to_location_age_warning": "from 0.7h ago" }, { "hop_number": 2, "from_node_id": 3679956788, "to_node_id": 463630396, "from_node_name": "Yangel 838 (YNG)", "to_node_name": "Meshtastic 703c (703c)", "snr": -12.5, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 3, "from_node_id": 463630396, "to_node_id": 2740696180, "from_node_name": "Meshtastic 703c (703c)", "to_node_name": "OwearBot-S2 (S2)", "snr": -14.5, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 4, "from_node_id": 2740696180, "to_node_id": 1770366848, "from_node_name": "OwearBot-S2 (S2)", "to_node_name": "Meshtastic a780 (R2D2)", "snr": -10.25, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 5, "from_node_id": 1770366848, "to_node_id": 1770320048, "from_node_name": "Meshtastic a780 (R2D2)", "to_node_name": "ViRus (ViRu)", "snr": 2.0, "direction": "forward", "is_target_hop": false, "distance_meters": 2224.6278949216276, "from_location_timestamp": 1780616781.857826, "to_location_timestamp": 1780966819.9861903, "from_location_age_warning": "from 4.7d ago", "to_location_age_warning": "from 16.4h ago" } ], "is_complete": false, "total_hops": 5 }, "return_path": { "path_type": "return", "node_ids": [ 1770320048, 1770366848, 2658649652, 2740694048 ], "node_names": [ "ViRus (ViRu)", "Meshtastic a780 (R2D2)", "Tower-0 (T000)", "!a35bac20" ], "snr_values": [ 0.25, 2.0, -12.75 ], "hops": [ { "hop_number": 1, "from_node_id": 1770320048, "to_node_id": 1770366848, "from_node_name": "ViRus (ViRu)", "to_node_name": "Meshtastic a780 (R2D2)", "snr": 0.25, "direction": "return", "is_target_hop": false, "distance_meters": 2224.6278949216276, "from_location_timestamp": 1780966819.9861903, "to_location_timestamp": 1780616781.857826, "from_location_age_warning": "from 16.4h ago", "to_location_age_warning": "from 4.7d ago" }, { "hop_number": 2, "from_node_id": 1770366848, "to_node_id": 2658649652, "from_node_name": "Meshtastic a780 (R2D2)", "to_node_name": "Tower-0 (T000)", "snr": 2.0, "direction": "return", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 3, "from_node_id": 2658649652, "to_node_id": 2740694048, "from_node_name": "Tower-0 (T000)", "to_node_name": "!a35bac20", "snr": -12.75, "direction": "return", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" } ], "is_complete": false, "total_hops": 3 }, "actual_rf_path": { "path_type": "combined_rf", "node_ids": [ 463547688, 3679956788, 463630396, 2740696180, 1770366848, 1770320048, 2658649652, 2740694048 ], "node_names": [ "KULT_base biruli (KULT)", "Yangel 838 (YNG)", "Meshtastic 703c (703c)", "OwearBot-S2 (S2)", "Meshtastic a780 (R2D2)", "ViRus (ViRu)", "Tower-0 (T000)", "!a35bac20" ], "snr_values": [ -14.75, -12.5, -14.5, -10.25, 2.0, 0.25, 2.0, -12.75 ], "hops": [ { "hop_number": 1, "from_node_id": 463547688, "to_node_id": 3679956788, "from_node_name": "KULT_base biruli (KULT)", "to_node_name": "Yangel 838 (YNG)", "snr": -14.75, "direction": "forward_rf", "is_target_hop": false, "distance_meters": 2434.603047446645, "from_location_timestamp": 1780993827.8147264, "to_location_timestamp": 1781023234.9680033, "from_location_age_warning": "from 8.9h ago", "to_location_age_warning": "from 0.7h ago" }, { "hop_number": 2, "from_node_id": 3679956788, "to_node_id": 463630396, "from_node_name": "Yangel 838 (YNG)", "to_node_name": "Meshtastic 703c (703c)", "snr": -12.5, "direction": "forward_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 3, "from_node_id": 463630396, "to_node_id": 2740696180, "from_node_name": "Meshtastic 703c (703c)", "to_node_name": "OwearBot-S2 (S2)", "snr": -14.5, "direction": "forward_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 4, "from_node_id": 2740696180, "to_node_id": 1770366848, "from_node_name": "OwearBot-S2 (S2)", "to_node_name": "Meshtastic a780 (R2D2)", "snr": -10.25, "direction": "forward_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 5, "from_node_id": 1770366848, "to_node_id": 1770320048, "from_node_name": "Meshtastic a780 (R2D2)", "to_node_name": "ViRus (ViRu)", "snr": 2.0, "direction": "forward_rf", "is_target_hop": false, "distance_meters": 2224.6278949216276, "from_location_timestamp": 1780616781.857826, "to_location_timestamp": 1780966819.9861903, "from_location_age_warning": "from 4.7d ago", "to_location_age_warning": "from 16.4h ago" }, { "hop_number": 6, "from_node_id": 1770320048, "to_node_id": 1770366848, "from_node_name": "ViRus (ViRu)", "to_node_name": "Meshtastic a780 (R2D2)", "snr": 0.25, "direction": "return_rf", "is_target_hop": false, "distance_meters": 2224.6278949216276, "from_location_timestamp": 1780966819.9861903, "to_location_timestamp": 1780616781.857826, "from_location_age_warning": "from 16.4h ago", "to_location_age_warning": "from 4.7d ago" }, { "hop_number": 7, "from_node_id": 1770366848, "to_node_id": 2658649652, "from_node_name": "Meshtastic a780 (R2D2)", "to_node_name": "Tower-0 (T000)", "snr": 2.0, "direction": "return_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 8, "from_node_id": 2658649652, "to_node_id": 2740694048, "from_node_name": "Tower-0 (T000)", "to_node_name": "!a35bac20", "snr": -12.75, "direction": "return_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" } ], "is_complete": false, "total_hops": 8 } }, "has_return_path": true, "is_complete": true, "forward_path_display": "KULT_base biruli (KULT) → Yangel 838 (YNG) → Meshtastic 703c (703c) → OwearBot-S2 (S2) → Meshtastic a780 (R2D2) → ViRus (ViRu)", "return_path_display": "ViRus (ViRu) → Meshtastic a780 (R2D2) → Tower-0 (T000) → !a35bac20", "actual_rf_path_display": "KULT_base biruli (KULT) → Yangel 838 (YNG) → Meshtastic 703c (703c) → OwearBot-S2 (S2) → Meshtastic a780 (R2D2) → ViRus (ViRu) → Tower-0 (T000) → !a35bac20", "forward_hops": [ { "hop_number": 1, "from_node_id": 463547688, "to_node_id": 3679956788, "from_node_name": "KULT_base biruli (KULT)", "to_node_name": "Yangel 838 (YNG)", "snr": -14.75, "direction": "forward", "is_target_hop": false, "distance_meters": 2434.603047446645, "from_location_timestamp": 1780993827.8147264, "to_location_timestamp": 1781023234.9680033, "from_location_age_warning": "from 8.9h ago", "to_location_age_warning": "from 0.7h ago" }, { "hop_number": 2, "from_node_id": 3679956788, "to_node_id": 463630396, "from_node_name": "Yangel 838 (YNG)", "to_node_name": "Meshtastic 703c (703c)", "snr": -12.5, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 3, "from_node_id": 463630396, "to_node_id": 2740696180, "from_node_name": "Meshtastic 703c (703c)", "to_node_name": "OwearBot-S2 (S2)", "snr": -14.5, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 4, "from_node_id": 2740696180, "to_node_id": 1770366848, "from_node_name": "OwearBot-S2 (S2)", "to_node_name": "Meshtastic a780 (R2D2)", "snr": -10.25, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 5, "from_node_id": 1770366848, "to_node_id": 1770320048, "from_node_name": "Meshtastic a780 (R2D2)", "to_node_name": "ViRus (ViRu)", "snr": 2.0, "direction": "forward", "is_target_hop": false, "distance_meters": 2224.6278949216276, "from_location_timestamp": 1780616781.857826, "to_location_timestamp": 1780966819.9861903, "from_location_age_warning": "from 4.7d ago", "to_location_age_warning": "from 16.4h ago" } ], "return_hops": [ { "hop_number": 1, "from_node_id": 1770320048, "to_node_id": 1770366848, "from_node_name": "ViRus (ViRu)", "to_node_name": "Meshtastic a780 (R2D2)", "snr": 0.25, "direction": "return", "is_target_hop": false, "distance_meters": 2224.6278949216276, "from_location_timestamp": 1780966819.9861903, "to_location_timestamp": 1780616781.857826, "from_location_age_warning": "from 16.4h ago", "to_location_age_warning": "from 4.7d ago" }, { "hop_number": 2, "from_node_id": 1770366848, "to_node_id": 2658649652, "from_node_name": "Meshtastic a780 (R2D2)", "to_node_name": "Tower-0 (T000)", "snr": 2.0, "direction": "return", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 3, "from_node_id": 2658649652, "to_node_id": 2740694048, "from_node_name": "Tower-0 (T000)", "to_node_name": "!a35bac20", "snr": -12.75, "direction": "return", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" } ], "total_forward_distance": 4659.230942368273, "total_return_distance": 2224.6278949216276 }
Complete Protobuf Decode (JSON)
{ "service_envelope": { "gateway_id": "!db2964b0", "channel_id": "MediumFast", "packet": "MeshPacket (see mesh_packet below)" }, "mesh_packet": { "from": 1770320048, "to": 463547688, "id": 1259073905, "rx_time": 1781025700, "rx_snr": -7.5, "rx_rssi": -114, "hop_limit": 3, "hop_start": 6, "via_mqtt": 0, "want_ack": 1, "priority": 0, "delayed": 0, "channel_index": null, "pki_encrypted": 0, "next_hop": 0, "relay_node": 32, "tx_after": 0, "decoded": { "portnum": 70, "payload": "0a1034af57db3c70a21b74b45ba380a785691229c5ffffffffffffffff01ceffffffffffffffff01c6ffffffffffffffff01d7ffffffffffffffff01081a0c80a7856934c6779e20ac5ba3220c0108cdffffffffffffffff01", "want_response": null, "dest": null, "source": null, "request_id": null, "reply_id": null, "emoji": null, "parsed_payload": { "route": [ 3679956788, 463630396, 2740696180, 1770366848 ], "snr_towards": [ -59, -50, -58, -41, 8 ], "route_back": [ 1770366848, 2658649652, 2740694048 ], "snr_back": [ 1, 8, -51 ], "type": "protobuf", "portnum": "TRACEROUTE_APP", "message_class": "RouteDiscovery" } } } }
Raw Packet Data (89 bytes)
0a1034af57db3c70a21b74b45ba380a785691229c5ffffffffffffffff01ceffffffffffffffff01c6ffffffffffffffff01d7ffffffffffffffff01081a0c80a7856934c6779e20ac5ba3220c0108cdffffffffffffffff01
Hex Analysis:
Size:89 bytes
Format:Protobuf (Protocol Buffers)
Encoding:Binary with varint and length-delimited fields
This is the raw protobuf-encoded payload as received from MQTT. The structure follows the Meshtastic protobuf schema definitions.
All Receptions
All gateways that received this packet
Correlation: Using Mesh Packet ID
Reception Locations
Loading...

Loading reception map...

Map shows gateway locations that received this packet. Hop counts are displayed if available.
Gateway Time Offset RSSI SNR Hops Channel Timestamp Actions
Tsaritsyno_KB_U_868 (KBU8) Primary 0.000s
Reference
-114.0 dBm -7.50 dB 3 MediumFast 2026-06-09 20:21:41 Current
Tsaritsyno_KB_V_868 (KBV8) +2.018s
After
-46.0 dBm 10.50 dB 4 MediumFast 2026-06-09 20:21:43 View
2

Total Receptions

2

Unique Gateways