I'm sorry for the compile error mess up in the last version.
It's no excuse for not test compiling, but the hunks got lost in
a rebase.
This is the part of the previous "simple gtp improvements" series
that Pablo indicated should go into net.
The addition of the module alias fixes genl family autoloading,
clearing the DF bit fixes a protocol violation in regard to the
specification and the netns comparison fixes a corner case of
cross netns recv.
Andreas
v2->v3: fix compiler error introduced in rebase
--
Andreas Schultz (3):
gtp: add genl family modules alias
gtp: clear DF bit on GTP packet tx
gtp: fix cross netns recv on gtp socket
drivers/net/gtp.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
--
2.10.2
While I was waiting for jenkins just now, I noticed that it was getting
impossibly slow despite an idle CPU. An attempt to restart resulted in failure
to launch jenkins due to "Disk quota exceeded".
There are things happening that I don't understand (file system is shrinking as
I remove files). I need help from Holger (or Harald?), to understand and
probably fix with a simple command making more space for the jail...
Until then our jenkins will be DOWN :/
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
This is the part of the previous "simple gtp improvements" series
that Pablo indicated should go into net.
The addition of the module alias fixes genl family autoloading,
clearing the DF bit fixes a protocol violation in regard to the
specification and the netns comparison fixes a corner case of
cross netns recv.
I'm not sure if Pablos comments on the previous version qualify
as ACK, so I left that out.
--
Andreas Schultz (3):
gtp: add genl family modules alias
gtp: clear DF bit on GTP packet tx
gtp: fix cross netns recv on gtp socket
drivers/net/gtp.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
--
2.10.2
On jenkins and opensuse, we have builds where we cannot easily analyse the
testsuite.dir after a build failed. So we only see which tests failed and not
why.
On jenkins I have in most places added a script invocation that prints all
testsuite.dir/*/*.log in case of build failure, so we can see it in the jenkins
log right away.
On opensuse.org, IIUC, the 'make check' is run by dh or something, so it's not
trivial (to me) to make it output the test logs in case of failure.
I'm thinking now, don't we always want to see these failures anyway? We could
include in our Makefile.am a tweak to print the test logs in case of testsuite
failure.
Sometimes this output can become fairly large though; e.g. when a long test
fails early and prints "nothing", the test log shows a huge diff with all
expected output as minus-lines.
My main goal right now is to see why/how the libosmo-netif OBS build failed
(osmux test fails) without further local reproduction effort. This situation
will certainly repeat over and over, for all of the other projects as well.
What do you think? Can we get that easily?
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
FYI,
no "Broken Pipe" errors in a long time, so today I increased the OsmocomBuild1
nr of executors from 3 to 4 ... and immediately got two subsequent openbsc
builds hitting the "Broken Pipe" again.
https://jenkins.osmocom.org/jenkins/job/OpenBSC-gerrit/1716/IU=--enable-iu,…https://jenkins.osmocom.org/jenkins/job/OpenBSC-gerrit/1717/IU=--disable-iu…
This time I tried something else: lower the "make -j 9" to "make -j 3" and
leave the nr of executors at 4...
Just dabbling, would be nicer to pinpoint the real cause.
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
As requested are here the simple and most obvious changes from
the larger GTP changeset. I'll break down the rest and send them
out separately.
The module alias addition and the rcu_lock removal are just small
convenience changes.
The other changes are needed to correctly implement one of the
3GPP GW functions, userspace needs to see invalid T-PDU's in
order to generate the proper error messages, GTP fragmentation
rules need the cleared DF bit.
Andreas
--
Andreas Schultz (5):
gtp: add genl family modules alias
gtp: clear DF bit on GTP packet tx
gtp: fix cross netns recv on gtp socket
gtp: remove unnecessary rcu_read_lock
gtp: let userspace handle packets for invalid tunnels
drivers/net/gtp.c | 33 ++++++++-------------------------
1 file changed, 8 insertions(+), 25 deletions(-)
--
2.10.2
The current linking of GTP network devices and GTP enabled sockets means that
we can not have multiple VRF's per GTP socket. This series seperates the
sockets from network device, makes sockets attached to GTP network device
optional and adds a API function to enable GTP encapsulation on socket
without having to create a new GTP device.
It is still possible to use the old API. The network device attached socket is
then used when no socket is specified on PDP context creation.
During that work some smaller problems where found and fixes for them are
included.
v2 changes:
* the socket that is hold by the pdp context has to be release in a rcu
callback. Otherwise a stray GTP rx could end uo with an invalid socket.
* accessing the skb->sk field in gtp_rx is invalid, that field has no
been populated at that point
* add dst_cache to speed up the routing
Regards
Andreas
--
Andreas Schultz (18):
gtp: add genl family modules alias
gtp: clear DF bit on GTP packet tx
gtp: make GTP sockets in gtp_newlink optional
gtp: return error ptr in find pdp helpers
gtp: unify genl_find_pdp and prepare for per socket lookup
gtp: fix cross netns recv on gtp socket
gtp: remove unnecessary rcu_read_lock
gtp: consolidate pdp context destruction into helper
gtp: use addr_hash when traversing pdp contexts
gtp: add socket to pdp context
gtp: consolidate gtp socket rx path
gtp: let userspace handle packets for invalid tunnels
gtp: replace netdev_dbg and KERN_DEBUG printk with pr_debug
gtp: move TEID hash to per socket structure
gtp: rename gtp hashtable helpers
gtp: add genl cmd to enable GTP encapsulation on UDP socket
gtp: add support to select a GTP socket during PDP context creation
gtp: add dst_cache support
drivers/net/gtp.c | 714 +++++++++++++++++++++++++++--------------------
include/uapi/linux/gtp.h | 4 +
2 files changed, 422 insertions(+), 296 deletions(-)
--
2.10.2
The current linking of GTP network devices and GTP enabled sockets means that
we can not have multiple VRF's per GTP socket. This series seperates the
sockets from network device, makes sockets attached to GTP network device
optional and adds a API function to enable GTP encapsulation on socket
without having to create a new GTP device.
It is still possible to use the old API. The network device attached socket is
then used when no socket is specified on PDP context creation.
During that work some smaller problems where found and fixes for them are
included.
Regards
Andreas
--
Andreas Schultz (17):
gtp: add genl family modules alias
gtp: clear DF bit on GTP packet tx
gtp: make GTP sockets in gtp_newlink optional
gtp: return error ptr in find pdp helpers
gtp: unify genl_find_pdp and prepare for per socket lookup
gtp: fix cross netns recv on gtp socket
gtp: remove unnecessary rcu_read_lock
gtp: consolidate pdp context destruction into helper
gtp: use addr_hash when traversing pdp contexts
gtp: add socket to pdp context
gtp: consolidate gtp socket rx path
gtp: let userspace handle packets for invalid tunnels
gtp: replace netdev_dbg and KERN_DEBUG printk with pr_debug
gtp: move TEID hash to per socket structure
gtp: rename gtp hashtable helpers
gtp: add genl cmd to enable GTP encapsulation on UDP socket
gtp: add support to select a GTP socket during PDP context creation
drivers/net/gtp.c | 681 +++++++++++++++++++++++++++--------------------
include/uapi/linux/gtp.h | 4 +
2 files changed, 392 insertions(+), 293 deletions(-)
--
2.10.2