srsran / srsRAN_4G

Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g
https://www.srsran.com
GNU Affero General Public License v3.0
3.36k stars 1.1k forks source link

IS srsenb run on IPv6? #1300

Open kpsz0528 opened 3 months ago

kpsz0528 commented 3 months ago

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]