Fix common misspellings and typos
Change-Id: I403b9029f57fec3fdec2c1e2cbeac0f6eab53f24
This commit is contained in:
parent
b58fb35754
commit
b378fccef1
|
@ -45,7 +45,7 @@ We provide a
|
|||
as well as a
|
||||
[VTY Reference Manual](http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf)
|
||||
and a
|
||||
[Abis refrence MAnual](http://ftp.osmocom.org/docs/latest/osmobts-abis.pdf)
|
||||
[Abis reference MAnual](http://ftp.osmocom.org/docs/latest/osmobts-abis.pdf)
|
||||
describing the OsmoBTS specific A-bis dialect.
|
||||
|
||||
Mailing List
|
||||
|
|
|
@ -4,7 +4,7 @@ h2. generic
|
|||
|
||||
h3. trx.0.thermal-attenuation
|
||||
|
||||
The idea of this paramter is to attenuate the system output power as part of
|
||||
The idea of this parameter is to attenuate the system output power as part of
|
||||
thermal management. In some cases the PA might be passing a critical level,
|
||||
so an external control process can use this attribute to reduce the system
|
||||
output power.
|
||||
|
|
|
@ -346,7 +346,7 @@ See <<rsl_dlcx_ind_msg>>
|
|||
In the classic data model established by ETSI/3GPP for A-bis, each
|
||||
timeslot (channel) is configured using a static channel combination by
|
||||
means of A-bis OML. Particularly in presence of GPRS services, this
|
||||
is very unflexible and leads to inefficient use of air interface
|
||||
is very inflexible and leads to inefficient use of air interface
|
||||
resources.
|
||||
|
||||
As such, several methods have been implemented to overcome this
|
||||
|
|
|
@ -443,7 +443,7 @@ configuration at the BTS configuration file is (as always) very minimal,
|
|||
as in the GSM network architecture provides almost all relevant
|
||||
configuration to the BTS from the BSC.
|
||||
|
||||
An example configuratin file is provided as part of the osmo-bts source
|
||||
An example configuration file is provided as part of the osmo-bts source
|
||||
code: `doc/examples/virtual/osmobts-virtual.cfg`
|
||||
|
||||
For more information see
|
||||
|
|
|
@ -14,7 +14,7 @@ OsmoBTS software.
|
|||
|
||||
=== Command Line Options
|
||||
|
||||
Ths OsmoBTS executables (`osmo-bts-sysmo`, `osmo-bts-trx`,
|
||||
The OsmoBTS executables (`osmo-bts-sysmo`, `osmo-bts-trx`,
|
||||
`osmo-bts-octphy`, `osmo-bts-litecell15`, ...) share the following
|
||||
generic command line options:
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ Typical configurations either use OsmoBTS with OsmoBSC, or with
|
|||
OsmoNITB, as can be seen in the following figures.
|
||||
|
||||
[[fig-gsm-classic]]
|
||||
.Classic GSM archtiecture using OsmoBTS with OsmoBTS components
|
||||
.Classic GSM architecture using OsmoBTS with OsmoBTS components
|
||||
[graphviz]
|
||||
----
|
||||
digraph G {
|
||||
|
|
|
@ -95,10 +95,10 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_FIRST)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
@ -110,10 +110,10 @@ msc {
|
|||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ ULSF2:: As per 3GPP TS 05.03 section 3.9.2.4 The last 4 bursts shall not be tran
|
|||
the SID_FIRST frame is immediately followed by a speech frame. It has been observed that some phone
|
||||
does not transmit the last 4 bursts even if it is not followed by a speech frame.
|
||||
|
||||
ULSU2:: There must be exactly two supressed voice frames between the
|
||||
ULSU2:: There must be exactly two suppressed voice frames between the
|
||||
SID_FIRST and the SID_UPDATE, i.e. there's 60ms between SID_FIRST and
|
||||
SID_UPDATE.
|
||||
|
||||
|
@ -152,52 +152,52 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
@ -208,10 +208,10 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
}
|
||||
|
@ -254,10 +254,10 @@ msc {
|
|||
...;
|
||||
--- [label="Once voice is active again"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
@ -345,10 +345,10 @@ msc {
|
|||
...;
|
||||
--- [label="FACCH/F Frame During DTX"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
@ -368,10 +368,10 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind FACCH/F"];
|
||||
bts => mgw [label="FACCH/F"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst", id="ULSF2"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst", id="ULSF2"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_FIRST)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
...;
|
||||
|
@ -382,7 +382,7 @@ ULSF2:: The sub-blocks 5-8 of SID_FIRST are not transmitted, as all
|
|||
information bits are contained in sub-blocks 1-4 only
|
||||
|
||||
Note:: It has been observed with some phones that the SID_FIRST is not sent following the FACCH/F
|
||||
frame. If this case occures the No Data Frame and SID_UPDATE order resumes.
|
||||
frame. If this case occurs the No Data Frame and SID_UPDATE order resumes.
|
||||
|
||||
=== TCH/AFS Downlink (Network to MS)
|
||||
|
||||
|
@ -660,10 +660,10 @@ msc {
|
|||
phy => bts [label="PH-RTS.ind (TCH)"];
|
||||
phy <= bts [label="PH-EMPTY-FRAME.req (FACCH/F)"];
|
||||
phy <= bts [label="PH-EMPTY-FRAME.req (TCH/F)"];
|
||||
ms x- phy [label="Supressed burst"];
|
||||
ms x- phy [label="Supressed burst"];
|
||||
ms x- phy [label="Supressed burst"];
|
||||
ms x- phy [label="Supressed burst"];
|
||||
ms x- phy [label="Suppressed burst"];
|
||||
ms x- phy [label="Suppressed burst"];
|
||||
ms x- phy [label="Suppressed burst"];
|
||||
ms x- phy [label="Suppressed burst"];
|
||||
}
|
||||
----
|
||||
|
||||
|
@ -738,8 +738,8 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
|
||||
bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP1", id="ULSF1"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
|
||||
|
@ -753,8 +753,8 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
}
|
||||
|
@ -764,7 +764,7 @@ ULSF1:: Only SID_FIRST_P1 contains information so it must be the only one transm
|
|||
|
||||
NOTE:: It has been observed that not all phones transmit SID_FIRST_P2 so the PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2 is not guaranteed to be sent to the BTS.
|
||||
|
||||
ULSU1:: There must be exactly two supressed voice frames between the
|
||||
ULSU1:: There must be exactly two suppressed voice frames between the
|
||||
SID_FIRST and the SID_UPDATE, i.e. there's 60ms between SID_FIRST and
|
||||
SID_UPDATE.
|
||||
|
||||
|
@ -795,33 +795,33 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
@ -834,8 +834,8 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
}
|
||||
|
@ -999,8 +999,8 @@ msc {
|
|||
...;
|
||||
ms .. mgw [label="FACCH/H during DTX operation"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
|
@ -1026,8 +1026,8 @@ msc {
|
|||
phy => bts [label="PH-DATA.ind with empty payload"];
|
||||
bts -x mgw [label="Suppressed RTP frame"];
|
||||
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Supressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
ms -x phy [label="Suppressed L1 burst"];
|
||||
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP1"];
|
||||
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ The start-up procedure of OsmoBTS can be described as follows:
|
|||
| common | bts_controlif_setup() | Initialization of Control Interface
|
||||
| bts-specific | bts_model_ctrl_cmds_install()
|
||||
| common | telnet_init() | Initialization of telnet interface
|
||||
| common | pcu_sock_init() | Initializaiton of PCU socket
|
||||
| common | pcu_sock_init() | Initialization of PCU socket
|
||||
| common | main() | Installation of signal handlers
|
||||
| common | abis_open() | Start of the A-bis connection to BSC
|
||||
| common | phy_links_open() | Iterate over list of configured PHY links
|
||||
|
|
|
@ -250,7 +250,7 @@ struct gsm_lchan {
|
|||
} si;
|
||||
struct {
|
||||
uint8_t flags;
|
||||
/* RSL measurment result number, 0 at lchan_act */
|
||||
/* RSL measurement result number, 0 at lchan_act */
|
||||
uint8_t res_nr;
|
||||
/* current Tx power level of the BTS */
|
||||
uint8_t bts_tx_pwr;
|
||||
|
@ -556,7 +556,7 @@ struct gsm_bts {
|
|||
/* list header in net->bts_list */
|
||||
struct llist_head list;
|
||||
|
||||
/* number of ths BTS in network */
|
||||
/* number of the BTS in network */
|
||||
uint8_t nr;
|
||||
/* human readable name / description */
|
||||
char *description;
|
||||
|
@ -622,7 +622,7 @@ struct gsm_bts {
|
|||
/* is SI3 GPRS Indicator currently disabled due to lack of PCU connection? */
|
||||
bool si3_gprs_ind_disabled;
|
||||
|
||||
/* ip.accesss Unit ID's have Site/BTS/TRX layout */
|
||||
/* ip.access Unit ID's have Site/BTS/TRX layout */
|
||||
union {
|
||||
struct {
|
||||
uint16_t site_id;
|
||||
|
@ -765,7 +765,7 @@ struct gsm_bts {
|
|||
struct bts_smscb_state smscb_extended;
|
||||
int smscb_queue_tgt_len; /* ideal/target queue length */
|
||||
int smscb_queue_max_len; /* maximum queue length */
|
||||
int smscb_queue_hyst; /* hysteresis for CBCH laod indications */
|
||||
int smscb_queue_hyst; /* hysteresis for CBCH load indications */
|
||||
|
||||
int16_t min_qual_rach; /* minimum link quality (in centiBels) for Access Bursts */
|
||||
int16_t min_qual_norm; /* minimum link quality (in centiBels) for Normal Bursts */
|
||||
|
|
|
@ -173,7 +173,7 @@ static void sign_link_down(struct e1inp_line *line)
|
|||
}
|
||||
|
||||
|
||||
/* callback for incoming mesages from A-bis/IP */
|
||||
/* callback for incoming messages from A-bis/IP */
|
||||
static int sign_link_cb(struct msgb *msg)
|
||||
{
|
||||
struct e1inp_sign_link *link = msg->dst;
|
||||
|
@ -212,7 +212,7 @@ uint32_t get_signlink_remote_ip(struct e1inp_sign_link *link)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* we assume that the soket is AF_INET. As Abis/IP contains
|
||||
/* we assume that the socket is AF_INET. As Abis/IP contains
|
||||
* lots of hard-coded IPv4 addresses, this safe */
|
||||
OSMO_ASSERT(sin.sin_family == AF_INET);
|
||||
|
||||
|
@ -270,7 +270,7 @@ struct e1inp_line *abis_open(struct gsm_bts *bts, char *dst_host,
|
|||
{
|
||||
struct e1inp_line *line;
|
||||
|
||||
/* patch in various data from VTY and othe sources */
|
||||
/* patch in various data from VTY and other sources */
|
||||
line_ops.cfg.ipa.addr = dst_host;
|
||||
osmo_get_macaddr(bts_dev_info.mac_addr, "eth0");
|
||||
bts_dev_info.site_id = bts->ip_access.site_id;
|
||||
|
|
|
@ -292,7 +292,7 @@ void bts_shutdown(struct gsm_bts *bts, const char *reason)
|
|||
bts_model_trx_close(trx);
|
||||
}
|
||||
|
||||
/* shedule a timer to make sure select loop logic can run again
|
||||
/* schedule a timer to make sure select loop logic can run again
|
||||
* to dispatch any pending primitives */
|
||||
osmo_timer_schedule(&shutdown_timer, 3, 0);
|
||||
}
|
||||
|
@ -591,7 +591,7 @@ static int try_merge_imm_ass_rej(struct gsm48_imm_ass_rej *old_rej,
|
|||
return 0;
|
||||
|
||||
/* GSM 08.58, 5.7
|
||||
* -> The BTS may combine serveral IMM.ASS.REJ messages
|
||||
* -> The BTS may combine several IMM.ASS.REJ messages
|
||||
* -> Identical request refs in one message may be squeezed
|
||||
*
|
||||
* GSM 04.08, 9.1.20.2
|
||||
|
@ -669,7 +669,7 @@ struct msgb *bts_agch_dequeue(struct gsm_bts *bts)
|
|||
/*
|
||||
* Remove lower prio messages if the queue has grown too long.
|
||||
*
|
||||
* \return 0 iff the number of messages in the queue would fit into the AGCH
|
||||
* \return 0 if the number of messages in the queue would fit into the AGCH
|
||||
* reserved part of the CCCH.
|
||||
*/
|
||||
static void compact_agch_queue(struct gsm_bts *bts)
|
||||
|
|
|
@ -38,7 +38,7 @@ struct smscb_msg {
|
|||
uint8_t num_segs; /* total number of segments */
|
||||
};
|
||||
|
||||
/* determine if current queue length differes more than permitted hysteresis from target
|
||||
/* determine if current queue length differs more than permitted hysteresis from target
|
||||
* queue length. If it does, send CBCH LOAD IND */
|
||||
static void check_and_send_cbch_load(struct gsm_bts *bts, struct bts_smscb_state *bts_ss)
|
||||
{
|
||||
|
|
|
@ -135,7 +135,7 @@ void handover_rach(struct gsm_lchan *lchan, uint8_t ra, uint8_t acc_delay)
|
|||
osmo_timer_schedule(&lchan->ho.t3105, 0, bts->t3105_ms * 1000);
|
||||
}
|
||||
|
||||
/* received frist valid data frame on dedicated channel */
|
||||
/* received first valid data frame on dedicated channel */
|
||||
void handover_frame(struct gsm_lchan *lchan)
|
||||
{
|
||||
LOGPLCHAN(lchan, DHO, LOGL_INFO, "First valid frame detected\n");
|
||||
|
|
|
@ -160,7 +160,7 @@ static void queue_limit_to(const char *prefix, struct llist_head *queue, unsigne
|
|||
}
|
||||
|
||||
/* allocate a msgb containing a osmo_phsap_prim + optional l2 data
|
||||
* in order to wrap femtobts header arround l2 data, there must be enough space
|
||||
* in order to wrap femtobts header around l2 data, there must be enough space
|
||||
* in front and behind data pointer */
|
||||
struct msgb *l1sap_msgb_alloc(unsigned int l2_len)
|
||||
{
|
||||
|
@ -664,7 +664,7 @@ static int l1sap_info_meas_ind(struct gsm_bts_trx *trx,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* any L1 MPH_INFO indication prim recevied from bts model */
|
||||
/* any L1 MPH_INFO indication prim received from bts model */
|
||||
static int l1sap_mph_info_ind(struct gsm_bts_trx *trx,
|
||||
struct osmo_phsap_prim *l1sap, struct mph_info_param *info)
|
||||
{
|
||||
|
@ -738,7 +738,7 @@ static int l1sap_info_rel_cnf(struct gsm_bts_trx *trx,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* any L1 MPH_INFO confirm prim recevied from bts model */
|
||||
/* any L1 MPH_INFO confirm prim received from bts model */
|
||||
static int l1sap_mph_info_cnf(struct gsm_bts_trx *trx,
|
||||
struct osmo_phsap_prim *l1sap, struct mph_info_param *info)
|
||||
{
|
||||
|
@ -798,7 +798,7 @@ static int lchan_pdtch_ph_rts_ind_loop(struct gsm_lchan *lchan,
|
|||
int is_ccch_for_agch(struct gsm_bts_trx *trx, uint32_t fn) {
|
||||
/* Note: The number of available access grant channels is set by the
|
||||
* parameter BS_AG_BLKS_RES via system information type 3. This SI is
|
||||
* transfered to osmo-bts via RSL */
|
||||
* transferred to osmo-bts via RSL */
|
||||
return l1sap_fn2ccch_block(fn) < num_agch(trx, "PH-RTS-IND");
|
||||
}
|
||||
|
||||
|
@ -1008,7 +1008,7 @@ static bool rtppayload_is_valid(struct gsm_lchan *lchan, struct msgb *resp_msg)
|
|||
return true;
|
||||
}
|
||||
|
||||
/* TCH-RTS-IND prim recevied from bts model */
|
||||
/* TCH-RTS-IND prim received from bts model */
|
||||
static int l1sap_tch_rts_ind(struct gsm_bts_trx *trx,
|
||||
struct osmo_phsap_prim *l1sap, struct ph_tch_param *rts_ind)
|
||||
{
|
||||
|
|
|
@ -52,7 +52,7 @@ static void load_timer_cb(void *data)
|
|||
uint16_t buffer_space = paging_buffer_space(bts->paging_state);
|
||||
rsl_tx_ccch_load_ind_pch(bts, buffer_space);
|
||||
} else {
|
||||
/* This is an extenstion of TS 08.58. We don't only
|
||||
/* This is an extension of TS 08.58. We don't only
|
||||
* send load indications if the load is above threshold,
|
||||
* but we also explicitly indicate that we are below
|
||||
* threshold by using the magic value 0xffff */
|
||||
|
|
|
@ -340,7 +340,7 @@ int lchan_new_ul_meas(struct gsm_lchan *lchan, struct bts_ul_meas *ulm, uint32_t
|
|||
}
|
||||
|
||||
/* We expect the lower layers to mark AMR SID_UPDATE frames already as such.
|
||||
* In this function, we only deal with the comon logic as per the TS 45.008 tables */
|
||||
* In this function, we only deal with the common logic as per the TS 45.008 tables */
|
||||
if (!ulm->is_sub)
|
||||
ulm->is_sub = ts45008_83_is_sub(lchan, fn, false);
|
||||
|
||||
|
@ -698,7 +698,7 @@ int lchan_meas_check_compute(struct gsm_lchan *lchan, uint32_t fn)
|
|||
|
||||
lchan->meas.num_ul_meas = 0;
|
||||
|
||||
/* return 1 to indicte that the computation has been done and the next
|
||||
/* return 1 to indicate that the computation has been done and the next
|
||||
* interval begins. */
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -909,7 +909,7 @@ static int pcu_sock_cb(struct osmo_fd *bfd, unsigned int flags)
|
|||
return rc;
|
||||
}
|
||||
|
||||
/* accept connection comming from PCU */
|
||||
/* accept connection coming from PCU */
|
||||
static int pcu_sock_accept(struct osmo_fd *bfd, unsigned int flags)
|
||||
{
|
||||
struct pcu_sock_state *state = (struct pcu_sock_state *)bfd->data;
|
||||
|
|
|
@ -285,7 +285,7 @@ int rsl_tx_rf_res(struct gsm_bts_trx *trx)
|
|||
}
|
||||
|
||||
/*
|
||||
* common channel releated messages
|
||||
* common channel related messages
|
||||
*/
|
||||
|
||||
/* 8.5.1 BCCH INFOrmation is received */
|
||||
|
@ -571,7 +571,7 @@ static int rsl_rx_osmo_etws_cmd(struct gsm_bts_trx *trx, struct msgb *msg)
|
|||
* \param[out] buf Output buffer, must be caller-allocated and hold at least len + 2 or sizeof(sysinfo_buf_t) bytes
|
||||
* \param[out] valid pointer to bit-mask of 'valid' System information types
|
||||
* \param[in] current input data (L3 without L2/L1 header)
|
||||
* \param[in] osmo_si Sytstem Infrormation Type (SYSINFO_TYPE_*)
|
||||
* \param[in] osmo_si Sytstem Information Type (SYSINFO_TYPE_*)
|
||||
* \param[in] len length of \a current in octets */
|
||||
static inline void lapdm_ui_prefix(uint8_t *buf, uint32_t *valid, const uint8_t *current, uint8_t osmo_si, uint16_t len)
|
||||
{
|
||||
|
@ -593,7 +593,7 @@ static inline void lapdm_ui_prefix(uint8_t *buf, uint32_t *valid, const uint8_t
|
|||
/*! Prefix a given SACCH frame with a L2/LAPDm UI header and store it in given BTS SACCH buffer
|
||||
* \param[out] bts BTS in whose System Information State we shall store
|
||||
* \param[in] current input data (L3 without L2/L1 header)
|
||||
* \param[in] osmo_si Sytstem Infrormation Type (SYSINFO_TYPE_*)
|
||||
* \param[in] osmo_si Sytstem Information Type (SYSINFO_TYPE_*)
|
||||
* \param[in] len length of \a current in octets */
|
||||
static inline void lapdm_ui_prefix_bts(struct gsm_bts *bts, const uint8_t *current, uint8_t osmo_si, uint16_t len)
|
||||
{
|
||||
|
@ -603,7 +603,7 @@ static inline void lapdm_ui_prefix_bts(struct gsm_bts *bts, const uint8_t *curre
|
|||
/*! Prefix a given SACCH frame with a L2/LAPDm UI header and store it in given lchan SACCH buffer
|
||||
* \param[out] lchan Logical Channel in whose System Information State we shall store
|
||||
* \param[in] current input data (L3 without L2/L1 header)
|
||||
* \param[in] osmo_si Sytstem Infrormation Type (SYSINFO_TYPE_*)
|
||||
* \param[in] osmo_si Sytstem Information Type (SYSINFO_TYPE_*)
|
||||
* \param[in] len length of \a current in octets */
|
||||
static inline void lapdm_ui_prefix_lchan(struct gsm_lchan *lchan, const uint8_t *current, uint8_t osmo_si, uint16_t len)
|
||||
{
|
||||
|
|
|
@ -896,7 +896,7 @@ static int rts_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
|
|||
rc = l1sap_up(l1t->trx, l1sap);
|
||||
}
|
||||
|
||||
/* dont send, if TCH is in signalling only mode */
|
||||
/* don't send, if TCH is in signalling only mode */
|
||||
if (l1ts->chan_state[chan].rsl_cmode != RSL_CMOD_SPD_SIGN) {
|
||||
/* generate prim */
|
||||
msg = l1sap_msgb_alloc(200);
|
||||
|
@ -1266,7 +1266,7 @@ static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t,
|
|||
* There are several TDMA frames between the last processed
|
||||
* frame and currently received one. Let's walk through this
|
||||
* path and count potentially lost frames, i.e. for which
|
||||
* we didn't receive the corresponsing UL bursts.
|
||||
* we didn't receive the corresponding UL bursts.
|
||||
*
|
||||
* Start counting from the last_fn + 1.
|
||||
*/
|
||||
|
|
|
@ -317,7 +317,7 @@ static int calib_verify(struct lc15l1_hdl *fl1h, const struct calib_file_desc *d
|
|||
fseek(st->fp, 0L, SEEK_END);
|
||||
sz = ftell(st->fp);
|
||||
|
||||
/* rewind read poiner */
|
||||
/* rewind read pointer */
|
||||
fseek(st->fp, 0L, SEEK_SET);
|
||||
|
||||
/* read file */
|
||||
|
|
|
@ -584,39 +584,39 @@ DEFUN(show_mgr, show_mgr_cmd, "show manager",
|
|||
lc15bts_mgr_sensor_get_state(s_mgr->state.state), VTY_NEWLINE);
|
||||
vty_out(vty, "Current Temperatures%s", VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_SUPPLY, &temp);
|
||||
vty_out(vty, " Main Supply : %4.2f Celcius%s",
|
||||
vty_out(vty, " Main Supply : %4.2f Celsius%s",
|
||||
temp/ 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_SOC, &temp);
|
||||
vty_out(vty, " SoC : %4.2f Celcius%s",
|
||||
vty_out(vty, " SoC : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_FPGA, &temp);
|
||||
vty_out(vty, " FPGA : %4.2f Celcius%s",
|
||||
vty_out(vty, " FPGA : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_RMSDET, &temp);
|
||||
vty_out(vty, " RMSDet : %4.2f Celcius%s",
|
||||
vty_out(vty, " RMSDet : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_OCXO, &temp);
|
||||
vty_out(vty, " OCXO : %4.2f Celcius%s",
|
||||
vty_out(vty, " OCXO : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_TX0, &temp);
|
||||
vty_out(vty, " TX 0 : %4.2f Celcius%s",
|
||||
vty_out(vty, " TX 0 : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_TX1, &temp);
|
||||
vty_out(vty, " TX 1 : %4.2f Celcius%s",
|
||||
vty_out(vty, " TX 1 : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_PA0, &temp);
|
||||
vty_out(vty, " Power Amp #0: %4.2f Celcius%s",
|
||||
vty_out(vty, " Power Amp #0: %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
lc15bts_temp_get(LC15BTS_TEMP_PA1, &temp);
|
||||
vty_out(vty, " Power Amp #1: %4.2f Celcius%s",
|
||||
vty_out(vty, " Power Amp #1: %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
|
||||
|
|
|
@ -363,7 +363,7 @@ int lc15bts_firmware_reload(enum lc15bts_firmware_type type)
|
|||
case LC15BTS_FW_DSP1:
|
||||
fd = open(fw_sysfs[type], O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOGP(DFW, LOGL_ERROR, "unable ot open firmware device %s: %s\n",
|
||||
LOGP(DFW, LOGL_ERROR, "unable to open firmware device %s: %s\n",
|
||||
fw_sysfs[type], strerror(errno));
|
||||
close(fd);
|
||||
return fd;
|
||||
|
|
|
@ -1724,7 +1724,7 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
|
|||
power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0);
|
||||
}
|
||||
|
||||
/* FIXME: we actaully need to send a ACK or NACK for the OML message */
|
||||
/* FIXME: we actually need to send a ACK or NACK for the OML message */
|
||||
return oml_fom_ack_nack(msg, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -307,7 +307,7 @@ static int calib_verify(struct oc2gl1_hdl *fl1h, const struct calib_file_desc *d
|
|||
fseek(st->fp, 0L, SEEK_END);
|
||||
sz = ftell(st->fp);
|
||||
|
||||
/* rewind read poiner */
|
||||
/* rewind read pointer */
|
||||
fseek(st->fp, 0L, SEEK_SET);
|
||||
|
||||
/* read file */
|
||||
|
|
|
@ -1533,7 +1533,7 @@ static int reset_compl_cb(struct gsm_bts_trx *trx, struct msgb *resp,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* FIXME: This delays the TRX initalization by 5 sec in order to avoid the
|
||||
/* FIXME: This delays the TRX initialization by 5 sec in order to avoid the
|
||||
* occurrence of a race condition in the OML bringup. This a work around and
|
||||
* should be fixed properly. See also OS#3782, OS#2470 and OS#2469 */
|
||||
void l1if_reset_cb(void *arg)
|
||||
|
|
|
@ -512,35 +512,35 @@ DEFUN(show_mgr, show_mgr_cmd, "show manager",
|
|||
oc2gbts_mgr_sensor_get_state(s_mgr->state.state), VTY_NEWLINE);
|
||||
vty_out(vty, "Current Temperatures%s", VTY_NEWLINE);
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_SUPPLY, &temp);
|
||||
vty_out(vty, " Main Supply : %4.2f Celcius%s",
|
||||
vty_out(vty, " Main Supply : %4.2f Celsius%s",
|
||||
temp/ 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_SOC, &temp);
|
||||
vty_out(vty, " SoC : %4.2f Celcius%s",
|
||||
vty_out(vty, " SoC : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_FPGA, &temp);
|
||||
vty_out(vty, " FPGA : %4.2f Celcius%s",
|
||||
vty_out(vty, " FPGA : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
if (oc2gbts_option_get(OC2GBTS_OPTION_RMS_FWD) ||
|
||||
oc2gbts_option_get(OC2GBTS_OPTION_RMS_REFL)) {
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_RMSDET, &temp);
|
||||
vty_out(vty, " RMSDet : %4.2f Celcius%s",
|
||||
vty_out(vty, " RMSDet : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
}
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_OCXO, &temp);
|
||||
vty_out(vty, " OCXO : %4.2f Celcius%s",
|
||||
vty_out(vty, " OCXO : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_TX, &temp);
|
||||
vty_out(vty, " TX : %4.2f Celcius%s",
|
||||
vty_out(vty, " TX : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
if (oc2gbts_option_get(OC2GBTS_OPTION_PA_TEMP)) {
|
||||
oc2gbts_temp_get(OC2GBTS_TEMP_PA, &temp);
|
||||
vty_out(vty, " Power Amp : %4.2f Celcius%s",
|
||||
vty_out(vty, " Power Amp : %4.2f Celsius%s",
|
||||
temp / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
}
|
||||
|
|
|
@ -361,7 +361,7 @@ int oc2gbts_firmware_reload(enum oc2gbts_firmware_type type)
|
|||
case OC2GBTS_FW_DSP:
|
||||
fd = open(fw_sysfs[type], O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOGP(DFW, LOGL_ERROR, "unable ot open firmware device %s: %s\n",
|
||||
LOGP(DFW, LOGL_ERROR, "unable to open firmware device %s: %s\n",
|
||||
fw_sysfs[type], strerror(errno));
|
||||
close(fd);
|
||||
return fd;
|
||||
|
|
|
@ -1869,7 +1869,7 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
|
|||
|
||||
}
|
||||
|
||||
/* FIXME: we actaully need to send a ACK or NACK for the OML message */
|
||||
/* FIXME: we actually need to send a ACK or NACK for the OML message */
|
||||
return oml_fom_ack_nack(msg, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -998,7 +998,7 @@ static int handle_ph_readytosend_ind(struct octphy_hdl *fl1,
|
|||
|
||||
set_log_ctx_sapi(evt->LchId.bySAPI);
|
||||
|
||||
/* Retrive the data */
|
||||
/* Retrieve the data */
|
||||
fn = evt->ulFrameNumber;
|
||||
ts_num = (uint8_t) evt->LchId.byTimeslotNb;
|
||||
sc = (uint8_t) evt->LchId.bySubChannelNb;
|
||||
|
@ -1194,7 +1194,7 @@ static int handle_ph_data_ind(struct octphy_hdl *fl1,
|
|||
/* burst timing in 1x but PCU is expecting 4X */
|
||||
l1sap->u.data.ta_offs_256bits = data_ind->MeasurementInfo.sBurstTiming4x*64;
|
||||
snr = data_ind->MeasurementInfo.sSNRDb;
|
||||
/* FIXME: better converion formulae for SnR -> C / I?
|
||||
/* FIXME: better conversion formulae for SnR -> C / I?
|
||||
l1sap->u.data.lqual_cb = (snr ? snr : (snr - 65536)) * 10 / 256;
|
||||
LOGP(DL1C, LOGL_ERROR, "SnR: raw %d, computed %d\n", snr, l1sap->u.data.lqual_cb);
|
||||
*/
|
||||
|
@ -1681,7 +1681,7 @@ static int rx_octphy_msg(struct msgb *msg)
|
|||
}
|
||||
|
||||
/* we first need to decode the common OCTPKT header and dispatch
|
||||
* based on contrl (command/resp) or data (event=indication) */
|
||||
* based on control (command/resp) or data (event=indication) */
|
||||
switch (format) {
|
||||
case cOCTVOCNET_PKT_FORMAT_CTRL:
|
||||
ctlh = (tOCTVOCNET_PKT_CTL_HEADER *) (msg->l1h + 4);
|
||||
|
|
|
@ -506,7 +506,7 @@ static int set_ciph_compl_cb(struct octphy_hdl *fl1, struct msgb *resp, void *da
|
|||
* sub-channel, only th request contains this information :( */
|
||||
lchan = &ts->lchan[(unsigned long) data];
|
||||
|
||||
/* TODO: This state machine should be shared accross BTS models? */
|
||||
/* TODO: This state machine should be shared across BTS models? */
|
||||
switch (lchan->ciph_state) {
|
||||
case LCHAN_CIPH_RX_REQ:
|
||||
lchan->ciph_state = LCHAN_CIPH_RX_CONF;
|
||||
|
@ -1191,7 +1191,7 @@ static int app_info_compl_cb(struct octphy_hdl *fl1h, struct msgb *resp,
|
|||
|
||||
if (!no_fw_check) {
|
||||
LOGP(DL1C, LOGL_ERROR,
|
||||
"use option -I to override the check (not recommened)\n");
|
||||
"use option -I to override the check (not recommended)\n");
|
||||
LOGP(DL1C, LOGL_ERROR,
|
||||
"exiting...\n");
|
||||
exit(1);
|
||||
|
@ -1346,7 +1346,7 @@ int l1if_trx_open(struct gsm_bts_trx *trx)
|
|||
if (plink->u.octphy.tx_atten_flag) {
|
||||
oc->RfConfig.ulTxAttndB = plink->u.octphy.tx_atten_db;
|
||||
} else {
|
||||
/* Take the Tx Attn received in set radio attribures
|
||||
/* Take the Tx Attn received in set radio attributes
|
||||
* x4 is for the value in db */
|
||||
oc->RfConfig.ulTxAttndB = (trx->max_power_red) << 2;
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ static struct gsm_bts *vty_bts;
|
|||
|
||||
DEFUN(cfg_phy_hwaddr, cfg_phy_hwaddr_cmd,
|
||||
"octphy hw-addr HWADDR",
|
||||
OCT_STR "Configure the hardware addess of the OCTPHY\n"
|
||||
OCT_STR "Configure the hardware address of the OCTPHY\n"
|
||||
"hardware address in aa:bb:cc:dd:ee:ff format\n")
|
||||
{
|
||||
struct phy_link *plink = vty->index;
|
||||
|
|
|
@ -101,7 +101,7 @@ void octvc1_fill_msg_hdr(tOCTVC1_MSG_HEADER *mh, uint32_t len,
|
|||
#include <net/ethernet.h>
|
||||
|
||||
/*! \brief Initialize a packet socket
|
||||
* \param[in] tye Socket type like SOCK_RAW or SOCK_DGRAM
|
||||
* \param[in] type Socket type like SOCK_RAW or SOCK_DGRAM
|
||||
* \param[in] proto The link-layer protocol in network byte order
|
||||
* \param[in] bind_dev The name of the interface to bind to (if any)
|
||||
* \param[in] flags flags like \ref OSMO_SOCK_F_BIND
|
||||
|
|
|
@ -226,12 +226,12 @@ typedef struct
|
|||
|
||||
char szSn[16]; ///< Serial number
|
||||
uint32_t u8Rev : 8; ///< Board revision
|
||||
uint32_t u2Tcxo : 2; ///< TCXO present (0:absent, 1:present, x:unknows)
|
||||
uint32_t u2Ocxo : 2; ///< OCXO present (0:absent, 1:present, x:unknows)
|
||||
uint32_t u2GSM850 : 2; ///< GSM-850 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2GSM900 : 2; ///< GSM-900 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2DCS1800 : 2; ///< GSM-1800 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2PCS1900 : 2; ///< GSM-1900 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2Tcxo : 2; ///< TCXO present (0:absent, 1:present, x:unknown)
|
||||
uint32_t u2Ocxo : 2; ///< OCXO present (0:absent, 1:present, x:unknown)
|
||||
uint32_t u2GSM850 : 2; ///< GSM-850 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t u2GSM900 : 2; ///< GSM-900 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t u2DCS1800 : 2; ///< GSM-1800 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t u2PCS1900 : 2; ///< GSM-1900 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t : 12; ///< unused
|
||||
} __attribute__((packed)) sysInfo;
|
||||
|
||||
|
@ -307,12 +307,12 @@ typedef struct
|
|||
uint32_t u32Time; ///< Epoch time
|
||||
char szSn[16]; ///< Serial number
|
||||
uint32_t u8Rev : 8; ///< Board revision
|
||||
uint32_t u2Tcxo : 2; ///< TCXO present (0:absent, 1:present, x:unknows)
|
||||
uint32_t u2Ocxo : 2; ///< OCXO present (0:absent, 1:present, x:unknows)
|
||||
uint32_t u2GSM850 : 2; ///< GSM-850 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2GSM900 : 2; ///< GSM-900 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2DCS1800 : 2; ///< GSM-1800 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2PCS1900 : 2; ///< GSM-1900 supported (0:unsupported, 1:supported, x:unknows)
|
||||
uint32_t u2Tcxo : 2; ///< TCXO present (0:absent, 1:present, x:unknown)
|
||||
uint32_t u2Ocxo : 2; ///< OCXO present (0:absent, 1:present, x:unknown)
|
||||
uint32_t u2GSM850 : 2; ///< GSM-850 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t u2GSM900 : 2; ///< GSM-900 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t u2DCS1800 : 2; ///< GSM-1800 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t u2PCS1900 : 2; ///< GSM-1900 supported (0:unsupported, 1:supported, x:unknown)
|
||||
uint32_t : 12; ///< unused
|
||||
} __attribute__((packed)) sysInfo;
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ int set_clock_cor(int clock_cor, int calib, int source)
|
|||
return -1;
|
||||
}
|
||||
if (prim.u.rfClockSetupCnf.status != GsmL1_Status_Success) {
|
||||
printf("Clock setup was not successfull.\n");
|
||||
printf("Clock setup was not successful.\n");
|
||||
return -2;
|
||||
}
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@ int main(int argc, char **argv)
|
|||
LOGP(DLCTRL, LOGL_ERROR, "Can't connect to CTRL @ localhost:%u\n",
|
||||
OSMO_CTRL_PORT_BTS);
|
||||
else
|
||||
LOGP(DLCTRL, LOGL_NOTICE, "CTRL connected to locahost:%u\n",
|
||||
LOGP(DLCTRL, LOGL_NOTICE, "CTRL connected to localhost:%u\n",
|
||||
OSMO_CTRL_PORT_BTS);
|
||||
|
||||
sysmobts_mgr_temp_init(&manager, ccon);
|
||||
|
|
|
@ -380,11 +380,11 @@ DEFUN(show_mgr, show_mgr_cmd, "show manager",
|
|||
vty_out(vty, "Temperature control state: %s%s",
|
||||
sysmobts_mgr_temp_get_state(s_mgr->state), VTY_NEWLINE);
|
||||
vty_out(vty, "Current Temperatures%s", VTY_NEWLINE);
|
||||
vty_out(vty, " Digital: %f Celcius%s",
|
||||
vty_out(vty, " Digital: %f Celsius%s",
|
||||
sysmobts_temp_get(SYSMOBTS_TEMP_DIGITAL,
|
||||
SYSMOBTS_TEMP_INPUT) / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
vty_out(vty, " RF: %f Celcius%s",
|
||||
vty_out(vty, " RF: %f Celsius%s",
|
||||
sysmobts_temp_get(SYSMOBTS_TEMP_RF,
|
||||
SYSMOBTS_TEMP_INPUT) / 1000.0f,
|
||||
VTY_NEWLINE);
|
||||
|
@ -396,8 +396,8 @@ DEFUN(show_mgr, show_mgr_cmd, "show manager",
|
|||
is_sbts2050_master() ? "master" : "slave", VTY_NEWLINE);
|
||||
|
||||
sbts2050_uc_check_temp(&temp_pa, &temp_board);
|
||||
vty_out(vty, " sysmoBTS 2050 PA: %d Celcius%s", temp_pa, VTY_NEWLINE);
|
||||
vty_out(vty, " sysmoBTS 2050 PA: %d Celcius%s", temp_board, VTY_NEWLINE);
|
||||
vty_out(vty, " sysmoBTS 2050 PA: %d Celsius%s", temp_pa, VTY_NEWLINE);
|
||||
vty_out(vty, " sysmoBTS 2050 PA: %d Celsius%s", temp_board, VTY_NEWLINE);
|
||||
|
||||
sbts2050_uc_get_status(&status);
|
||||
vty_out(vty, "Power Status%s", VTY_NEWLINE);
|
||||
|
|
|
@ -234,14 +234,14 @@ int sysmobts_firmware_reload(enum sysmobts_firmware_type type)
|
|||
|
||||
fd_in = open(name, O_RDONLY);
|
||||
if (fd_in < 0) {
|
||||
LOGP(DFW, LOGL_ERROR, "unable ot open firmware file %s: %s\n",
|
||||
LOGP(DFW, LOGL_ERROR, "unable to open firmware file %s: %s\n",
|
||||
name, strerror(errno));
|
||||
return fd_in;
|
||||
}
|
||||
|
||||
fd_out = open(fw_devs[type], O_WRONLY);
|
||||
if (fd_out < 0) {
|
||||
LOGP(DFW, LOGL_ERROR, "unable ot open firmware device %s: %s\n",
|
||||
LOGP(DFW, LOGL_ERROR, "unable to open firmware device %s: %s\n",
|
||||
fw_devs[type], strerror(errno));
|
||||
close(fd_in);
|
||||
return fd_out;
|
||||
|
|
|
@ -1746,7 +1746,7 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
|
|||
power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0);
|
||||
}
|
||||
|
||||
/* FIXME: we actaully need to send a ACK or NACK for the OML message */
|
||||
/* FIXME: we actually need to send a ACK or NACK for the OML message */
|
||||
return oml_fom_ack_nack(msg, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ static int get_clock_info(struct ctrl_cmd *cmd, void *data)
|
|||
SuperFemto_Prim_t *sysp = msgb_sysprim(msg);
|
||||
struct ctrl_cmd_def *cd;
|
||||
|
||||
/* geneate a deferred control command */
|
||||
/* generate a deferred control command */
|
||||
cd = ctrl_cmd_def_make(fl1h, cmd, NULL, 10);
|
||||
|
||||
sysp->id = SuperFemto_PrimId_RfClockInfoReq;
|
||||
|
@ -136,7 +136,7 @@ static int set_clock_info(struct ctrl_cmd *cmd, void *data)
|
|||
SuperFemto_Prim_t *sysp = msgb_sysprim(msg);
|
||||
struct ctrl_cmd_def *cd;
|
||||
|
||||
/* geneate a deferred control command */
|
||||
/* generate a deferred control command */
|
||||
cd = ctrl_cmd_def_make(fl1h, cmd, NULL, 10);
|
||||
|
||||
/* Set GPS/PPS as reference */
|
||||
|
@ -197,7 +197,7 @@ static int get_clock_corr(struct ctrl_cmd *cmd, void *data)
|
|||
* prefer to to ask the actual L1 about the currently used value to
|
||||
* avoid any mistakes */
|
||||
|
||||
/* geneate a deferred control command */
|
||||
/* generate a deferred control command */
|
||||
cd = ctrl_cmd_def_make(fl1h, cmd, NULL, 10);
|
||||
|
||||
sysp->id = SuperFemto_PrimId_RfClockInfoReq;
|
||||
|
@ -241,7 +241,7 @@ static int set_clock_corr(struct ctrl_cmd *cmd, void *data)
|
|||
|
||||
fl1h->clk_cal = atoi(cmd->value);
|
||||
|
||||
/* geneate a deferred control command */
|
||||
/* generate a deferred control command */
|
||||
cd = ctrl_cmd_def_make(fl1h, cmd, NULL, 10);
|
||||
|
||||
sysp->id = SuperFemto_PrimId_RfClockSetupReq;
|
||||
|
|
|
@ -195,7 +195,7 @@ void trx_if_init(struct trx_l1h *l1h)
|
|||
|
||||
/*! Send a new TRX control command.
|
||||
* \param[inout] l1h TRX Layer1 handle to which to send command
|
||||
* \param[in] criticial
|
||||
* \param[in] critical
|
||||
* \param[in] cb callback function to be called when valid response is
|
||||
* received. Type of cb depends on type of message.
|
||||
* \param[in] cmd zero-terminated string containing command
|
||||
|
@ -1166,7 +1166,7 @@ static uint16_t compute_port(struct phy_instance *pinst, int remote, int is_data
|
|||
return plink->u.osmotrx.base_port_local + (pinst->num << 1) + inc;
|
||||
}
|
||||
|
||||
/*! open a TRX interface. creates contro + data sockets */
|
||||
/*! open a TRX interface. creates control + data sockets */
|
||||
static int trx_if_open(struct trx_l1h *l1h)
|
||||
{
|
||||
struct phy_instance *pinst = l1h->phy_inst;
|
||||
|
|
|
@ -208,7 +208,7 @@ int bts_model_phy_link_open(struct phy_link *plink)
|
|||
llist_for_each_entry(pinst, &plink->instances, list) {
|
||||
trx_sched_init(&pinst->u.virt.sched, pinst->trx);
|
||||
/* Only start the scheduler for the transceiver on C0.
|
||||
* If we have multiple tranceivers, CCCH is always on C0
|
||||
* If we have multiple transceivers, CCCH is always on C0
|
||||
* and has to be auto active */
|
||||
/* Other TRX are activated via OML by a PRIM_INFO_MODIFY
|
||||
* / PRIM_INFO_ACTIVATE */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Scheduler worker functiosn for Virtua OsmoBTS */
|
||||
/* Scheduler worker functions for Virtua OsmoBTS */
|
||||
|
||||
/* (C) 2015-2017 by Harald Welte <laforge@gnumonks.org>
|
||||
* (C) 2017 Sebastian Stumpf <sebastian.stumpf87@googlemail.com>
|
||||
|
@ -64,7 +64,7 @@ static void tx_to_virt_um(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
|
|||
{
|
||||
const struct trx_chan_desc *chdesc = &trx_chan_desc[chan];
|
||||
struct msgb *outmsg; /* msg to send with gsmtap header prepended */
|
||||
uint16_t arfcn = l1t->trx->arfcn; /* ARFCN of the tranceiver the message is send with */
|
||||
uint16_t arfcn = l1t->trx->arfcn; /* ARFCN of the transceiver the message is send with */
|
||||
uint8_t signal_dbm = 63; /* signal strength, 63 is best */
|
||||
uint8_t snr = 63; /* signal noise ratio, 63 is best */
|
||||
uint8_t *data = msgb_l2(msg); /* data to transmit (whole message without l1 header) */
|
||||
|
|
|
@ -306,7 +306,7 @@ static void test_is_meas_complete(void)
|
|||
* received. The process must still go on when measurement indications (blocks)
|
||||
* are lost or otherwise spaced out. Even the complete absence of the
|
||||
* measurement indications from the SACCH which are used to detect the interval
|
||||
* end must not keep the interval from beeing processed. */
|
||||
* end must not keep the interval from being processed. */
|
||||
void test_lchan_meas_process_measurement(bool no_sacch, bool dropouts)
|
||||
{
|
||||
struct gsm_lchan *lchan = &trx->ts[2].lchan[0];
|
||||
|
|
|
@ -238,7 +238,7 @@ int main(int argc, char **argv)
|
|||
|
||||
/* test error case / excess power (40 dBm is too much) */
|
||||
test_power_ramp(trx, 40);
|
||||
/* test actaul ramping to full 33 dBm */
|
||||
/* test actual ramping to full 33 dBm */
|
||||
test_power_ramp(trx, 33);
|
||||
|
||||
while (1) {
|
||||
|
|
Loading…
Reference in New Issue