Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
d8a67153
Commit
d8a67153
authored
Feb 07, 2018
by
Robert Schmidt
Browse files
store IMSI information + provide FlexRAN API to query UE's IMSI
parent
9d05a9a3
Changes
4
Hide whitespace changes
Inline
Side-by-side
openair2/ENB_APP/flexran_agent_ran_api.c
View file @
d8a67153
...
...
@@ -889,6 +889,17 @@ int flexran_get_ue_transmission_antenna(mid_t mod_id, mid_t ue_id)
}
}
uint64_t
flexran_get_ue_imsi
(
mid_t
mod_id
,
mid_t
ue_id
)
{
if
(
!
rrc_is_present
(
mod_id
))
return
-
1
;
rnti_t
rnti
=
flexran_get_ue_crnti
(
mod_id
,
ue_id
);
struct
rrc_eNB_ue_context_s
*
ue_context_p
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
mod_id
],
rnti
);
if
(
!
ue_context_p
)
return
-
1
;
return
ue_context_p
->
ue_context
.
imsi
;
}
long
flexran_get_lcg
(
mid_t
mod_id
,
mid_t
ue_id
,
mid_t
lc_id
)
{
if
(
!
mac_is_present
(
mod_id
))
return
0
;
...
...
openair2/ENB_APP/flexran_agent_ran_api.h
View file @
d8a67153
...
...
@@ -301,6 +301,9 @@ long flexran_get_extended_bsr_size(mid_t mod_id, mid_t ue_id);
/* Get number of UE transmission antennas */
int
flexran_get_ue_transmission_antenna
(
mid_t
mod_id
,
mid_t
ue_id
);
/* Get the IMSI of UE */
uint64_t
flexran_get_ue_imsi
(
mid_t
mod_id
,
mid_t
ue_id
);
/* Get logical channel group of a channel with id lc_id */
long
flexran_get_lcg
(
mid_t
mod_id
,
mid_t
ue_id
,
mid_t
lc_id
);
...
...
openair2/RRC/LITE/defs.h
View file @
d8a67153
...
...
@@ -394,7 +394,8 @@ typedef struct eNB_RRC_UE_s {
MeasResults_t
*
measResults
;
UE_EUTRA_Capability_t
*
UE_Capability
;
uint64_t
imsi
;
#if defined(ENABLE_SECURITY)
/* KeNB as derived from KASME received from EPC */
uint8_t
kenb
[
32
];
...
...
openair2/RRC/LITE/rrc_eNB_S1AP.c
View file @
d8a67153
...
...
@@ -86,8 +86,25 @@ static const uint16_t S1AP_INTEGRITY_EIA2_MASK = 0x4000;
#endif
#endif
uint64_t
compute_imsi
(
ImsiMobileIdentity_t
*
id
)
{
uint64_t
imsi
;
imsi
=
id
->
digit15
;
imsi
+=
id
->
digit14
*
10
;
// pow(10, 1)
imsi
+=
id
->
digit13
*
100
;
// pow(10, 2)
imsi
+=
id
->
digit12
*
1000
;
// pow(10, 3)
imsi
+=
id
->
digit11
*
10000
;
// pow(10, 4)
imsi
+=
id
->
digit10
*
100000
;
// pow(10, 5)
imsi
+=
id
->
digit9
*
1000000
;
// pow(10, 6)
imsi
+=
id
->
digit8
*
10000000
;
// pow(10, 7)
imsi
+=
id
->
digit7
*
100000000
;
// pow(10, 8)
imsi
+=
id
->
digit6
*
1000000000
;
// pow(10, 9)
imsi
+=
id
->
digit5
*
10000000000
;
// pow(10, 10)
imsi
+=
id
->
digit4
*
100000000000
;
// pow(10, 11)
imsi
+=
id
->
digit3
*
1000000000000
;
// pow(10, 12)
imsi
+=
id
->
digit2
*
10000000000000
;
// pow(10, 13)
imsi
+=
id
->
digit1
*
100000000000000
;
// pow(10, 14)
return
imsi
;
}
# if defined(ENABLE_ITTI)
//------------------------------------------------------------------------------
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment