diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-02-18 02:28:34 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-03-09 04:14:00 +0100 |
commit | ab0c889c850c603f906c87c70a5b5113be7dbba3 (patch) | |
tree | 49fa0c569de7867861b333439563ae7bfc871560 | |
parent | 777ad72a2a7d33cb69faf69e63f915170e2a0f5c (diff) |
hnbgw context map FSMsneels/new_fsm
Change-Id: I15f3e8702ece65ddf05ea5389afab7404f8e5c51
-rwxr-xr-x | contrib/new_fsm.py | 75 |
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()) |