Configure HNB-Identity over VTY and use it in HnbRegisterRequest
Change-Id: Ida47bbb85b5438a2ec9805005bc2ab834c79b765
This commit is contained in:
parent
e2c17101be
commit
c475158e0c
|
@ -55,6 +55,7 @@ struct hnb_chan {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hnb {
|
struct hnb {
|
||||||
|
char *identity; /* HNB-Identity */
|
||||||
struct osmo_plmn_id plmn;
|
struct osmo_plmn_id plmn;
|
||||||
uint16_t cell_identity;
|
uint16_t cell_identity;
|
||||||
uint16_t lac;
|
uint16_t lac;
|
||||||
|
|
|
@ -116,6 +116,7 @@ struct hnb *hnb_alloc(void *tall_ctx)
|
||||||
if (!hnb)
|
if (!hnb)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
hnb->identity = talloc_strdup(hnb, "OsmoHNodeB");
|
||||||
hnb->plmn = (struct osmo_plmn_id){
|
hnb->plmn = (struct osmo_plmn_id){
|
||||||
.mcc = 1,
|
.mcc = 1,
|
||||||
.mnc = 1,
|
.mnc = 1,
|
||||||
|
|
|
@ -157,7 +157,6 @@ void hnb_send_register_req(struct hnb *hnb)
|
||||||
uint8_t rac;
|
uint8_t rac;
|
||||||
uint32_t cid;
|
uint32_t cid;
|
||||||
uint8_t plmn[3];
|
uint8_t plmn[3];
|
||||||
char identity[50] = "ATestHNB@";
|
|
||||||
|
|
||||||
HNBAP_HNBRegisterRequestIEs_t request;
|
HNBAP_HNBRegisterRequestIEs_t request;
|
||||||
memset(&request, 0, sizeof(request));
|
memset(&request, 0, sizeof(request));
|
||||||
|
@ -167,8 +166,8 @@ void hnb_send_register_req(struct hnb *hnb)
|
||||||
asn1_u8_to_str(&request.rac, &rac, hnb->rac);
|
asn1_u8_to_str(&request.rac, &rac, hnb->rac);
|
||||||
asn1_u28_to_bitstring(&request.cellIdentity, &cid, hnb->cell_identity);
|
asn1_u28_to_bitstring(&request.cellIdentity, &cid, hnb->cell_identity);
|
||||||
|
|
||||||
request.hnB_Identity.hNB_Identity_Info.buf = (uint8_t*) identity;
|
request.hnB_Identity.hNB_Identity_Info.buf = (uint8_t*) hnb->identity;
|
||||||
request.hnB_Identity.hNB_Identity_Info.size = strlen(identity);
|
request.hnB_Identity.hNB_Identity_Info.size = strlen(hnb->identity);
|
||||||
|
|
||||||
osmo_plmn_to_bcd(plmn, &hnb->plmn);
|
osmo_plmn_to_bcd(plmn, &hnb->plmn);
|
||||||
request.plmNidentity.buf = plmn;
|
request.plmNidentity.buf = plmn;
|
||||||
|
|
|
@ -83,6 +83,17 @@ DEFUN(cfg_hnodeb,
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFUN_USRATTR(cfg_hnodeb_identity,
|
||||||
|
cfg_hnodeb_identity_cmd,
|
||||||
|
0,
|
||||||
|
"identity TEXT",
|
||||||
|
"Set the HNB-identity of this HnodeB\n" "HNB-Identity\n")
|
||||||
|
{
|
||||||
|
struct hnb *hnb = (struct hnb *)vty->index;
|
||||||
|
osmo_talloc_replace_string(g_hnb, &hnb->identity, argv[0]);
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
DEFUN_USRATTR(cfg_hnodeb_ncc,
|
DEFUN_USRATTR(cfg_hnodeb_ncc,
|
||||||
cfg_hnodeb_ncc_cmd,
|
cfg_hnodeb_ncc_cmd,
|
||||||
0,
|
0,
|
||||||
|
@ -239,6 +250,7 @@ DEFUN(cfg_hnodeb_iuh_remote_port, cfg_hnodeb_iuh_remote_port_cmd,
|
||||||
static int config_write_hnodeb(struct vty *vty)
|
static int config_write_hnodeb(struct vty *vty)
|
||||||
{
|
{
|
||||||
vty_out(vty, "hnodeb%s", VTY_NEWLINE);
|
vty_out(vty, "hnodeb%s", VTY_NEWLINE);
|
||||||
|
vty_out(vty, " identity %s%s", g_hnb->identity, VTY_NEWLINE);
|
||||||
vty_out(vty, " network country code %s%s", osmo_mcc_name(g_hnb->plmn.mcc), VTY_NEWLINE);
|
vty_out(vty, " network country code %s%s", osmo_mcc_name(g_hnb->plmn.mcc), VTY_NEWLINE);
|
||||||
vty_out(vty, " mobile network code %s%s",
|
vty_out(vty, " mobile network code %s%s",
|
||||||
osmo_mnc_name(g_hnb->plmn.mnc, g_hnb->plmn.mnc_3_digits), VTY_NEWLINE);
|
osmo_mnc_name(g_hnb->plmn.mnc, g_hnb->plmn.mnc_3_digits), VTY_NEWLINE);
|
||||||
|
@ -361,6 +373,7 @@ void hnb_vty_init(void)
|
||||||
{
|
{
|
||||||
install_element(CONFIG_NODE, &cfg_hnodeb_cmd);
|
install_element(CONFIG_NODE, &cfg_hnodeb_cmd);
|
||||||
install_node(&hnodeb_node, config_write_hnodeb);
|
install_node(&hnodeb_node, config_write_hnodeb);
|
||||||
|
install_element(HNODEB_NODE, &cfg_hnodeb_identity_cmd);
|
||||||
install_element(HNODEB_NODE, &cfg_hnodeb_ncc_cmd);
|
install_element(HNODEB_NODE, &cfg_hnodeb_ncc_cmd);
|
||||||
install_element(HNODEB_NODE, &cfg_hnodeb_mnc_cmd);
|
install_element(HNODEB_NODE, &cfg_hnodeb_mnc_cmd);
|
||||||
install_element(HNODEB_NODE, &cfg_hnodeb_ci_cmd);
|
install_element(HNODEB_NODE, &cfg_hnodeb_ci_cmd);
|
||||||
|
|
Loading…
Reference in New Issue