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
15435aef
Commit
15435aef
authored
Mar 26, 2014
by
gauthier
Browse files
Update ipv4 s1U
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@5216
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
b656938a
Changes
2
Hide whitespace changes
Inline
Side-by-side
openair-cn/GTPV1-U/gtpv1u_eNB.c
View file @
15435aef
...
...
@@ -568,7 +568,13 @@ static int gtpv1u_create_s1u_tunnel(gtpv1u_enb_create_tunnel_req_t *create_tunne
gtpv1u_ue_data_p
=
calloc
(
1
,
sizeof
(
gtpv1u_ue_data_t
));
gtpv1u_ue_data_p
->
ue_id
=
create_tunnel_req_pP
->
ue_index
;
gtpv1u_ue_data_p
->
instance_id
=
0
;
// TO DO
#warning "TO DO TO DO gtpv1u_ue_data_p->bearers[eps_bearer_id - GTPV1U_BEARER_OFFSET].sgw_ip_addr"
memcpy
(
&
GTPV1U_ENB_CREATE_TUNNEL_RESP
(
message_p
).
enb_addr
.
buffer
,
&
gtpv1u_data_g
.
enb_ip_address_for_S1u_S12_S4_up
,
sizeof
(
in_addr_t
));
GTPV1U_ENB_CREATE_TUNNEL_RESP
(
message_p
).
enb_addr
.
length
=
sizeof
(
in_addr_t
);
AssertFatal
(
create_tunnel_req_pP
->
sgw_addr
[
i
].
length
==
4
,
"Bad transport layer address for next operation, TO DO"
);
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
sgw_ip_addr
=
*
((
in_addr_t
*
)
create_tunnel_req_pP
->
sgw_addr
[
i
].
buffer
);
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
state
=
BEARER_IN_CONFIG
;
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_eNB
=
s1u_teid
;
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_sgw
=
create_tunnel_req_pP
->
sgw_S1u_teid
[
i
];
...
...
@@ -578,8 +584,12 @@ static int gtpv1u_create_s1u_tunnel(gtpv1u_enb_create_tunnel_req_t *create_tunne
}
else
if
(
hash_rc
==
HASH_TABLE_OK
)
{
gtpv1u_ue_data_p
->
ue_id
=
create_tunnel_req_pP
->
ue_index
;
gtpv1u_ue_data_p
->
instance_id
=
0
;
// TO DO
ipv4_addr
=
#warning "TO DO TO DO gtpv1u_ue_data_p->bearers[eps_bearer_id - GTPV1U_BEARER_OFFSET].sgw_ip_addr = (uint32_t)(create_tunnel_req_pP->sgw_addr[i].buffer;"
memcpy
(
&
GTPV1U_ENB_CREATE_TUNNEL_RESP
(
message_p
).
enb_addr
.
buffer
,
&
gtpv1u_data_g
.
enb_ip_address_for_S1u_S12_S4_up
,
sizeof
(
in_addr_t
));
GTPV1U_ENB_CREATE_TUNNEL_RESP
(
message_p
).
enb_addr
.
length
=
sizeof
(
in_addr_t
);
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
sgw_ip_addr
=
*
((
in_addr_t
*
)
create_tunnel_req_pP
->
sgw_addr
[
i
].
buffer
);
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
state
=
BEARER_IN_CONFIG
;
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_eNB
=
s1u_teid
;
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_sgw
=
create_tunnel_req_pP
->
sgw_S1u_teid
[
i
];
...
...
@@ -651,10 +661,10 @@ static int gtpv1u_delete_s1u_tunnel(gtpv1u_enb_delete_tunnel_req_t *req_pP)
//-----------------------
hash_rc
=
hashtable_get
(
gtpv1u_data_g
.
ue_mapping
,
req_pP
->
ue_index
,
(
void
**
)
&
gtpv1u_ue_data_p
);
if
(
hash_rc
==
HASH_TABLE_OK
)
{
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
state
=
BEARER_DOWN
;
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_eNB
=
0
;
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_sgw
=
0
;
#warning "TO DO TO DO
gtpv1u_ue_data_p->bearers[eps_bearer_id - GTPV1U_BEARER_OFFSET].sgw_ip_addr
"
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
state
=
BEARER_DOWN
;
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_eNB
=
0
;
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_sgw
=
0
;
gtpv1u_ue_data_p
->
bearers
[
req_pP
->
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
sgw_ip_addr
=
0
;
gtpv1u_ue_data_p
->
num_bearers
-=
1
;
if
(
gtpv1u_ue_data_p
->
num_bearers
==
0
)
{
...
...
openair-cn/GTPV1-U/gtpv1u_eNB_defs.h
View file @
15435aef
...
...
@@ -70,7 +70,7 @@ typedef struct gtpv1u_bearer_s {
/* TEID used in dl and ul */
teid_t
teid_eNB
;
///< eNB TEID
teid_t
teid_sgw
;
///< Remote TEID
u
in
t32
_t
sgw_ip_addr
;
in
_addr
_t
sgw_ip_addr
;
tcp_udp_port_t
port
;
//NwGtpv1uStackSessionHandleT stack_session;
bearer_state_t
state
;
...
...
@@ -102,7 +102,7 @@ typedef struct gtpv1u_data_s{
//RB_HEAD(gtpv1u_ue_map, gtpv1u_ue_data_s) gtpv1u_ue_map_head;
/* Local IP address to use */
u
in
t32
_t
enb_ip_address_for_S1u_S12_S4_up
;
in
_addr
_t
enb_ip_address_for_S1u_S12_S4_up
;
char
*
ip_addr
;
tcp_udp_port_t
enb_port_for_S1u_S12_S4_up
;
/* UDP internal data */
...
...
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