From a2c40c4dbe035fb5420bef75eba35756ab1bf73e Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 12 Jan 2022 03:21:57 +0100 Subject: add pfcp heartbeat fsm Related: SYS#5599 Change-Id: Id822c9c7a71461d17f062c2a3d10cb2f616c7f63 --- include/osmocom/pfcp/Makefile.am | 1 + include/osmocom/pfcp/pfcp_heartbeat_fsm.h | 40 +++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 include/osmocom/pfcp/pfcp_heartbeat_fsm.h (limited to 'include/osmocom') diff --git a/include/osmocom/pfcp/Makefile.am b/include/osmocom/pfcp/Makefile.am index 898113f..fe8e61a 100644 --- a/include/osmocom/pfcp/Makefile.am +++ b/include/osmocom/pfcp/Makefile.am @@ -1,5 +1,6 @@ pfcp_HEADERS = \ pfcp_endpoint.h \ + pfcp_heartbeat_fsm.h \ pfcp_ies_custom.h \ pfcp_ies_auto.h \ pfcp_msg.h \ diff --git a/include/osmocom/pfcp/pfcp_heartbeat_fsm.h b/include/osmocom/pfcp/pfcp_heartbeat_fsm.h new file mode 100644 index 0000000..e610921 --- /dev/null +++ b/include/osmocom/pfcp/pfcp_heartbeat_fsm.h @@ -0,0 +1,40 @@ +/* + * (C) 2021-2022 by sysmocom - s.f.m.c. GmbH + * All Rights Reserved. + * + * Author: Neels Janosch Hofmeyr + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +struct osmo_fsm_inst; +struct osmo_tdef; + +enum osmo_pfcp_heartbeat_fsm_event { + /* Dispatch this with a struct osmo_pfcp_msg* as data argument whenever a Heartbeat Response matching this + * instance is received. Typically a PFCP Peer responds to a request sent from here. */ + OSMO_PFCP_HEARTBEAT_EV_RX_RESP, + /* Dispatch this with a struct osmo_pfcp_msg* as data argument whenever a Heartbeat Request matching this + * instance is received. Typically a PFCP Peer on its own accord sent a Heartbeat Request. */ + OSMO_PFCP_HEARTBEAT_EV_RX_REQ, +}; + +struct osmo_fsm_inst *osmo_pfcp_heartbeat_alloc(struct osmo_fsm_inst *parent_fi, + uint32_t parent_event_tx_heartbeat, uint32_t parent_event_term, + struct osmo_tdef *tdefs); -- cgit v1.2.3