neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-upf/+/28226 )
Change subject: api: add osmo_pfcp_ie_node_id_to_str_c() ......................................................................
api: add osmo_pfcp_ie_node_id_to_str_c()
So far we had only osmo_pfcp_enc_to_str_node_id(), used for PFCP message to string conversion. It behaves like a common _to_str_buf() function, but has an inconvenient void* arg (for use with libosmo-tlv).
Implement the string conversion as common _to_str_buf() and _to_str_c() functions, and call that from osmo_pfcp_enc_to_str_node_id(). That's useful for log messages coming up in a subsequent patch.
Related: SYS#5599 Change-Id: I5c580bc510afce58a03dea0861db9630b063b2ae --- M include/osmocom/pfcp/pfcp_ies_custom.h M src/libosmo-pfcp/pfcp_ies_custom.c 2 files changed, 14 insertions(+), 2 deletions(-)
Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/include/osmocom/pfcp/pfcp_ies_custom.h b/include/osmocom/pfcp/pfcp_ies_custom.h index c28fdb2..08e62d1 100644 --- a/include/osmocom/pfcp/pfcp_ies_custom.h +++ b/include/osmocom/pfcp/pfcp_ies_custom.h @@ -48,6 +48,9 @@ }; };
+int osmo_pfcp_ie_node_id_to_str_buf(char *buf, size_t buflen, const struct osmo_pfcp_ie_node_id *node_id); +char *osmo_pfcp_ie_node_id_to_str_c(void *ctx, const struct osmo_pfcp_ie_node_id *node_id); + bool osmo_pfcp_bits_get(const uint8_t *bits, unsigned int bitpos); void osmo_pfcp_bits_set(uint8_t *bits, unsigned int bitpos, bool val); int osmo_pfcp_bits_to_str_buf(char *buf, size_t buflen, const uint8_t *bits, const struct value_string *bit_strs); diff --git a/src/libosmo-pfcp/pfcp_ies_custom.c b/src/libosmo-pfcp/pfcp_ies_custom.c index 660a08d..5975a29 100644 --- a/src/libosmo-pfcp/pfcp_ies_custom.c +++ b/src/libosmo-pfcp/pfcp_ies_custom.c @@ -317,9 +317,8 @@ return 0; }
-int osmo_pfcp_enc_to_str_node_id(char *buf, size_t buflen, const void *encode_from) +int osmo_pfcp_ie_node_id_to_str_buf(char *buf, size_t buflen, const struct osmo_pfcp_ie_node_id *node_id) { - const struct osmo_pfcp_ie_node_id *node_id = encode_from; struct osmo_strbuf sb = { .buf = buf, .len = buflen };
switch (node_id->type) { @@ -343,6 +342,16 @@ return sb.chars_needed; }
+char *osmo_pfcp_ie_node_id_to_str_c(void *ctx, const struct osmo_pfcp_ie_node_id *node_id) +{ + OSMO_NAME_C_IMPL(ctx, 64, "ERROR", osmo_pfcp_ie_node_id_to_str_buf, node_id) +} + +int osmo_pfcp_enc_to_str_node_id(char *buf, size_t buflen, const void *encode_from) +{ + return osmo_pfcp_ie_node_id_to_str_buf(buf, buflen, encode_from); +} + bool osmo_pfcp_bits_get(const uint8_t *bits, unsigned int bitpos) { unsigned int bytenum = bitpos / 8;