From f4d281356f3a9209a6327f34d0d9bb490aaa27b1 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 31 Dec 2015 12:21:05 +0100 Subject: add some more ladder diagrams; use mscgen instead of gen_ladder mscgen (http://www.mcternan.me.uk/mscgen/) seems much more advanced than gen_ladder, so I'm creating new diagrams in that language instead. What remains to be done is a converter to conver the legacy ladder diagrams to mscgen format. --- hnb_cs_lu.msc | 45 +++++++++++++++++++++++++++++++ hnb_cs_mo_call.msc | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++ hnb_cs_mt_call.msc | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ hnb_ps_lu.msc | 45 +++++++++++++++++++++++++++++++ hnb_ps_pdp_act.msc | 25 +++++++++++++++++ 5 files changed, 269 insertions(+) create mode 100644 hnb_cs_lu.msc create mode 100644 hnb_cs_mo_call.msc create mode 100644 hnb_cs_mt_call.msc create mode 100644 hnb_ps_lu.msc create mode 100644 hnb_ps_pdp_act.msc diff --git a/hnb_cs_lu.msc b/hnb_cs_lu.msc new file mode 100644 index 0000000..01546f6 --- /dev/null +++ b/hnb_cs_lu.msc @@ -0,0 +1,45 @@ +msc { + hscale = "3"; + ue,hnb,hnbgw,cn; + + ue box hnb [ label = "Radio Channel Establishment" ]; + ue => hnb [ label = "RRC (MM LOC UPD REQ)" ] ; + hnb => hnbgw [ label = "RUA CONNECT (RANAP Initial UE Msg (MM LOC UPD REQ))" ]; + hnbgw => cn [ label = "SCCP CR (RANAP Initial UE Msg (MM LOC UPD REQ))" ]; + cn >> hnbgw [ label = "SCCP CC" ]; + + --- [ label = "Optional retrieval of IMSI (if not given in LU or retrived from VLR by TMSI)" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY REQ))" ]; + hnb => ue [ label = "RRC (MM IDENTITY REQ)" ]; + ue >> hnb [ label = "RRC (MM IDENTITY RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY RESP))" ]; + + --- [ label = "Mandatory activation of Integrity Protection" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK))" ]; + + cn => hnbgw [ label = "SCCP DT1 (RANAP CommonID)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP CommonID)" ]; + + --- [ label = "Optional Authentication" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM AUTH REQ))" ]; + hnb => ue [ label = "RRC (MM AUTH REQ)" ]; + ue >> hnb [ label = "RRC (MM AUTH RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM AUTH RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH RESP))" ]; + + --- [ label = "Optional activation of Encryption" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK+CK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK+CK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK+CK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK+CK))" ]; + + cn >> hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM LOC UPD ACC))" ]; + hnbgw >> hnb [ label = "RUA DT (RANAP DirectTransfer (MM LOC UPD ACC))" ]; + hnb >> ue [ label = "RRC (MM LOC UPD ACC)" ]; +} diff --git a/hnb_cs_mo_call.msc b/hnb_cs_mo_call.msc new file mode 100644 index 0000000..10b2d04 --- /dev/null +++ b/hnb_cs_mo_call.msc @@ -0,0 +1,75 @@ +msc { + hscale = "3"; + ue,hnb,hnbgw,cn; + + ue box hnb [ label = "Radio Channel Establishment" ]; + ue => hnb [ label = "RRC (MM LOC UPD REQ)" ] ; + hnb => hnbgw [ label = "RUA CONNECT (RANAP Initial UE Msg (CM SERV REQ))" ]; + hnbgw => cn [ label = "SCCP CR (RANAP Initial UE Msg (CM SERV REQ))" ]; + cn >> hnbgw [ label = "SCCP CC" ]; + + --- [ label = "Optional retrieval of IMSI (if not given in CM or retrived from VLR by TMSI)" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY REQ))" ]; + hnb => ue [ label = "RRC (MM IDENTITY REQ)" ]; + ue >> hnb [ label = "RRC (MM IDENTITY RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY RESP))" ]; + + --- [ label = "Mandatory activation of Integrity Protection" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK))" ]; + + cn => hnbgw [ label = "SCCP DT1 (RANAP CommonID)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP CommonID)" ]; + + --- [ label = "Optional Authentication" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM AUTH REQ))" ]; + hnb => ue [ label = "RRC (MM AUTH REQ)" ]; + ue >> hnb [ label = "RRC (MM AUTH RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM AUTH RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH RESP))" ]; + + --- [ label = "Optional activation of Encryption" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK+CK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK+CK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK+CK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK+CK))" ]; + + cn >> hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CM SERV ACC))" ]; + hnbgw >> hnb [ label = "RUA DT (RANAP DirectTransfer (CM SERV ACC))" ]; + hnb >> ue [ label = "RRC (CM SERV ACC)" ]; + + ue box ue [ label = "subscriber A dials a call" ]; + ue => hnb [ label = "RRC (CC SETUP)" ]; + hnb => hnbgw [ label = "RUA DT (RANAP DirectTransfer (CC SETUP))" ]; + hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTransfer (CC SETUP))" ]; + + cn box cn [ label = "Signalling towards B subscriber via ISUP, SIP, ..." ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CC ALERTING))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (CC ALERTING))" ]; + hnb => ue [ label = "RC (CC ALERTING)" ]; + + --- [ label = "Assignment of Voice Channel" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP RAB Assign Cmd)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP RAB Assign Cmd)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP RAB Assign Rsp)" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP RAB Assign Rsp)" ]; + + cn box cn [ label = "subscriber B picks up the ringing call" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CC CALL CONF))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (CC CALL CONF))" ]; + hnb => ue [ label = "RRC (CC CALL CONF)" ]; + + cn box ue [ label = "Voice channel open" ]; + + ue box ue [ label = "subscriber A hangs up" ]; + ue => hnb [ label = "RRC (CC DISCONNECT)" ]; + hnb => hnbgw [ label = "RUA DT (RANAP DirectTranfer (CC DISCONNECT))" ]; + hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTranfer (CC DISCONNECT))" ]; + + cn box hnb [ label = "RAB Release or Iu Release" ]; +} diff --git a/hnb_cs_mt_call.msc b/hnb_cs_mt_call.msc new file mode 100644 index 0000000..b33497e --- /dev/null +++ b/hnb_cs_mt_call.msc @@ -0,0 +1,79 @@ +msc { + hscale = "3"; + ue,hnb,hnbgw,cn; + + cn box cn [ label = "subscriber A dials a call; signalling arrives at CN" ]; + + cn => hnbgw [ label = "SCCP UDT (RANAP Paging Command)" ]; + hnbgw => hnb [ label = "RUA UDT (RANAP Paging Command)" ]; + hnb => ue [ label = "RRC Paging" ]; + + ue box hnb [ label = "Radio Channel Establishment" ]; + ue => hnb [ label = "RRC (CM PAGING RESP)" ] ; + hnb => hnbgw [ label = "RUA CONNECT (RANAP Initial UE Msg (CM PAGING RESP))" ]; + hnbgw => cn [ label = "SCCP CR (RANAP Initial UE Msg (CM PAGING RESP))" ]; + cn >> hnbgw [ label = "SCCP CC" ]; + + --- [ label = "Optional retrieval of IMSI (if not given in CM or retrived from VLR by TMSI)" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY REQ))" ]; + hnb => ue [ label = "RRC (MM IDENTITY REQ)" ]; + ue >> hnb [ label = "RRC (MM IDENTITY RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY RESP))" ]; + + --- [ label = "Mandatory activation of Integrity Protection" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK))" ]; + + cn => hnbgw [ label = "SCCP DT1 (RANAP CommonID)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP CommonID)" ]; + + --- [ label = "Optional Authentication" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM AUTH REQ))" ]; + hnb => ue [ label = "RRC (MM AUTH REQ)" ]; + ue >> hnb [ label = "RRC (MM AUTH RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM AUTH RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH RESP))" ]; + + --- [ label = "Optional activation of Encryption" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK+CK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK+CK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK+CK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK+CK))" ]; + + cn >> hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CM SERV ACC))" ]; + hnbgw >> hnb [ label = "RUA DT (RANAP DirectTransfer (CM SERV ACC))" ]; + hnb >> ue [ label = "RRC (CM SERV ACC)" ]; + + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CC SETUP))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (CC SETUP))" ]; + hnb => ue [ label = "RRC (CC SETUP)" ]; + + ue => hnb [ label = "RC (CC ALERTING)" ]; + hnb => hnbgw [ label = "RUA DT (RANAP DirectTransfer (CC ALERTING))" ]; + hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTransfer (CC ALERTING))" ]; + cn box cn [ label = "Signalling towards A subscriber via ISUP, SIP, ..." ]; + + --- [ label = "Assignment of Voice Channel" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP RAB Assign Cmd)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP RAB Assign Cmd)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP RAB Assign Rsp)" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP RAB Assign Rsp)" ]; + + ue => hnb [ label = "RRC (CC CONNECT)" ]; + hnb => hnbgw [ label = "RUA DT (RANAP DirectTransfer (CC CONNECT))" ]; + hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTransfer (CC CONNECT))" ]; + + cn box ue [ label = "Voice channel open" ]; + + ue box ue [ label = "subscriber B hangs up" ]; + ue => hnb [ label = "RRC (CC DISCONNECT)" ]; + hnb => hnbgw [ label = "RUA DT (RANAP DirectTranfer (CC DISCONNECT))" ]; + hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTranfer (CC DISCONNECT))" ]; + + cn box hnb [ label = "RAB Release or Iu Release" ]; +} diff --git a/hnb_ps_lu.msc b/hnb_ps_lu.msc new file mode 100644 index 0000000..de2dce8 --- /dev/null +++ b/hnb_ps_lu.msc @@ -0,0 +1,45 @@ +msc { + hscale = "3"; + ue,hnb,hnbgw,cn; + + ue box hnb [ label = "Radio Channel Establishment" ]; + ue => hnb [ label = "RRC (GMM IMSI ATTACH REQ)" ] ; + hnb => hnbgw [ label = "RUA CONNECT (RANAP Initial UE Msg (GMM IMSI ATTACH REQ))" ]; + hnbgw => cn [ label = "SCCP CR (RANAP Initial UE Msg (GMM IMSI ATTACH REQ))" ]; + cn >> hnbgw [ label = "SCCP CC" ]; + + --- [ label = "Optional retrieval of IMSI (if not given in LU or retrived from VLR by TMSI)" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (GMM IDENTITY REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (GMM IDENTITY REQ))" ]; + hnb => ue [ label = "RRC (GMM IDENTITY REQ)" ]; + ue >> hnb [ label = "RRC (GMM IDENTITY RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (GMM IDENTITY RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (GMM IDENTITY RESP))" ]; + + --- [ label = "Mandatory activation of Integrity Protection" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK))" ]; + + cn => hnbgw [ label = "SCCP DT1 (RANAP CommonID)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP CommonID)" ]; + + --- [ label = "Optional Authentication" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (GMM AUTH REQ))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (GMM AUTH REQ))" ]; + hnb => ue [ label = "RRC (GMM AUTH REQ)" ]; + ue >> hnb [ label = "RRC (GMM AUTH RESP)" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (GMM AUTH RESP))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (GMM AUTH RESP))" ]; + + --- [ label = "Optional activation of Encryption" ]; + cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK+CK))" ]; + hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK+CK))" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK+CK))" ]; + hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK+CK))" ]; + + cn >> hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (GMM IMSI ATTACH ACC))" ]; + hnbgw >> hnb [ label = "RUA DT (RANAP DirectTransfer (GMM IMSI ATTACH ACC))" ]; + hnb >> ue [ label = "RRC (GMM IMSI ATTACH ACC)" ]; +} diff --git a/hnb_ps_pdp_act.msc b/hnb_ps_pdp_act.msc new file mode 100644 index 0000000..2f2f3cf --- /dev/null +++ b/hnb_ps_pdp_act.msc @@ -0,0 +1,25 @@ +msc { + hscale="3", wordwraparcs="1"; + ue,hnb,hnbgw,sgsn,ggsn; + + ue box hnb [ label = "Radio Channel Establishment, possibly already done by IMSI ATTACH / RAU" ]; + ue => hnb [ label = "RRC (SM PDP CTX ACT REQ)" ]; + hnb => hnbgw [ label = "RUA DT (RANAP DirectTransfer (SM PDP CTX ACT REQ))" ]; + hnbgw => sgsn [ label = "SCCP DT1 (RANAP DirectTransfer (SM PDP CTX ACT REQ))" ]; + + sgsn => ggsn [ label = "GTP-C PDP CTX ACT REQ" ]; + ggsn >> sgsn [ label = "GTP-C PDP CTX ACT ACK (IP+TEI of GGSN)" ]; + + sgsn => hnbgw [ label = "SCCP DT1 (RANAP Activate RAB Req (IP+TEI of GGSN)" ]; + hnbgw => hnb [ label = "RUA DT (RANAP Activate RAB Req (IP+TEI of GGSN)" ]; + hnb box ue [ label = "RAB Establishment" ]; + hnb >> hnbgw [ label = "RUA DT (RANAP Activate RAB Resp (IP + TEI of HNB)" ]; + hnbgw >> sgsn [ label = "SCCP DT1 (RANAP Activate RAB Resp (IP + TEI of HNB)" ]; + + sgsn => ggsn [ label = "GTP-C PDP CTX MOD REQ (IP + TEI of HNB)" ]; + ggsn >> sgsn [ label = "GTP-C PDP CTX MOD RESP" ]; + + sgsn >> hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (SM PDP CTX ACT ACK))" ]; + hnbgw >> hnb [ label = "RUA DT (RANAP DirectTransfer (SM PDP CTX ACT ACK))" ]; + hnb >> ue [ label = "RRC (SM PDP CTX ACT ACK))" ]; +} -- cgit v1.2.3