aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2022-07-23 13:44:15 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2022-07-23 16:15:57 +0200
commit6dc91a44116ade41bb2e57769499384677bbd9e5 (patch)
tree46b22c8d6b453c8c8bd3320112b688dc61669614 /include
parent4a2509c66976f7409f14dadba94c12e16788643f (diff)
clarify osmo_pfcp_msg alloc API
Looking at the osmo_pfcp_msg_alloc API with a bit of distance now, I found that: - it is confusing to have a single function for req and resp. A resp may pass remote_addr as NULL, and a req may pass in_reply_to as NULL. Make this much more obvious with separate req/resp functions. - the osmo_pfcp_endpoint_tx() implicitly puts the local Node ID into sent PFCP messages, so the local_node_id arg for msg alloc is redundant. Drop that. Refactor without backwards compat, because we have not yet officially released this API. This requires a fixup patch to osmo-upf.git (and affects unmerged patches to osmo-hnbgw.git). Related: SYS#5599 Related: I73e6da3b80f05e9408c81f41ac05d6578b8e31cf (osmo-upf) Change-Id: I0d71134e42932cc72992eba73a15e82bc7cd11bd
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/pfcp/pfcp_cp_peer.h7
-rw-r--r--include/osmocom/pfcp/pfcp_msg.h8
2 files changed, 9 insertions, 6 deletions
diff --git a/include/osmocom/pfcp/pfcp_cp_peer.h b/include/osmocom/pfcp/pfcp_cp_peer.h
index 8c6e448..e555a5f 100644
--- a/include/osmocom/pfcp/pfcp_cp_peer.h
+++ b/include/osmocom/pfcp/pfcp_cp_peer.h
@@ -58,6 +58,9 @@ struct osmo_pfcp_cp_peer *osmo_pfcp_cp_peer_alloc(void *ctx,
const struct osmo_sockaddr *remote_addr);
int osmo_pfcp_cp_peer_associate(struct osmo_pfcp_cp_peer *cp_peer);
bool osmo_pfcp_cp_peer_is_associated(const struct osmo_pfcp_cp_peer *cp_peer);
-struct osmo_pfcp_msg *osmo_pfcp_cp_peer_new_msg_tx(struct osmo_pfcp_cp_peer *cp_peer,
- enum osmo_pfcp_message_type msg_type);
+struct osmo_pfcp_msg *osmo_pfcp_cp_peer_new_req(struct osmo_pfcp_cp_peer *cp_peer,
+ enum osmo_pfcp_message_type msg_type);
+struct osmo_pfcp_msg *osmo_pfcp_cp_peer_new_resp(struct osmo_pfcp_cp_peer *cp_peer,
+ const struct osmo_pfcp_msg *in_reply_to,
+ enum osmo_pfcp_message_type msg_type);
void osmo_pfcp_cp_peer_set_msg_ctx(struct osmo_pfcp_cp_peer *cp_peer, struct osmo_pfcp_msg *m);
diff --git a/include/osmocom/pfcp/pfcp_msg.h b/include/osmocom/pfcp/pfcp_msg.h
index 2833408..4affa54 100644
--- a/include/osmocom/pfcp/pfcp_msg.h
+++ b/include/osmocom/pfcp/pfcp_msg.h
@@ -169,10 +169,10 @@ int osmo_pfcp_msg_decode_header(struct osmo_gtlv_load *tlv, struct osmo_pfcp_msg
int osmo_pfcp_msg_decode_tlv(struct osmo_pfcp_msg *m, struct osmo_gtlv_load *tlv);
struct osmo_pfcp_msg *osmo_pfcp_msg_alloc_rx(void *ctx, const struct osmo_sockaddr *remote_addr);
-struct osmo_pfcp_msg *osmo_pfcp_msg_alloc_tx(void *ctx, const struct osmo_sockaddr *remote_addr,
- const struct osmo_pfcp_ie_node_id *local_node_id,
- const struct osmo_pfcp_msg *in_reply_to,
- enum osmo_pfcp_message_type msg_type);
+struct osmo_pfcp_msg *osmo_pfcp_msg_alloc_tx_req(void *ctx, const struct osmo_sockaddr *remote_addr,
+ enum osmo_pfcp_message_type msg_type);
+struct osmo_pfcp_msg *osmo_pfcp_msg_alloc_tx_resp(void *ctx, const struct osmo_pfcp_msg *in_reply_to,
+ enum osmo_pfcp_message_type msg_type);
void osmo_pfcp_msg_invalidate_ctx(struct osmo_pfcp_msg *m, struct osmo_fsm_inst *deleted_fi);