neels has uploaded this change for review.
cosmetic: simplify naming: struct upf_tunmap, struct upf_tunend
The "desc" has no meaning, every struct is a description of its data.
The "nft" and "gtp" hint at the specific "nftables" and "GTP kernel
module" implementations. I'd rather keep it more abstract and shorter.
That serves removing dup of shared bits in an upcoming patch.
Change-Id: I15e4552a20067265abb8d2dd716861cd50270028
---
M include/osmocom/upf/up_gtp_action.h
M include/osmocom/upf/upf_gtp.h
M include/osmocom/upf/upf_nft.h
M src/osmo-pfcp-tool/pfcp_tool.h
M src/osmo-upf/upf_gtp.c
M src/osmo-upf/upf_nft.c
M src/osmo-upf/upf_vty.c
7 files changed, 67 insertions(+), 52 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-upf refs/changes/77/31477/1
diff --git a/include/osmocom/upf/up_gtp_action.h b/include/osmocom/upf/up_gtp_action.h
index 416910a..c47c35c 100644
--- a/include/osmocom/upf/up_gtp_action.h
+++ b/include/osmocom/upf/up_gtp_action.h
@@ -54,10 +54,10 @@
enum up_gtp_action_kind kind;
union {
/* En-/De-capsulate GTP: add/remove a GTP header and forward the GTP payload from/to plain IP. */
- struct upf_gtp_tunend_desc tunend;
+ struct upf_tunend tunend;
/* Tunnel-map GTP: translate from one TEID to another and forward */
- struct upf_nft_tunmap_desc tunmap;
+ struct upf_tunmap tunmap;
};
/* volatile loop variable to match up wanted and actually present GTP actions */
diff --git a/include/osmocom/upf/upf_gtp.h b/include/osmocom/upf/upf_gtp.h
index ec27455..695aead 100644
--- a/include/osmocom/upf/upf_gtp.h
+++ b/include/osmocom/upf/upf_gtp.h
@@ -57,7 +57,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_gtp_tunend_desc {
+struct upf_tunend {
struct {
struct osmo_sockaddr gtp_local_addr;
uint32_t local_teid;
@@ -69,7 +69,7 @@
} core;
};
-int upf_gtp_tunend_desc_cmp(const struct upf_gtp_tunend_desc *a, const struct upf_gtp_tunend_desc *b);
+int upf_gtp_tunend_cmp(const struct upf_tunend *a, const struct upf_tunend *b);
int upf_gtp_genl_ensure_open();
void upf_gtp_genl_close();
@@ -80,8 +80,8 @@
struct upf_gtp_dev *upf_gtp_dev_find_by_local_addr(const struct osmo_sockaddr *local_addr);
struct upf_gtp_dev *upf_gtp_dev_first();
-int upf_gtp_dev_tunend_add(struct upf_gtp_dev *dev, const struct upf_gtp_tunend_desc *t);
-int upf_gtp_dev_tunend_del(struct upf_gtp_dev *dev, const struct upf_gtp_tunend_desc *t);
+int upf_gtp_dev_tunend_add(struct upf_gtp_dev *dev, const struct upf_tunend *t);
+int upf_gtp_dev_tunend_del(struct upf_gtp_dev *dev, const struct upf_tunend *t);
int upf_gtp_dev_to_str_buf(char *buf, size_t buflen, const struct upf_gtp_dev *dev);
char *upf_gtp_dev_to_str_c(void *ctx, const struct upf_gtp_dev *dev);
diff --git a/include/osmocom/upf/upf_nft.h b/include/osmocom/upf/upf_nft.h
index cf0f0b9..8f0cccd 100644
--- a/include/osmocom/upf/upf_nft.h
+++ b/include/osmocom/upf/upf_nft.h
@@ -27,7 +27,7 @@
#include <osmocom/core/socket.h>
-struct upf_nft_tunmap_desc {
+struct upf_tunmap {
struct {
struct osmo_sockaddr gtp_local_addr;
uint32_t local_teid;
@@ -44,15 +44,15 @@
} core;
};
-int upf_nft_tunmap_to_str_buf(char *buf, size_t buflen, const struct upf_nft_tunmap_desc *tunmap);
-char *upf_nft_tunmap_to_str_c(void *ctx, const struct upf_nft_tunmap_desc *tunmap);
+int upf_nft_tunmap_to_str_buf(char *buf, size_t buflen, const struct upf_tunmap *tunmap);
+char *upf_nft_tunmap_to_str_c(void *ctx, const struct upf_tunmap *tunmap);
int upf_nft_init();
int upf_nft_free();
char *upf_nft_tunmap_get_table_init_str(void *ctx);
char *upf_nft_tunmap_get_vmap_init_str(void *ctx);
-char *upf_nft_tunmap_get_ruleset_str(void *ctx, struct upf_nft_tunmap_desc *tunmap);
-char *upf_nft_tunmap_get_ruleset_del_str(void *ctx, struct upf_nft_tunmap_desc *tunmap);
-int upf_nft_tunmap_create(struct upf_nft_tunmap_desc *tunmap);
-int upf_nft_tunmap_delete(struct upf_nft_tunmap_desc *tunmap);
+char *upf_nft_tunmap_get_ruleset_str(void *ctx, struct upf_tunmap *tunmap);
+char *upf_nft_tunmap_get_ruleset_del_str(void *ctx, struct upf_tunmap *tunmap);
+int upf_nft_tunmap_create(struct upf_tunmap *tunmap);
+int upf_nft_tunmap_delete(struct upf_tunmap *tunmap);
diff --git a/src/osmo-pfcp-tool/pfcp_tool.h b/src/osmo-pfcp-tool/pfcp_tool.h
index dbfbb23..3b81baf 100644
--- a/src/osmo-pfcp-tool/pfcp_tool.h
+++ b/src/osmo-pfcp-tool/pfcp_tool.h
@@ -61,14 +61,14 @@
struct pfcp_tool_gtp_tun_ep remote;
};
-struct pfcp_tool_tunend_desc {
+struct pfcp_tool_tunend {
struct pfcp_tool_gtp_tun access;
struct {
struct osmo_sockaddr_str ue_local_addr;
} core;
};
-struct pfcp_tool_tunmap_desc {
+struct pfcp_tool_tunmap {
struct pfcp_tool_gtp_tun access;
struct pfcp_tool_gtp_tun core;
};
@@ -83,10 +83,10 @@
enum up_gtp_action_kind kind;
union {
/* En-/De-capsulate GTP: add/remove a GTP header and forward the GTP payload from/to plain IP. */
- struct pfcp_tool_tunend_desc tunend;
+ struct pfcp_tool_tunend tunend;
/* Tunnel-map GTP: translate from one TEID to another and forward */
- struct pfcp_tool_tunmap_desc tunmap;
+ struct pfcp_tool_tunmap tunmap;
};
};
diff --git a/src/osmo-upf/upf_gtp.c b/src/osmo-upf/upf_gtp.c
index fea4453..54dcf11 100644
--- a/src/osmo-upf/upf_gtp.c
+++ b/src/osmo-upf/upf_gtp.c
@@ -311,7 +311,7 @@
struct llist_head entry;
struct upf_gtp_dev *dev;
- struct upf_gtp_tunend_desc desc;
+ struct upf_tunend desc;
bool active;
};
@@ -343,18 +343,18 @@
return 0;
}
-#define tunend_desc_validate(TUN_DESC) \
+#define tunend_validate(TUNEND) \
do { \
- OSMO_ASSERT(osmo_sockaddr_port(&(TUN_DESC)->access.gtp_local_addr.u.sa) == 0); \
- OSMO_ASSERT(osmo_sockaddr_port(&(TUN_DESC)->access.gtp_remote_addr.u.sa) == 0); \
- OSMO_ASSERT(osmo_sockaddr_port(&(TUN_DESC)->core.ue_local_addr.u.sa) == 0); \
+ 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)->core.ue_local_addr.u.sa) == 0); \
} while (0)
-static struct upf_gtp_tunend *upf_gtp_tunend_alloc(struct upf_gtp_dev *dev, const struct upf_gtp_tunend_desc *desc)
+static struct upf_gtp_tunend *upf_gtp_tunend_alloc(struct upf_gtp_dev *dev, const struct upf_tunend *desc)
{
struct upf_gtp_tunend *tun = talloc(dev, struct upf_gtp_tunend);
OSMO_ASSERT(tun);
- tunend_desc_validate(desc);
+ tunend_validate(desc);
*tun = (struct upf_gtp_tunend){
.dev = dev,
.desc = *desc,
@@ -411,36 +411,36 @@
return rc;
}
-static struct upf_gtp_tunend *upf_gtp_dev_tunend_find(struct upf_gtp_dev *dev, const struct upf_gtp_tunend_desc *tun_desc)
+static struct upf_gtp_tunend *upf_gtp_dev_tunend_find(struct upf_gtp_dev *dev, const struct upf_tunend *tunend)
{
struct upf_gtp_tunend *tun;
- tunend_desc_validate(tun_desc);
+ tunend_validate(tunend);
llist_for_each_entry(tun, &dev->tunnels, entry) {
- if (upf_gtp_tunend_desc_cmp(tun_desc, &tun->desc))
+ if (upf_gtp_tunend_cmp(tunend, &tun->desc))
continue;
return tun;
}
return NULL;
}
-int upf_gtp_dev_tunend_add(struct upf_gtp_dev *dev, const struct upf_gtp_tunend_desc *tun_desc)
+int upf_gtp_dev_tunend_add(struct upf_gtp_dev *dev, const struct upf_tunend *tunend)
{
struct upf_gtp_tunend *tun;
- tunend_desc_validate(tun_desc);
- tun = upf_gtp_dev_tunend_find(dev, tun_desc);
+ tunend_validate(tunend);
+ tun = upf_gtp_dev_tunend_find(dev, tunend);
if (!tun)
- tun = upf_gtp_tunend_alloc(dev, tun_desc);
+ tun = upf_gtp_tunend_alloc(dev, tunend);
if (tun->active)
return 0;
return upf_gtp_tunend_activate(tun);
}
-int upf_gtp_dev_tunend_del(struct upf_gtp_dev *dev, const struct upf_gtp_tunend_desc *tun_desc)
+int upf_gtp_dev_tunend_del(struct upf_gtp_dev *dev, const struct upf_tunend *tunend)
{
struct upf_gtp_tunend *tun;
int rc;
- tunend_desc_validate(tun_desc);
- tun = upf_gtp_dev_tunend_find(dev, tun_desc);
+ tunend_validate(tunend);
+ tun = upf_gtp_dev_tunend_find(dev, tunend);
if (!tun)
return 0;
if (tun->active) {
@@ -491,7 +491,7 @@
return 0;
}
-int upf_gtp_tunend_desc_cmp(const struct upf_gtp_tunend_desc *a, const struct upf_gtp_tunend_desc *b)
+int upf_gtp_tunend_cmp(const struct upf_tunend *a, const struct upf_tunend *b)
{
int r;
diff --git a/src/osmo-upf/upf_nft.c b/src/osmo-upf/upf_nft.c
index 9faeb1e..37a4730 100644
--- a/src/osmo-upf/upf_nft.c
+++ b/src/osmo-upf/upf_nft.c
@@ -284,7 +284,7 @@
OSMO_NAME_C_IMPL(ctx, 512, "ERROR", upf_nft_ruleset_tunmap_delete_buf, args)
}
-int upf_nft_tunmap_to_str_buf(char *buf, size_t buflen, const struct upf_nft_tunmap_desc *tunmap)
+int upf_nft_tunmap_to_str_buf(char *buf, size_t buflen, const struct upf_tunmap *tunmap)
{
struct osmo_strbuf sb = { .buf = buf, .len = buflen };
@@ -301,12 +301,12 @@
return sb.chars_needed;
}
-char *upf_nft_tunmap_to_str_c(void *ctx, const struct upf_nft_tunmap_desc *tunmap)
+char *upf_nft_tunmap_to_str_c(void *ctx, const struct upf_tunmap *tunmap)
{
OSMO_NAME_C_IMPL(ctx, 128, "ERROR", upf_nft_tunmap_to_str_buf, tunmap)
}
-static void upf_nft_args_from_tunmap_desc(struct upf_nft_args *args, const struct upf_nft_tunmap_desc *tunmap)
+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);
@@ -351,7 +351,7 @@
return g_upf->nft.next_chain_id_state;
}
-char *upf_nft_tunmap_get_ruleset_str(void *ctx, struct upf_nft_tunmap_desc *tunmap)
+char *upf_nft_tunmap_get_ruleset_str(void *ctx, struct upf_tunmap *tunmap)
{
struct upf_nft_args args;
@@ -360,23 +360,23 @@
if (!tunmap->core.chain_id)
tunmap->core.chain_id = chain_id_next();
- upf_nft_args_from_tunmap_desc(&args, tunmap);
+ upf_nft_args_from_tunmap(&args, tunmap);
return upf_nft_ruleset_tunmap_create_c(ctx, &args);
}
-char *upf_nft_tunmap_get_ruleset_del_str(void *ctx, struct upf_nft_tunmap_desc *tunmap)
+char *upf_nft_tunmap_get_ruleset_del_str(void *ctx, struct upf_tunmap *tunmap)
{
struct upf_nft_args args;
- upf_nft_args_from_tunmap_desc(&args, tunmap);
+ upf_nft_args_from_tunmap(&args, tunmap);
return upf_nft_ruleset_tunmap_delete_c(ctx, &args);
}
-int upf_nft_tunmap_create(struct upf_nft_tunmap_desc *tunmap)
+int upf_nft_tunmap_create(struct upf_tunmap *tunmap)
{
return upf_nft_run(upf_nft_tunmap_get_ruleset_str(OTC_SELECT, tunmap));
}
-int upf_nft_tunmap_delete(struct upf_nft_tunmap_desc *tunmap)
+int upf_nft_tunmap_delete(struct upf_tunmap *tunmap)
{
return upf_nft_run(upf_nft_tunmap_get_ruleset_del_str(OTC_SELECT, tunmap));
}
diff --git a/src/osmo-upf/upf_vty.c b/src/osmo-upf/upf_vty.c
index 70e0d69..3fe297a 100644
--- a/src/osmo-upf/upf_vty.c
+++ b/src/osmo-upf/upf_vty.c
@@ -296,7 +296,7 @@
"Print a complete nftables ruleset for a tunmap filled with example IP addresses and TEIDs\n")
{
struct osmo_sockaddr_str str = {};
- struct upf_nft_tunmap_desc d = {
+ struct upf_tunmap tunmap = {
.access = {
.local_teid = 0x201,
.remote_teid = 0x102,
@@ -310,25 +310,25 @@
};
osmo_sockaddr_str_from_str2(&str, "1.1.1.1");
- osmo_sockaddr_str_to_sockaddr(&str, &d.access.gtp_remote_addr.u.sas);
+ osmo_sockaddr_str_to_sockaddr(&str, &tunmap.access.gtp_remote_addr.u.sas);
osmo_sockaddr_str_from_str2(&str, "2.2.2.1");
- osmo_sockaddr_str_to_sockaddr(&str, &d.access.gtp_local_addr.u.sas);
+ osmo_sockaddr_str_to_sockaddr(&str, &tunmap.access.gtp_local_addr.u.sas);
osmo_sockaddr_str_from_str2(&str, "2.2.2.3");
- osmo_sockaddr_str_to_sockaddr(&str, &d.core.gtp_local_addr.u.sas);
+ osmo_sockaddr_str_to_sockaddr(&str, &tunmap.core.gtp_local_addr.u.sas);
osmo_sockaddr_str_from_str2(&str, "3.3.3.3");
- osmo_sockaddr_str_to_sockaddr(&str, &d.core.gtp_remote_addr.u.sas);
+ osmo_sockaddr_str_to_sockaddr(&str, &tunmap.core.gtp_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);
vty_out(vty, "%s%s", upf_nft_tunmap_get_vmap_init_str(OTC_SELECT), VTY_NEWLINE);
vty_out(vty, "%% add tunmap:%s", VTY_NEWLINE);
- vty_out(vty, "%% %s%s", upf_nft_tunmap_to_str_c(OTC_SELECT, &d), VTY_NEWLINE);
- vty_out(vty, "%s%s", upf_nft_tunmap_get_ruleset_str(OTC_SELECT, &d), VTY_NEWLINE);
+ vty_out(vty, "%% %s%s", upf_nft_tunmap_to_str_c(OTC_SELECT, &tunmap), VTY_NEWLINE);
+ vty_out(vty, "%s%s", upf_nft_tunmap_get_ruleset_str(OTC_SELECT, &tunmap), VTY_NEWLINE);
vty_out(vty, "%% delete tunmap:%s", VTY_NEWLINE);
- vty_out(vty, "%s%s", upf_nft_tunmap_get_ruleset_del_str(OTC_SELECT, &d), VTY_NEWLINE);
+ vty_out(vty, "%s%s", upf_nft_tunmap_get_ruleset_del_str(OTC_SELECT, &tunmap), VTY_NEWLINE);
return CMD_SUCCESS;
}
To view, visit change 31477. To unsubscribe, or for help writing mail filters, visit settings.