From: Taehee Yoo <ap420073(a)gmail.com>
[ Upstream commit e30155fd23c9c141cbe7d99b786e10a83a328837 ]
If an invalid role is sent from user space, gtp_encap_enable() will fail.
Then, it should call gtp_encap_disable_sock() but current code doesn't.
It makes memory leak.
Fixes: 91ed81f9abc7 ("gtp: support SGSN-side tunnels")
Signed-off-by: Taehee Yoo <ap420073(a)gmail.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/net/gtp.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 7a145172d503..83488f2bf7a0 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -847,8 +847,13 @@ static int gtp_encap_enable(struct gtp_dev *gtp, struct nlattr *data[])
if (data[IFLA_GTP_ROLE]) {
role = nla_get_u32(data[IFLA_GTP_ROLE]);
- if (role > GTP_ROLE_SGSN)
+ if (role > GTP_ROLE_SGSN) {
+ if (sk0)
+ gtp_encap_disable_sock(sk0);
+ if (sk1u)
+ gtp_encap_disable_sock(sk1u);
return -EINVAL;
+ }
}
gtp->sk0 = sk0;
--
2.20.1
From: Taehee Yoo <ap420073(a)gmail.com>
[ Upstream commit e30155fd23c9c141cbe7d99b786e10a83a328837 ]
If an invalid role is sent from user space, gtp_encap_enable() will fail.
Then, it should call gtp_encap_disable_sock() but current code doesn't.
It makes memory leak.
Fixes: 91ed81f9abc7 ("gtp: support SGSN-side tunnels")
Signed-off-by: Taehee Yoo <ap420073(a)gmail.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/net/gtp.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 7a145172d503..83488f2bf7a0 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -847,8 +847,13 @@ static int gtp_encap_enable(struct gtp_dev *gtp, struct nlattr *data[])
if (data[IFLA_GTP_ROLE]) {
role = nla_get_u32(data[IFLA_GTP_ROLE]);
- if (role > GTP_ROLE_SGSN)
+ if (role > GTP_ROLE_SGSN) {
+ if (sk0)
+ gtp_encap_disable_sock(sk0);
+ if (sk1u)
+ gtp_encap_disable_sock(sk1u);
return -EINVAL;
+ }
}
gtp->sk0 = sk0;
--
2.20.1
From: Taehee Yoo <ap420073(a)gmail.com>
[ Upstream commit e30155fd23c9c141cbe7d99b786e10a83a328837 ]
If an invalid role is sent from user space, gtp_encap_enable() will fail.
Then, it should call gtp_encap_disable_sock() but current code doesn't.
It makes memory leak.
Fixes: 91ed81f9abc7 ("gtp: support SGSN-side tunnels")
Signed-off-by: Taehee Yoo <ap420073(a)gmail.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/net/gtp.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index fc45b749db46..01fc51892e48 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -843,8 +843,13 @@ static int gtp_encap_enable(struct gtp_dev *gtp, struct nlattr *data[])
if (data[IFLA_GTP_ROLE]) {
role = nla_get_u32(data[IFLA_GTP_ROLE]);
- if (role > GTP_ROLE_SGSN)
+ if (role > GTP_ROLE_SGSN) {
+ if (sk0)
+ gtp_encap_disable_sock(sk0);
+ if (sk1u)
+ gtp_encap_disable_sock(sk1u);
return -EINVAL;
+ }
}
gtp->sk0 = sk0;
--
2.20.1
This patch series fixes several bugs in the gtp module.
First patch fixes suspicious RCU usage.
The problem is to use rcu_dereference_sk_user_data() outside of
RCU read critical section.
Second patch fixes use-after-free.
gtp_encap_destroy() is called twice.
gtp_encap_destroy() use both gtp->sk0 and gtp->sk1u.
these pointers can be freed in gtp_encap_destroy().
So, gtp_encap_destroy() should avoid using freed sk pointer.
Third patch removes duplicate code in gtp_dellink().
gtp_dellink() calls gtp_encap_disable() twice.
So, remove one of them.
Fourth patch fixes usage of GFP_KERNEL.
GFP_KERNEL can not be used in RCU read critical section.
This patch make ipv4_pdp_add() to use GFP_ATOMIC instead of GFP_KERNEL.
Fifth patch fixes use-after-free in gtp_newlink().
gtp_newlink() uses gtp_net which would be destroyed by the __exit_net
routine.
So, gtp_newlink should not be called after the __exit_net routine.
Sixth patch adds missing error handling routine in gtp_encap_enable().
gtp_encap_enable() will fail, if invalid role value is sent from
user-space. if so, gtp_encap_enable() should execute error handling
routine.
Taehee Yoo (6):
gtp: fix suspicious RCU usage
gtp: fix use-after-free in gtp_encap_destroy()
gtp: remove duplicate code in gtp_dellink()
gtp: fix Illegal context switch in RCU read-side critical section.
gtp: fix use-after-free in gtp_newlink()
gtp: add missing gtp_encap_disable_sock() in gtp_encap_enable()
drivers/net/gtp.c | 37 +++++++++++++++++++++++++++++--------
1 file changed, 29 insertions(+), 8 deletions(-)
--
2.17.1
If an invalid role is sent from user space, gtp_encap_enable() will fail.
Then, it should call gtp_encap_disable_sock() but current code doesn't.
It makes memory leak.
Fixes: 91ed81f9abc7 ("gtp: support SGSN-side tunnels")
Signed-off-by: Taehee Yoo <ap420073(a)gmail.com>
---
drivers/net/gtp.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index b3ccac54e204..ecfe26215935 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -857,8 +857,13 @@ static int gtp_encap_enable(struct gtp_dev *gtp, struct nlattr *data[])
if (data[IFLA_GTP_ROLE]) {
role = nla_get_u32(data[IFLA_GTP_ROLE]);
- if (role > GTP_ROLE_SGSN)
+ if (role > GTP_ROLE_SGSN) {
+ if (sk0)
+ gtp_encap_disable_sock(sk0);
+ if (sk1u)
+ gtp_encap_disable_sock(sk1u);
return -EINVAL;
+ }
}
gtp->sk0 = sk0;
--
2.17.1
Dear All,
I've been using the GTP-U kernel module to communicate with a P-GW.
Running Fedora 29, kernel 4.18.16-300.fc29.x86_64.
At high traffic levels through the GTP-U tunnel I see the performance
degrade as 100% CPU is consumed by a single ksoftirqd process.
It is running on a multi-cpu machine and as far as I can tell the load is
evenly spread across the cpus (ie either manually via smp_affinity, or even
irqbalance, checking /proc/interrupts so forth.).
Has anyone else experienced this?
Is there any particular area you could recommend I investigate to find the
root cause of this bottleneck, as i'm starting to scratch my head where to
look next...
Thanks in advance
Tony
---- FYI
modinfo gtp
filename:
/lib/modules/4.18.16-300.fc29.x86_64/kernel/drivers/net/gtp.ko.xz
alias: net-pf-16-proto-16-family-gtp
alias: rtnl-link-gtp
description: Interface driver for GTP encapsulated traffic
author: Harald Welte <hwelte(a)sysmocom.de>
license: GPL
depends: udp_tunnel
retpoline: Y
intree: Y
name: gtp
vermagic: 4.18.16-300.fc29.x86_64 SMP mod_unload
modinfo udp_tunnel
filename:
/lib/modules/4.18.16-300.fc29.x86_64/kernel/net/ipv4/udp_tunnel.ko.xz
license: GPL
depends:
retpoline: Y
intree: Y
name: udp_tunnel
vermagic: 4.18.16-300.fc29.x86_64 SMP mod_unload
Hi
Now I'm trying osmo-pcu on octasic-phy.
GPRS worked, but I want to get EGPRS.
I set 'gprs mode none' in openbsc.cfg and 'egprs only' in osmo-pcu.cfg.
And got next error: "Not accepting non-EGPRS phone in EGPRS-only mode".
As I found, it is like bug #3499.
What does this error depend on and how can it be fixed?
How can I test EGPRS?
Thanks,
Andrey Lavrukhin
Dear all
I am facting the following problems and hope you can help me:
- At present, I have two GGSN nodes(such as A and B), I also hava a sgsnemu node which is connected to GGSN-A and hold a PDP context, now I want to connect this PDP context to GGSN-B to simulate the handover of mobile devices between different base stations. How can I do it?
- And I I wonder if sgsnemu can generate “Update PDP Context Request” message.
Thanks and regards
Arthur
Hi!
Just in case not every subscriber here is following the osmocom.org RSS
feed: At http://osmocom.org/news/104 we have just announced a bunch of
new tagged versions of the Osmocom CNI (cellular network infrastructure)
software stack.
See the link above for all related details, and links to changelogs.
The "network:osmocom:latest" feed already contains builds for Debian 8 and 9,
as well as Ubuntu 16.04, 16.10, 17.04, 17.10 and 18.04. Raspbian 9 + Ubuntu 18.10
are currently building, see
https://build.opensuse.org/project/monitor/network:osmocom:latest
I'd like to thank everyone who has contributed in some way to those new
versions. That's primarily the great team of developers, but also everyone
helping with testing, bug reports, bug squashing, documentation, etc.
Happy hacking,
Harald
--
- Harald Welte <hwelte(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Dear fellow Osmocom developers,
I'm a bit surprised to notice that not more people have signed up for
OsmoDevCon 2019. I guess it was mostly an oversight when the date was
originally announced, and not a lack of interest? ;)
All details about the event are available at the related wiki page at:
https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2019
Please enter your name at
https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2019#Requested
in case you would like to attend. Registering early allows proper
planning. Thanks!
Looking forward to meeting old and new Osmocom developers in April 2019.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I'm trying to build a simple node that would encap/decap between IP and GTP
in the user plane. For this I have been using gtp-link and gtp-tunnel tools
of the libgtpnl, but with no luck so far. Could anyone please review my
setup and let me know what I'm doing wrong?
Topology:
node1 - DUT, I would like to be able to send a ping from this node such
that it is encapsulated into GTP tunnel towards node2.
2 interfaces:
- ens6 - represents interface towards MS, has address 20.1.1.1/24
- ens7 - represents interface towards GGSN, has address 10.1.1.1/24
node2
Just a single interface towards node1, address 10.1.1.2/24
Test:
On node2, I'm following these steps:
- creating a GTP device:
# ./gtp-link add gtp-u
- adding a GTP tunnel:
# ./gtp-tunnel add gtp-u v1 20 10 20.1.1.1 10.1.1.2
# ./gtp-tunnel list
version 1 tei 20/10 ms_addr 20.1.1.1 sgsn_addr 10.1.1.2
- adding a route to an address representing APN to use the GTP device:
# ip route add 8.8.8.8 src 20.1.1.1 dev gtp-u
- Trying to ping 8.8.8.8
Result:
I was expecting to see ECMP packets to 8.8.8.8 to be sent out via ens7
towards node2 and encapsulated in GTP. However, I can only see that these
packets appear on the gtp-u interface, but are not forwarded. Looking at
interface stats on gtp-u, I can see that the ping hits "tx_error" counter.
Is there anything I'm missing here? Are any parameters wrong? Or am I
misunderstanding the function of the GTP-U kernel support entirely?
Any help would be appreciated.
Thanks,
Michael
hello,Please forgive my childishness,Can you tell me how to compile and install libgtpnl?thanks
I saw that you wrote the libgtpnl project on github, but there is no readme above.
Hi,
We are using Honor 7X mobile phone with Huawei Kirin modem and observed that GPRS and EGPRS attach is not working with Huawei Kirin Modem phones.
There is no issue observed from OSMO-PCU. it seems either Huawei Kirin modem issue or OSMO-SGSN issue.
Please check below analysis for this issue.
1- UE send attach request with IMSI and invalid MCC and MNC to SGSN.
2- SGSN send Identity Request with IMEI to UE.
3- UE responded Identity Response with IMEI to SGSN.
4- SGSN sends ATTACH ACCEPT message to SGSN with new PMTSI but UE is not responding ATTACH COMPLETE message to SGSN and resend ATTACH REQUEST message to SGSN.
5- SO SGSN re transmit ATTACH ACCEPT message to UE and after max number of re transmission , SGSN is release UE MM context.
It seems that UE is not accepting ATTACH ACCEPT message.
We also observed that Huawei Kirin UE is sending wrong LLC data to SGSN.
UE had set more bit in RLC LME header and send invalid LLC data with 0x2B.
So OSMO-PCU had forward this data to SGSN because more bit is set and SGSN
is complaining LLC error for this LLC data.
Please look into this issue or let us know if we have fix for this issue.
Thanks,
Bipin Jaiswal
Dear all,
I would like to get your input as to when we should schedule OsmoDevCon 2019.
NOTE: OsmoDevCon is our "for developers by developers" event, not to be confused
with OsmoCon, our public conference.
If we want to stay with the usual "Friday through Monday in April" arrangement,
we have the following options:
April 05-08, 2019
April 12-15, 2019
April 26-29, 2019
The one missing weekend in the list above is the easter weekend, which is probably
a good idea to exclude as flights and hotels are more expensive during that time,
and people might have other plans during holidays.
I would like to invite anyone planning to attend the Osmocom Developer Conference 2019
to participate in the poll at https://dudle.inf.tu-dresden.de/OsmoDevCon2019/ to
state their availability/preference. The Dudle only shows the first day of the four
days of OsmoDevCon.
Looking forward to your feedback so we can settle on a date soon. Thanks!
Kind regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Dear all
We are facing the following problem and hope you can help us:
- We use OSMO as UMTS core emulation, working with our real NodeB
- During UE attach procedure we see from SGSN "Location Update
Reject"
and afterthat UE is released.
- We do the comparison test with real UMTS core and our real NodeB,
here
it works properly, UE can attach successful.
We assume there is some Osmo configuration problem but we have not
found the root cause, we very appreciate if you can take a look and give us
some advice.
Here is the current message flow of UE attach
10.2.9.200 10.2.9.139 RANAP 170 (RUA) InitialUE-Message
(DTAP) (MM) Location Updating Request
10.2.9.139 10.2.9.200 RANAP 158 SACK (RUA) DirectTransfer
(DTAP) (MM) Authentication Request
10.2.9.200 10.2.9.139 RANAP 222 SACK (RUA)
InitialUE-Message (DTAP) (GMM) Attach Request
10.2.9.139 10.2.9.200 RANAP 122 SACK (RUA) DirectTransfer
(DTAP) (GMM) Identity Request
10.2.9.200 10.2.9.139 RANAP 118 (RUA) DirectTransfer (DTAP)
(MM) Authentication Failure
10.2.9.139 10.2.9.200 RANAP 158 SACK (RUA) DirectTransfer
(DTAP) (MM) Authentication Request
10.2.9.200 10.2.9.139 RANAP 154 SACK (RUA) DirectTransfer
(DTAP) (GMM) Identity Response
10.2.9.139 10.2.9.200 RANAP 162 SACK (RUA) DirectTransfer
(DTAP) (GMM) Authentication and Ciphering Req
10.2.9.200 10.2.9.139 RANAP 110 (RUA) DirectTransfer (DTAP)
(MM) Authentication Response
10.2.9.139 10.2.9.200 RANAP 138 SACK (RUA)
SecurityModeCommand
10.2.9.200 10.2.9.139 RANAP 98 (RUA) SecurityModeComplete
10.2.9.139 10.2.9.200 RANAP 122 SACK (RUA) CommonID
10.2.9.200 10.2.9.139 RANAP 166 SACK (RUA) DirectTransfer
(DTAP) (GMM) Authentication and Ciphering Resp
10.2.9.139 10.2.9.200 RANAP 134 SACK (RUA) DirectTransfer
(DTAP) (MM) Location Updating Accept
10.2.9.139 10.2.9.200 RANAP 122 (RUA) SecurityModeCommand
--> 10.2.9.139 10.2.9.200 RANAP 106 (RUA) DirectTransfer (DTAP)
(MM) Location Updating Reject
10.2.9.139 10.2.9.200 RANAP 102 (RUA) Iu-ReleaseCommand
10.2.9.200 10.2.9.139 RANAP 114 SACK (RUA)
Iu-ReleaseComplete
10.2.9.200 10.2.9.139 RANAP 102 (RUA) SecurityModeReject
10.2.9.200 10.2.9.139 RANAP 102 (RUA) Iu-ReleaseRequest
10.2.9.139 10.2.9.200 RANAP 118 SACK (RUA)
Iu-ReleaseCommand
10.2.9.200 10.2.9.139 RANAP 114 SACK (RUA)
Iu-ReleaseComplete
Thanks and regards
Tuan Lam
Dear fellow Osmocom developers,
During the past hours, we've been experiencing master-osmo-sgsn build
failures. It coincides with some libosmocore.git vty change merge,
it would be great if people working on this and/or osmo-sgsn can have a look.
Thanks!
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi Community,
We tried to used the GPRS capability of OSMOCOM.
Installation and configuration were based in the URL provided below:
https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_I…
We successfully installed the needed elements to run GPRS and we were able to run the following:
osmo-msc
osmo-stp
osmo-hnbgw (optional)
osmo-ggsn
osmo-sgsn
osmo-mgw
osmo-bsc
osmo-trx-uhd
osmo-hlr
osmo-pcu
UE were able to camp but IP Address is unavailable (checked it under Settings > About Phone > Status)
No session / request coming in the OSMO-SGSN.
We are also flooded with this log in OSMO-PCU:
<000c> gprs_bssgp_pcu.cpp:848 Sending unblock on BVCI 1800
<000c> gprs_bssgp_bss.c:274 BSSGP (BVCI=1800) Tx BVC-BLOCK
<000c> gprs_bssgp.c:288 Cell 001-01-23-0 CI 0 on BVCI 1800
<000c> gprs_bssgp_bss.c:294 BSSGP (BVCI=1800) Tx BVC-RESET CAUSE=O&M intervention
<000c> gprs_bssgp.c:550 BSSGP BVCI=0 Rx BVC STATUS, cause=Protocol error - unspecified
<000c> gprs_bssgp_pcu.cpp:354 Rx BSSGP BVCI=0 (SIGN) PDU type BVC-UNBLOCK unknown
<000c> gprs_bssgp_util.c:238 BSSGP BVCI=0 Tx STATUS, cause=Protocol error - unspecified
<000c> gprs_bssgp_pcu.cpp:304 Rx BSSGP BVCI=0 (SIGN) BVC_RESET_ACK
<000c> gprs_bssgp_pcu.cpp:848 Sending unblock on BVCI 1800
<000c> gprs_bssgp_bss.c:274 BSSGP (BVCI=1800) Tx BVC-BLOCK
<000c> gprs_bssgp.c:288 Cell 001-01-23-0 CI 0 on BVCI 1800
<000c> gprs_bssgp_bss.c:294 BSSGP (BVCI=1800) Tx BVC-RESET CAUSE=O&M intervention
<000c> gprs_bssgp.c:550 BSSGP BVCI=0 Rx BVC STATUS, cause=Protocol error - unspecified
<000c> gprs_bssgp_pcu.cpp:354 Rx BSSGP BVCI=0 (SIGN) PDU type BVC-UNBLOCK unknown
<000c> gprs_bssgp_util.c:238 BSSGP BVCI=0 Tx STATUS, cause=Protocol error - unspecified
<000c> gprs_bssgp_pcu.cpp:304 Rx BSSGP BVCI=0 (SIGN) BVC_RESET_ACK
<000c> gprs_bssgp_pcu.cpp:848 Sending unblock on BVCI 1800
<000c> gprs_bssgp_bss.c:274 BSSGP (BVCI=1800) Tx BVC-BLOCK
<000c> gprs_bssgp.c:288 Cell 001-01-23-0 CI 0 on BVCI 1800
<000c> gprs_bssgp_bss.c:294 BSSGP (BVCI=1800) Tx BVC-RESET CAUSE=O&M intervention
<000c> gprs_bssgp.c:550 BSSGP BVCI=0 Rx BVC STATUS, cause=Protocol error - unspecified
<000c> gprs_bssgp_pcu.cpp:354 Rx BSSGP BVCI=0 (SIGN) PDU type BVC-UNBLOCK unknown
<000c> gprs_bssgp_util.c:238 BSSGP BVCI=0 Tx STATUS, cause=Protocol error - unspecified
<000c> gprs_bssgp_pcu.cpp:304 Rx BSSGP BVCI=0 (SIGN) BVC_RESET_ACK
Any suggestion / comments what seems to be the problem with our setup?
TIA.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
Dear Osmocom community,
the first schedule of the 2018 incarnation of OsmoCon 2018 has been announced,
see http://osmocom.org/news/99 for the announcment and
https://pretalx.sysmocom.de/osmocon2018/schedule/ for the actual schedule.
At OsmoCon, we are not targetting developers, but more the wider community
and Osmocom users. It would be great to meet many of you and hear more
about your relation to Osmocom.
Tickets are available from https://pretix.sysmocom.de/sysmocom/osmocon2018/,
and until August 31st the early bird discount still applies.
For those with a community / "just for fun" background and no employer
that would cover the ticket, we have a number of subsidized community discount
vouchers available. See the OsmoCon 2018 wiki page at
https://osmocom.org/projects/osmo-dev-con/wiki/OsmoCon2018
for more information.
Looking forward to meeting as many of you as possible in roughly two
months from now,
Harald Welte
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I've pushed my SGSN Branch "attach fsm" where I reworked the Attach Request into an FSM together with a TTCN branch (replacing unit tests) to gerrit.
When both branches applied upstream, we're up to 42 tests.
However these 4 test cases are still open:
pass->FAIL SGSN_Tests.TC_attach_pdp_act_deact_mt_t3395_expire => TEID wrong. Cleaning up the internal SGSN seems to fail.
xfail SGSN_Tests.TC_attach_gsup_lu_timeout => HLR interaction
xfail SGSN_Tests.TC_attach_gsup_lu_reject => HLR interaction
xfail SGSN_Tests.TC_attach_second_attempt => HLR interaction
Best,
lynxis
--
Alexander Couzens
mail: lynxis(a)fe80.eu
jabber: lynxis(a)fe80.eu
mobile: +4915123277221
gpg: 390D CF78 8BF9 AA50 4F8F F1E2 C29E 9DA6 A0DF 8604
Almost all places that use nla_policy declare it const.
A couple of drivers didn't but that is fixable.
Stephen Hemminger (2):
nbd: constify nla_policy
gtp: constify nla_policy
drivers/block/nbd.c | 6 +++---
drivers/net/gtp.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
--
2.18.0
Hi all,
I have set up the EGPRS network using software bundles (osmo-nitb + osmo-bts-trx + osmo-trx + osmo-pcu + osmo-sgsn + openggsn) based on the USRP B210 platform. Now the cell phone can connect to the EGPRS network, but the network is not stable and the data rate is too low (only about 8kbs).
Is this data rate correct? If not, could you pls send me some working config files? Thank you.
Best Regards,
Xinke
For quite some time, osmo-pcu has been causing build failures on Debian 8.
You can find a build log e.g. at https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/o…
The visible sign is that for some reasson there are additional log lines present
in the output of our unit tests, like:
[ 127s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge
[ 127s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.
[ 127s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0%
[ 127s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE
[ 127s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0
where the "+" is the unexpected additional line.
Does anyone have any information about why that is? I don't see any related changes
recently.
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I just started exploring the GTP-U module (maintained in the kernel) for LTE.
In LTE, a UE can be associated with multiple bearers.
This implies that an MS IP address can be associated with multiple TEIDs (one for each bearer).
Based on browsing the kernel GTP implementation[1], it looks like the GTP-U (maintained in the kernel) can only support 1 TEID per MS IP address. In which case, the GTP implementation, as is, may NOT be usable by LTE modules.
Is this a correct interpretation?
- Shashank
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/dr…
Hi,
I just started exploring the GTP-U module (maintained in the kernel) for LTE scenarios.
In LTE, a UE can be associated with multiple bearers.
This implies that an MS IP address can be associated with multiple TEIDs (one for each bearer).
Based on browsing the kernel GTP implementation[1], it looks like the GTP-U (maintained in the kernel) can only support 1 TEID per MS IP address. In which case, the GTP implementation, as is, may NOT be usable by LTE modules.
Is it an correct interpretation?
- Shashank
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/dr…
== OsmoCon 2018 ==
OsmoCon (Osmocom Conference) 2018 is the technical conference for
Osmocom users, operators and developers!
We are happy to announce the date of OsmoCon 2018. It has been scheduled
on October 18 + 19, 2018 and will happen in Berlin, Germany.
For the second time, the Osmocom Conference brings together users,
operators and developers of the Osmocom Open Source cellular
infrastructure projects, such as OsmoBTS, OsmoBSC, OsmoSGSN, OpenGGSN
and others.
Join us for two days of presentations and discussions with the main
developers behind Open Source Mobile Communications, as well as
commercial and non-profit users of the Osmocom cellular infrastructure
software.
You can find some initial information in our wiki at
http://osmocom.org/projects/osmo-dev-con/wiki/OsmoCon2018
which will be updated as more information becomes available.
== Call for Participation ==
We're also at the same time announcing the Call for Participation and
call on everyone with experiences to share around the Osmocom member
projects to submit talks, workshops, discussions or other proposals.
You can find the CfP at https://pretalx.sysmocom.de/osmocon2018/cfp
We are particularly looking for contributions about:
* updates on features/functionality/status of individual Osmocom projects
* success stories on how Osmocom projects are deployed in practice
* migration from OsmoNITB to the post-NITB architecture
* tutorials / workshops on how to setup / analyze Osmocom projects
* statistics, reporting, operations aspects of Osmocom projects
* third-party open source utilities to be used with Osmocom projects
Looking forward to meeting many existing and new Osmocom users at OsmCon
this October!
Regards,
Harald Welte
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I need to increase the throughput through the GTP tunnels to around 9Gb/s.
I have two servers and they are connected using two GTP tunnels over a
Mellanox 25Gb/s link. Via the tunnels I am seeing a total of 4.2 Gb/s to
4.5 Gb/s using iPerf.
If data is sent without the tunnels I see a throughput of around 24.5Gb/s.
I have tried various tweaks to improve the throughput over the GTP tunnels
and have only made marginal gains. I have tried iPerf 2.0.9 and iPerf3 and
see the same results. Wireshark shows the iPerf MTU is reflected in the
pcap logs.
I have tried changing the txqueuelen on the tunnels, changing osmo-ggsn
niceness, network buffer sizes etc.
The restriction seems to be osmo-ggsn as that is taking up to 92% CPU on
one of the cores when the throughput tests are running.
I'm hoping I have made a mistake in the configuration of OsmoGGSN and
sgsnemu.
--
The servers are running Ubuntu 16.04 desktop. 16GB RAM - 12.6GB free when
running throughput tests. Intel E52620v3. Mellanox MCX516A-CCAT network
adapter. 25Gb direct attach copper connecting the two servers OsmoGGSN
version 1.1.0.75-3e44-dirty.
For one of the servers: -
Mellanox interface details
ens3f0 Link encap:Ethernet HWaddr ec:0d:9a:a0:1d:7c
inet addr:172.16.8.1 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::8f38:33e3:bd46:dd65/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:142373677 errors:0 dropped:0 overruns:0 frame:0
TX packets:157500406 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10000
RX bytes:793825609487 (793.8 GB) TX bytes:879898325287 (879.8 GB)
Tunnel interface details
S1Utun Link encap:UNSPEC HWaddr
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.1.2 P-t-P:10.1.1.2 Mask:255.255.255.0
inet6 addr: fe80::b3fc:3d43:b751:bcbf/64 Scope:Link
UP POINTOPOINT RUNNING MTU:9000 Metric:1
RX packets:4640412 errors:0 dropped:0 overruns:0 frame:0
TX packets:2272797 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:37729672063 (37.7 GB) TX bytes:118866016 (118.8 MB)
X2Utun Link encap:UNSPEC HWaddr
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.2.2 P-t-P:10.1.2.2 Mask:255.255.255.0
inet6 addr: fe80::6ed8:8a79:b3e9:a51d/64 Scope:Link
UP POINTOPOINT RUNNING MTU:9000 Metric:1
RX packets:1824011 errors:0 dropped:0 overruns:0 frame:0
TX packets:3856238 errors:0 dropped:4229 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:95648485 (95.6 MB) TX bytes:31367266755 (31.3 GB)
client side iperf
server1
iperf3 -c 10.1.2.1 -i1 -t 30 -M8100 -w 2048K -P8
server2
iperf3 -c 10.1.2.1 -i1 -t 30 -M8100 -w 2048K -P8
server1 and 2 iperf server
iperf3 -s -i1
osmo-ggsn -c /home/osmo-ggsn.cfg -g 172.16.1.1
contents of osmo-ggsn.cfg
!
! OpenGGSN (0.94.1-adac) configuration saved from vty
!!
!
log stderr
logging filter all 1
logging color 1
logging print category 0
logging timestamp 0
logging level ip info
logging level tun info
logging level ggsn info
logging level sgsn notice
logging level icmp6 notice
logging level lglobal notice
logging level llapd notice
logging level linp notice
logging level lmux notice
logging level lmi notice
logging level lmib notice
logging level lsms notice
logging level lctrl notice
logging level lgtp info
logging level lstats notice
logging level lgsup notice
logging level loap notice
logging level lss7 notice
logging level lsccp notice
logging level lsua notice
logging level lm3ua notice
logging level lmgcp notice
!
stats interval 5
!
line vty
no login
!
ggsn X2Uggsn
gtp state-dir /tmp
gtp bind-ip 172.16.8.1
gtp gtp0-port 3386
gtp gtp1c-port 2123
gtp gtp1u-port 2153
gtp gtp1uremot-port 2153
apn X2U
gtpu-mode tun
tun-device X2Utun
type-support v4
ip prefix dynamic 10.1.2.0/24
ip dns 0 192.168.100.1
ip dns 1 8.8.8.8
ip ifconfig 10.1.2.2/24
no shutdown
default-apn X2U
no shutdown ggsn
ggsn S1Uggsn
gtp state-dir /tmp
gtp bind-ip 172.16.8.1
gtp gtp0-port 3387
gtp gtp1c-port 2124
gtp gtp1u-port 2152
gtp gtp1uremot-port 2152
apn S1U
gtpu-mode tun
tun-device S1Utun
type-support v4
ip prefix dynamic 10.1.1.0/24
ip dns 0 192.168.100.1
ip dns 1 8.8.8.8
ip ifconfig 10.1.1.2/24
no shutdown
default-apn S1U
no shutdown ggsn
sgsnemu -l 127.0.0.2 -r 172.16.8.1 --contexts 1 -a S1U -m 4412345678 -q
0x00000000000b921f --defaultroute --pingcount 0 --gtpteid=8 --gtpversion=1
--gsnuip 172.16.1.1 --enduserip 10.1.1.1 --gtp0port 3387 --gtp1cport 2124
--nsapi 1
sgsnemu -l 127.0.0.3 -r 172.16.8.1 --contexts 1 -a X2U -m 4412345678 -q
0x00000000000b921f --defaultroute --pingcount 0 --gtpteid=3 --gtpversion=1
--gsnuip 172.16.1.1 --enduserip 10.1.2.1 --gtp0port 3386 --gtp1cport 2123
--nsapi 2
Hopefully I have provided enough information. Any ideas on how to increase
tunnel throughput?
Thanks
Dave
Hello,
I would like to implement a command line tool, which will be able to open / close , read / write to gtp tunnels. I was able to install the libgtpnl library, but due to lack of documentation I have no idea where to start.
Is there some sort of documentation available for this library?
I need to be able to create and delete tunnels without the GTP-C communication, so just basic command line tool like create-gtp-tunnel + arguments like IPs, version and teid. The GTP-U tunnels must be kernel based. I have the latest kernel with the gtp kernel module loaded.
Any help is appreciated.
Thank you,
Tomas
Hi all,
I built OsmoSGSN with the these following instructions.
<build instructions>
git clone git://git.osmocom.org/osmo-sgsn
cd osmo-sgsn
autoreconf -fi
./configure --enable-iu
make -j5
make check
make install
sudo ldconfig
<build instructions>
And no error came out during building process, but no “osmo-sgsn” executable was found. Pls help me. Thank you in advance.
Best Regards,
Xinke
Hello,
I tried to run sgsnemu in "createif" mode - transfer traffic via tun
interface.
tun interface created and routing too. But there are no outgoing GTP-U
from test machine. (in my scenario sgsnemu on separated server).
From gdb it looks, that in cb_tun_ind function ipm->pdp is 0x0, as result
gtp_data_req(gsn, ipm->pdp, pack, len);
not running.
After changes like below, it's start working. Does I correctly
understood internal logic?
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index 630733b..cf4aa44 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -1462,7 +1462,7 @@ static int create_pdp_conf(struct pdp_t *pdp, void
*cbp, int cause)
free(forwarding);
}
- ipset((struct iphash_t *)pdp->peer, &addr);
+ ipset(iph, &addr);
state = 2; /* Connected */
If need more test details, please let me know.
--
Viktor