add doc/charts/hnbgw_context_map.ladder

Change-Id: Id58c924f5a7f54a210db49147d3ffa8e1d17a614
This commit is contained in:
Neels Hofmeyr 2023-02-11 06:24:55 +01:00
parent 4abc533bf0
commit cc54ba8765
2 changed files with 143 additions and 0 deletions

View File

@ -12,6 +12,10 @@ $(builddir)/%.png: $(srcdir)/%.msc
$(builddir)/%.png: $(srcdir)/%.dot
dot -Tpng $< > $@
$(srcdir)/%.msc: $(srcdir)/%.ladder
@which ladder_to_msc.py || (echo 'PLEASE POINT YOUR $$PATH AT libosmocore/contrib/ladder_to_msc.py' && false)
ladder_to_msc.py -i $< -o $@
.PHONY: poll
# remember current dir: in case the build process removes and recreates the dir, re-enter the new dir
W := "$(PWD)"

View File

@ -0,0 +1,139 @@
{hscale=2}
hnb = HNB
rua = OsmoHNBGW
RUA FSM / HNBAP
sccp = OsmoHNBGW
SCCP FSM
cn = CN
hnb <-> rua RANAP/RUA
(Iuh)
rua <-> sccp FSM events
sccp <-> cn RANAP/SCCP/M3UA
(IuCS, IuPS)
...
...
--- Create a new context map (always from HNB)
hnb -> rua RUA Connect
RANAP InitialUE-Message
DTAP Location Updating Request
rua () sccp hnbgw_context_map_alloc()
rua <> . MAP_RUA_ST_INIT
sccp <> . MAP_SCCP_ST_INIT
rua () . MAP_RUA_EV_RX_CONNECT
data = ranap_msg
rua <> . MAP_RUA_ST_CONNECTED
rua -> sccp MAP_SCCP_EV_TX_RANAP_MSG
data = ranap_msg
sccp <> . MAP_SCCP_ST_WAIT_CC
sccp -> cn SCCP Connection Request
RANAP InitialUE-Message
DTAP Location Updating Request
...
sccp <- cn SCCP Connection Confirm
sccp <> . MAP_SCCP_ST_CONNECTED
--- if SCCP CC with payload
rua <- sccp MAP_RUA_EV_TX_RANAP_MSG
data = ranap_msg
hnb <- rua RUA DirectTransfer
...
...
--- Layer 3 communication
sccp <- cn SCCP Data Form 1
rua <- sccp MAP_RUA_EV_TX_RANAP_MSG
data = ranap_msg
hnb <- rua RUA DirectTransfer
...
hnb -> rua RUA DirectTransfer
rua -> sccp MAP_SCCP_EV_TX_RANAP_MSG
data = ranap_msg
sccp -> cn SCCP Data Form 1
...
...
--- Usual release
sccp <- cn SCCP Data Form 1
Iu-ReleaseCommand
rua <- sccp MAP_RUA_EV_TX_RANAP_MSG
data = ranap_msg
hnb <- rua RUA DirectTransfer
Iu-ReleaseCommand
...
hnb -> rua RUA Disconnect
Iu-ReleaseComplete
rua () . MAP_RUA_EV_RX_DISCONNECT
rua <> . MAP_RUA_ST_DISCONNECTED
rua -> sccp MAP_SCCP_EV_RAN_DISC
data = ranap_msg
sccp -> cn SCCP Data Form 1
Iu-ReleaseComplete
NOT 'SCCP Released'! See 3GPP TS 48.006 9.2
sccp <> . MAP_SCCP_ST_WAIT_RLSD
...
sccp <- cn SCCP Released
sccp <> . MAP_SCCP_ST_DISCONNECTED
rua () sccp map_check_released()
rua () sccp hnbgw_context_map_free()
...
...
--- Ungraceful release from CN
sccp <- cn SCCP Released
sccp -> cn SCCP Release Complete
(implicit by libosmo-sigtran)
sccp () . MAP_SCCP_EV_RX_RELEASED
sccp [] . In SCCP there is no "link loss".
In every case, we will be notified
via N-Disconnect prim per SCCP conn.
sccp <> . MAP_SCCP_ST_DISCONNECTED
rua <- sccp MAP_RUA_EV_CN_DISC
hnb <- rua RUA Disconnect
rua <> . MAP_RUA_ST_DISCONNECTED
rua () sccp map_check_released()
rua () sccp hnbgw_context_map_free()
...
...
...
--- PCSTATE handling
sccp <-- cn N-PCSTATE.indication
point-code unreachable
sccp [] . currently ignored
...
...
--- Ungraceful release from HNB
hnb ->< rua link loss
rua () . MAP_RUA_EV_HNB_LINK_LOST
rua -> sccp MAP_SCCP_EV_RAN_DISC
sccp -> cn SCCP Released
sccp <> . MAP_SCCP_ST_DISCONNECTED
rua <> . MAP_RUA_ST_DISCONNECTED
rua () sccp map_check_released()
rua () sccp hnbgw_context_map_free()
...
...
--- Ungraceful release from HNB De-Register
hnb -> rua HNBAP HNB De-Register
--- or
hnb -> rua HNBAP HNB Register
(HNB restarted)
---
rua () . MAP_RUA_EV_HNB_LINK_LOST
hnb <- rua RUA Disconnect
hnb [] rua TODO: does it make sense to send
RUA Disconnect per context when HNB is/was gone?
Or has the HNB implicitly discarded these?
rua <> . MAP_RUA_ST_DISCONNECTED
rua -> sccp MAP_SCCP_EV_RAN_DISC
from map_rua_disconnected_onenter()
sccp <> . MAP_SCCP_ST_WAIT_RLSD
rua -> sccp MAP_SCCP_EV_RAN_DISC
to skip waiting for SCCP Released from CN
sccp -> cn SCCP Released
sccp <> . MAP_SCCP_ST_DISCONNECTED
rua () sccp map_check_released()
rua () sccp hnbgw_context_map_free()