osmith has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ggsn/+/36068?usp=email )


Change subject: gtp/gtp_internal.h: new file
......................................................................

gtp/gtp_internal.h: new file

While at it, move internal functions of gtp.h to a separate file too.

The following APIs are unexpectedly public:
* imsi_gtp2str gets used by pdp.h
* gsna2in_addr, gtp_echo_req gets used by osmo-sgsn

Change-Id: I72c40cbdec33449ca8104fb3cad8df1a9e07dfd7
---
M ggsn/ggsn.c
M ggsn/ggsn_vty.c
M ggsn/sgsn.c
M gtp/Makefile.am
M gtp/gsn_internal.h
M gtp/gtp.c
A gtp/gtp_internal.h
M include/osmocom/gtp/gtp.h
M sgsnemu/sgsnemu.c
9 files changed, 75 insertions(+), 51 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/68/36068/1

diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 2644ac5..d64e82f 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -58,6 +58,7 @@
 #include "../lib/icmpv6.h"
 #include "pco.h"
 #include "ggsn.h"
+#include "../gtp/gtp_internal.h"

 static int ggsn_tun_fd_cb(struct osmo_fd *fd, unsigned int what);
 static int cb_tun_ind(struct tun_t *tun, void *pack, unsigned len);
diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c
index a661869..f70daf1 100644
--- a/ggsn/ggsn_vty.c
+++ b/ggsn/ggsn_vty.c
@@ -42,6 +42,7 @@

 #include "ggsn.h"
 #include "sgsn.h"
+#include "../gtp/gtp_internal.h"

 #define PREFIX_STR     "Prefix (Network/Netmask)\n"
 #define IFCONFIG_STR   "GGSN-based interface configuration\n"
diff --git a/ggsn/sgsn.c b/ggsn/sgsn.c
index 15548ef..b324fd7 100644
--- a/ggsn/sgsn.c
+++ b/ggsn/sgsn.c
@@ -1,6 +1,6 @@
 #include "sgsn.h"
 #include "ggsn.h"
-
+#include "../gtp/gtp_internal.h"

 static bool sgsn_peer_attempt_free(struct sgsn_peer *sgsn)
 {
diff --git a/gtp/Makefile.am b/gtp/Makefile.am
index 13d1e18..32f1414 100644
--- a/gtp/Makefile.am
+++ b/gtp/Makefile.am
@@ -20,6 +20,7 @@
                    gsn_internal.h \
                    gtp.c \
                    gtp.h \
+                   gtp_internal.h \
                    gtpie.c \
                    gtpie.h \
                    lookupa.c \
diff --git a/gtp/gsn_internal.h b/gtp/gsn_internal.h
index deb60c3..732cb17 100644
--- a/gtp/gsn_internal.h
+++ b/gtp/gsn_internal.h
@@ -1,3 +1,4 @@
 #pragma once
+#include <osmocom/core/in46_addr.h>

 void gtp_queue_timer_start(struct gsn_t *gsn);
diff --git a/gtp/gtp.c b/gtp/gtp.c
index bdf7e7d..f426e6d 100644
--- a/gtp/gtp.c
+++ b/gtp/gtp.c
@@ -61,6 +61,7 @@

 #include "queue.h"
 #include "gsn_internal.h"
+#include "gtp_internal.h"

 /* Error reporting functions */

diff --git a/gtp/gtp_internal.h b/gtp/gtp_internal.h
new file mode 100644
index 0000000..826ea59
--- /dev/null
+++ b/gtp/gtp_internal.h
@@ -0,0 +1,52 @@
+#pragma once
+
+int gtp_echo_resp(struct gsn_t *gsn, int version,
+                 struct sockaddr_in *peer, int fd,
+                 void *pack, unsigned len);
+int gtp_echo_ind(struct gsn_t *gsn, int version,
+                struct sockaddr_in *peer, int fd,
+                void *pack, unsigned len);
+int gtp_echo_conf(struct gsn_t *gsn, int version,
+                 struct sockaddr_in *peer, void *pack, unsigned len);
+
+int gtp_unsup_req(struct gsn_t *gsn, int version,
+                 struct sockaddr_in *peer,
+                 int fd, void *pack, unsigned len);
+int gtp_unsup_ind(struct gsn_t *gsn, struct sockaddr_in *peer,
+                 void *pack, unsigned len);
+
+int gtp_create_pdp_resp(struct gsn_t *gsn, int version,
+                       struct pdp_t *pdp, uint8_t cause);
+
+int gtp_create_pdp_ind(struct gsn_t *gsn, int version,
+                      struct sockaddr_in *peer, int fd,
+                      void *pack, unsigned len);
+
+int gtp_create_pdp_conf(struct gsn_t *gsn, int version,
+                       struct sockaddr_in *peer,
+                       void *pack, unsigned len);
+
+int gtp_update_pdp_req(struct gsn_t *gsn, int version, void *cbp,
+                      struct in_addr *inetaddr, struct pdp_t *pdp);
+
+int gtp_delete_pdp_req(struct gsn_t *gsn, int version, void *cbp,
+                      struct pdp_t *pdp);
+
+int gtp_delete_pdp_resp(struct gsn_t *gsn, int version,
+                       struct sockaddr_in *peer, int fd,
+                       void *pack, unsigned len,
+                       struct pdp_t *pdp, struct pdp_t *linked_pdp,
+                       uint8_t cause, int teardown);
+
+int gtp_delete_pdp_ind(struct gsn_t *gsn, int version,
+                      struct sockaddr_in *peer, int fd,
+                      void *pack, unsigned len);
+
+int gtp_delete_pdp_conf(struct gsn_t *gsn, int version,
+                       struct sockaddr_in *peer,
+                       void *pack, unsigned len);
+
+int ipv42eua(struct ul66_t *eua, struct in_addr *src);
+int eua2ipv4(struct in_addr *dst, struct ul66_t *eua);
+int in_addr2gsna(struct ul16_t *gsna, struct in_addr *src);
+uint64_t gtp_imsi_str2gtp(const char *str);
diff --git a/include/osmocom/gtp/gtp.h b/include/osmocom/gtp/gtp.h
index 7465cf1..e3c66c9 100644
--- a/include/osmocom/gtp/gtp.h
+++ b/include/osmocom/gtp/gtp.h
@@ -265,61 +265,12 @@
 extern int gtp_decaps0(struct gsn_t *gsn);
 extern int gtp_decaps1c(struct gsn_t *gsn);
 extern int gtp_decaps1u(struct gsn_t *gsn);
-/* Internal functions (not part of the API) */

 extern int gtp_echo_req(struct gsn_t *gsn, int version, void *cbp,
                        struct in_addr *inetaddrs);
-extern int gtp_echo_resp(struct gsn_t *gsn, int version,
-                        struct sockaddr_in *peer, int fd,
-                        void *pack, unsigned len);
-extern int gtp_echo_ind(struct gsn_t *gsn, int version,
-                       struct sockaddr_in *peer, int fd,
-                       void *pack, unsigned len);
-extern int gtp_echo_conf(struct gsn_t *gsn, int version,
-                        struct sockaddr_in *peer, void *pack, unsigned len);

-extern int gtp_unsup_req(struct gsn_t *gsn, int version,
-                        struct sockaddr_in *peer,
-                        int fd, void *pack, unsigned len);
-extern int gtp_unsup_ind(struct gsn_t *gsn, struct sockaddr_in *peer,
-                        void *pack, unsigned len);
-
-extern int gtp_create_pdp_resp(struct gsn_t *gsn, int version,
-                              struct pdp_t *pdp, uint8_t cause);
-
-extern int gtp_create_pdp_ind(struct gsn_t *gsn, int version,
-                             struct sockaddr_in *peer, int fd,
-                             void *pack, unsigned len);
-
-extern int gtp_create_pdp_conf(struct gsn_t *gsn, int version,
-                              struct sockaddr_in *peer,
-                              void *pack, unsigned len);
-
-extern int gtp_update_pdp_req(struct gsn_t *gsn, int version, void *cbp,
-                             struct in_addr *inetaddr, struct pdp_t *pdp);
-
-extern int gtp_delete_pdp_req(struct gsn_t *gsn, int version, void *cbp,
-                             struct pdp_t *pdp);
-
-extern int gtp_delete_pdp_resp(struct gsn_t *gsn, int version,
-                              struct sockaddr_in *peer, int fd,
-                              void *pack, unsigned len,
-                              struct pdp_t *pdp, struct pdp_t *linked_pdp,
-                              uint8_t cause, int teardown);
-
-extern int gtp_delete_pdp_ind(struct gsn_t *gsn, int version,
-                             struct sockaddr_in *peer, int fd,
-                             void *pack, unsigned len);
-
-extern int gtp_delete_pdp_conf(struct gsn_t *gsn, int version,
-                              struct sockaddr_in *peer,
-                              void *pack, unsigned len);
-
-extern int ipv42eua(struct ul66_t *eua, struct in_addr *src);
-extern int eua2ipv4(struct in_addr *dst, struct ul66_t *eua);
 extern int gsna2in_addr(struct in_addr *dst, struct ul16_t *gsna);
-extern int in_addr2gsna(struct ul16_t *gsna, struct in_addr *src);
+
 extern const char *imsi_gtp2str(const uint64_t *imsi);
-extern uint64_t gtp_imsi_str2gtp(const char *str);

 #endif /* !_GTP_H */
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index de7af4a..152b05b 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -62,6 +62,7 @@
 #include "../lib/syserr.h"
 #include "../lib/netns.h"
 #include "../lib/icmpv6.h"
+#include "../gtp/gtp_internal.h"
 #include "cmdline.h"

 #define IPADDRLEN 256          /* Character length of addresses */

--
To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/36068?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ggsn
Gerrit-Branch: master
Gerrit-Change-Id: I72c40cbdec33449ca8104fb3cad8df1a9e07dfd7
Gerrit-Change-Number: 36068
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <[email protected]>
Gerrit-MessageType: newchange

Reply via email to