fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40546?usp=email )


Change subject: sctp_server: pass conn_info() to the handler
......................................................................

sctp_server: pass conn_info() to the handler

Pass more information about the SCTP connection to the handler.
This will be used in a follow-up patch to obtain the eNB's address.

Change-Id: I959cfb2b8eeb93d8c53e0a84fcc4c917ed4aac51
Related: SYS#7307
---
M src/sctp_client.erl
M src/sctp_proxy.erl
M src/sctp_server.erl
3 files changed, 15 insertions(+), 11 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-s1gw 
refs/changes/46/40546/1

diff --git a/src/sctp_client.erl b/src/sctp_client.erl
index bea3c16..30152d2 100644
--- a/src/sctp_client.erl
+++ b/src/sctp_client.erl
@@ -57,8 +57,8 @@
 %% behavior callbacks
 %% ------------------------------------------------------------------

--callback start_link(Aid, Priv) -> Result
-    when Aid :: gen_sctp:assoc_id(),
+-callback start_link(ConnInfo, Priv) -> Result
+    when ConnInfo :: sctp_server:conn_info(),
          Priv :: term(),
          Result :: {ok, pid()} | term().

diff --git a/src/sctp_proxy.erl b/src/sctp_proxy.erl
index e208d95..14c3a03 100644
--- a/src/sctp_proxy.erl
+++ b/src/sctp_proxy.erl
@@ -57,12 +57,12 @@
 %% public API
 %% ------------------------------------------------------------------

--spec start_link(Aid, ConnCfg) -> Result
-    when Aid :: gen_sctp:assoc_id(),
-         ConnCfg :: sctp_client:cfg(),
+-spec start_link(ConnInfo, Priv) -> Result
+    when ConnInfo :: sctp_server:conn_info(),
+         Priv :: sctp_client:cfg(),
          Result :: gen_statem:start_ret().
-start_link(Aid, ConnCfg) ->
-    gen_statem:start_link(?MODULE, [Aid, ConnCfg], []).
+start_link(ConnInfo, Priv) ->
+    gen_statem:start_link(?MODULE, [ConnInfo, Priv], []).


 -spec send_data(pid(), binary()) -> ok.
@@ -84,10 +84,10 @@
 %% gen_statem API
 %% ------------------------------------------------------------------

-init([Aid, ConnCfg]) ->
+init([ConnInfo, ConnCfg]) ->
     {ok, Pid} = s1ap_proxy:start_link(),
     {ok, connecting,
-     #{enb_aid => Aid,
+     #{enb_aid => maps:get(aid, ConnInfo),
        conn_cfg => ConnCfg,
        tx_queue => [],
        handler => Pid}}.
diff --git a/src/sctp_server.erl b/src/sctp_server.erl
index 7456d78..1eeb075 100644
--- a/src/sctp_server.erl
+++ b/src/sctp_server.erl
@@ -68,7 +68,8 @@
                  priv => term()
                 }.
 
--export_type([cfg/0]).
+-export_type([cfg/0,
+              conn_info/0]).


 -record(client_state, {addr_port :: addr_port(),
@@ -249,7 +250,10 @@
            #server_state{clients = Clients,
                          handler = Handler,
                          priv = Priv} = S) ->
-    {ok, Pid} = Handler:start_link(Aid, Priv),
+    ConnInfo = #{aid => Aid,
+                 addr => FromAddr,
+                 port => FromPort},
+    {ok, Pid} = Handler:start_link(ConnInfo, Priv),
     s1gw_metrics:gauge_inc(?S1GW_GAUGE_S1AP_ENB_NUM_SCTP_CONNECTIONS),
     NewClient = #client_state{addr_port = {FromAddr, FromPort}, pid = Pid},
     S#server_state{clients = dict:store(Aid, NewClient, Clients)}.

--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40546?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: I959cfb2b8eeb93d8c53e0a84fcc4c917ed4aac51
Gerrit-Change-Number: 40546
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>

Reply via email to