docker_open5gs icon indicating copy to clipboard operation
docker_open5gs copied to clipboard

The problem of connecting srsUE to srsENB

Open egortaran opened this issue 2 years ago • 6 comments

Issue Description

Hello everyone. I want, using documentation, to connect srsUE to srsENB and open5gs. Before that, I managed to connect COTS UE (One Plus 9). The phone managed to connect to the LTE network and was able to use the Internet. Now I want to connect srsUE, but I can't do it. UE detects PHY, but does not connect to the network

Technology stack

open5gs 2x Ubuntu 22.04 (Intel® Core™ i7-7700 CPU @ 3.60GHz × 8) 2x srsRAN 22.04 2x limesdr v1.4s (LimeSuite v20.10.0, SoapySDR 0.7.2)

Configs

databes (open5gs)
[{
"_id": {
  "$oid": "630d99f79a163df784831075"
},
"imsi": "001010000001339",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice": [
  {
    "sst": 1,
    "default_indicator": true,
    "_id": {
      "$oid": "62d511e515b346001610661c"
    },
    "session": [
      {
        "name": "internet",
        "type": 1,
        "_id": {
          "$oid": "62d511e515b346001610661f"
        },
        "pcc_rule": [],
        "ambr": {
          "uplink": {
            "value": 1,
            "unit": 3
          },
          "downlink": {
            "value": 1,
            "unit": 3
          }
        },
        "qos": {
          "index": 9,
          "arp": {
            "priority_level": 8,
            "pre_emption_capability": 1,
            "pre_emption_vulnerability": 1
          }
        }
      },
      {
        "name": "ims",
        "type": 1,
        "_id": {
          "$oid": "62d511e515b346001610661d"
        },
        "pcc_rule": [
          {
            "_id": {
              "$oid": "62d511e515b346001610661e"
            },
            "qos": {
              "index": 1,
              "gbr": {
                "uplink": {
                  "value": 128,
                  "unit": 1
                },
                "downlink": {
                  "value": 128,
                  "unit": 1
                }
              },
              "mbr": {
                "uplink": {
                  "value": 128,
                  "unit": 1
                },
                "downlink": {
                  "value": 128,
                  "unit": 1
                }
              },
              "arp": {
                "priority_level": 2,
                "pre_emption_capability": 2,
                "pre_emption_vulnerability": 2
              }
            },
            "flow": []
          }
        ],
        "ambr": {
          "uplink": {
            "value": 1530,
            "unit": 1
          },
          "downlink": {
            "value": 3850,
            "unit": 1
          }
        },
        "qos": {
          "index": 5,
          "arp": {
            "priority_level": 1,
            "pre_emption_capability": 1,
            "pre_emption_vulnerability": 1
          }
        }
      }
    ]
  }
],
"ambr": {
  "uplink": {
    "value": 1,
    "unit": 3
  },
  "downlink": {
    "value": 1,
    "unit": 3
  }
},
"security": {
  "k": "F17D97B3CABBB032A217E2D783F289A1",
  "amf": "8000",
  "op": "49EB0C86BDF39192AF90D327932FA9EE",
  "opc": null,
  "sqn": 128
},
"imeisv": "8601610559128512",
"msisdn": [
  "1339"
],
"schema_version": 1,
"__v": 0
},{
"_id": {
  "$oid": "630d99f79a163df784831076"
},
"imsi": "001010000001337",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice": [
  {
    "sst": 1,
    "default_indicator": true,
    "_id": {
      "$oid": "62d50ddedb04480016b27ad7"
    },
    "session": [
      {
        "name": "internet",
        "type": 1,
        "_id": {
          "$oid": "62d50ddedb04480016b27ada"
        },
        "pcc_rule": [],
        "ambr": {
          "uplink": {
            "value": 1,
            "unit": 3
          },
          "downlink": {
            "value": 1,
            "unit": 3
          }
        },
        "qos": {
          "index": 9,
          "arp": {
            "priority_level": 8,
            "pre_emption_capability": 1,
            "pre_emption_vulnerability": 1
          }
        }
      },
      {
        "name": "ims",
        "type": 1,
        "_id": {
          "$oid": "62d50ddedb04480016b27ad8"
        },
        "pcc_rule": [
          {
            "_id": {
              "$oid": "62d50ddedb04480016b27ad9"
            },
            "qos": {
              "index": 1,
              "gbr": {
                "uplink": {
                  "value": 128,
                  "unit": 1
                },
                "downlink": {
                  "value": 128,
                  "unit": 1
                }
              },
              "mbr": {
                "uplink": {
                  "value": 128,
                  "unit": 1
                },
                "downlink": {
                  "value": 128,
                  "unit": 1
                }
              },
              "arp": {
                "priority_level": 2,
                "pre_emption_capability": 2,
                "pre_emption_vulnerability": 2
              }
            },
            "flow": []
          }
        ],
        "ambr": {
          "uplink": {
            "value": 1530,
            "unit": 1
          },
          "downlink": {
            "value": 3850,
            "unit": 1
          }
        },
        "qos": {
          "index": 5,
          "arp": {
            "priority_level": 1,
            "pre_emption_capability": 1,
            "pre_emption_vulnerability": 1
          }
        }
      }
    ]
  }
],
"ambr": {
  "uplink": {
    "value": 1,
    "unit": 3
  },
  "downlink": {
    "value": 1,
    "unit": 3
  }
},
"security": {
  "k": "A6896C6EA5749B67F3A07F7E7611997D",
  "amf": "8000",
  "op": "6692021D5D8BC4D43C9F8D557192F32D",
  "opc": null,
  "sqn": 256
},
"imeisv": "3523331147151901",
"msisdn": [
  "1337"
],
"schema_version": 1,
"__v": 0
},{
"_id": {
  "$oid": "630f1f61f2b4020016a419cd"
},
"imsi": "001010000001338",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice": [
  {
    "sst": 1,
    "default_indicator": true,
    "_id": {
      "$oid": "630f1f61f2b4020016a419ce"
    },
    "session": [
      {
        "name": "internet",
        "type": 1,
        "_id": {
          "$oid": "630f1f62f2b4020016a419cf"
        },
        "pcc_rule": [],
        "ambr": {
          "uplink": {
            "value": 1,
            "unit": 3
          },
          "downlink": {
            "value": 1,
            "unit": 3
          }
        },
        "qos": {
          "index": 9,
          "arp": {
            "priority_level": 8,
            "pre_emption_capability": 1,
            "pre_emption_vulnerability": 1
          }
        }
      }
    ]
  }
],
"ambr": {
  "uplink": {
    "value": 1,
    "unit": 3
  },
  "downlink": {
    "value": 1,
    "unit": 3
  }
},
"security": {
  "k": "00112233445566778899aabbccddeeff",
  "amf": "8000",
  "op": null,
  "opc": "63BFA50EE6523365FF14C1F45F88737D"
},
"imeisv": [],
"msisdn": [],
"schema_version": 1,
"__v": 0
}]

ue.conf
#####################################################################
#                   srsUE configuration file
#####################################################################

#####################################################################
# RF configuration
#
# freq_offset: Uplink and Downlink optional frequency offset (in Hz)
# tx_gain: Transmit gain (dB).
# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
# srate: Optional fixed sampling rate (Hz), corresponding to cell bandwidth. Must be set for 5G-SA.
#
# nof_antennas:       Number of antennas per carrier (all carriers have the same number of antennas)
# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"
# 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: ""
# device_args_2:      Arguments for the RF device driver 2.
# device_args_3:      Arguments for the RF device driver 3.
# 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.
# continuous_tx:      Transmit samples continuously to the radio or on bursts (auto/yes/no).
#                     Default is auto (yes for UHD, no for rest)
#####################################################################
[rf]
freq_offset = 0
tx_gain = 56
rx_gain = 38
#srate = 11.52e6

device_name = soapy
device_args = rxant=LNAH,txant=BAND1

nof_antennas = 1

# 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

# 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
#time_adv_nsamples = auto
#continuous_tx     = auto

# Example for ZMQ-based operation with TCP transport for I/Q samples
#device_name = zmq
#device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6

#####################################################################
# EUTRA RAT configuration
#
# dl_earfcn:   Downlink EARFCN list.
#
# Optional parameters:
# dl_freq:            Override DL frequency corresponding to dl_earfcn
# ul_freq:            Override UL frequency corresponding to dl_earfcn
# nof_carriers:       Number of carriers
#####################################################################
[rat.eutra]
dl_earfcn = 3625
#nof_carriers = 2

#####################################################################
# NR RAT configuration
#
# Optional parameters:
# bands:           List of support NR bands seperated by a comma (default 78)
# nof_carriers:    Number of NR carriers (must be at least 1 for NR support)
#####################################################################
[rat.nr]
# bands = 78
# nof_carriers = 0

#####################################################################
# Packet capture configuration
#
# Packet capture is supported at the MAC, MAC_NR, and NAS layer.
# MAC-layer packets are captured to file a the compact format decoded
# by the 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
# Using the same filename for mac_filename and mac_nr_filename writes both
# MAC-LTE and MAC-NR to the same file allowing a better analysis.
# NAS-layer packets are dissected with DLT=148, and Protocol = nas-eps.
#
# enable:            Enable packet captures of layers (mac/mac_nr/nas/none) multiple option list
# mac_filename:      File path to use for MAC packet capture
# mac_nr_filename:   File path to use for MAC NR packet capture
# nas_filename:      File path to use for NAS packet capture
#####################################################################
[pcap]
enable = none
mac_filename = /tmp/ue_mac.pcap
mac_nr_filename = /tmp/ue_mac_nr.pcap
nas_filename = /tmp/ue_nas.pcap

#####################################################################
# 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, mac, rlc, pdcp, rrc, nas, gw, usim, 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 = none
phy_lib_level = info
all_hex_limit = 32
filename = /tmp/ue.log
file_max_size = -1

#####################################################################
# USIM configuration
#
# mode:   USIM mode (soft/pcsc)
# algo:   Authentication algorithm (xor/milenage)
# op/opc: 128-bit Operator Variant Algorithm Configuration Field (hex)
#         - Specify either op or opc (only used in milenage)
# k:      128-bit subscriber key (hex)
# imsi:   15 digit International Mobile Subscriber Identity
# imei:   15 digit International Mobile Station Equipment Identity
# pin:    PIN in case real SIM card is used
# reader: Specify card reader by it's name as listed by 'pcsc_scan'. If empty, try all available readers.
#####################################################################
[usim]
mode = soft
algo = milenage
opc  = 63BFA50EE6523365FF14C1F45F88737D
k    = 00112233445566778899aabbccddeeff
imsi = 001010000001338
imei = 353490069873319
#reader =
#pin  = 1234

#####################################################################
# RRC configuration
#
# ue_category:          Sets UE category (range 1-5). Default: 4
# release:              UE Release (8 to 15)
# feature_group:        Hex value of the featureGroupIndicators field in the
#                       UECapabilityInformation message. Default 0xe6041000
# mbms_service_id:      MBMS service id for autostarting MBMS reception
#                       (default -1 means disabled)
# mbms_service_port:    Port of the MBMS service
# nr_measurement_pci:   NR PCI for the simulated NR measurement. Default: 500
# nr_short_sn_support:  Announce PDCP short SN support. Default: true
#####################################################################
[rrc]
#ue_category       = 4
#release           = 8
#feature_group     = 0xe6041000
#mbms_service_id   = -1
#mbms_service_port = 4321

#####################################################################
# NAS configuration
#
# apn:               Set Access Point Name (APN)
# apn_protocol:      Set APN protocol (IPv4, IPv6 or IPv4v6.)
# user:              Username for CHAP authentication
# pass:              Password for CHAP authentication
# force_imsi_attach: Whether to always perform an IMSI attach
# eia:               List of integrity algorithms included in UE capabilities
#                      Supported: 1 - Snow3G, 2 - AES, 3 - ZUC
# eea:               List of ciphering algorithms included in UE capabilities
#                      Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
#####################################################################
[nas]
apn = internet
apn_protocol = ipv4
#user = srsuser
#pass = srspass
#force_imsi_attach = true
#eia = 1,2,3
#eea = 0,1,2,3

#####################################################################
# GW configuration
#
# netns:                Network namespace to create TUN device. Default: empty
# ip_devname:           Name of the tun_srsue device. Default: tun_srsue
# ip_netmask:           Netmask of the tun_srsue device. Default: 255.255.255.0
#####################################################################
[gw]
#netns =
#ip_devname = tun_srsue
#ip_netmask = 255.255.255.0

#####################################################################
# GUI configuration
#
# Simple GUI displaying PDSCH constellation and channel freq response.
# (Requires building with srsGUI)
# enable:               Enable the graphical interface (true/false)
#####################################################################
[gui]
enable = true

#####################################################################
# Channel emulator options:
# enable:            Enable/Disable internal Downlink/Uplink channel emulator
#
# -- AWGN Generator
# awgn.enable:       Enable/disable AWGN generator
# awgn.snr:          SNR in dB
# awgn.signal_power: Received signal power in decibels full scale (dBfs)
#
# -- 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(2pi*t/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

#####################################################################
# PHY configuration options
#
# rx_gain_offset:       RX Gain offset to add to rx_gain to calibrate RSRP readings
# prach_gain:           PRACH gain (dB). If defined, forces a gain for the tranmsission of PRACH only.,
#                       Default is to use tx_gain in [rf] section.
# cqi_max:              Upper bound on the maximum CQI to be reported. Default 15.
# cqi_fixed:            Fixes the reported CQI to a constant value. Default disabled.
# snr_ema_coeff:        Sets the SNR exponential moving average coefficient (Default 0.1)
# snr_estim_alg:        Sets the noise estimation algorithm. (Default refs)
#                          Options: pss:   use difference between received and known pss signal,
#                                   refs:  use difference between noise references and noiseless (after filtering)
#                                   empty: use empty subcarriers in the boarder of pss/sss signal
# pdsch_max_its:        Maximum number of turbo decoder iterations (Default 4)
# pdsch_meas_evm:       Measure PDSCH EVM, increases CPU load (default false)
# nof_phy_threads:      Selects the number of PHY threads (maximum 4, minimum 1, default 3)
# equalizer_mode:       Selects equalizer mode. Valid modes are: "mmse", "zf" or any
#                       non-negative real number to indicate a regularized zf coefficient.
#                       Default is MMSE.
# correct_sync_error:   Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage,
#                       improves PDSCH decoding in high SFO and high speed UE scenarios.
# sfo_ema:              EMA coefficient to average sample offsets used to compute SFO
# sfo_correct_period:   Period in ms to correct sample time to adjust for SFO
# sss_algorithm:        Selects the SSS estimation algorithm. Can choose between
#                       {full, partial, diff}.
# estimator_fil_auto:   The channel estimator smooths the channel estimate with an adaptative filter.
# estimator_fil_stddev: Sets the channel estimator smooth gaussian filter standard deviation.
# estimator_fil_order:  Sets the channel estimator smooth gaussian filter order (even values perform better).
#                       The taps are [w, 1-2w, w]
#
# snr_to_cqi_offset:    Sets an offset in the SNR to CQI table. This is used to adjust the reported CQI.
#
# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
#
# pdsch_csi_enabled:     Stores the Channel State Information and uses it for weightening the softbits. It is only
#                        used in TM1. It is True by default.
#
# pdsch_8bit_decoder:    Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
# force_ul_amplitude:    Forces the peak amplitude in the PUCCH, PUSCH and SRS (set 0.0 to 1.0, set to 0 or negative for disabling)
#
# in_sync_rsrp_dbm_th:    RSRP threshold (in dBm) above which the UE considers to be in-sync
# in_sync_snr_db_th:      SNR threshold (in dB) above which the UE considers to be in-sync
# nof_in_sync_events:     Number of PHY in-sync events before sending an in-sync event to RRC
# nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC
#
# force_N_id_2: Force using a specific PSS (set to -1 to allow all PSSs).
# force_N_id_1: Force using a specific SSS (set to -1 to allow all SSSs).
#
#####################################################################
[phy]
#rx_gain_offset      = 62
#prach_gain          = 30
#cqi_max             = 15
#cqi_fixed           = 10
#snr_ema_coeff       = 0.1
#snr_estim_alg       = refs
#pdsch_max_its       = 8    # These are half iterations
#pdsch_meas_evm      = false
nof_phy_threads     = 4
#equalizer_mode      = mmse
#correct_sync_error  = false
#sfo_ema             = 0.1
#sfo_correct_period  = 10
#sss_algorithm       = full
#estimator_fil_auto  = false
#estimator_fil_stddev  = 1.0
#estimator_fil_order  = 4
#snr_to_cqi_offset   = 0.0
#interpolate_subframe_enabled = false
#pdsch_csi_enabled  = true
#pdsch_8bit_decoder = false
#force_ul_amplitude = 0
#detect_cp          = false

#in_sync_rsrp_dbm_th    = -130.0
#in_sync_snr_db_th      = 3.0
#nof_in_sync_events     = 10
#nof_out_of_sync_events = 20

#force_N_id_2           = 1
#force_N_id_1           = 10

#####################################################################
# PHY NR specific configuration options
#
# store_pdsch_ko:       Dumps the PDSCH baseband samples into a file on KO reception
#
#####################################################################
[phy.nr]
#store_pdsch_ko = false

#####################################################################
# 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: 2
# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 7
# ema_alpha:        Alpha coefficient for the power average in auto_ema mode. Default: 1/7
#
#####################################################################
[cfr]
#enable           = false
#mode             = manual
#manual_thres     = 2.0
#strength         = 1.0
#auto_target_papr = 7.0
#ema_alpha        = 0.0143

#####################################################################
# Simulation configuration options
#
# The UE simulation supports turning on and off airplane mode in the UE.
# The actions are carried periodically until the UE is stopped.
#
# airplane_t_on_ms:   Time to leave airplane mode turned on (in ms)
#
# airplane_t_off_ms:  Time to leave airplane mode turned off (in ms)
#
#####################################################################
[sim]
#airplane_t_on_ms  = -1
#airplane_t_off_ms = -1

#####################################################################
# General configuration options
#
# metrics_csv_enable:    Write UE metrics to CSV file.
#
# metrics_period_secs:   Sets the period at which metrics are requested from the UE.
#
# metrics_csv_filename:  File path to use for CSV metrics.
#
# 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.
#
# have_tti_time_stats:   Calculate TTI execution statistics using system clock
#
# metrics_json_enable:   Write UE metrics to JSON file.
#
# metrics_json_filename: File path to use for JSON metrics.
#
#####################################################################
[general]
#metrics_csv_enable    = false
#metrics_period_secs   = 1
#metrics_csv_filename  = /tmp/ue_metrics.csv
#have_tti_time_stats   = true
#tracing_enable        = true
#tracing_filename      = /tmp/ue_tracing.log
#tracing_buffcapacity  = 1000000
#metrics_json_enable   = false
#metrics_json_filename = /tmp/ue_metrics.json


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
# 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 = 0x19B
mcc = MCC
mnc = MNC

mme_addr = MME_IP
gtp_bind_addr = SRS_ENB_IP
s1c_bind_addr = SRS_ENB_IP
n_prb = 50
tm = 4
nof_ports = 2

#####################################################################
# 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 
# drb_config:  DRB configuration file 
#####################################################################
[enb_files]
sib_config = sib.conf
rr_config  = rr.conf
drb_config = drb.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 found), "UHD", "bladeRF", "soapy" or "zmq".
# 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 = 3625
tx_gain = 56
rx_gain = 38
device_name = soapy
device_args = rxant=LNAH,txant=BAND1

# 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
#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 file a the compact format decoded 
# by the 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 file in the compact format decoded by 
# the Wireshark s1ap dissector and with DLT 150. 
# To use the dissector, edit the preferences for DLT_USER to 
# add an entry with DLT=150, Payload Protocol=s1ap.
#
# mac_enable:   Enable MAC layer packet captures (true/false)
# mac_filename: File path to use for 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.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)
# max_aggr_level:    Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
# 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 
#
#####################################################################
[scheduler]
#policy     = time_pf
#policy_args = 2
#max_aggr_level   = -1
#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

#####################################################################
# eMBMS configuration options
#
# enable:               Enable MBMS transmission in the eNB
# m1u_multiaddr:        Multicast addres the M1-U socket will register to
# m1u_if_addr:          Address of the inteferface the M1-U interface will listen 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(2pi*t/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


#####################################################################
# Expert configuration options
#
# pusch_max_its:        Maximum number of turbo decoder iterations (Default 4)
# 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.
# 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.
# pregenerate_signals:  Pregenerate uplink signals after attach. Improves CPU performance.
# 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_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)
# 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).
#
#####################################################################
[expert]
#pusch_max_its        = 8 # These are half iterations
#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
#alarms_log_enable    = true
#alarms_filename      = /tmp/enb_alarms.log
#tracing_enable       = true
#tracing_filename     = /tmp/enb_tracing.log
#tracing_buffcapacity = 1000000
#pregenerate_signals  = false
#tx_amplitude         = 0.6
#rrc_inactivity_timer = 30000
#max_nof_kos          = 100
#max_prach_offset_us  = 30
#nof_prealloc_ues     = 8
#eea_pref_list = EEA0, EEA2, EEA1
#eia_pref_list = EIA2, EIA1, EIA0

rr.conf
mac_cnfg =
{
phr_cnfg = 
{
  dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY
  periodic_phr_timer = 50;
  prohibit_phr_timer = 0;
};
ulsch_cnfg = 
{
  max_harq_tx = 4;
  periodic_bsr_timer = 20; // in ms
  retx_bsr_timer = 320;   // in ms
};

time_alignment_timer = -1; // -1 is infinity
};

phy_cnfg =
{
phich_cnfg = 
{
  duration  = "Normal";
  resources = "1/6"; 
};

pusch_cnfg_ded =
{
  beta_offset_ack_idx = 6;
  beta_offset_ri_idx  = 6;
  beta_offset_cqi_idx = 6;
};

// PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 
sched_request_cnfg =
{
  dsr_trans_max = 64;
  period = 20;          // in ms
  //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all)
  nof_prb = 1;          // number of PRBs on each extreme used for SR (total prb is twice this number)
};
cqi_report_cnfg =
{ 
  mode = "periodic";
  simultaneousAckCQI = true;
  period = 40;                   // in ms
  //subframe = [0, 10, 20, 30];  // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all)
  nof_prb = 1;
  m_ri = 8; // RI period in CQI period
};
};

cell_list =
(
{
  // rf_port = 0;
  cell_id = 0x01;
  tac = 0x0001;
  pci = 1;
  // root_seq_idx = 204;
  dl_earfcn = 3625;
  //ul_earfcn = 21400;
  ho_active = false;
  //meas_gap_period = 0; // 0 (inactive), 40 or 80
  // target_pusch_sinr = -1;
  // target_pucch_sinr = -1;
  // allowed_meas_bw = 6;

  // CA cells
  scell_list = (
    // {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true}
  )

  // Cells available for handover
  meas_cell_list =
  (
    {
      eci = 0x19C02;
      dl_earfcn = 2850;
      pci = 2;
      //direct_forward_path_available = false;
      //allowed_meas_bw = 6;
    }
  );

  // ReportCfg (only A3 supported)
  meas_report_desc = {
    a3_report_type = "RSRP";
    a3_offset = 6;
    a3_hysteresis = 0;
    a3_time_to_trigger = 480;
    rsrq_config = 4;
  };
}
// Add here more cells
);

rb.conf
// All times are in ms. Use -1 for infinity, where available

// 4G Section

// srb1_config = {
//   rlc_config = {
//     ul_am = {
//       t_poll_retx = 45;
//       poll_pdu = -1;
//       poll_byte = -1;
//       max_retx_thresh = 4;
//     };
//     dl_am = {
//       t_reordering = 35;
//       t_status_prohibit = 0;
//     };
//     enb_specific = {
//      dl_max_retx_thresh = 32;
//     };
//   };
// }

// srb2_config = {
//   rlc_config = {
//     ul_am = {
//       t_poll_retx = 45;
//       poll_pdu = -1;
//       poll_byte = -1;
//       max_retx_thresh = 4;
//     };
//     dl_am = {
//       t_reordering = 35;
//       t_status_prohibit = 0;
//     };
//     enb_specific = {
//      dl_max_retx_thresh = 32;
//     };
//   };
// }

qci_config = (
{
qci=1;
pdcp_config = {
  discard_timer = 100;                
  pdcp_sn_size = 12;                  
}
rlc_config = {
  ul_um = {
    sn_field_length = 10; 
  };
  dl_um = {
    sn_field_length = 10; 
    t_reordering    = 50;
  };
};
logical_channel_config = {
  priority = 2; 
  prioritized_bit_rate   = -1; 
  bucket_size_duration  = 100; 
  log_chan_group = 1; 
};
enb_specific = {
  dl_max_retx_thresh = 32;
};
},
{
qci=2;
pdcp_config = {
  discard_timer = 100;                
  pdcp_sn_size = 12;                  
}
rlc_config = {
  ul_um = {
    sn_field_length = 10; 
  };
  dl_um = {
    sn_field_length = 10; 
    t_reordering    = 50;
  };
};
logical_channel_config = {
  priority = 4; 
  prioritized_bit_rate   = -1; 
  bucket_size_duration  = 100; 
  log_chan_group = 1; 
};
enb_specific = {
  dl_max_retx_thresh = 32;
};
},
{
qci=5;
pdcp_config = {
  discard_timer = -1;
  status_report_required = true;
}
rlc_config = {
  ul_am = {
    t_poll_retx = 80;
    poll_pdu = 128;
    poll_byte = 125;
    max_retx_thresh = 4;
  };
  dl_am = {
    t_reordering = 80;
    t_status_prohibit = 60;
  };
};
logical_channel_config = {
  priority = 11;
  prioritized_bit_rate   = -1; 
  bucket_size_duration  = 100; 
  log_chan_group = 2; 
};
enb_specific = {
  dl_max_retx_thresh = 32;
};
},
{
qci = 7;
pdcp_config = {
  discard_timer = -1;                
  pdcp_sn_size = 12;                  
}
rlc_config = {
  ul_um = {
    sn_field_length = 10; 
  };
  dl_um = {
    sn_field_length = 10; 
    t_reordering    = 45;             
  };
};
logical_channel_config = {
  priority = 13; 
  prioritized_bit_rate   = -1; 
  bucket_size_duration  = 100; 
  log_chan_group = 2; 
};
enb_specific = {
  dl_max_retx_thresh = 32;
};
},
{
qci = 9;
pdcp_config = {
  discard_timer = 150;
  status_report_required = true;
}
rlc_config = {
  ul_am = {
    t_poll_retx = 120;
    poll_pdu = 64;
    poll_byte = 750;
    max_retx_thresh = 16;
  };
  dl_am = {
    t_reordering = 50;
    t_status_prohibit = 50;
  };
};
logical_channel_config = {
  priority = 11; 
  prioritized_bit_rate   = -1; 
  bucket_size_duration  = 100; 
  log_chan_group = 3; 
};
enb_specific = {
  dl_max_retx_thresh = 32;
};
}
);

// 5G Section
five_qi_config = (
{
five_qi = 7;
pdcp_nr_config = {
  drb = {
    discard_timer = 50;
    pdcp_sn_size_ul = 18;
    pdcp_sn_size_dl = 18;
  };
  t_reordering = 50;
};
rlc_config = {
  um_bi_dir = {
    ul_um = {
      sn_field_len = 12;
    };
    dl_um = {
      sn_field_len = 12;
      t_reassembly = 50;
    };
  };
};
},
{
five_qi = 9;
pdcp_nr_config = {
  drb = {
    discard_timer = 50;
    pdcp_sn_size_ul = 18;
    pdcp_sn_size_dl = 18;
  };
  t_reordering = 50;
};
rlc_config = {
  am = {
    ul_am = {
      sn_field_len = 12;
      t_poll_retx = 50;
      poll_pdu = 4;
      poll_byte = 3000;
      max_retx_thres = 4;
    };
    dl_am = {
      sn_field_len = 12;
      t_reassembly = 50;
      t_status_prohibit = 50;
    };
  };
};
}
);


sib.conf
sib1 =
{
  intra_freq_reselection = "Allowed";
  q_rx_lev_min = -65;
  //p_max = 3;
  cell_barred = "NotBarred"
  si_window_length = 20;
  sched_info =
  (
      {
          si_periodicity = 16;

          // comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2
          si_mapping_info = [ 3 ];
      }
  );
  system_info_value_tag = 0;
};

sib2 = 
{
  rr_config_common_sib =
  {
      rach_cnfg = 
      {
          num_ra_preambles = 52;
          preamble_init_rx_target_pwr = -104;
          pwr_ramping_step = 6;  // in dB
          preamble_trans_max = 10;
          ra_resp_win_size = 10;  // in ms
          mac_con_res_timer = 64; // in ms
          max_harq_msg3_tx = 4;
      };
      bcch_cnfg = 
      {
          modification_period_coeff = 16; // in ms
      };
      pcch_cnfg = 
      {
          default_paging_cycle = 32; // in rf
          nB = "1";
      };
      prach_cnfg =
      {
          root_sequence_index = 128;
          prach_cnfg_info =
          {
              high_speed_flag = false;
              prach_config_index = 3;
             // prach_freq_offset = 4;
              prach_freq_offset = 4;
              zero_correlation_zone_config = 5;
          };
      };
      pdsch_cnfg = 
      {
          /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1
           */
          p_b = 1;
          rs_power = 0;
      };
      pusch_cnfg = 
      {
          n_sb = 1;
          hopping_mode = "inter-subframe";
          pusch_hopping_offset = 2;
          enable_64_qam = false; // 64QAM PUSCH is not currently enabled
          ul_rs = 
          {
              cyclic_shift = 0; 
              group_assignment_pusch = 0;
              group_hopping_enabled = false; 
              sequence_hopping_enabled = false; 
          };
      };
      pucch_cnfg =
      {
          delta_pucch_shift = 1;
          n_rb_cqi = 1;
          n_cs_an = 0;
          n1_pucch_an = 12;
      };
      ul_pwr_ctrl =
      {
          p0_nominal_pusch = -85;
          alpha = 0.7;
          p0_nominal_pucch = -107;
          delta_flist_pucch =
          {
              format_1  = 0;
              format_1b = 3; 
              format_2  = 1;
              format_2a = 2;
              format_2b = 2;
          };
          delta_preamble_msg3 = 6;
      };
      ul_cp_length = "len1";
  };

  ue_timers_and_constants =
  {
      t300 = 2000; // in ms
      t301 = 100;  // in ms
      t310 = 200; // in ms
      n310 = 1;
      t311 = 10000; // in ms
      n311 = 1;
  };

  freqInfo = 
  {
      ul_carrier_freq_present = true; 
      ul_bw_present = true; 
      additional_spectrum_emission = 1; 
  };

  time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc.
};

sib3 =
{
  cell_reselection_common = {
      q_hyst = 2; // in dB
  },
  cell_reselection_serving = {
      s_non_intra_search = 3,
      thresh_serving_low = 2,
      cell_resel_prio = 6
  },
  intra_freq_reselection = {
      q_rx_lev_min = -61,
      p_max = 23,
      s_intra_search = 5,
      presence_ant_port_1 = true,
      neigh_cell_cnfg = 1,
      t_resel_eutra = 1
  }
};

#####################################################################
# sib7 configuration options (See TS 36.331)
# Contains GERAN neighbor information for CSFB and inter-rat handover.
# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted
#
# t_resel_geran: Cell reselection timer (seconds)
# carrier_freqs_info_list: A list of carrier frequency groups.
#     cell_resel_prio: Absolute priority of the carrier frequency group
#     ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring
#     q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm]
#     thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency
#     thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency
#     start_arfcn: Initial search ARFCN value
#     band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs.
#     explicit_list_of_arfcns: List of ARFCN numbers in the group
#
#####################################################################
sib7 =
{
  t_resel_geran = 1;
  carrier_freqs_info_list =
  (
      {
          cell_resel_prio = 0;
          ncc_permitted = 255;
          q_rx_lev_min = 0;
          thresh_x_high = 2;
          thresh_x_low = 2;

          start_arfcn = 871;
          band_ind = "dcs1800";
          explicit_list_of_arfcns = (
              871
          );
      }
  );
};

Logs

srsENB
Starting srsenb ... done
Opening 2 channels in RF device=soapy with args=rxant=LNAH,txant=BAND1
Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 9081C05C4292E, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=0009081C05C4292E, 
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-USB [USB 3.0] 9081C05C4292E'
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 2 channel(s)
Setting up Tx stream with 2 channel(s)
[INFO] RX LPF configured
[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 filter not active
[INFO] TX 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 filter not active
[INFO] TX LPF configured
Available device sensors: 
- clock_locked
- lms7_temp
Available sensors for Rx channel 0: 
- lo_locked
Available sensors for Rx channel 1: 
- lo_locked
Setting Rx channel 0 antenna to LNAH
Setting Rx channel 1 antenna to LNAH
Setting Tx channel 0 antenna to BAND1
Setting Tx channel 1 antenna to BAND1
State of gain elements for Rx channel 0 (AGC not supported):
- TIA: 9.00 dB
- LNA: 30.00 dB
- PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
- PAD: 0.00 dB
- IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1

==== eNodeB started ===
Type <t> to view trace
[INFO] RX LPF configured
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11.52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11.52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Setting frequency: DL=942.5 Mhz, UL=897.5 MHz for cc_idx=0 nof_prb=50
[INFO] Tx calibration finished
[INFO] Tx calibration finished
[INFO] Rx calibration finished
[INFO] Rx calibration finished

srsUE
Opening 1 channels in RF device=soapy with args=default
Supported RF device list: UHD soapy zmq file
Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 90706024D2515, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=00090706024D2515, 
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-USB [USB 3.0] 90706024D2515'
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 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 filter not active
[INFO] TX LPF configured
Available device sensors: 
- clock_locked
- lms7_temp
Available sensors for Rx channel 0: 
- lo_locked
State of gain elements for Rx channel 0 (AGC not supported):
- TIA: 9.00 dB
- LNA: 30.00 dB
- PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
- PAD: 0.00 dB
- IAMP: 0.00 dB
Rx antenna set to LNAL
Tx antenna set to BAND1
Waiting PHY to initialize ... done!
Attaching UE...
Starting plot for worker_id=0
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[INFO] Tx calibration finished
[INFO] Rx calibration finished
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,1 KHz
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
RF status: O=0, U=0, L=1
[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 filter not active
[INFO] TX LPF configured
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,2 KHz
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[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 filter not active
[INFO] TX LPF configured
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=0,2 KHz

Interesting note. srsUE finds the cell, but then nothing happens. What should be done in this situation?

egortaran avatar Sep 01 '22 09:09 egortaran

There should be a RACH attempt after it finds the cell. I dont see that in logs.

herlesupreeth avatar Sep 01 '22 10:09 herlesupreeth

Yes, I agree. What can be fixed to make RACH happen?

egortaran avatar Sep 02 '22 01:09 egortaran

I have new logs.

srsUE
Waiting PHY to initialize ... done!
Attaching UE...
Starting plot for worker_id=0
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[INFO] Tx calibration finished
[INFO] Rx calibration finished
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=1,5 KHz
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
RF status: O=0, U=0, L=1
Found PLMN:  Id=00101, TAC=1
[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 filter not active
[INFO] TX LPF configured
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,1 KHz

I can find PLMN. But I still can't connect to the network

egortaran avatar Sep 02 '22 04:09 egortaran

Sorry can#t be of much help here since I didn't try this setup. Will let you know if find anything

herlesupreeth avatar Sep 03 '22 04:09 herlesupreeth

One thing you could try is to remove providing device_args in both UE and eNB. For the most part Soapy driver will take care of these settings

device_args = rxant=LNAH,txant=BAND1

herlesupreeth avatar Sep 04 '22 16:09 herlesupreeth

Unfortunately, this does not affect the result. I did the tests

egortaran avatar Sep 05 '22 01:09 egortaran