fixeria has submitted this change. ( 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, 15 insertions(+), 4 deletions(-)
Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve
diff --git a/src/sctp_proxy.erl b/src/sctp_proxy.erl index 1c3228a..4ea5e19 100644 --- a/src/sctp_proxy.erl +++ b/src/sctp_proxy.erl @@ -181,13 +181,18 @@
%% 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]), + [Aid, MmeAddr, MmePort, + #{tsn => TSN, sid => SID, ssn => SSN, + len => byte_size(Data), data => Data}]), case s1ap_proxy:process_pdu(Pid, Data) of {forward, FwdData} -> sctp_server:send_data(EnbAid, FwdData); 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}} ->