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}} ->