pespin has submitted this change. (
https://gerrit.osmocom.org/c/libosmo-pfcp/+/41452?usp=email )
Change subject: pfcp_msg: Add osmo_pfcp_ie_node_id_cmp()
......................................................................
pfcp_msg: Add osmo_pfcp_ie_node_id_cmp()
Related: SYS#7719
Change-Id: Id9bda11078d7d940474389c95d23e90db7bc5bed
---
M TODO-RELEASE
M include/osmocom/pfcp/pfcp_msg.h
M src/libosmo-pfcp/pfcp_msg.c
3 files changed, 25 insertions(+), 1 deletion(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
neels: Looks good to me, but someone else must approve
osmith: Looks good to me, but someone else must approve
diff --git a/TODO-RELEASE b/TODO-RELEASE
index 0ed7189..203a2fd 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,3 +7,4 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public
release: c:r:0.
#library what description / commit summary line
+libosmo-pfcp add osmo_pfcp_ie_node_id_cmp()
diff --git a/include/osmocom/pfcp/pfcp_msg.h b/include/osmocom/pfcp/pfcp_msg.h
index 0023353..2fde3e5 100644
--- a/include/osmocom/pfcp/pfcp_msg.h
+++ b/include/osmocom/pfcp/pfcp_msg.h
@@ -168,7 +168,7 @@
int osmo_pfcp_ie_node_id_from_osmo_sockaddr(struct osmo_pfcp_ie_node_id
*node_id, const struct osmo_sockaddr *os);
int osmo_pfcp_ie_node_id_to_osmo_sockaddr(const struct osmo_pfcp_ie_node_id
*node_id, struct osmo_sockaddr *os);
-
+int osmo_pfcp_ie_node_id_cmp(const struct osmo_pfcp_ie_node_id *a, const
struct osmo_pfcp_ie_node_id *b);
#define OSMO_PFCP_MSG_MEMB(M, OFS) ((OFS) <= 0 ? NULL : (void *)((uint8_t
*)(M) + OFS))
static inline enum osmo_pfcp_cause *osmo_pfcp_msg_cause(const struct
osmo_pfcp_msg *m)
diff --git a/src/libosmo-pfcp/pfcp_msg.c b/src/libosmo-pfcp/pfcp_msg.c
index 9c73609..2e0db31 100644
--- a/src/libosmo-pfcp/pfcp_msg.c
+++ b/src/libosmo-pfcp/pfcp_msg.c
@@ -135,6 +135,29 @@
return 0;
}
+int osmo_pfcp_ie_node_id_cmp(const struct osmo_pfcp_ie_node_id *a, const
struct osmo_pfcp_ie_node_id *b)
+{
+ if (a == b)
+ return 0;
+ if (!a)
+ return 1;
+ if (!b)
+ return -1;
+
+ if (a->type != b->type)
+ return OSMO_CMP(a->type, b->type);
+
+ switch (a->type) {
+ case OSMO_PFCP_NODE_ID_T_IPV4:
+ case OSMO_PFCP_NODE_ID_T_IPV6:
+ return osmo_sockaddr_cmp(&a->ip, &b->ip);
+ case OSMO_PFCP_NODE_ID_T_FQDN:
+ return strncasecmp(&a->fqdn[0], &b->fqdn[0], sizeof(a->fqdn));
+ default:
+ OSMO_ASSERT(0);
+ }
+}
+
static int pfcp_header_set_message_length(struct osmo_pfcp_header_common *c,
unsigned int header_and_payload_len)
{
if (header_and_payload_len < sizeof(struct osmo_pfcp_header_common))
--
To view, visit https://gerrit.osmocom.org/c/libosmo-pfcp/+/41452?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-pfcp
Gerrit-Branch: master
Gerrit-Change-Id: Id9bda11078d7d940474389c95d23e90db7bc5bed
Gerrit-Change-Number: 41452
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: neels <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>