octphy: set tx/rx antenne IDs via VTY
add support for the TX/RX antenna-id feature that has been introduced with release OCTSDR-2G-02.07.00-B1314-BETA. The user can now set individual ID numbers for the TX and for the RX antenna. Change-Id: I872fe3c4d7b593358a4ce2f02cf0726611b9f3aa
This commit is contained in:
parent
e4403464ed
commit
25742a5929
|
@ -112,6 +112,13 @@ if test "$enable_octphy" = "yes" ; then
|
|||
[],
|
||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||
|
||||
AC_CHECK_MEMBER([tOCTVC1_GSM_RF_CONFIG.ulTxAntennaId],
|
||||
AC_DEFINE([OCTPHY_USE_ANTENNA_ID],
|
||||
[1],
|
||||
[Define to 1 if your octphy header files support antenna ids in tOCTVC1_GSM_RF_CONFIG]),
|
||||
[],
|
||||
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
||||
|
||||
CPPFLAGS=$oldCPPFLAGS
|
||||
fi
|
||||
|
||||
|
|
|
@ -53,6 +53,10 @@ struct phy_link {
|
|||
|
||||
/* configuration */
|
||||
uint32_t rf_port_index;
|
||||
#if OCTPHY_USE_ANTENNA_ID == 1
|
||||
uint32_t rx_ant_id;
|
||||
uint32_t tx_ant_id;
|
||||
#endif
|
||||
uint32_t rx_gain_db;
|
||||
bool tx_atten_flag;
|
||||
uint32_t tx_atten_db;
|
||||
|
|
|
@ -1394,6 +1394,11 @@ int l1if_trx_open(struct gsm_bts_trx *trx)
|
|||
oc->RfConfig.ulTxAttndB = (trx->max_power_red) << 2;
|
||||
}
|
||||
|
||||
#if OCTPHY_USE_ANTENNA_ID == 1
|
||||
oc->RfConfig.ulTxAntennaId = plink->u.octphy.tx_ant_id;
|
||||
oc->RfConfig.ulRxAntennaId = plink->u.octphy.rx_ant_id;
|
||||
#endif
|
||||
|
||||
#if OCTPHY_MULTI_TRX == 1
|
||||
LOGP(DL1C, LOGL_INFO, "Tx TRX-OPEN.req(trx=%u, rf_port=%u, arfcn=%u, "
|
||||
"center=%u, tsc=%u, rx_gain=%u, tx_atten=%u)\n",
|
||||
|
|
|
@ -117,6 +117,42 @@ DEFUN(cfg_phy_rf_port_idx, cfg_phy_rf_port_idx_cmd,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
#if OCTPHY_USE_ANTENNA_ID == 1
|
||||
DEFUN(cfg_phy_rx_ant_id, cfg_phy_rx_ant_id_cmd,
|
||||
"octphy rx-ant-id <0-1>",
|
||||
OCT_STR "Configure the RX Antenna for this TRX\n" "RX Antenna Id\n")
|
||||
{
|
||||
struct phy_link *plink = vty->index;
|
||||
|
||||
if (plink->state != PHY_LINK_SHUTDOWN) {
|
||||
vty_out(vty, "Can only reconfigure a PHY link that is down%s",
|
||||
VTY_NEWLINE);
|
||||
return CMD_WARNING;
|
||||
}
|
||||
|
||||
plink->u.octphy.rx_ant_id = atoi(argv[0]);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(cfg_phy_tx_ant_id, cfg_phy_tx_ant_id_cmd,
|
||||
"octphy tx-ant-id <0-1>",
|
||||
OCT_STR "Configure the TX Antenna for this TRX\n" "TX Antenna Id\n")
|
||||
{
|
||||
struct phy_link *plink = vty->index;
|
||||
|
||||
if (plink->state != PHY_LINK_SHUTDOWN) {
|
||||
vty_out(vty, "Can only reconfigure a PHY link that is down%s",
|
||||
VTY_NEWLINE);
|
||||
return CMD_WARNING;
|
||||
}
|
||||
|
||||
plink->u.octphy.tx_ant_id = atoi(argv[0]);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
DEFUN(cfg_phy_rx_gain_db, cfg_phy_rx_gain_db_cmd,
|
||||
"octphy rx-gain <0-73>",
|
||||
OCT_STR "Configure the Rx Gain in dB\n"
|
||||
|
@ -300,6 +336,14 @@ void bts_model_config_write_phy(struct vty *vty, struct phy_link *plink)
|
|||
|
||||
vty_out(vty, " octphy rf-port-index %u%s", plink->u.octphy.rf_port_index,
|
||||
VTY_NEWLINE);
|
||||
|
||||
#if OCTPHY_USE_ANTENNA_ID == 1
|
||||
vty_out(vty, " octphy tx-ant-id %u%s", plink->u.octphy.tx_ant_id,
|
||||
VTY_NEWLINE);
|
||||
|
||||
vty_out(vty, " octphy rx-ant-id %u%s", plink->u.octphy.rx_ant_id,
|
||||
VTY_NEWLINE);
|
||||
#endif
|
||||
}
|
||||
|
||||
void bts_model_config_write_phy_inst(struct vty *vty, struct phy_instance *pinst)
|
||||
|
@ -347,6 +391,10 @@ int bts_model_vty_init(struct gsm_bts *bts)
|
|||
install_element(PHY_NODE, &cfg_phy_hwaddr_cmd);
|
||||
install_element(PHY_NODE, &cfg_phy_netdev_cmd);
|
||||
install_element(PHY_NODE, &cfg_phy_rf_port_idx_cmd);
|
||||
#if OCTPHY_USE_ANTENNA_ID == 1
|
||||
install_element(PHY_NODE, &cfg_phy_rx_ant_id_cmd);
|
||||
install_element(PHY_NODE, &cfg_phy_tx_ant_id_cmd);
|
||||
#endif
|
||||
install_element(PHY_NODE, &cfg_phy_rx_gain_db_cmd);
|
||||
install_element(PHY_NODE, &cfg_phy_tx_atten_db_cmd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue