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.47k stars 1.14k forks source link

No signal found with bladerf #403

Closed Thanosss closed 4 years ago

Thanosss commented 4 years ago

Bladerf has established a connection with PC. after enabling srsenb, enter view trace to output the following contents, but it is unable to find signals through mobile devices The operation log is as follows:

sudo srsenb 

Built in Release mode using commit c2de0c6 on branch master.

---  Software Radio Systems LTE eNodeB  ---

Reading configuration file /home/thanos/.config/srslte/enb.conf...
Opening 1 RF devices with 1 RF channels...
Opening bladeRF...
Set RX sampling rate 1.92 Mhz, filter BW: 2.50 Mhz
Setting frequency: DL=2685.0 Mhz, UL=2565.0 MHz
set TX frequency to 2684999936
set RX frequency to 2564999936
Setting Sampling frequency 11.52 MHz

==== eNodeB started ===
Type <t> to view trace
S1 Setup Failure. Cause: misc - unknown-PLMN
Set RX sampling rate 11.52 Mhz, filter BW: 10.00 Mhz
t
Enter t to stop trace.
RF status: O=982, U=0, L=0
RF status: O=978, U=0, L=0
RF status: O=984, U=0, L=0
suttonpd commented 4 years ago

The eNodeB was unable to establish an S1 connection with the EPC ("S1 Setup Failure. Cause: misc - unknown-PLMN").

Thanosss commented 4 years ago

Hello, what is the cause of this problem?(Sending S1 Setup Failure - Unknown PLMN)

alvasMan commented 4 years ago

Can you double check if the MCC and the MNC match on the eNB and the EPC?

kschepps commented 10 months ago

I'm also seeing Sending S1 Setup Failure - Unknown PLMN. I have wiped this PC numerous times and followed various tutorials, but this is as far as I'm able to get.

Edit: Sorry about the formatting. I can't figure out how to get the code boxes to show properly

srsenb output: `Setting cpu: 0 Setting cpu: 1 Setting cpu: 2 Setting cpu: 3 Setting cpu: 4 Setting cpu: 5 Setting cpu: 6 Setting cpu: 7 Setting cpu: 8 Setting cpu: 9 Setting cpu: 10 Setting cpu: 11 Setting cpu: 12 Setting cpu: 13 Setting cpu: 14 Setting cpu: 15 -e BladeRF Successfully Detected! FPGA already loaded Active RF plugins: libsrsran_rf_blade.so Inactive RF plugins: --- Software Radio Systems LTE eNodeB ---

Couldn't open , trying /root/.config/srsran/enb.conf Couldn't open /root/.config/srsran/enb.conf either, trying /etc/srsran/enb.conf Reading configuration file /etc/srsran/enb.conf... Couldn't open sib.conf, trying /root/.config/srsran/sib.conf Couldn't open /root/.config/srsran/sib.conf either, trying /etc/srsran/sib.conf Couldn't open rr.conf, trying /root/.config/srsran/rr.conf Couldn't open /root/.config/srsran/rr.conf either, trying /etc/srsran/rr.conf Couldn't open rb.conf, trying /root/.config/srsran/rb.conf Couldn't open /root/.config/srsran/rb.conf either, trying /etc/srsran/rb.conf srsLog error - Unable to create log file "/tmp/enb.log": Permission denied

Built in Release mode using commit eea87b1d8 on branch master.

/files/LTE_Tower/srsRAN/srsenb/src/enb_cfg_parser.cc:1881: Force DL EARFCN for cell PCI=1 to 2100 Opening 1 channels in RF device=bladeRF with args=default Supported RF device list: bladeRF file Opening bladeRF... S1setup failed Failed to initiate S1 connection. Attempting reconnection in 10 seconds S1 Setup Failure. Cause: misc - unknown-PLMN Set RX sampling rate 1.92 Mhz, filter BW: 1.92 Mhz

==== eNodeB started === Type to view trace Starting plot for worker_id=0 Creating plot window 'srsENB PCI 1'... QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' Set RX sampling rate 11.52 Mhz, filter BW: 9.22 Mhz Setting frequency: DL=2125.0 Mhz, UL=1725.0 MHz for cc_idx=0 nof_prb=50 set TX frequency to 2125000000 set RX frequency to 1724999998 S1setup failed Failed to initiate S1 connection. Attempting reconnection in 10 seconds S1 Setup Failure. Cause: misc - unknown-PLMN `


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 = 0x19B mcc = 001 mnc = 01

mme_addr = 127.0.1.100

mme_addr = 127.0.0.2 gtp_bind_addr = 127.0.1.1 s1c_bind_addr = 127.0.1.1 s1c_bind_port = 0 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

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 = 2100 tx_gain = 80 rx_gain = 40

device_name = bladeRF

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 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.

#

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 = true

#####################################################################

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

#####################################################################

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

#####################################################################

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

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_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

# ##################################################################### [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

pregenerate_signals = false

tx_amplitude = 0.6

rrc_inactivity_timer = 30000

max_mac_dl_kos = 100

max_mac_ul_kos = 100

max_prach_offset_us = 90

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`


mme.yaml: `\logger: file: /var/log/open5gs/mme.log

level: info # fatal|error|warn|info(default)|debug|trace

global: max: ue: 1024 # The number of UE can be increased depending on memory size.

peer: 64

mme: freeDiameter: /etc/freeDiameter/mme.conf s1ap: server:

################################################################################

S1AP Server

################################################################################

o Listen on address available in eth0 interface

ngap:

server:

- dev: eth0

# ################################################################################

GTP-C Server

################################################################################

o Listen on IPv4 and IPv6

gtpc:

server:

- address: 127.0.0.2

- address: ::1

# ################################################################################

GTP-C Client

################################################################################

o SGW selection by eNodeB TAC

(either single TAC or multiple TACs, DECIMAL representation)

gtpc:

client:

sgwc:

- address: 127.0.0.3

tac: 26000

- address: 127.0.2.2

tac: [25000, 27000, 28000]

#

o SGW selection by e_cell_id(28bit)

(either single or multiple e_cell_id, HEX representation)

gtpc:

client:

sgwc:

- address: 127.0.0.3

e_cell_id: abcde01

- address: 127.0.2.2

e_cell_id: [12345, a9413, 98765]

#

o SMF selection by APN

gtpc:

client:

smf:

- address: 127.0.0.4

apn: internet

- address: 127.0.0.5

apn: volte

#

o SMF selection by eNodeB TAC

(either single TAC or multiple TACs, DECIMAL representation)

gtpc:

client:

smf:

- address: 127.0.0.4

tac: 26000

- address: 127.0.2.4

tac: [25000, 27000, 28000]

#

o SMF selection by e_cell_id(28bit)

(either single or multiple e_cell_id, HEX representation)

gtpc:

client:

smf:

- address: 127.0.0.4

e_cell_id: abcde01

- address: 127.0.2.4

e_cell_id: [12345, a9413, 98765]

#

o One SGSN is defined.

If prefer_ipv4 is not true, [fd69:f21d:873c:fa::2] is selected.

gtpc:

client:

sgsn:

- address:

- 127.0.0.3

- fd69:f21d:873c:fa::2

routes:

- rai:

lai:

plmn_id:

mcc: 001

mnc: 01

lac: 43690

rac: 187

ci: 1223

# #

o Two SGSNs are defined. Last one is used by default if no

matching RAI+CI route is found.

gtpc:

client:

sgsn:

- address:

- 127.0.0.3

- fd69:f21d:873c:fa::2

routes:

- rai:

lai:

plmn_id:

mcc: 001

mnc: 01

lac: 43690

rac: 187

ci: 1223

- name: sgsn3.open5gs.org

default_route: true

# ################################################################################

SGaAP Server

################################################################################

o MSC/VLR

sgsap:

server:

- address: 127.0.0.2

map:

tai:

plmn_id:

mcc: 001

mnc: 01

tac: 4131

lai:

plmn_id:

mcc: 001

mnc: 01

lac: 43691

map:

tai:

plmn_id:

mcc: 002

mnc: 02

tac: 4132

lai:

plmn_id:

mcc: 002

mnc: 02

lac: 43692

- address: msc.open5gs.org

map:

tai:

plmn_id:

mcc: 001

mnc: 01

tac: 4133

lai:

plmn_id:

mcc: 002

mnc: 02

lac: 43693

# ################################################################################

3GPP Specification

################################################################################

o GUMMEI

gummei:

- plmn_id:

mcc: 001

mnc: 01

mme_gid: 2

mme_code: 1

- plmn_id:

- mcc: 002

mnc: 02

- mcc: 003

mnc: 03

mme_gid: [3, 4]

mme_code:

- 2

- 3

#

o TAI

tai:

- plmn_id:

mcc: 001

mnc: 01

tac: [1, 3, 5]

tai:

- plmn_id:

mcc: 002

mnc: 02

tac: [6-10, 15-18]

tai:

- plmn_id:

mcc: 003

mnc: 03

tac: 20

- plmn_id:

mcc: 004

mnc: 04

tac: 21

tai:

- plmn_id:

mcc: 005

mnc: 05

tac: [22, 28]

- plmn_id:

mcc: 006

mnc: 06

tac: [30-32, 34, 36-38, 40-42, 44, 46, 48]

- plmn_id:

mcc: 007

mnc: 07

tac: 50

- plmn_id:

mcc: 008

mnc: 08

tac: 60

- plmn_id:

mcc: 009

mnc: 09

tac: [70, 80]

#

o Access Control

access_control:

- default_reject_cause: 13

- plmn_id:

reject_cause: 15

mcc: 001

mnc: 01

- plmn_id:

mcc: 002

mnc: 02

- plmn_id:

mcc: 999

mnc: 70

#

o Relative Capacity

relative_capacity: 100`