aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-02-18 02:28:34 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-03-09 04:14:00 +0100
commitab0c889c850c603f906c87c70a5b5113be7dbba3 (patch)
tree49fa0c569de7867861b333439563ae7bfc871560
parent777ad72a2a7d33cb69faf69e63f915170e2a0f5c (diff)
hnbgw context map FSMsneels/new_fsm
-rwxr-xr-xcontrib/new_fsm.py75
1 files changed, 58 insertions, 17 deletions
diff --git a/contrib/new_fsm.py b/contrib/new_fsm.py
index cc40255e..36a027a9 100755
--- a/contrib/new_fsm.py
+++ b/contrib/new_fsm.py
@@ -8,7 +8,7 @@ def as_tuple(str_or_tuple):
return tuple(str_or_tuple)
class State:
- def __init__(s, name, events, out_states, onenter=True):
+ def __init__(s, name, events=(), out_states=(), onenter=True):
s.name = name
s.const = name.upper()
s.events = as_tuple(events)
@@ -181,26 +181,67 @@ static __attribute__((constructor)) void {{prefix}}_fsm_register(void)
return template.render(**vars(s))
-fsm = FSM(head='#include <osmocom/hnbgw/pfcp_cp_peer.h>',
- prefix = 'pfcp_cp_peer',
- priv = 'pfcp_cp_peer',
+fsm = FSM(head='#include <osmocom/hnbgw/context_map.h>',
+ prefix = 'cm_rua',
+ priv = 'hnbgw_context_map',
states = (
- State('wait_retry',
- (),
- ('wait_assoc_setup_resp',)
+ State('init',
+ events=(),
+ out_states=('connected',),
+ onenter=False
),
- State('wait_assoc_setup_resp',
- ('rx_assoc_setup_resp',),
- ('associated',),
+ State('connected',
+ events=('rx_id_direct_transfer',
+ 'ranap_msg',
+ 'sccp_rlsd'),
+ out_states=('disconnected',),
+ onenter=False
),
- State('associated',
- ('rx_assoc_update_req',),
- ('wait_assoc_setup_resp','graceful_release'),
- onenter=False,
+ State('disconnected',
),
- State('graceful_release',
- (),()),
)
)
-with open('pfcp_cp_peer.c', 'w') as f:
+with open('context_map_rua.c', 'w') as f:
+ f.write(fsm.to_c())
+
+fsm = FSM(head='#include <osmocom/hnbgw/context_map.h>',
+ prefix = 'cm_sccp',
+ priv = 'hnbgw_context_map',
+ states = (
+ State('init',
+ events=('ranap_msg',
+ ),
+ out_states=('wait_cc',
+ ),
+ onenter=False
+ ),
+ State('wait_cc',
+ events=('rx_connection_confirm',
+ ),
+ out_states=('connected',
+ ),
+ onenter=False
+ ),
+ State('connected',
+ events=('rx_data_form_1',
+ 'ranap_msg',
+ 'rua_disc',
+ ),
+ out_states=('wait_rlc',
+ 'disconnected',
+ ),
+ onenter=False
+ ),
+ State('wait_rlc',
+ events=('rx_release_complete',
+ ),
+ out_states=('disconnected',
+ ),
+ onenter=False
+ ),
+ State('disconnected',
+ ),
+ )
+ )
+with open('context_map_sccp.c', 'w') as f:
f.write(fsm.to_c())