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


Change subject: pfcp_peer: add fetch_info/0
......................................................................

pfcp_peer: add fetch_info/0

Change-Id: I3fdcf7f6daac09a8c523826995a610c04f5a327b
---
M src/pfcp_peer.erl
1 file changed, 26 insertions(+), 1 deletion(-)



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

diff --git a/src/pfcp_peer.erl b/src/pfcp_peer.erl
index a7e9515..ff3cfce 100644
--- a/src/pfcp_peer.erl
+++ b/src/pfcp_peer.erl
@@ -48,6 +48,7 @@
          session_establish_req/3,
          session_modify_req/3,
          session_delete_req/1,
+         fetch_info/0,
          shutdown/0]).

 -include_lib("kernel/include/logger.hrl").
@@ -69,7 +70,14 @@
 -type pfcp_msg() :: {pfcp_msg_type(), pfcp_ies()}.
 -type pfcp_pdu() :: #pfcp{}.

--export_type([pfcp_session_rsp/0,
+-type peer_info() :: #{state := atom(),
+                       laddr := inet:ip_address(),
+                       raddr := inet:ip_address(),
+                       lrts := pos_integer(),
+                       rrts => pos_integer()}.
+
+-export_type([peer_info/0,
+              pfcp_session_rsp/0,
               pfcp_msg_type/0,
               pfcp_seq_nr/0,
               pfcp_seid/0,
@@ -139,6 +147,11 @@
     gen_statem:call(?MODULE, {?FUNCTION_NAME, SEID}).


+-spec fetch_info() -> peer_info().
+fetch_info() ->
+    gen_statem:call(?MODULE, ?FUNCTION_NAME).
+
+
 shutdown() ->
     gen_statem:stop(?MODULE).

@@ -339,6 +352,18 @@
     S1 = registry_del({Pid, Ref}, S0),
     {keep_state, S1};

+handle_event(State,
+             {call, From}, fetch_info,
+             #peer_state{} = S) ->
+    Info = #{state => State,
+             laddr => S#peer_state.loc_addr,
+             raddr => S#peer_state.rem_addr,
+             lrts => S#peer_state.loc_rts,
+             rrts => S#peer_state.rem_rts},
+    %% omit props with Value =:= undefined
+    Reply = maps:filter(fun(_K, V) -> V =/= undefined end, Info),
+    {keep_state_and_data, {reply, From, Reply}};
+
 handle_event(State, Event, EventData, S) ->
     ?LOG_ERROR("Unexpected event ~p in state ~p: ~p", [Event, State, 
EventData]),
     {keep_state, S}.

--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40902?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: I3fdcf7f6daac09a8c523826995a610c04f5a327b
Gerrit-Change-Number: 40902
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanits...@sysmocom.de>

Reply via email to