neels has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-upf/+/31478 )

Change subject: cosmetic: reduce dup in tunnel struct definitions
......................................................................

cosmetic: reduce dup in tunnel struct definitions

Use a common struct upf_tun_ep and struct upf_tun for both tunend and
tunmap definitions, with a nicer local / remote sub-structuring.

Change-Id: I07866e2acbeb74914e1fd6f66839a5a8ae247b1e
---
M include/osmocom/upf/Makefile.am
M include/osmocom/upf/upf_gtp.h
M include/osmocom/upf/upf_nft.h
A include/osmocom/upf/upf_tun.h
M src/osmo-upf/up_gtp_action.c
M src/osmo-upf/up_session.c
M src/osmo-upf/upf_gtp.c
M src/osmo-upf/upf_nft.c
M src/osmo-upf/upf_vty.c
9 files changed, 151 insertions(+), 94 deletions(-)

Approvals:
  Jenkins Builder: Verified
  msuraev: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved




diff --git a/include/osmocom/upf/Makefile.am b/include/osmocom/upf/Makefile.am
index f418cb1..e8eda55 100644
--- a/include/osmocom/upf/Makefile.am
+++ b/include/osmocom/upf/Makefile.am
@@ -7,5 +7,6 @@
        upf_gtp.h \
        upf_gtpu_echo.h \
        upf_nft.h \
+       upf_tun.h \
        up_gtp_action.h \
        $(NULL)
diff --git a/include/osmocom/upf/upf_gtp.h b/include/osmocom/upf/upf_gtp.h
index 695aead..b4cd3df 100644
--- a/include/osmocom/upf/upf_gtp.h
+++ b/include/osmocom/upf/upf_gtp.h
@@ -27,6 +27,8 @@
 #include <osmocom/core/select.h>
 #include <osmocom/core/logging.h>

+#include <osmocom/upf/upf_tun.h>
+
 #define LOG_GTP_DEV(DEV, LEVEL, FMT, ARGS...) \
        LOGP(DGTP, LEVEL, "%s: " FMT, upf_gtp_dev_to_str_c(OTC_SELECT, (DEV)), 
##ARGS)

@@ -58,12 +60,7 @@
 /* Description of a GTP encapsulation / decapsulation.
  * The active state to operate the GTP kernel module accordingly is kept in 
struct upf_gtp_tunend. */
 struct upf_tunend {
-       struct {
-               struct osmo_sockaddr gtp_local_addr;
-               uint32_t local_teid;
-               struct osmo_sockaddr gtp_remote_addr;
-               uint32_t remote_teid;
-       } access;
+       struct upf_tun access;
        struct {
                struct osmo_sockaddr ue_local_addr;
        } core;
diff --git a/include/osmocom/upf/upf_nft.h b/include/osmocom/upf/upf_nft.h
index 8f0cccd..be2ec0d 100644
--- a/include/osmocom/upf/upf_nft.h
+++ b/include/osmocom/upf/upf_nft.h
@@ -25,23 +25,16 @@

 #include <stdint.h>

-#include <osmocom/core/socket.h>
+#include <osmocom/upf/upf_tun.h>
+
+struct upf_nft_tun {
+       struct upf_tun tun;
+       uint32_t chain_id;
+};

 struct upf_tunmap {
-       struct {
-               struct osmo_sockaddr gtp_local_addr;
-               uint32_t local_teid;
-               struct osmo_sockaddr gtp_remote_addr;
-               uint32_t remote_teid;
-               uint32_t chain_id;
-       } access;
-       struct {
-               struct osmo_sockaddr gtp_local_addr;
-               uint32_t local_teid;
-               struct osmo_sockaddr gtp_remote_addr;
-               uint32_t remote_teid;
-               uint32_t chain_id;
-       } core;
+       struct upf_nft_tun access;
+       struct upf_nft_tun core;
 };

 int upf_nft_tunmap_to_str_buf(char *buf, size_t buflen, const struct 
upf_tunmap *tunmap);
diff --git a/include/osmocom/upf/upf_tun.h b/include/osmocom/upf/upf_tun.h
new file mode 100644
index 0000000..e14b036
--- /dev/null
+++ b/include/osmocom/upf/upf_tun.h
@@ -0,0 +1,38 @@
+/*
+ * (C) 2023 by sysmocom - s.f.m.c. GmbH <[email protected]>
+ * All Rights Reserved.
+ *
+ * Author: Neels Janosch Hofmeyr <[email protected]>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include <stdint.h>
+
+#include <osmocom/core/socket.h>
+
+struct upf_tun_ep {
+       struct osmo_sockaddr addr;
+       uint32_t teid;
+};
+
+struct upf_tun {
+       struct upf_tun_ep local;
+       struct upf_tun_ep remote;
+};
diff --git a/src/osmo-upf/up_gtp_action.c b/src/osmo-upf/up_gtp_action.c
index b331260..e7616ac 100644
--- a/src/osmo-upf/up_gtp_action.c
+++ b/src/osmo-upf/up_gtp_action.c
@@ -48,11 +48,11 @@

        switch (a->kind) {
        case UP_GTP_U_TUNEND:
-               if ((cmp = CMP_MEMB(tunend.access.local_teid)))
+               if ((cmp = CMP_MEMB(tunend.access.local.teid)))
                        return cmp;
-               if ((cmp = CMP_MEMB(tunend.access.remote_teid)))
+               if ((cmp = CMP_MEMB(tunend.access.remote.teid)))
                        return cmp;
-               cmp = osmo_sockaddr_cmp(&a->tunend.access.gtp_remote_addr, 
&b->tunend.access.gtp_remote_addr);
+               cmp = osmo_sockaddr_cmp(&a->tunend.access.remote.addr, 
&b->tunend.access.remote.addr);
                if (cmp)
                        return cmp;
                cmp = osmo_sockaddr_cmp(&a->tunend.core.ue_local_addr, 
&b->tunend.core.ue_local_addr);
@@ -61,13 +61,13 @@
                break;

        case UP_GTP_U_TUNMAP:
-               if ((cmp = CMP_MEMB(tunmap.access.local_teid)))
+               if ((cmp = CMP_MEMB(tunmap.access.tun.local.teid)))
                        return cmp;
-               if ((cmp = CMP_MEMB(tunmap.access.remote_teid)))
+               if ((cmp = CMP_MEMB(tunmap.access.tun.remote.teid)))
                        return cmp;
-               if ((cmp = CMP_MEMB(tunmap.core.local_teid)))
+               if ((cmp = CMP_MEMB(tunmap.core.tun.local.teid)))
                        return cmp;
-               if ((cmp = CMP_MEMB(tunmap.core.remote_teid)))
+               if ((cmp = CMP_MEMB(tunmap.core.tun.remote.teid)))
                        return cmp;
                break;
        default:
@@ -91,7 +91,7 @@
                }

                /* Pick GTP device matching the local F-TEID set up for the GTP 
tunnel (it is on the Access side) */
-               gtp_addr = &a->tunend.access.gtp_local_addr;
+               gtp_addr = &a->tunend.access.local.addr;
                gtp_dev = upf_gtp_dev_find_by_local_addr(gtp_addr);
                if (!gtp_dev) {
                        LOG_UP_GTP_ACTION(a, LOGL_ERROR, "No GTP device open 
for local address %s, cannot %s"
@@ -158,26 +158,26 @@
        switch (a->kind) {
        case UP_GTP_U_TUNEND:
                OSMO_STRBUF_PRINTF(sb, "GTP:tunend GTP-access-r:");
-               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunend.access.gtp_remote_addr);
-               OSMO_STRBUF_PRINTF(sb, " TEID-access-r:0x%"PRIx32, 
a->tunend.access.remote_teid);
+               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunend.access.remote.addr);
+               OSMO_STRBUF_PRINTF(sb, " TEID-access-r:0x%"PRIx32, 
a->tunend.access.remote.teid);
                OSMO_STRBUF_PRINTF(sb, " GTP-access-l:");
-               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunend.access.gtp_local_addr);
-               OSMO_STRBUF_PRINTF(sb, " TEID-access-l:0x%"PRIx32" IP-core-l:", 
a->tunend.access.local_teid);
+               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunend.access.local.addr);
+               OSMO_STRBUF_PRINTF(sb, " TEID-access-l:0x%"PRIx32" IP-core-l:", 
a->tunend.access.local.teid);
                OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunend.core.ue_local_addr);
                break;
        case UP_GTP_U_TUNMAP:
                OSMO_STRBUF_PRINTF(sb, "GTP:tunmap GTP-access-r:");
-               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.access.gtp_remote_addr);
-               OSMO_STRBUF_PRINTF(sb, " TEID-access-r:0x%"PRIx32, 
a->tunmap.access.remote_teid);
+               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.access.tun.remote.addr);
+               OSMO_STRBUF_PRINTF(sb, " TEID-access-r:0x%"PRIx32, 
a->tunmap.access.tun.remote.teid);
                OSMO_STRBUF_PRINTF(sb, " GTP-access-l:");
-               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.access.gtp_local_addr);
-               OSMO_STRBUF_PRINTF(sb, " TEID-access-l:0x%"PRIx32, 
a->tunmap.access.local_teid);
+               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.access.tun.local.addr);
+               OSMO_STRBUF_PRINTF(sb, " TEID-access-l:0x%"PRIx32, 
a->tunmap.access.tun.local.teid);
                OSMO_STRBUF_PRINTF(sb, " GTP-core-r:");
-               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.core.gtp_remote_addr);
-               OSMO_STRBUF_PRINTF(sb, " TEID-core-r:0x%"PRIx32, 
a->tunmap.core.remote_teid);
+               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.core.tun.remote.addr);
+               OSMO_STRBUF_PRINTF(sb, " TEID-core-r:0x%"PRIx32, 
a->tunmap.core.tun.remote.teid);
                OSMO_STRBUF_PRINTF(sb, " GTP-core-l:");
-               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.core.gtp_local_addr);
-               OSMO_STRBUF_PRINTF(sb, " TEID-core-l:0x%"PRIx32, 
a->tunmap.core.local_teid);
+               OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&a->tunmap.core.tun.local.addr);
+               OSMO_STRBUF_PRINTF(sb, " TEID-core-l:0x%"PRIx32, 
a->tunmap.core.tun.local.teid);
                break;
        case UP_GTP_DROP:
                OSMO_STRBUF_PRINTF(sb, "GTP:drop");
diff --git a/src/osmo-upf/up_session.c b/src/osmo-upf/up_session.c
index 59d45c0..38f4d2b 100644
--- a/src/osmo-upf/up_session.c
+++ b/src/osmo-upf/up_session.c
@@ -1227,10 +1227,14 @@
                .kind = UP_GTP_U_TUNEND,
                .tunend = {
                        .access = {
-                               .gtp_local_addr = 
pdr->local_f_teid->fixed.ip_addr.v4,
-                               .local_teid = pdr->local_f_teid->fixed.teid,
-                               .gtp_remote_addr = 
rfar_forw->outer_header_creation.ip_addr.v4,
-                               .remote_teid = 
rfar_forw->outer_header_creation.teid,
+                               .local = {
+                                       .addr = 
pdr->local_f_teid->fixed.ip_addr.v4,
+                                       .teid = pdr->local_f_teid->fixed.teid,
+                               },
+                               .remote = {
+                                       .addr = 
rfar_forw->outer_header_creation.ip_addr.v4,
+                                       .teid = 
rfar_forw->outer_header_creation.teid,
+                               },
                        },
                        .core = {
                                .ue_local_addr = 
rpdr->desc.pdi.ue_ip_address.ip_addr.v4,
@@ -1336,17 +1340,25 @@
                .pdr_core = rpdr->desc.pdr_id,
                .kind = UP_GTP_U_TUNMAP,
                .tunmap = {
-                       .access = {
-                               .gtp_local_addr = 
pdr->local_f_teid->fixed.ip_addr.v4,
-                               .local_teid = pdr->local_f_teid->fixed.teid,
-                               .gtp_remote_addr = 
rfar_forw->outer_header_creation.ip_addr.v4,
-                               .remote_teid = 
rfar_forw->outer_header_creation.teid,
+                       .access.tun = {
+                               .local = {
+                                       .addr = 
pdr->local_f_teid->fixed.ip_addr.v4,
+                                       .teid = pdr->local_f_teid->fixed.teid,
+                               },
+                               .remote = {
+                                       .addr = 
rfar_forw->outer_header_creation.ip_addr.v4,
+                                       .teid = 
rfar_forw->outer_header_creation.teid,
+                               },
                        },
-                       .core = {
-                               .gtp_local_addr = 
rpdr->local_f_teid->fixed.ip_addr.v4,
-                               .local_teid = rpdr->local_f_teid->fixed.teid,
-                               .gtp_remote_addr = 
far_forw->outer_header_creation.ip_addr.v4,
-                               .remote_teid = 
far_forw->outer_header_creation.teid,
+                       .core.tun = {
+                               .local =  {
+                                       .addr = 
rpdr->local_f_teid->fixed.ip_addr.v4,
+                                       .teid = rpdr->local_f_teid->fixed.teid,
+                               },
+                               .remote = {
+                                       .addr = 
far_forw->outer_header_creation.ip_addr.v4,
+                                       .teid = 
far_forw->outer_header_creation.teid,
+                               },
                        },
                },
        };
diff --git a/src/osmo-upf/upf_gtp.c b/src/osmo-upf/upf_gtp.c
index 54dcf11..cbca882 100644
--- a/src/osmo-upf/upf_gtp.c
+++ b/src/osmo-upf/upf_gtp.c
@@ -320,9 +320,9 @@
        struct osmo_strbuf sb = { .buf = buf, .len = buflen };
        /* "tunend{dev=apn0 access(GTP-r=1.2.3.4 TEID:l=0x1234,r=0x5678) 
core(UE-l=10.9.8.7)}" */
        OSMO_STRBUF_PRINTF(sb, "tunend{dev=%s access(GTP-r=", tun->dev->name);
-       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tun->desc.access.gtp_remote_addr);
+       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tun->desc.access.remote.addr);
        OSMO_STRBUF_PRINTF(sb, " TEID:l=0x%x,r=0x%x) core(UE-l=",
-                          tun->desc.access.local_teid, 
tun->desc.access.remote_teid);
+                          tun->desc.access.local.teid, 
tun->desc.access.remote.teid);
        OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tun->desc.core.ue_local_addr);
        OSMO_STRBUF_PRINTF(sb, ")}");
        return sb.chars_needed;
@@ -345,8 +345,8 @@

 #define tunend_validate(TUNEND) \
        do { \
-               
OSMO_ASSERT(osmo_sockaddr_port(&(TUNEND)->access.gtp_local_addr.u.sa) == 0); \
-               
OSMO_ASSERT(osmo_sockaddr_port(&(TUNEND)->access.gtp_remote_addr.u.sa) == 0); \
+               
OSMO_ASSERT(osmo_sockaddr_port(&(TUNEND)->access.local.addr.u.sa) == 0); \
+               
OSMO_ASSERT(osmo_sockaddr_port(&(TUNEND)->access.remote.addr.u.sa) == 0); \
                
OSMO_ASSERT(osmo_sockaddr_port(&(TUNEND)->core.ue_local_addr.u.sa) == 0); \
        } while (0)

@@ -369,7 +369,7 @@
        struct gtp_tunnel *t;

        if (tun->desc.core.ue_local_addr.u.sas.ss_family != AF_INET
-           || tun->desc.access.gtp_remote_addr.u.sas.ss_family != AF_INET) {
+           || tun->desc.access.remote.addr.u.sas.ss_family != AF_INET) {
                LOG_GTP_TUN(tun, LOGL_ERROR, "Only capabale of IPv4\n");
                return NULL;
        }
@@ -378,9 +378,9 @@
        OSMO_ASSERT(t);
        gtp_tunnel_set_ifidx(t, tun->dev->ifidx);
        gtp_tunnel_set_version(t, GTP_V1);
-       gtp_tunnel_set_i_tei(t, tun->desc.access.local_teid);
-       gtp_tunnel_set_o_tei(t, tun->desc.access.remote_teid);
-       gtp_tunnel_set_sgsn_ip4(t, 
&tun->desc.access.gtp_remote_addr.u.sin.sin_addr);
+       gtp_tunnel_set_i_tei(t, tun->desc.access.local.teid);
+       gtp_tunnel_set_o_tei(t, tun->desc.access.remote.teid);
+       gtp_tunnel_set_sgsn_ip4(t, 
&tun->desc.access.remote.addr.u.sin.sin_addr);
        gtp_tunnel_set_ms_ip4(t, &tun->desc.core.ue_local_addr.u.sin.sin_addr);
        return t;
 }
@@ -503,9 +503,9 @@
                return 1;

 #define CMP_MEMB(MEMB) OSMO_CMP(a->MEMB, b->MEMB)
-       if ((r = CMP_MEMB(access.local_teid)))
+       if ((r = CMP_MEMB(access.local.teid)))
                return r;
-       if ((r = CMP_MEMB(access.remote_teid)))
+       if ((r = CMP_MEMB(access.remote.teid)))
                return r;
-       return osmo_sockaddr_cmp(&a->access.gtp_remote_addr, 
&b->access.gtp_remote_addr);
+       return osmo_sockaddr_cmp(&a->access.remote.addr, 
&b->access.remote.addr);
 }
diff --git a/src/osmo-upf/upf_nft.c b/src/osmo-upf/upf_nft.c
index 37a4730..4b5cb43 100644
--- a/src/osmo-upf/upf_nft.c
+++ b/src/osmo-upf/upf_nft.c
@@ -290,14 +290,14 @@

        /* ACCESS 1.1.1.2:0x102 <---> 2.2.2.1:0x201 UPF 2.2.2.3:0x203 <---> 
3.3.3.2:0x302 CORE */
        OSMO_STRBUF_PRINTF(sb, "ACCESS ");
-       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->access.gtp_remote_addr);
-       OSMO_STRBUF_PRINTF(sb, ":0x%x <---> ", tunmap->access.remote_teid);
-       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->access.gtp_local_addr);
-       OSMO_STRBUF_PRINTF(sb, ":0x%x UPF ", tunmap->access.local_teid);
-       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->core.gtp_local_addr);
-       OSMO_STRBUF_PRINTF(sb, ":0x%x <---> ", tunmap->core.local_teid);
-       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->core.gtp_remote_addr);
-       OSMO_STRBUF_PRINTF(sb, ":0x%x CORE", tunmap->core.remote_teid);
+       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->access.tun.remote.addr);
+       OSMO_STRBUF_PRINTF(sb, ":0x%x <---> ", tunmap->access.tun.remote.teid);
+       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->access.tun.local.addr);
+       OSMO_STRBUF_PRINTF(sb, ":0x%x UPF ", tunmap->access.tun.local.teid);
+       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->core.tun.local.addr);
+       OSMO_STRBUF_PRINTF(sb, ":0x%x <---> ", tunmap->core.tun.local.teid);
+       OSMO_STRBUF_APPEND(sb, osmo_sockaddr_to_str_buf2, 
&tunmap->core.tun.remote.addr);
+       OSMO_STRBUF_PRINTF(sb, ":0x%x CORE", tunmap->core.tun.remote.teid);
        return sb.chars_needed;
 }

@@ -308,25 +308,25 @@

 static void upf_nft_args_from_tunmap(struct upf_nft_args *args, const struct 
upf_tunmap *tunmap)
 {
-       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->access.gtp_remote_addr.u.sa) == 
0);
-       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->access.gtp_local_addr.u.sa) == 
0);
-       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->core.gtp_remote_addr.u.sa) == 
0);
-       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->core.gtp_local_addr.u.sa) == 0);
+       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->access.tun.remote.addr.u.sa) == 
0);
+       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->access.tun.local.addr.u.sa) == 
0);
+       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->core.tun.remote.addr.u.sa) == 
0);
+       OSMO_ASSERT(osmo_sockaddr_port(&tunmap->core.tun.local.addr.u.sa) == 0);

        *args = (struct upf_nft_args){
                .table_name = g_upf->nft.table_name,
                .peer_a = {
-                       .addr_remote = &tunmap->access.gtp_remote_addr,
-                       .teid_remote = tunmap->access.remote_teid,
-                       .addr_local = &tunmap->access.gtp_local_addr,
-                       .teid_local = tunmap->access.local_teid,
+                       .addr_remote = &tunmap->access.tun.remote.addr,
+                       .teid_remote = tunmap->access.tun.remote.teid,
+                       .addr_local = &tunmap->access.tun.local.addr,
+                       .teid_local = tunmap->access.tun.local.teid,
                        .chain_id = tunmap->access.chain_id,
                },
                .peer_b = {
-                       .addr_remote = &tunmap->core.gtp_remote_addr,
-                       .teid_remote = tunmap->core.remote_teid,
-                       .addr_local = &tunmap->core.gtp_local_addr,
-                       .teid_local = tunmap->core.local_teid,
+                       .addr_remote = &tunmap->core.tun.remote.addr,
+                       .teid_remote = tunmap->core.tun.remote.teid,
+                       .addr_local = &tunmap->core.tun.local.addr,
+                       .teid_local = tunmap->core.tun.local.teid,
                        .chain_id = tunmap->core.chain_id,
                },
        };
diff --git a/src/osmo-upf/upf_vty.c b/src/osmo-upf/upf_vty.c
index 3fe297a..51bf002 100644
--- a/src/osmo-upf/upf_vty.c
+++ b/src/osmo-upf/upf_vty.c
@@ -298,28 +298,32 @@
        struct osmo_sockaddr_str str = {};
        struct upf_tunmap tunmap = {
                .access = {
-                       .local_teid = 0x201,
-                       .remote_teid = 0x102,
+                       .tun = {
+                               .local.teid = 0x201,
+                               .remote.teid = 0x102,
+                       },
                        .chain_id = 123,
                },
                .core = {
-                       .local_teid = 0x203,
-                       .remote_teid = 0x302,
+                       .tun = {
+                               .local.teid = 0x203,
+                               .remote.teid = 0x302,
+                       },
                        .chain_id = 321,
                },
        };

        osmo_sockaddr_str_from_str2(&str, "1.1.1.1");
-       osmo_sockaddr_str_to_sockaddr(&str, 
&tunmap.access.gtp_remote_addr.u.sas);
+       osmo_sockaddr_str_to_sockaddr(&str, 
&tunmap.access.tun.remote.addr.u.sas);

        osmo_sockaddr_str_from_str2(&str, "2.2.2.1");
-       osmo_sockaddr_str_to_sockaddr(&str, 
&tunmap.access.gtp_local_addr.u.sas);
+       osmo_sockaddr_str_to_sockaddr(&str, 
&tunmap.access.tun.local.addr.u.sas);

        osmo_sockaddr_str_from_str2(&str, "2.2.2.3");
-       osmo_sockaddr_str_to_sockaddr(&str, &tunmap.core.gtp_local_addr.u.sas);
+       osmo_sockaddr_str_to_sockaddr(&str, &tunmap.core.tun.local.addr.u.sas);

        osmo_sockaddr_str_from_str2(&str, "3.3.3.3");
-       osmo_sockaddr_str_to_sockaddr(&str, &tunmap.core.gtp_remote_addr.u.sas);
+       osmo_sockaddr_str_to_sockaddr(&str, &tunmap.core.tun.remote.addr.u.sas);

        vty_out(vty, "%% init verdict map:%s", VTY_NEWLINE);
        vty_out(vty, "%s%s", upf_nft_tunmap_get_table_init_str(OTC_SELECT), 
VTY_NEWLINE);

--
To view, visit https://gerrit.osmocom.org/c/osmo-upf/+/31478
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-upf
Gerrit-Branch: master
Gerrit-Change-Id: I07866e2acbeb74914e1fd6f66839a5a8ae247b1e
Gerrit-Change-Number: 31478
Gerrit-PatchSet: 1
Gerrit-Owner: neels <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: msuraev <[email protected]>
Gerrit-Reviewer: neels <[email protected]>
Gerrit-MessageType: merged

Reply via email to