anchor.diff:  	{next_state, State, LoopDat}.
   
   
  +
   rx_m3ua(Msg = #m3ua_msg{version = 1, msg_class = ?M3UA_MSGC_MGMT,
   			msg_type = ?M3UA_MSGT_MGMT_NTFY}, State, LoopDat) ->
   	io:format("M3UA NOTIFY~n"),
  +	send_prim_to_user(LoopDat, osmo_util:make_prim('M','NOTIFY',indication,[Msg])),
   	{next_state, State, LoopDat};
   
   rx_m3ua(Msg = #m3ua_msg{version = 1, msg_class = ?M3UA_MSGC_ASPSM,
  
positive.code: 		       msg_type = ?M3UA_MSGT_ASPTM_ASPAC_ACK}, LoopDat) ->
  	timer:cancel(LoopDat#m3ua_state.t_ack),
  	% transition into ASP_ACTIVE
  	% FIXME: signal this to the user
  	{next_state, asp_active, LoopDat};
  
  asp_inactive(#m3ua_msg{msg_class = ?M3UA_MSGC_ASPSM,
  		       msg_type = ?M3UA_MSGT_ASPSM_ASPDN_ACK}, LoopDat) ->
  	timer:cancel(LoopDat#m3ua_state.t_ack),
  	% transition into ASP_DOWN
  	% FIXME: signal this to the user
  	{next_state, asp_down, LoopDat};
  
  asp_inactive(M3uaMsg, LoopDat) when is_record(M3uaMsg, m3ua_msg) ->
  
negative.code: send_sctp_to_peer(LoopDat, M3uaMsg) when is_record(M3uaMsg, m3ua_msg) ->
  	MsgBin = m3ua_codec:encode_m3ua_msg(M3uaMsg),
  	send_sctp_to_peer(LoopDat, MsgBin).
  
  
  send_prim_to_user(LoopDat, Prim) when is_record(LoopDat, m3ua_state), is_record(Prim, primitive) ->
  	#m3ua_state{user_pid = Pid, user_ref = Ref} = LoopDat,
  	Pid ! {m3ua, Ref, Prim}.
  
  % helper to send one of the up/down/act/inact management messages + start timer
  send_msg_start_tack(LoopDat, State, MsgClass, MsgType, Params) ->
  