fixeria has uploaded this change for review. (
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/39663?usp=email )
Change subject: sctp_{server,proxy}: log SCTP TSN, SID, SSN, and data len
......................................................................
sctp_{server,proxy}: log SCTP TSN, SID, SSN, and data len
This helps finding the respective SCTP DATA chunk in a PCAP file.
Change-Id: I3692e3bfccdb2ab0a705b1f0903181197c0a2237
---
M src/sctp_proxy.erl
M src/sctp_server.erl
2 files changed, 21 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-s1gw refs/changes/63/39663/1
diff --git a/src/sctp_proxy.erl b/src/sctp_proxy.erl
index 1c3228a..fd7c53c 100644
--- a/src/sctp_proxy.erl
+++ b/src/sctp_proxy.erl
@@ -181,14 +181,21 @@
%% Handle an #sctp_sndrcvinfo event (MME -> eNB data)
connected(info, {sctp, _Socket, MmeAddr, MmePort,
- {[#sctp_sndrcvinfo{assoc_id = Aid}], Data}},
+ {[#sctp_sndrcvinfo{assoc_id = Aid,
+ stream = SID,
+ ssn = SSN,
+ tsn = TSN}], Data}},
#{sock := Sock,
enb_aid := EnbAid,
mme_aid := Aid,
handler := Pid} = S) ->
?LOG_DEBUG("MME connection (id=~p, ~p:~p) -> eNB: ~p",
- [Aid, MmeAddr, MmePort, Data]),
- case s1ap_proxy:process_pdu(Pid, Data) of
+ [Aid, MmeAddr, MmePort,
+ #{tsn => TSN, sid => SID, ssn => SSN,
+ len => byte_size(Data), data => Data}]),
+ {Time, Result} = timer:tc(s1ap_proxy, process_pdu, [Pid, Data]),
+ ?LOG_DEBUG("MME -> eNB: s1ap_proxy:process_pdu/2 took ~p us", [Time]),
+ case Result of
{forward, FwdData} ->
sctp_server:send_data(EnbAid, FwdData);
{reply, ReData} ->
@@ -253,7 +260,9 @@
enb_aid := EnbAid,
mme_aid := Aid,
handler := Pid}) ->
- case s1ap_proxy:process_pdu(Pid, Data) of
+ {Time, Result} = timer:tc(s1ap_proxy, process_pdu, [Pid, Data]),
+ ?LOG_DEBUG("eNB -> MME: s1ap_proxy:process_pdu/2 took ~p us", [Time]),
+ case Result of
{forward, FwdData} ->
ok = sctp_client:send_data({Sock, Aid}, FwdData);
{reply, ReData} ->
diff --git a/src/sctp_server.erl b/src/sctp_server.erl
index 0a42011..f269afe 100644
--- a/src/sctp_server.erl
+++ b/src/sctp_server.erl
@@ -203,10 +203,16 @@
%% Handle an #sctp_sndrcvinfo event (incoming data)
sctp_recv({FromAddr, FromPort,
- [#sctp_sndrcvinfo{assoc_id = Aid}], Data},
+ [#sctp_sndrcvinfo{assoc_id = Aid,
+ stream = SID,
+ ssn = SSN,
+ tsn = TSN}], Data},
#server_state{clients = Clients,
handler = Handler} = S) ->
- ?LOG_DEBUG("eNB connection (id=~p, ~p:~p) -> MME: ~p", [Aid, FromAddr,
FromPort, Data]),
+ ?LOG_DEBUG("eNB connection (id=~p, ~p:~p) -> MME: ~p",
+ [Aid, FromAddr, FromPort,
+ #{tsn => TSN, sid => SID, ssn => SSN,
+ len => byte_size(Data), data => Data}]),
s1gw_metrics:ctr_inc(?S1GW_CTR_S1AP_ENB_ALL_RX),
case dict:find(Aid, Clients) of
{ok, #client_state{pid = undefined}} ->
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/39663?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I3692e3bfccdb2ab0a705b1f0903181197c0a2237
Gerrit-Change-Number: 39663
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>