From msuraev at sysmocom.de Wed Aug 3 09:03:38 2016 From: msuraev at sysmocom.de (Max) Date: Wed, 3 Aug 2016 11:03:38 +0200 Subject: gerrit openggsn Message-ID: <23ba340c-6e64-998b-6782-71226d188dff@sysmocom.de> Hi. I've noticed that OpenGGSN is not part of https://gerrit.osmocom.org/#/admin/projects/ Is there plan to move it to gerrit as well or shall I send patches to this list instead? -- Max Suraev 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 From laforge at gnumonks.org Mon Aug 8 08:49:53 2016 From: laforge at gnumonks.org (Harald Welte) Date: Mon, 8 Aug 2016 10:49:53 +0200 Subject: gerrit openggsn In-Reply-To: <23ba340c-6e64-998b-6782-71226d188dff@sysmocom.de> References: <23ba340c-6e64-998b-6782-71226d188dff@sysmocom.de> Message-ID: <20160808084953.GE6237@nataraja> Hi Max, On Wed, Aug 03, 2016 at 11:03:38AM +0200, Max wrote: > I've noticed that OpenGGSN is not part of > https://gerrit.osmocom.org/#/admin/projects/ > Is there plan to move it to gerrit as well or shall I send patches to > this list instead? I think we can safely move it into gerrit. Until it is thre, the list is properly a good idea. -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From msuraev at sysmocom.de Mon Aug 8 16:10:18 2016 From: msuraev at sysmocom.de (msuraev at sysmocom.de) Date: Mon, 8 Aug 2016 18:10:18 +0200 Subject: [PATCH 1/2] Remove unused function Message-ID: <20160808161019.5477-1-msuraev@sysmocom.de> From: Max --- ggsn/ggsn.c | 1 - gtp/pdp.c | 11 ----------- gtp/pdp.h | 1 - 3 files changed, 13 deletions(-) diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index 7725016..6866901 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -154,7 +154,6 @@ int create_context_ind(struct pdp_t *pdp) pdp->eua.l = 0; /* TODO: Indicates dynamic IP */ - /* ulcpy(&pdp->qos_neg, &pdp->qos_req, sizeof(pdp->qos_req.v)); */ memcpy(pdp->qos_neg0, pdp->qos_req0, sizeof(pdp->qos_req0)); memcpy(&pdp->pco_neg, &pco, sizeof(pdp->pco_neg)); diff --git a/gtp/pdp.c b/gtp/pdp.c index f0d6adf..f297af9 100644 --- a/gtp/pdp.c +++ b/gtp/pdp.c @@ -370,14 +370,3 @@ void pdp_set_imsi_nsapi(struct pdp_t *pdp, uint64_t teid) pdp->imsi = teid & 0x0fffffffffffffffull; pdp->nsapi = (teid & 0xf000000000000000ull) >> 60; } - -int ulcpy(void *dst, void *src, size_t size) -{ - if (((struct ul255_t *)src)->l <= size) { - ((struct ul255_t *)dst)->l = ((struct ul255_t *)src)->l; - memcpy(((struct ul255_t *)dst)->v, ((struct ul255_t *)src)->v, - ((struct ul255_t *)dst)->l); - return 0; - } else - return EOF; -} diff --git a/gtp/pdp.h b/gtp/pdp.h index 57af8b3..217b1d6 100644 --- a/gtp/pdp.h +++ b/gtp/pdp.h @@ -252,6 +252,5 @@ int pdp_ipget(struct pdp_t **pdp, void* ipif, struct ul66_t *eua); int pdp_ntoeua(struct in_addr *src, struct ul66_t *eua); int pdp_euaton(struct ul66_t *eua, struct in_addr *dst); uint64_t pdp_gettid(uint64_t imsi, uint8_t nsapi); -int ulcpy(void *dst, void *src, size_t size); #endif /* !_PDP_H */ -- 2.9.2 From msuraev at sysmocom.de Mon Aug 8 16:10:19 2016 From: msuraev at sysmocom.de (msuraev at sysmocom.de) Date: Mon, 8 Aug 2016 18:10:19 +0200 Subject: [PATCH 2/2] Add control interface In-Reply-To: <20160808161019.5477-1-msuraev@sysmocom.de> References: <20160808161019.5477-1-msuraev@sysmocom.de> Message-ID: <20160808161019.5477-2-msuraev@sysmocom.de> From: Max Only generation of TRAP messages over Control Interface is supported so far. Note: requires corresponding version of libosmoctrl. Related: OS#1646 --- configure.ac | 1 + ggsn/Makefile.am | 6 +++--- ggsn/ggsn.c | 28 +++++++++++++++++++++++++++- gtp/gtp.h | 4 +++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 9b8d988..b11730b 100644 --- a/configure.ac +++ b/configure.ac @@ -117,6 +117,7 @@ AM_INIT_AUTOMAKE() PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.6.4) PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.3.0) +PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl) AC_CONFIG_FILES([Makefile doc/Makefile diff --git a/ggsn/Makefile.am b/ggsn/Makefile.am index c8868c1..3ad3a6e 100644 --- a/ggsn/Makefile.am +++ b/ggsn/Makefile.am @@ -2,13 +2,13 @@ bin_PROGRAMS = ggsn AM_LDFLAGS = @EXEC_LDFLAGS@ -AM_CFLAGS = -O2 -D_GNU_SOURCE -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb $(LIBOSMOCORE_CFLAGS) +AM_CFLAGS = -O2 -D_GNU_SOURCE -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCTRL_CFLAGS) if ENABLE_GTP_KERNEL AM_CFLAGS += -DGTP_KERNEL -ggsn_LDADD = @EXEC_LDADD@ -lgtp -lgtpnl -L../gtp ../lib/libmisc.a $(LIBOSMOCORE_LIBS) +ggsn_LDADD = @EXEC_LDADD@ -lgtp -lgtpnl -L../gtp ../lib/libmisc.a $(LIBOSMOCORE_LIBS) $(LIBOSMOCTRL_LIBS) else -ggsn_LDADD = @EXEC_LDADD@ -lgtp -L../gtp ../lib/libmisc.a $(LIBOSMOCORE_LIBS) +ggsn_LDADD = @EXEC_LDADD@ -lgtp -L../gtp ../lib/libmisc.a $(LIBOSMOCORE_LIBS) $(LIBOSMOCTRL_LIBS) endif ggsn_DEPENDENCIES = ../gtp/libgtp.la ../lib/libmisc.a diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index 6866901..9609d52 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -39,7 +39,7 @@ #include #include #include - +#include #include #include #include @@ -48,6 +48,11 @@ #include +#include +#include +#include +#include + #include "../lib/tun.h" #include "../lib/ippool.h" #include "../lib/syserr.h" @@ -131,6 +136,9 @@ int daemon(int nochdir, int noclose) int delete_context(struct pdp_t *pdp) { DEBUGP(DGGSN, "Deleting PDP context\n"); + struct ippoolm_t *member = pdp->peer; + char v[NAMESIZE]; + snprintf(v, sizeof(v), "%" PRIu64 ",%s", pdp->imsi, inet_ntoa(member->addr)); if (pdp->peer) ippool_freeip(ippool, (struct ippoolm_t *)pdp->peer); else @@ -141,6 +149,9 @@ int delete_context(struct pdp_t *pdp) "Cannot delete tunnel from kernel: %s\n", strerror(errno)); } +/* FIXME: naming? */ + if (ctrl_cmd_send_trap(gsn->ctrl, "imsi-rem-ip", v) < 0) + LOGP(DGGSN, LOGL_ERROR, "Trap creation failed.\n"); return 0; } @@ -149,6 +160,7 @@ int create_context_ind(struct pdp_t *pdp) { struct in_addr addr; struct ippoolm_t *member; + char v[NAMESIZE]; DEBUGP(DGGSN, "Received create PDP context request\n"); @@ -178,6 +190,13 @@ int create_context_ind(struct pdp_t *pdp) SYS_ERR(DGGSN, LOGL_ERROR, 0, "Cannot add tunnel to kernel: %s\n", strerror(errno)); } +/* FIXME: naming? */ + snprintf(v, sizeof(v), "%" PRIu64 ",%s", pdp->imsi, inet_ntoa(member->addr)); + if (ctrl_cmd_send_trap(gsn->ctrl, "imsi-ass-ip", v) < 0) { + LOGP(DGGSN, LOGL_ERROR, "Trap creation failed.\n"); + gtp_create_context_resp(gsn, pdp, GTPCAUSE_NO_RESOURCES); + return 0; + } gtp_create_context_resp(gsn, pdp, GTPCAUSE_ACC_REQ); return 0; /* Success */ @@ -526,6 +545,12 @@ int main(int argc, char **argv) gtp_set_cb_delete_context(gsn, delete_context); gtp_set_cb_create_context_ind(gsn, create_context_ind); + gsn->ctrl = ctrl_interface_setup(NULL, OSMO_CTRL_PORT_GGSN, NULL); + if (!gsn->ctrl) { + LOGP(DGGSN, LOGL_ERROR, "Failed to create CTRL interface.\n"); + exit(1); + } + /* skip the configuration of the tun0 if we're using the gtp0 device */ if (gtp_kernel_enabled()) goto skip_tun; @@ -597,6 +622,7 @@ skip_tun: if (FD_ISSET(gsn->fd1u, &fds)) gtp_decaps1u(gsn); + osmo_select_main(1); } err: gtp_kernel_stop(); diff --git a/gtp/gtp.h b/gtp/gtp.h index 539e255..fd138cc 100644 --- a/gtp/gtp.h +++ b/gtp/gtp.h @@ -12,6 +12,8 @@ #ifndef _GTP_H #define _GTP_H +#include + #define GTP_MODE_GGSN 1 #define GTP_MODE_SGSN 2 @@ -245,7 +247,7 @@ struct gsn_t { unsigned char restart_counter; /* Increment on restart. Stored on disk */ char *statedir; /* Disk location for permanent storage */ - + struct ctrl_handle *ctrl; /* Control Interface */ struct queue_t *queue_req; /* Request queue */ struct queue_t *queue_resp; /* Response queue */ -- 2.9.2 From minh-quang.nguyen at nutaq.com Fri Aug 12 20:25:15 2016 From: minh-quang.nguyen at nutaq.com (Minh-Quang Nguyen) Date: Fri, 12 Aug 2016 16:25:15 -0400 Subject: [EGPRS] Performance results for EGPRS test in Radisys lab References: Message-ID: <86E210CFD3EEDE46A58DE4793CFA6C3F03CA9C27@NTWAEX01.interne.lyrtech.com> Hi, I perform measurements of the latest implementation of EDGE in osmo-pcu and latest osmo-bts from master branch for LC15 platform. In DL, 2 MBytes of data was downloaded from our a server per measurement and repeat 10 times to get the average DL throughput. In UL, 100 KBytes of data was uploaded to a local server per measurement and repeat 10 times to get the average UL throughput. Coding scheme DL (kbps) UL (kbps) MCS9 184 30 MCS8 144 35.5 MCS7 110 21.5 The throughput is not similar to your measurement and I observed that the PCU prints a bunch messages about 'Scheduling Ack/Nack, because MS is stalled' Do you observe this issue during performance test? What causes the MS stalled? Thanks, Minh-Quang Nguyen Concepteur logiciel??|??Software designer GSM/Network T. 418 914-7484 x2296??|??1 855 914-7484??|??F. 418 914-9477 2150, Cyrille-Duquet, Qu?bec (Qu?bec)??G1N 2G3 CANADA minh-quang.nguyen at nutaq.com www.nutaq.com QUEBEC MONTREAL NEW YORK Facebook Twitter LinkedIn YouTube -----Original Message----- From: osmocom-net-gprs [mailto:osmocom-net-gprs-bounces at lists.osmocom.org] On Behalf Of Saurabh Sharan Sent: Friday, July 22, 2016 8:30 AM To: osmocom-net-gprs at lists.osmocom.org Subject: Re: [EGPRS] Performance results for EGPRS test in Radisys lab Hello Max, > What about MCS UL? Do you have some statistics which one has been used The uplink tests have been completed for all EGPRS coding scheme (MCS1 - 9) using the ping or TCP download. We have not conducted specific test for throughput estimation in uplink direction till now. Regards Saurabh From junpei.yoshino at gmail.com Fri Aug 19 03:00:40 2016 From: junpei.yoshino at gmail.com (junpei yoshino) Date: Fri, 19 Aug 2016 12:00:40 +0900 Subject: [PATCH][libgtpnl] I can't look tei by tools/gtp-tunnel.c in GTPv1 Message-ID: Hello I can't look tei by gtp-tunnel in GTPv1. I write patch for libgtpnl. head version $./tools/gtp-tunnel add hoge v1 65535 65535 10.0.3.2 192.168.0.2 $./tools/gtp-tunnel list version 1 tei 0/0 ms_addr 10.0.3.2 sgsn_addr 192.168.0.2 fixed version $./tools/gtp-tunnel add hoge v1 65535 65535 10.0.3.2 192.168.0.2 $./tools/gtp-tunnel list version 1 tei 65535/65535 ms_addr 10.0.3.2 sgsn_addr 192.168.0.2 diff --git src/gtp-genl.c src/gtp-genl.c index 1e77e06..24a640d 100644 --- src/gtp-genl.c +++ src/gtp-genl.c @@ -119,7 +119,7 @@ static int genl_gtp_validate_cb(const struct nlattr *attr, void *data) const struct nlattr **tb = data; int type = mnl_attr_get_type(attr); - if (mnl_attr_type_valid(attr, CTRL_ATTR_MAX) < 0) + if (mnl_attr_type_valid(attr, GTPA_MAX) < 0) return MNL_CB_OK; switch(type) { -- junpei.yoshino at gmail.com From laforge at gnumonks.org Thu Aug 25 04:08:29 2016 From: laforge at gnumonks.org (Harald Welte) Date: Thu, 25 Aug 2016 13:08:29 +0900 Subject: [PATCH][libgtpnl] I can't look tei by tools/gtp-tunnel.c in GTPv1 In-Reply-To: References: Message-ID: <20160825040829.uiysw7spytgpnwwn@nataraja> Hi Junpei, thanks a lot for your bug fix / patch. I've just committed it to the libgtpnl repository, see 345d687. -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From holger at freyther.de Sun Aug 28 11:47:34 2016 From: holger at freyther.de (Holger Freyther) Date: Sun, 28 Aug 2016 13:47:34 +0200 Subject: osmo-pcu build error in master Message-ID: <01067A40-EDF7-4F2C-AC1F-9C80177A7F0C@freyther.de> Hi, it looks like after the rebase done by gerrit something didn't compile anymore. Could someone please have a look at https://gerrit.osmocom.org/#/c/429/ and fix the fall-out in master? thank you holger