[Describe the issue in detail]
I would want to use the ipv6 address for srsenb.
Setup Details
[Specify details of the test setup. This would help us reproduce the problem reliably]
e.g. Network configuration, Operation System, Hardware, RF front-end, library and driver versions
i have config the enb.conf like below.
ric_bind_ip: Local IP address to bind for RIC connection
ric_bind_port: Local port to bind for RIC connection
max_ric_setup_retries: Maximum amount of retries to setup the RIC connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
ric_connect_timer: Connection Retry Timer for RIC connection (seconds)
tracing_enable: Write source code tracing information to a file
tracing_filename: File path to use for tracing information
tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store
stdout_ts_enable: Prints once per second the timestamp into stdout
tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds)
max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100)
max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100)
max_prach_offset_us: Maximum allowed RACH offset (in us)
nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8)
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF
eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1)
eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0)
gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer)
ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds
ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF
rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko
s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
s1_connect_timer: Connection Retry Timer for S1 connection (seconds)
rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
use_cedron_f_est_alg: Whether to use Cedron algorithm for TA estimation or not (Default: false)
ric_bind_ip: Local IP address to bind for RIC connection
ric_bind_port: Local port to bind for RIC connection
max_ric_setup_retries: Maximum amount of retries to setup the RIC connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
ric_connect_timer: Connection Retry Timer for RIC connection (seconds)
tracing_enable: Write source code tracing information to a file
tracing_filename: File path to use for tracing information
tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store
stdout_ts_enable: Prints once per second the timestamp into stdout
tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds)
max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100)
max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100)
max_prach_offset_us: Maximum allowed RACH offset (in us)
nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8)
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF
eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1)
eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0)
gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer)
ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds
ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF
rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko
s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
s1_connect_timer: Connection Retry Timer for S1 connection (seconds)
rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
use_cedron_f_est_alg: Whether to use Cedron algorithm for TA estimation or not (Default: false)
Issue Description
[Describe the issue in detail] I would want to use the ipv6 address for srsenb.
Setup Details
[Specify details of the test setup. This would help us reproduce the problem reliably] e.g. Network configuration, Operation System, Hardware, RF front-end, library and driver versions i have config the enb.conf like below.
#####################################################################
srsENB configuration file
#####################################################################
#####################################################################
eNB configuration
#
enb_id: 20-bit eNB identifier.
mcc: Mobile Country Code
mnc: Mobile Network Code
mme_addr: IP address of MME for S1 connnection
gtp_bind_addr: Local IP address to bind for GTP connection
gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic
s1c_bind_addr: Local IP address to bind for S1AP connection
s1c_bind_port: Source port for S1AP connection (0 means any)
n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100)
tm: Transmission mode 1-4 (TM1 default)
nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4)
# ##################################################################### [enb] enb_id = 0x19A mcc = 450 mnc = 32 mme_addr = 2001:4200:0999:1000:1701:0000:0000:0014 gtp_bind_addr = 2001:4200:0a12:0002:0000:0000:0000:0026 s1c_bind_addr = 2001:4200:0a12:0002:0000:0000:0000:0026 s1c_bind_port = 0 n_prb = 50 tm = 1 nof_ports = 1
#####################################################################
eNB configuration files
#
sib_config: SIB1, SIB2 and SIB3 configuration file
note: When enabling MBMS, use the sib.conf.mbsfn configuration file which includes SIB13
rr_config: Radio Resources configuration file
rb_config: SRB/DRB configuration file
##################################################################### [enb_files] sib_config = sib.conf rr_config = rr.conf rb_config = rb.conf
#####################################################################
RF configuration
#
dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)
tx_gain: Transmit gain (dB).
rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
#
Optional parameters:
dl_freq: Override DL frequency corresponding to dl_earfcn
ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set)
device_name: Device driver family
Supported options: "auto" (uses first driver found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"
device_args: Arguments for the device driver. Options are "auto" or any string.
Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
Default for bladeRF: ""
time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay
from antenna to timestamp insertion.
Default "auto". B210 USRP: 100 samples, bladeRF: 27
##################################################################### [rf] dl_earfcn = 1934 tx_gain = 60 rx_gain = 40
device_name = soapy
For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
USRP B210: num_recv_frames=64,num_send_frames=64
And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args
For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
USRP B210: send_frame_size=512,recv_frame_size=512
device_args = auto
device_args = rxant=LNAH,txant=BAND1
time_adv_nsamples = auto
Example for ZMQ-based operation with TCP transport for I/Q samples
device_name = zmq
device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
#####################################################################
Packet capture configuration
#
MAC-layer packets are captured to a file in the compact format which can
be decoded by Wireshark. For decoding, use the UDP dissector and the UDP
heuristic dissection. Edit the preferences (Edit > Preferences >
Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with
Protocol=udp. Further, enable the heuristic dissection in UDP under:
Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp
For more information see: https://wiki.wireshark.org/MAC-LTE
Configuring this Wireshark preferences is needed for decoding the MAC PCAP
files as well as for the live network capture option.
#
Please note that this setting will by default only capture MAC
frames on dedicated channels, and not SIB. You have to build with
WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want
SIB to be part of the MAC pcap file.
#
S1AP Packets are captured to a file in the compact format which can
be decoded by the Wireshark s1ap dissector with DLT 150.
To use the dissector, edit the preferences for DLT_USER to
add an entry with DLT=150, Payload Protocol=s1ap.
#
enable: Enable MAC layer packet captures (true/false)
filename: File path to use for LTE MAC packet captures
nr_filename: File path to use for NR MAC packet captures
s1ap_enable: Enable or disable the PCAP.
s1ap_filename: File name where to save the PCAP.
#
mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false)
bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0")
bind_port: Bind port for MAC network trace (default: 5687)
client_ip: Client IP address for MAC network trace (default: "127.0.0.1")
client_port Client IP address for MAC network trace (default: 5847)
##################################################################### [pcap]
enable = false
filename = /tmp/enb_mac.pcap
nr_filename = /tmp/enb_mac_nr.pcap
s1ap_enable = false
s1ap_filename = /tmp/enb_s1ap.pcap
mac_net_enable = false
bind_ip = 0.0.0.0
bind_port = 5687
client_ip = 127.0.0.1
client_port = 5847
#####################################################################
Log configuration
#
Log levels can be set for individual layers. "all_level" sets log
level for all layers unless otherwise configured.
Format: e.g. phy_level = info
#
In the same way, packet hex dumps can be limited for each level.
"all_hex_limit" sets the hex limit for all layers unless otherwise
configured.
Format: e.g. phy_hex_limit = 32
#
Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all
Logging levels: debug, info, warning, error, none
#
filename: File path to use for log output. Can be set to stdout
to print logs to standard output
file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
If set to negative, a single log file will be created.
##################################################################### [log] all_level = warning all_hex_limit = 32 filename = /tmp/enb.log file_max_size = -1
[gui] enable = false
#####################################################################
Scheduler configuration options
#
sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf)
min_aggr_level: Optional minimum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
adaptive_aggr_level: Boolean flag to enable/disable adaptive aggregation level based on target BLER
pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified)
pdsch_max_mcs: Optional PDSCH MCS limit
pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified)
pusch_max_mcs: Optional PUSCH MCS limit
min_nof_ctrl_symbols: Minimum number of control symbols
max_nof_ctrl_symbols: Maximum number of control symbols
pucch_multiplex_enable: Allow PUCCH HARQ to collide with PUSCH and other PUCCH
pucch_harq_max_rb: Maximum number of RB to be used for PUCCH on the edges of the grid.
If defined and greater than 0, the scheduler will avoid DL PDCCH allocations if
PUCCH HARQ falls outside this region
target_bler: Target BLER (in decimal) to achieve via adaptive link
max_delta_dl_cqi: Maximum shift in CQI for adaptive DL link
max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link
adaptive_dl_mcs_step_size: Step size or learning rate used in adaptive DL MCS link
adaptive_ul_mcs_step_size: Step size or learning rate used in adaptive UL MCS link
min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1
ul_snr_avg_alpha: Exponential Average alpha coefficient used in estimation of UL SNR
init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant
init_dl_cqi: DL CQI value used before any CQI report is available to the eNB
max_sib_coderate: Upper bound on SIB and RAR grants coderate
pdcch_cqi_offset: CQI offset in derivation of PDCCH aggregation level
nr_pdsch_mcs: Optional fixed NR PDSCH MCS (ignores reported CQIs if specified)
nr_pusch_mcs: Optional fixed NR PUSCH MCS (ignores reported CQIs if specified)
# ##################################################################### [scheduler]
policy = time_pf
policy_args = 2
min_aggr_level = 0
max_aggr_level = 3
adaptive_aggr_level = false
pdsch_mcs = -1
pdsch_max_mcs = -1
pusch_mcs = -1
pusch_max_mcs = 16
min_nof_ctrl_symbols = 1
max_nof_ctrl_symbols = 3
pucch_multiplex_enable = false
pucch_harq_max_rb = 0
target_bler = 0.05
max_delta_dl_cqi = 5
max_delta_ul_snr = 5
adaptive_dl_mcs_step_size = 0.001
adaptive_ul_mcs_step_size = 0.001
min_tpc_tti_interval = 1
ul_snr_avg_alpha=0.05
init_ul_snr_value=5
init_dl_cqi=5
max_sib_coderate=0.3
pdcch_cqi_offset=0
nr_pdsch_mcs=28
nr_pusch_mcs=28
#####################################################################
Slicing configuration
enable_eMBB Enables enhanced mobile broadband (eMBB) slice in the gNodeB
enable_URLLC Enables Ultra Reliable Low Latency Communications (URLLC) slice in the gNodeB
enable_MIoT Enables Massive Internet of Things (MIoT) slice in the gNodeB
eMBB_sd eMBB slice differentiator
URLLC_sd URLLC slice differentiator
MIoT_sd MIoT slice differentiator
##################################################################### [slicing]
enable_eMBB = false
enable_URLLC = false
enable_MIoT = false
eMBB_sd = 1
URLLC_sd = 1
MIoT_sd = 1
#####################################################################
eMBMS configuration options
#
enable: Enable MBMS transmission in the eNB
m1u_multiaddr: Multicast address the M1-U socket will register to
m1u_if_addr: Address of the interface the M1-U interface will listen to for multicast packets
mcs: Modulation and Coding scheme for MBMS traffic
# ##################################################################### [embms]
enable = false
m1u_multiaddr = 239.255.0.1
m1u_if_addr = 127.0.1.201
mcs = 20
#####################################################################
Channel emulator options:
enable: Enable/disable internal Downlink/Uplink channel emulator
#
-- AWGN Generator
awgn.enable: Enable/disable AWGN generator
awgn.snr: Target SNR in dB
#
-- Fading emulator
fading.enable: Enable/disable fading simulator
fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
#
-- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) (1 + sin(2pit/period)) / 2
Maximum speed [m/s]: (delay_max - delay_min) pi 300 / period
delay.enable: Enable/disable delay simulator
delay.period_s: Delay period in seconds
delay.init_time_s: Delay initial time in seconds
delay.maximum_us: Maximum delay in microseconds
delay.minumum_us: Minimum delay in microseconds
#
-- Radio-Link Failure (RLF) Emulator
rlf.enable: Enable/disable RLF simulator
rlf.t_on_ms: Time for On state of the channel (ms)
rlf.t_off_ms: Time for Off state of the channel (ms)
#
-- High Speed Train Doppler model simulator
hst.enable: Enable/disable HST simulator
hst.period_s: HST simulation period in seconds
hst.fd_hz: Doppler frequency in Hz
hst.init_time_s: Initial time in seconds
##################################################################### [channel.dl]
enable = false
[channel.dl.awgn]
enable = false
snr = 30
[channel.dl.fading]
enable = false
model = none
[channel.dl.delay]
enable = false
period_s = 3600
init_time_s = 0
maximum_us = 100
minimum_us = 10
[channel.dl.rlf]
enable = false
t_on_ms = 10000
t_off_ms = 2000
[channel.dl.hst]
enable = false
period_s = 7.2
fd_hz = 750.0
init_time_s = 0.0
[channel.ul]
enable = false
[channel.ul.awgn]
enable = false
n0 = -30
[channel.ul.fading]
enable = false
model = none
[channel.ul.delay]
enable = false
period_s = 3600
init_time_s = 0
maximum_us = 100
minimum_us = 10
[channel.ul.rlf]
enable = false
t_on_ms = 10000
t_off_ms = 2000
[channel.ul.hst]
enable = false
period_s = 7.2
fd_hz = -750.0
init_time_s = 0.0
#####################################################################
CFR configuration options
#
The CFR module provides crest factor reduction for the transmitted signal.
#
enable: Enable or disable the CFR. Default: disabled
#
mode: manual: CFR threshold is set by cfr_manual_thres (default).
auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average.
The time constant of the averaging can be tweaked with the ema_alpha parameter.
auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average.
Use with care, as CMA's increasingly slow response may be unsuitable for most use cases.
#
strength: Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1
manual_thres: Fixed manual clipping threshold for CFR manual mode. Default: 0.5
auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 8
ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7
# ##################################################################### [cfr]
enable = false
mode = manual
manual_thres = 0.5
strength = 1
auto_target_papr = 8
ema_alpha = 0.0143
E2 Agent configuration options
#
ric_ip: IP address of the RIC controller
ric_port: Port of the RIC controller
ric_bind_ip: Local IP address to bind for RIC connection
ric_bind_port: Local port to bind for RIC connection
max_ric_setup_retries: Maximum amount of retries to setup the RIC connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
ric_connect_timer: Connection Retry Timer for RIC connection (seconds)
##################################################################### [e2_agent]
enable = false
ric_ip = 127.0.0.1
ric_port = 36421
ric_bind_ip = 127.0.0.1
ric_bind_port = 36425
max_ric_setup_retries = -1
ric_connect_timer = 10
#####################################################################
Expert configuration options
#
pusch_max_its: Maximum number of turbo decoder iterations (default: 4)
nr_pusch_max_its: Maximum number of LDPC iterations for NR (Default 10)
pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (experimental)
nof_phy_threads: Selects the number of PHY threads (maximum: 4, minimum: 1, default: 3)
metrics_period_secs: Sets the period at which metrics are requested from the eNB
metrics_csv_enable: Write eNB metrics to CSV file.
metrics_csv_filename: File path to use for CSV metrics
report_json_enable: Write eNB report to JSON file (default: disabled)
report_json_filename: Report JSON filename (default: /tmp/enb_report.json)
report_json_asn1_oct: Prints ASN1 messages encoded as an octet string instead of plain text in the JSON report file
alarms_log_enable: Enable Alarms logging (default: disabled)
alarms_filename: Alarms logging filename (default: /tmp/alarms.log)
tracing_enable: Write source code tracing information to a file
tracing_filename: File path to use for tracing information
tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store
stdout_ts_enable: Prints once per second the timestamp into stdout
tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds)
max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100)
max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100)
max_prach_offset_us: Maximum allowed RACH offset (in us)
nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8)
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF
eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1)
eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0)
gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer)
ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds
ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF
rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko
s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
s1_connect_timer: Connection Retry Timer for S1 connection (seconds)
rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
use_cedron_f_est_alg: Whether to use Cedron algorithm for TA estimation or not (Default: false)
##################################################################### [expert]
pusch_max_its = 8 # These are half iterations
nr_pusch_max_its = 10
pusch_8bit_decoder = false
nof_phy_threads = 3
metrics_period_secs = 1
metrics_csv_enable = false
metrics_csv_filename = /tmp/enb_metrics.csv
report_json_enable = true
report_json_filename = /tmp/enb_report.json
report_json_asn1_oct = false
alarms_log_enable = true
alarms_filename = /tmp/enb_alarms.log
tracing_enable = true
tracing_filename = /tmp/enb_tracing.log
tracing_buffcapacity = 1000000
stdout_ts_enable = false
tx_amplitude = 0.6
rrc_inactivity_timer = 30000
max_mac_dl_kos = 100
max_mac_ul_kos = 100
max_prach_offset_us = 30
nof_prealloc_ues = 8
rlf_release_timer_ms = 4000
lcid_padding = 3
eea_pref_list = EEA0, EEA2, EEA1
eia_pref_list = EIA2, EIA1, EIA0
gtpu_tunnel_timeout = 0
extended_cp = false
ts1_reloc_prep_timeout = 10000
ts1_reloc_overall_timeout = 10000
rlf_release_timer_ms = 4000
rlf_min_ul_snr_estim = -2
s1_setup_max_retries = -1
s1_connect_timer = 10
rx_gain_offset = 62
mac_prach_bi = 0
use_cedron_f_est_alg = false
root@piRANEnb:~/.config/srsran# root@piRANEnb:~/.config/srsran# root@piRANEnb:~/.config/srsran# root@piRANEnb:~/.config/srsran# root@piRANEnb:~/.config/srsran# ufw status Status: inactive root@piRANEnb:~/.config/srsran# cat enb.conf #####################################################################
srsENB configuration file
#####################################################################
#####################################################################
eNB configuration
#
enb_id: 20-bit eNB identifier.
mcc: Mobile Country Code
mnc: Mobile Network Code
mme_addr: IP address of MME for S1 connnection
gtp_bind_addr: Local IP address to bind for GTP connection
gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic
s1c_bind_addr: Local IP address to bind for S1AP connection
s1c_bind_port: Source port for S1AP connection (0 means any)
n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100)
tm: Transmission mode 1-4 (TM1 default)
nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4)
# ##################################################################### [enb] enb_id = 0x19A mcc = 450 mnc = 32 mme_addr = 2001:4200:0999:1000:1701:0000:0000:0014 gtp_bind_addr = 2001:4200:0a12:0002:0000:0000:0000:0026 s1c_bind_addr = 2001:4200:0a12:0002:0000:0000:0000:0026 s1c_bind_port = 0 n_prb = 50 tm = 1 nof_ports = 1
#####################################################################
eNB configuration files
#
sib_config: SIB1, SIB2 and SIB3 configuration file
note: When enabling MBMS, use the sib.conf.mbsfn configuration file which includes SIB13
rr_config: Radio Resources configuration file
rb_config: SRB/DRB configuration file
##################################################################### [enb_files] sib_config = sib.conf rr_config = rr.conf rb_config = rb.conf
#####################################################################
RF configuration
#
dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)
tx_gain: Transmit gain (dB).
rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
#
Optional parameters:
dl_freq: Override DL frequency corresponding to dl_earfcn
ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set)
device_name: Device driver family
Supported options: "auto" (uses first driver found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"
device_args: Arguments for the device driver. Options are "auto" or any string.
Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
Default for bladeRF: ""
time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay
from antenna to timestamp insertion.
Default "auto". B210 USRP: 100 samples, bladeRF: 27
##################################################################### [rf] dl_earfcn = 1934 tx_gain = 60 rx_gain = 40
device_name = soapy
For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
USRP B210: num_recv_frames=64,num_send_frames=64
And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args
For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
USRP B210: send_frame_size=512,recv_frame_size=512
device_args = auto
device_args = rxant=LNAH,txant=BAND1
time_adv_nsamples = auto
Example for ZMQ-based operation with TCP transport for I/Q samples
device_name = zmq
device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
#####################################################################
Packet capture configuration
#
MAC-layer packets are captured to a file in the compact format which can
be decoded by Wireshark. For decoding, use the UDP dissector and the UDP
heuristic dissection. Edit the preferences (Edit > Preferences >
Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with
Protocol=udp. Further, enable the heuristic dissection in UDP under:
Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp
For more information see: https://wiki.wireshark.org/MAC-LTE
Configuring this Wireshark preferences is needed for decoding the MAC PCAP
files as well as for the live network capture option.
#
Please note that this setting will by default only capture MAC
frames on dedicated channels, and not SIB. You have to build with
WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want
SIB to be part of the MAC pcap file.
#
S1AP Packets are captured to a file in the compact format which can
be decoded by the Wireshark s1ap dissector with DLT 150.
To use the dissector, edit the preferences for DLT_USER to
add an entry with DLT=150, Payload Protocol=s1ap.
#
enable: Enable MAC layer packet captures (true/false)
filename: File path to use for LTE MAC packet captures
nr_filename: File path to use for NR MAC packet captures
s1ap_enable: Enable or disable the PCAP.
s1ap_filename: File name where to save the PCAP.
#
mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false)
bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0")
bind_port: Bind port for MAC network trace (default: 5687)
client_ip: Client IP address for MAC network trace (default: "127.0.0.1")
client_port Client IP address for MAC network trace (default: 5847)
##################################################################### [pcap]
enable = false
filename = /tmp/enb_mac.pcap
nr_filename = /tmp/enb_mac_nr.pcap
s1ap_enable = false
s1ap_filename = /tmp/enb_s1ap.pcap
mac_net_enable = false
bind_ip = 0.0.0.0
bind_port = 5687
client_ip = 127.0.0.1
client_port = 5847
#####################################################################
Log configuration
#
Log levels can be set for individual layers. "all_level" sets log
level for all layers unless otherwise configured.
Format: e.g. phy_level = info
#
In the same way, packet hex dumps can be limited for each level.
"all_hex_limit" sets the hex limit for all layers unless otherwise
configured.
Format: e.g. phy_hex_limit = 32
#
Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all
Logging levels: debug, info, warning, error, none
#
filename: File path to use for log output. Can be set to stdout
to print logs to standard output
file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
If set to negative, a single log file will be created.
##################################################################### [log] all_level = warning all_hex_limit = 32 filename = /tmp/enb.log file_max_size = -1
[gui] enable = false
#####################################################################
Scheduler configuration options
#
sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf)
min_aggr_level: Optional minimum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
adaptive_aggr_level: Boolean flag to enable/disable adaptive aggregation level based on target BLER
pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified)
pdsch_max_mcs: Optional PDSCH MCS limit
pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified)
pusch_max_mcs: Optional PUSCH MCS limit
min_nof_ctrl_symbols: Minimum number of control symbols
max_nof_ctrl_symbols: Maximum number of control symbols
pucch_multiplex_enable: Allow PUCCH HARQ to collide with PUSCH and other PUCCH
pucch_harq_max_rb: Maximum number of RB to be used for PUCCH on the edges of the grid.
If defined and greater than 0, the scheduler will avoid DL PDCCH allocations if
PUCCH HARQ falls outside this region
target_bler: Target BLER (in decimal) to achieve via adaptive link
max_delta_dl_cqi: Maximum shift in CQI for adaptive DL link
max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link
adaptive_dl_mcs_step_size: Step size or learning rate used in adaptive DL MCS link
adaptive_ul_mcs_step_size: Step size or learning rate used in adaptive UL MCS link
min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1
ul_snr_avg_alpha: Exponential Average alpha coefficient used in estimation of UL SNR
init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant
init_dl_cqi: DL CQI value used before any CQI report is available to the eNB
max_sib_coderate: Upper bound on SIB and RAR grants coderate
pdcch_cqi_offset: CQI offset in derivation of PDCCH aggregation level
nr_pdsch_mcs: Optional fixed NR PDSCH MCS (ignores reported CQIs if specified)
nr_pusch_mcs: Optional fixed NR PUSCH MCS (ignores reported CQIs if specified)
# ##################################################################### [scheduler]
policy = time_pf
policy_args = 2
min_aggr_level = 0
max_aggr_level = 3
adaptive_aggr_level = false
pdsch_mcs = -1
pdsch_max_mcs = -1
pusch_mcs = -1
pusch_max_mcs = 16
min_nof_ctrl_symbols = 1
max_nof_ctrl_symbols = 3
pucch_multiplex_enable = false
pucch_harq_max_rb = 0
target_bler = 0.05
max_delta_dl_cqi = 5
max_delta_ul_snr = 5
adaptive_dl_mcs_step_size = 0.001
adaptive_ul_mcs_step_size = 0.001
min_tpc_tti_interval = 1
ul_snr_avg_alpha=0.05
init_ul_snr_value=5
init_dl_cqi=5
max_sib_coderate=0.3
pdcch_cqi_offset=0
nr_pdsch_mcs=28
nr_pusch_mcs=28
#####################################################################
Slicing configuration
enable_eMBB Enables enhanced mobile broadband (eMBB) slice in the gNodeB
enable_URLLC Enables Ultra Reliable Low Latency Communications (URLLC) slice in the gNodeB
enable_MIoT Enables Massive Internet of Things (MIoT) slice in the gNodeB
eMBB_sd eMBB slice differentiator
URLLC_sd URLLC slice differentiator
MIoT_sd MIoT slice differentiator
##################################################################### [slicing]
enable_eMBB = false
enable_URLLC = false
enable_MIoT = false
eMBB_sd = 1
URLLC_sd = 1
MIoT_sd = 1
#####################################################################
eMBMS configuration options
#
enable: Enable MBMS transmission in the eNB
m1u_multiaddr: Multicast address the M1-U socket will register to
m1u_if_addr: Address of the interface the M1-U interface will listen to for multicast packets
mcs: Modulation and Coding scheme for MBMS traffic
# ##################################################################### [embms]
enable = false
m1u_multiaddr = 239.255.0.1
m1u_if_addr = 127.0.1.201
mcs = 20
#####################################################################
Channel emulator options:
enable: Enable/disable internal Downlink/Uplink channel emulator
#
-- AWGN Generator
awgn.enable: Enable/disable AWGN generator
awgn.snr: Target SNR in dB
#
-- Fading emulator
fading.enable: Enable/disable fading simulator
fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
#
-- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) (1 + sin(2pit/period)) / 2
Maximum speed [m/s]: (delay_max - delay_min) pi 300 / period
delay.enable: Enable/disable delay simulator
delay.period_s: Delay period in seconds
delay.init_time_s: Delay initial time in seconds
delay.maximum_us: Maximum delay in microseconds
delay.minumum_us: Minimum delay in microseconds
#
-- Radio-Link Failure (RLF) Emulator
rlf.enable: Enable/disable RLF simulator
rlf.t_on_ms: Time for On state of the channel (ms)
rlf.t_off_ms: Time for Off state of the channel (ms)
#
-- High Speed Train Doppler model simulator
hst.enable: Enable/disable HST simulator
hst.period_s: HST simulation period in seconds
hst.fd_hz: Doppler frequency in Hz
hst.init_time_s: Initial time in seconds
##################################################################### [channel.dl]
enable = false
[channel.dl.awgn]
enable = false
snr = 30
[channel.dl.fading]
enable = false
model = none
[channel.dl.delay]
enable = false
period_s = 3600
init_time_s = 0
maximum_us = 100
minimum_us = 10
[channel.dl.rlf]
enable = false
t_on_ms = 10000
t_off_ms = 2000
[channel.dl.hst]
enable = false
period_s = 7.2
fd_hz = 750.0
init_time_s = 0.0
[channel.ul]
enable = false
[channel.ul.awgn]
enable = false
n0 = -30
[channel.ul.fading]
enable = false
model = none
[channel.ul.delay]
enable = false
period_s = 3600
init_time_s = 0
maximum_us = 100
minimum_us = 10
[channel.ul.rlf]
enable = false
t_on_ms = 10000
t_off_ms = 2000
[channel.ul.hst]
enable = false
period_s = 7.2
fd_hz = -750.0
init_time_s = 0.0
#####################################################################
CFR configuration options
#
The CFR module provides crest factor reduction for the transmitted signal.
#
enable: Enable or disable the CFR. Default: disabled
#
mode: manual: CFR threshold is set by cfr_manual_thres (default).
auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average.
The time constant of the averaging can be tweaked with the ema_alpha parameter.
auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average.
Use with care, as CMA's increasingly slow response may be unsuitable for most use cases.
#
strength: Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1
manual_thres: Fixed manual clipping threshold for CFR manual mode. Default: 0.5
auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 8
ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7
# ##################################################################### [cfr]
enable = false
mode = manual
manual_thres = 0.5
strength = 1
auto_target_papr = 8
ema_alpha = 0.0143
E2 Agent configuration options
#
ric_ip: IP address of the RIC controller
ric_port: Port of the RIC controller
ric_bind_ip: Local IP address to bind for RIC connection
ric_bind_port: Local port to bind for RIC connection
max_ric_setup_retries: Maximum amount of retries to setup the RIC connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
ric_connect_timer: Connection Retry Timer for RIC connection (seconds)
##################################################################### [e2_agent]
enable = false
ric_ip = 127.0.0.1
ric_port = 36421
ric_bind_ip = 127.0.0.1
ric_bind_port = 36425
max_ric_setup_retries = -1
ric_connect_timer = 10
#####################################################################
Expert configuration options
#
pusch_max_its: Maximum number of turbo decoder iterations (default: 4)
nr_pusch_max_its: Maximum number of LDPC iterations for NR (Default 10)
pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (experimental)
nof_phy_threads: Selects the number of PHY threads (maximum: 4, minimum: 1, default: 3)
metrics_period_secs: Sets the period at which metrics are requested from the eNB
metrics_csv_enable: Write eNB metrics to CSV file.
metrics_csv_filename: File path to use for CSV metrics
report_json_enable: Write eNB report to JSON file (default: disabled)
report_json_filename: Report JSON filename (default: /tmp/enb_report.json)
report_json_asn1_oct: Prints ASN1 messages encoded as an octet string instead of plain text in the JSON report file
alarms_log_enable: Enable Alarms logging (default: disabled)
alarms_filename: Alarms logging filename (default: /tmp/alarms.log)
tracing_enable: Write source code tracing information to a file
tracing_filename: File path to use for tracing information
tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store
stdout_ts_enable: Prints once per second the timestamp into stdout
tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds)
max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100)
max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100)
max_prach_offset_us: Maximum allowed RACH offset (in us)
nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8)
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF
eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1)
eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0)
gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer)
ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds
ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds
rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF
rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko
s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
s1_connect_timer: Connection Retry Timer for S1 connection (seconds)
rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
use_cedron_f_est_alg: Whether to use Cedron algorithm for TA estimation or not (Default: false)
##################################################################### [expert]
pusch_max_its = 8 # These are half iterations
nr_pusch_max_its = 10
pusch_8bit_decoder = false
nof_phy_threads = 3
metrics_period_secs = 1
metrics_csv_enable = false
metrics_csv_filename = /tmp/enb_metrics.csv
report_json_enable = true
report_json_filename = /tmp/enb_report.json
report_json_asn1_oct = false
alarms_log_enable = true
alarms_filename = /tmp/enb_alarms.log
tracing_enable = true
tracing_filename = /tmp/enb_tracing.log
tracing_buffcapacity = 1000000
stdout_ts_enable = false
tx_amplitude = 0.6
rrc_inactivity_timer = 30000
max_mac_dl_kos = 100
max_mac_ul_kos = 100
max_prach_offset_us = 30
nof_prealloc_ues = 8
rlf_release_timer_ms = 4000
lcid_padding = 3
eea_pref_list = EEA0, EEA2, EEA1
eia_pref_list = EIA2, EIA1, EIA0
gtpu_tunnel_timeout = 0
extended_cp = false
ts1_reloc_prep_timeout = 10000
ts1_reloc_overall_timeout = 10000
rlf_release_timer_ms = 4000
rlf_min_ul_snr_estim = -2
s1_setup_max_retries = -1
s1_connect_timer = 10
rx_gain_offset = 62
mac_prach_bi = 0
use_cedron_f_est_alg = false
after i start the srsenb. it showes like below.
root@piRANEnb:~/.config/srsran# srsenb enb.conf Active RF plugins: libsrsran_rf_uhd.so libsrsran_rf_soapy.so Inactive RF plugins: --- Software Radio Systems LTE eNodeB ---
Reading configuration file enb.conf...
Built in Release mode using 23.04.0.
inet_pton: Success Failed to bind on address 2001:4200:0a12:0002:0000:0000:0000:0026, port 2152: Success Error initializing EUTRA stack. Opening 1 channels in RF device=soapy with args=default Supported RF device list: UHD soapy file inet_pton: Success Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 2.0] 1D53BAB1C691F6, media=USB 2.0, module=FT601 Selecting Soapy device: 0 Detected LimeSDR. Consider using LTE rates for better RF performance. Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true' [INFO] Make connection: 'LimeSDR Mini [USB 2.0] 1D53BAB1C691F6' [INFO] Reference clock 40.00 MHz [INFO] Device name: LimeSDR-Mini [INFO] Reference: 40 MHz [INFO] LMS7002M register cache: Disabled Setting up Rx stream with 1 channel(s) Setting up Tx stream with 1 channel(s) [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis [INFO] TX LPF configured Available device sensors:
Expected Behavior
[What you expect to happen] i would want the srsenb work on ipv6
Actual Behaviour
[What happens instead e.g. error message]
after i start the srsenb. it showes like below.
root@piRANEnb:~/.config/srsran# srsenb enb.conf Active RF plugins: libsrsran_rf_uhd.so libsrsran_rf_soapy.so Inactive RF plugins: --- Software Radio Systems LTE eNodeB ---
Reading configuration file enb.conf...
Built in Release mode using 23.04.0.
inet_pton: Success Failed to bind on address 2001:4200:0a12:0002:0000:0000:0000:0026, port 2152: Success Error initializing EUTRA stack. Opening 1 channels in RF device=soapy with args=default Supported RF device list: UHD soapy file inet_pton: Success Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 2.0] 1D53BAB1C691F6, media=USB 2.0, module=FT601 Selecting Soapy device: 0 Detected LimeSDR. Consider using LTE rates for better RF performance. Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true' [INFO] Make connection: 'LimeSDR Mini [USB 2.0] 1D53BAB1C691F6' [INFO] Reference clock 40.00 MHz [INFO] Device name: LimeSDR-Mini [INFO] Reference: 40 MHz [INFO] LMS7002M register cache: Disabled Setting up Rx stream with 1 channel(s) Setting up Tx stream with 1 channel(s) [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis [INFO] TX LPF configured Available device sensors:
Steps to reproduce the problem
[Tell us how to reproduce this issue e.g. RF setup, application config files]
Additional Information
[Any additional information, configuration or data that might be necessary to reproduce the issue]