NetRL

Getting Started

  • Installation
    • Requirements
    • Core package
    • ns-3 802.11a WiFi (fast — pybind11)
    • ns-3 802.11a WiFi backend (subprocess)
    • ns-3 5G mmWave backend
    • ns-3 5G-LENA NR backend
    • Multi-UE WiFi backend
    • Development extras
  • Quick Start
    • Single observer
    • Multiple observers (multi-view)
    • Switching to the fast ns-3 WiFi channel
    • Switching to the ns-3 WiFi channel (subprocess)
    • Next steps

Guides

  • Guides
    • Single-Observer Environments
      • Observation space
      • Per-step sequence
      • Construction
      • Using step()
      • Resetting
      • Training with Stable-Baselines3
      • Parallel environments
    • Multi-View Environments
      • Motivation
      • The MultiViewModel abstraction
      • Constructing the environment
      • Observation space
      • Using step()
      • The extended info dict
      • Using a shared 802.11a WiFi channel
      • Implementation tips
    • Choosing a Channel Backend
      • Backend overview
      • Gilbert–Elliott channel
      • Perfect channel
      • ns-3 802.11a WiFi (fast — pybind11) ⚡
      • ns-3 802.11a WiFi (subprocess)
      • ns-3 5G mmWave
      • ns-3 5G-LENA NR
      • Multi-UE 802.11a WiFi
    • Writing a Custom Channel
      • The CommChannel interface
      • Minimal example: Bernoulli channel
      • Using the custom channel
      • Subprocess-backed channel
      • Factory pattern for shared subprocesses

API Reference

  • API Reference
    • Environment Wrappers
      • NetworkedEnv
        • NetworkedEnv
      • MultiViewNetworkedEnv
        • MultiViewNetworkedEnv
    • MultiViewModel
      • MultiViewModel
        • MultiViewModel.__init__()
        • MultiViewModel.observe()
      • Usage pattern
    • CentralNode
      • CentralNode
        • CentralNode.__init__()
        • CentralNode.receive_from()
        • CentralNode.flush_and_update()
        • CentralNode.get_buffer()
        • CentralNode.get_all_buffers()
        • CentralNode.get_channel_info()
        • CentralNode.reset()
        • CentralNode.node_ids
        • CentralNode.config
      • Direct usage example
      • Per-node observation shapes
    • Channels
      • CommChannel (abstract base)
        • CommChannel
      • NetworkConfig
        • NetworkConfig
      • GEChannel
        • GEChannel
      • PerfectChannel
        • PerfectChannel
      • NS3WiFiChannelFastConfig
        • NS3WiFiChannelFastConfig
      • NS3WiFiChannelFast
        • NS3WiFiChannelFast
      • NS3WifiConfig
        • NS3WifiConfig
      • NS3WifiChannel
        • NS3WifiChannel
      • NS3MmWaveConfig
        • NS3MmWaveConfig
      • NS3MmWaveChannel
        • NS3MmWaveChannel
      • NS3LenaConfig
        • NS3LenaConfig
      • NS3LenaChannel
        • NS3LenaChannel
      • NS3WifiMultiUEConfig
        • NS3WifiMultiUEConfig
      • make_multi_ue_wifi_factory
        • make_multi_ue_wifi_factory()
      • NS3WifiUEChannel
        • NS3WifiUEChannel
      • NS3WifiMultiUEBackend
        • NS3WifiMultiUEBackend
    • ObservationBuffer
      • ObservationBuffer
        • ObservationBuffer.__init__()
        • ObservationBuffer.add()
        • ObservationBuffer.get()
        • ObservationBuffer.get_padded()
        • ObservationBuffer.clear()
        • ObservationBuffer.is_full
      • Semantics

Reference

  • Reference
    • Architecture & Concepts
      • System overview
      • Class hierarchy
      • Timing model
      • Persisted simulation state
        • Warm-up period
      • Gilbert–Elliott channel model
      • ns-3 subprocess protocol
      • Observation buffer semantics
      • Strategy pattern
    • Troubleshooting
      • Build errors
        • ImportError: No module named 'netcomm'
        • FileNotFoundError: ns3_wifi_sim binary not found
        • ns3 installation not found (build script error)
      • Runtime errors
        • RuntimeError: ns3_wifi_sim did not emit READY within 30 s
        • RuntimeError: subprocess stdin pipe broken
        • TimeoutError: no response within N s (FLUSH)
      • Performance
        • GEChannel throughput is much higher than ns-3 backends
      • Observations
        • obs["recv_mask"] is all False for many steps
        • obs["observations"] contains stale data
      • Multi-UE issues
        • ValueError: Factory called for UE index N but n_ues=M
        • Some UEs have much lower packet delivery than others
NetRL
  • Search


© Copyright 2026, Pietro Talli.

Built with Sphinx using a theme provided by Read the Docs.