This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/15250 ) Change subject: Move pdp_get_peer_ipv() to lib/util.* ...................................................................... Move pdp_get_peer_ipv() to lib/util.* Preparation for next commit, where this function will be needed inside libmisc (lib/*). Change-Id: Ibab4f6c09d1e5f0e9cfaea28ae1e7ab5b5c219b5 --- M ggsn/ggsn.c M ggsn/ggsn.h M ggsn/ggsn_vty.c M ggsn/pco.c M lib/Makefile.am A lib/util.c A lib/util.h 7 files changed, 60 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved laforge: Looks good to me, approved diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index c7756d9..4e13151 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -51,6 +51,7 @@ #include "../lib/syserr.h" #include "../lib/in46_addr.h" #include "../lib/gtp-kernel.h" +#include "../lib/util.h" #include "../gtp/pdp.h" #include "../gtp/gtp.h" #include "icmpv6.h" @@ -365,26 +366,6 @@ return 0; } -/*! Get the peer of pdp based on IP version used. - * \param[in] pdp PDP context to select the peer from. - * \param[in] v4v6 IP version to select. Valid values are 4 and 6. - * \returns The selected peer matching the given IP version. NULL if not present. - */ -struct ippoolm_t *pdp_get_peer_ipv(struct pdp_t *pdp, bool is_ipv6) { - uint8_t i; - - for (i = 0; i < 2; i++) { - struct ippoolm_t * ippool = pdp->peer[i]; - if (!ippool) - continue; - if (is_ipv6 && in46a_is_v6(&ippool->addr)) - return ippool; - else if (!is_ipv6 && in46a_is_v4(&ippool->addr)) - return ippool; - } - return NULL; -} - static bool apn_supports_ipv4(const struct apn_ctx *apn) { if (apn->v4.cfg.static_prefix.addr.len || apn->v4.cfg.dynamic_prefix.addr.len) diff --git a/ggsn/ggsn.h b/ggsn/ggsn.h index 1bd067e..88fd8b9 100644 --- a/ggsn/ggsn.h +++ b/ggsn/ggsn.h @@ -145,7 +145,6 @@ extern int ggsn_stop(struct ggsn_ctx *ggsn); extern int apn_start(struct apn_ctx *apn); extern int apn_stop(struct apn_ctx *apn); -extern struct ippoolm_t *pdp_get_peer_ipv(struct pdp_t *pdp, bool is_ipv6); #define LOGPAPN(level, apn, fmt, args...) \ LOGP(DGGSN, level, "APN(%s): " fmt, (apn)->cfg.name, ## args) diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c index 0a86f49..b85df77 100644 --- a/ggsn/ggsn_vty.c +++ b/ggsn/ggsn_vty.c @@ -37,6 +37,8 @@ #include "../gtp/gtp.h" #include "../gtp/pdp.h" +#include "../lib/util.h" + #include "ggsn.h" #define PREFIX_STR "Prefix (Network/Netmask)\n" diff --git a/ggsn/pco.c b/ggsn/pco.c index 5715865..e2181e1 100644 --- a/ggsn/pco.c +++ b/ggsn/pco.c @@ -17,6 +17,8 @@ #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> +#include "../lib/util.h" + #include "pco.h" #include "ggsn.h" diff --git a/lib/Makefile.am b/lib/Makefile.am index b6e7aba..533d777 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,10 +1,10 @@ noinst_LIBRARIES = libmisc.a -noinst_HEADERS = gnugetopt.h ippool.h lookup.h syserr.h tun.h in46_addr.h netdev.h gtp-kernel.h +noinst_HEADERS = gnugetopt.h ippool.h lookup.h syserr.h tun.h in46_addr.h netdev.h gtp-kernel.h util.h AM_CFLAGS = -O2 -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -ggdb $(LIBOSMOCORE_CFLAGS) -libmisc_a_SOURCES = getopt1.c getopt.c ippool.c lookup.c tun.c debug.c in46_addr.c netdev.c +libmisc_a_SOURCES = getopt1.c getopt.c ippool.c lookup.c tun.c debug.c in46_addr.c netdev.c util.c if ENABLE_GTP_KERNEL AM_CFLAGS += -DGTP_KERNEL $(LIBGTPNL_CFLAGS) diff --git a/lib/util.c b/lib/util.c new file mode 100644 index 0000000..6bb0d85 --- /dev/null +++ b/lib/util.c @@ -0,0 +1,35 @@ +/* + * misc helpers + * Copyright 2019 sysmocom - s.f.m.c. GmbH <info at sysmocom.de> + * + * The contents of this file may be used under the terms of the GNU + * General Public License Version 2, provided that the above copyright + * notice and this permission notice is included in all copies or + * substantial portions of the software. + * + */ + +#include "../gtp/pdp.h" + +#include "ippool.h" +#include "in46_addr.h" + +/*! Get the peer of pdp based on IP version used. +* \param[in] pdp PDP context to select the peer from. +* \param[in] v4v6 IP version to select. Valid values are 4 and 6. +* \returns The selected peer matching the given IP version. NULL if not present. +*/ +struct ippoolm_t *pdp_get_peer_ipv(struct pdp_t *pdp, bool is_ipv6) { + uint8_t i; + + for (i = 0; i < 2; i++) { + struct ippoolm_t * ippool = pdp->peer[i]; + if (!ippool) + continue; + if (is_ipv6 && in46a_is_v6(&ippool->addr)) + return ippool; + else if (!is_ipv6 && in46a_is_v4(&ippool->addr)) + return ippool; + } + return NULL; +} diff --git a/lib/util.h b/lib/util.h new file mode 100644 index 0000000..bc9674d --- /dev/null +++ b/lib/util.h @@ -0,0 +1,18 @@ +#pragma once +/* + * misc helpers + * Copyright 2019 sysmocom - s.f.m.c. GmbH <info at sysmocom.de> + * + * The contents of this file may be used under the terms of the GNU + * General Public License Version 2, provided that the above copyright + * notice and this permission notice is included in all copies or + * substantial portions of the software. + * + */ + +#include <stdbool.h> + +struct ippoolm_t; +struct pdp_t; + +struct ippoolm_t *pdp_get_peer_ipv(struct pdp_t *pdp, bool is_ipv6); -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/15250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ibab4f6c09d1e5f0e9cfaea28ae1e7ab5b5c219b5 Gerrit-Change-Number: 15250 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge at gnumonks.org> Gerrit-Reviewer: osmith <osmith at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190829/4a30c84d/attachment.htm>