diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2022-07-23 13:44:15 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2022-07-23 16:15:57 +0200 |
commit | 6dc91a44116ade41bb2e57769499384677bbd9e5 (patch) | |
tree | 46b22c8d6b453c8c8bd3320112b688dc61669614 /include/osmocom/pfcp | |
parent | 4a2509c66976f7409f14dadba94c12e16788643f (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/osmocom/pfcp')
-rw-r--r-- | include/osmocom/pfcp/pfcp_cp_peer.h | 7 | ||||
-rw-r--r-- | include/osmocom/pfcp/pfcp_msg.h | 8 |
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); |